完善用户订单列表
This commit is contained in:
parent
11a402a8f2
commit
9fff9695b3
|
|
@ -91,10 +91,12 @@ export default {
|
||||||
WorkerItem,
|
WorkerItem,
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
for (let index = 0; index < 3; index++) {
|
if (this.$utils.isType(this.order.workerList, "array")) {
|
||||||
if (this.order.workerList[index]) {
|
for (let index = 0; index < 3; index++) {
|
||||||
this.previewWorkerList.push(this.order.workerList[index]);
|
if (this.order.workerList[index]) {
|
||||||
} else break;
|
this.previewWorkerList.push(this.order.workerList[index]);
|
||||||
|
} else break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let [stateText, stateDesc, stateTextColor] = await this.$models.order.stateText(
|
let [stateText, stateDesc, stateTextColor] = await this.$models.order.stateText(
|
||||||
this.order.listType,
|
this.order.listType,
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
export default {
|
||||||
time,
|
time,
|
||||||
datetime,
|
datetime,
|
||||||
|
|
@ -281,4 +308,5 @@ export default {
|
||||||
formatNumber,
|
formatNumber,
|
||||||
serviceActions,
|
serviceActions,
|
||||||
chooseImage,
|
chooseImage,
|
||||||
|
isType,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ export default {
|
||||||
let list = [];
|
let list = [];
|
||||||
if (options.listType == 't1' || options.listType == 't2') {
|
if (options.listType == 't1' || options.listType == 't2') {
|
||||||
response.data.forEach((item) => {
|
response.data.forEach((item) => {
|
||||||
|
// 基础数据
|
||||||
let order = {
|
let order = {
|
||||||
listType: options.listType,
|
listType: options.listType,
|
||||||
id: item.id,
|
id: item.id,
|
||||||
|
|
@ -113,7 +114,8 @@ export default {
|
||||||
state: item.status,
|
state: item.status,
|
||||||
workerList: [],
|
workerList: [],
|
||||||
};
|
};
|
||||||
if (item.shifu) {
|
// 师傅
|
||||||
|
if (prototype.$utils.isType(item.shifu, "object")) {
|
||||||
order.worker = {
|
order.worker = {
|
||||||
id: item.shifu.id,
|
id: item.shifu.id,
|
||||||
name: item.shifu.name,
|
name: item.shifu.name,
|
||||||
|
|
@ -125,6 +127,7 @@ export default {
|
||||||
price: item.money,
|
price: item.money,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 师傅列表
|
||||||
if (options.listType == 't2' && item.shifus.length > 0) {
|
if (options.listType == 't2' && item.shifus.length > 0) {
|
||||||
item.shifus.forEach(worker => {
|
item.shifus.forEach(worker => {
|
||||||
order.workerList.push({
|
order.workerList.push({
|
||||||
|
|
@ -143,15 +146,14 @@ export default {
|
||||||
listType: options.listType,
|
listType: options.listType,
|
||||||
id: item.id,
|
id: item.id,
|
||||||
orderId: item.order,
|
orderId: item.order,
|
||||||
cate: "待返数据",
|
cate: "货运订单",
|
||||||
content: item.desc,
|
content: item.desc,
|
||||||
createTime: item.time,
|
createTime: item.times,
|
||||||
serviceTime: item.times,
|
serviceTime: item.starttime,
|
||||||
orderType: item.types,
|
orderType: item.types,
|
||||||
price: item.money,
|
price: item.money,
|
||||||
state: item.status,
|
state: item.status,
|
||||||
worker: item.shifu,
|
worker: item.shifu,
|
||||||
workerList: [],
|
|
||||||
};
|
};
|
||||||
list.push(order);
|
list.push(order);
|
||||||
});
|
});
|
||||||
|
|
@ -159,7 +161,7 @@ export default {
|
||||||
return resolve(list);
|
return resolve(list);
|
||||||
}
|
}
|
||||||
return reject(response.msg);
|
return reject(response.msg);
|
||||||
}).catch(e => { });
|
}).catch(e => { throw e });
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
@ -169,40 +171,76 @@ export default {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
prototype.$request(options.request).then(response => {
|
prototype.$request(options.request).then(response => {
|
||||||
if (response.code == 1) {
|
if (response.code == 1) {
|
||||||
let order = {};
|
let order = {}, data = response.data;
|
||||||
if (options.listType == 't1' || options.listType == 't2') {
|
if (options.listType == 't1' || options.listType == 't2') {
|
||||||
|
// 基础信息
|
||||||
order = {
|
order = {
|
||||||
id: response.data.id,
|
id: data.id,
|
||||||
address: response.data.address,
|
orderId: data.order,
|
||||||
orderId: response.data.order,
|
|
||||||
cate: "待返数据",
|
cate: "待返数据",
|
||||||
content: response.data.desc,
|
content: data.desc,
|
||||||
createTime: response.data.time,
|
createTime: data.time,
|
||||||
serviceTime: response.data.times,
|
serviceTime: data.times,
|
||||||
orderType: response.data.types,
|
orderType: data.types,
|
||||||
state: response.data.status,
|
state: data.status,
|
||||||
images: response.data.img,
|
images: prototype.$utils.isType(data.img, "array") ? data.img : [],
|
||||||
|
worker: {},
|
||||||
workerList: [],
|
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') {
|
} else if (options.listType == 't3') {
|
||||||
order = {
|
order = {
|
||||||
id: response.data.id,
|
id: 1,
|
||||||
address: response.data.address,
|
orderId: 2,
|
||||||
orderId: response.data.order,
|
cate: "货运订单",
|
||||||
cate: "待返数据",
|
content: 4,
|
||||||
content: response.data.desc,
|
createTime: 5,
|
||||||
createTime: response.data.time,
|
serviceTime: 6,
|
||||||
serviceTime: response.data.times,
|
orderType: 7,
|
||||||
orderType: response.data.types,
|
state: 8,
|
||||||
state: response.data.status,
|
images: 9,
|
||||||
images: response.data.img,
|
|
||||||
workerList: [],
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return resolve(order);
|
return resolve(order);
|
||||||
}
|
}
|
||||||
return reject(response.msg);
|
return reject(response.msg);
|
||||||
}).catch(e => { });
|
}).catch(e => {
|
||||||
|
throw e
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,22 +24,27 @@
|
||||||
>
|
>
|
||||||
<swiper-item>
|
<swiper-item>
|
||||||
<view class="detail-tab tab0">
|
<view class="detail-tab tab0">
|
||||||
<!-- 师傅列表 -->
|
<block v-if="listType == 't2' && order.orderType == 2 && order.workerList.length == 0">
|
||||||
<view class="worker-group">
|
<view class="no-worker"> 暂无师傅报价 </view>
|
||||||
<view class="worker-item" v-for="(item, index) in order.workerList" :key="index">
|
</block>
|
||||||
<view class="datetime"> 2022-10-18 10:56:34</view>
|
<!-- 报价订单未选择师傅,展示师傅列表 -->
|
||||||
<view class="price">
|
<block v-if="utils.isType(order.workerList, 'array') && order.workerList.length > 0">
|
||||||
<text class="title">报价金额</text>
|
<view class="worker-group">
|
||||||
<text class="number">¥ 306.00</text>
|
<view class="worker-item" v-for="(item, index) in order.workerList" :key="index">
|
||||||
</view>
|
<view class="datetime">{{ item.createTime }}</view>
|
||||||
<view class="detail" @click="workerDetail(item.id)">
|
<view class="price">
|
||||||
<worker-item :data="item" />
|
<text class="title">报价金额</text>
|
||||||
</view>
|
<text class="number">¥ {{ utils.formatNumber(item.price, 2) }}</text>
|
||||||
<view class="action">
|
</view>
|
||||||
<view class="btn" @click="chooseWorker(item.id)">选择师傅</view>
|
<view class="detail" @click="workerDetail(item.id)">
|
||||||
|
<worker-item :data="item" :showPrice="false" />
|
||||||
|
</view>
|
||||||
|
<view class="action">
|
||||||
|
<view class="btn" @click="chooseWorker(item.id)">选择师傅</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</block>
|
||||||
</view>
|
</view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
<swiper-item>
|
<swiper-item>
|
||||||
|
|
@ -79,12 +84,12 @@
|
||||||
<view>
|
<view>
|
||||||
<view class="contact limit-line clamp-1">
|
<view class="contact limit-line clamp-1">
|
||||||
<text class="name">
|
<text class="name">
|
||||||
{{ order.address.name }}({{ order.address.sex == "男" ? "先生" : "女士" }})
|
{{ order.address.name }}({{ order.address.gender == 1 ? "先生" : "女士" }})
|
||||||
</text>
|
</text>
|
||||||
<text class="mobile">{{ order.address.mobil }}</text>
|
<text class="mobile">{{ order.address.mobile }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="detail">
|
<view class="detail">
|
||||||
<text>{{ order.address.address }}{{ order.address.doorplate }}</text>
|
<text>{{ order.address.address }}{{ order.address.detail }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -161,15 +166,14 @@ export default {
|
||||||
this.$utils.toPage("", {}, "back");
|
this.$utils.toPage("", {}, "back");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (e.list) {
|
||||||
|
this.listType = e.list;
|
||||||
|
}
|
||||||
if (e.tab && e.tab == "detail") {
|
if (e.tab && e.tab == "detail") {
|
||||||
this.switchTab(1);
|
this.switchTab(1);
|
||||||
} else {
|
} else {
|
||||||
this.switchTab(0);
|
this.switchTab(0);
|
||||||
}
|
}
|
||||||
if (e.list) {
|
|
||||||
this.listType = e.list;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.loadDetail();
|
this.loadDetail();
|
||||||
},
|
},
|
||||||
onShow() {},
|
onShow() {},
|
||||||
|
|
@ -253,6 +257,9 @@ export default {
|
||||||
this.stateDesc = stateDesc;
|
this.stateDesc = stateDesc;
|
||||||
this.stateTextColor = stateTextColor;
|
this.stateTextColor = stateTextColor;
|
||||||
this.order = detail;
|
this.order = detail;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.setTabHeight();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
this.$utils.toast(e).then(() => {
|
this.$utils.toast(e).then(() => {
|
||||||
|
|
@ -319,6 +326,12 @@ export default {
|
||||||
}
|
}
|
||||||
.detail-tab {
|
.detail-tab {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
.no-worker {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 200rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.worker-group {
|
.worker-group {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue