From 9fff9695b38aa12292498ac9675d001105e728d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?TOP=E7=B3=AF=E7=B1=B3?= <1130395124@qq.com>
Date: Thu, 16 Mar 2023 01:52:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=94=A8=E6=88=B7=E8=AE=A2?=
=?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/order/item.vue | 10 ++--
src/core/libs/utils.js | 28 +++++++++++
src/core/models/order.js | 94 ++++++++++++++++++++++++-----------
src/pages/order/detail.vue | 55 ++++++++++++--------
4 files changed, 134 insertions(+), 53 deletions(-)
diff --git a/src/components/order/item.vue b/src/components/order/item.vue
index f1e67aa..281a765 100644
--- a/src/components/order/item.vue
+++ b/src/components/order/item.vue
@@ -91,10 +91,12 @@ export default {
WorkerItem,
},
async created() {
- for (let index = 0; index < 3; index++) {
- if (this.order.workerList[index]) {
- this.previewWorkerList.push(this.order.workerList[index]);
- } else break;
+ if (this.$utils.isType(this.order.workerList, "array")) {
+ for (let index = 0; index < 3; index++) {
+ if (this.order.workerList[index]) {
+ this.previewWorkerList.push(this.order.workerList[index]);
+ } else break;
+ }
}
let [stateText, stateDesc, stateTextColor] = await this.$models.order.stateText(
this.order.listType,
diff --git a/src/core/libs/utils.js b/src/core/libs/utils.js
index 5d531e0..2e04e2f 100644
--- a/src/core/libs/utils.js
+++ b/src/core/libs/utils.js
@@ -266,6 +266,33 @@ function chooseImage(count) {
});
}
+function isType(param, type) {
+ let t = '';
+ switch (type) {
+ case "number":
+ t = "[object Number]";
+ break;
+ case "object":
+ t = "[object Object]";
+ break;
+ case "array":
+ t = "[object Array]";
+ break;
+ case "string":
+ t = "[object String]";
+ break;
+ case "null":
+ t = "[object Null]";
+ break;
+ case "undefined":
+ t = "[object Undefined]";
+ break;
+ default:
+ throw "没有比对的类型";
+ }
+ return Object.prototype.toString.call(param) === t;
+}
+
export default {
time,
datetime,
@@ -281,4 +308,5 @@ export default {
formatNumber,
serviceActions,
chooseImage,
+ isType,
}
diff --git a/src/core/models/order.js b/src/core/models/order.js
index 41028cb..5a7a9c4 100644
--- a/src/core/models/order.js
+++ b/src/core/models/order.js
@@ -100,6 +100,7 @@ export default {
let list = [];
if (options.listType == 't1' || options.listType == 't2') {
response.data.forEach((item) => {
+ // 基础数据
let order = {
listType: options.listType,
id: item.id,
@@ -113,7 +114,8 @@ export default {
state: item.status,
workerList: [],
};
- if (item.shifu) {
+ // 师傅
+ if (prototype.$utils.isType(item.shifu, "object")) {
order.worker = {
id: item.shifu.id,
name: item.shifu.name,
@@ -125,6 +127,7 @@ export default {
price: item.money,
}
}
+ // 师傅列表
if (options.listType == 't2' && item.shifus.length > 0) {
item.shifus.forEach(worker => {
order.workerList.push({
@@ -143,15 +146,14 @@ export default {
listType: options.listType,
id: item.id,
orderId: item.order,
- cate: "待返数据",
+ cate: "货运订单",
content: item.desc,
- createTime: item.time,
- serviceTime: item.times,
+ createTime: item.times,
+ serviceTime: item.starttime,
orderType: item.types,
price: item.money,
state: item.status,
worker: item.shifu,
- workerList: [],
};
list.push(order);
});
@@ -159,7 +161,7 @@ export default {
return resolve(list);
}
return reject(response.msg);
- }).catch(e => { });
+ }).catch(e => { throw e });
});
},
/**
@@ -169,40 +171,76 @@ export default {
return new Promise((resolve, reject) => {
prototype.$request(options.request).then(response => {
if (response.code == 1) {
- let order = {};
+ let order = {}, data = response.data;
if (options.listType == 't1' || options.listType == 't2') {
+ // 基础信息
order = {
- id: response.data.id,
- address: response.data.address,
- orderId: response.data.order,
+ id: data.id,
+ orderId: data.order,
cate: "待返数据",
- content: response.data.desc,
- createTime: response.data.time,
- serviceTime: response.data.times,
- orderType: response.data.types,
- state: response.data.status,
- images: response.data.img,
+ content: data.desc,
+ createTime: data.time,
+ serviceTime: data.times,
+ orderType: data.types,
+ state: data.status,
+ images: prototype.$utils.isType(data.img, "array") ? data.img : [],
+ worker: {},
workerList: [],
};
+ // 地址
+ order.address = {
+ id: data.address.id,
+ address: data.address.address,
+ detail: data.address.doorplate,
+ name: data.address.name,
+ mobile: data.address.mobil,
+ gender: data.address.sex == "男" ? 1 : 2,
+ }
+ // 师傅
+ if (prototype.$utils.isType(data.shifu, "object")) {
+ order.worker = {
+ id: data.shifu.id,
+ name: data.shifu.name,
+ avatar: data.shifu.avatar,
+ type: data.shifu.status,
+ price: data.money,
+ }
+ }
+ // 师傅列表
+ if (options.listType == 't2' && data.shifus.length > 0) {
+ data.shifus.forEach(worker => {
+ order.workerList.push({
+ id: worker.id,
+ name: worker.name,
+ avatar: worker.avatar,
+ price: worker.money,
+ createTime: worker.date,
+ times: worker.data.count,
+ favorableRate: worker.data.good,
+ grade: worker.data.score,
+ type: worker.data.status,
+ })
+ });
+ }
} else if (options.listType == 't3') {
order = {
- id: response.data.id,
- address: response.data.address,
- orderId: response.data.order,
- cate: "待返数据",
- content: response.data.desc,
- createTime: response.data.time,
- serviceTime: response.data.times,
- orderType: response.data.types,
- state: response.data.status,
- images: response.data.img,
- workerList: [],
+ id: 1,
+ orderId: 2,
+ cate: "货运订单",
+ content: 4,
+ createTime: 5,
+ serviceTime: 6,
+ orderType: 7,
+ state: 8,
+ images: 9,
};
}
return resolve(order);
}
return reject(response.msg);
- }).catch(e => { });
+ }).catch(e => {
+ throw e
+ });
});
},
}
diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue
index cca1131..6a18d00 100644
--- a/src/pages/order/detail.vue
+++ b/src/pages/order/detail.vue
@@ -24,22 +24,27 @@
>
-
-
-
- 2022-10-18 10:56:34
-
- 报价金额
- ¥ 306.00
-
-
-
-
-
- 选择师傅
+
+ 暂无师傅报价
+
+
+
+
+
+ {{ item.createTime }}
+
+ 报价金额
+ ¥ {{ utils.formatNumber(item.price, 2) }}
+
+
+
+
+
+ 选择师傅
+
-
+
@@ -79,12 +84,12 @@
- {{ order.address.name }}({{ order.address.sex == "男" ? "先生" : "女士" }})
+ {{ order.address.name }}({{ order.address.gender == 1 ? "先生" : "女士" }})
- {{ order.address.mobil }}
+ {{ order.address.mobile }}
- {{ order.address.address }}{{ order.address.doorplate }}
+ {{ order.address.address }}{{ order.address.detail }}
@@ -161,15 +166,14 @@ export default {
this.$utils.toPage("", {}, "back");
});
}
+ if (e.list) {
+ this.listType = e.list;
+ }
if (e.tab && e.tab == "detail") {
this.switchTab(1);
} else {
this.switchTab(0);
}
- if (e.list) {
- this.listType = e.list;
- }
-
this.loadDetail();
},
onShow() {},
@@ -253,6 +257,9 @@ export default {
this.stateDesc = stateDesc;
this.stateTextColor = stateTextColor;
this.order = detail;
+ this.$nextTick(() => {
+ this.setTabHeight();
+ });
})
.catch((e) => {
this.$utils.toast(e).then(() => {
@@ -319,6 +326,12 @@ export default {
}
.detail-tab {
width: 100%;
+ .no-worker {
+ color: #999999;
+ font-size: 28rpx;
+ line-height: 200rpx;
+ text-align: center;
+ }
}
.worker-group {
width: 100%;