完善用户订单列表
This commit is contained in:
parent
11a402a8f2
commit
9fff9695b3
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -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
|
||||
});
|
||||
});
|
||||
},
|
||||
}
|
||||
|
|
|
@ -24,22 +24,27 @@
|
|||
>
|
||||
<swiper-item>
|
||||
<view class="detail-tab tab0">
|
||||
<!-- 师傅列表 -->
|
||||
<view class="worker-group">
|
||||
<view class="worker-item" v-for="(item, index) in order.workerList" :key="index">
|
||||
<view class="datetime"> 2022-10-18 10:56:34</view>
|
||||
<view class="price">
|
||||
<text class="title">报价金额</text>
|
||||
<text class="number">¥ 306.00</text>
|
||||
</view>
|
||||
<view class="detail" @click="workerDetail(item.id)">
|
||||
<worker-item :data="item" />
|
||||
</view>
|
||||
<view class="action">
|
||||
<view class="btn" @click="chooseWorker(item.id)">选择师傅</view>
|
||||
<block v-if="listType == 't2' && order.orderType == 2 && order.workerList.length == 0">
|
||||
<view class="no-worker"> 暂无师傅报价 </view>
|
||||
</block>
|
||||
<!-- 报价订单未选择师傅,展示师傅列表 -->
|
||||
<block v-if="utils.isType(order.workerList, 'array') && order.workerList.length > 0">
|
||||
<view class="worker-group">
|
||||
<view class="worker-item" v-for="(item, index) in order.workerList" :key="index">
|
||||
<view class="datetime">{{ item.createTime }}</view>
|
||||
<view class="price">
|
||||
<text class="title">报价金额</text>
|
||||
<text class="number">¥ {{ utils.formatNumber(item.price, 2) }}</text>
|
||||
</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>
|
||||
</block>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
|
@ -79,12 +84,12 @@
|
|||
<view>
|
||||
<view class="contact limit-line clamp-1">
|
||||
<text class="name">
|
||||
{{ order.address.name }}({{ order.address.sex == "男" ? "先生" : "女士" }})
|
||||
{{ order.address.name }}({{ order.address.gender == 1 ? "先生" : "女士" }})
|
||||
</text>
|
||||
<text class="mobile">{{ order.address.mobil }}</text>
|
||||
<text class="mobile">{{ order.address.mobile }}</text>
|
||||
</view>
|
||||
<view class="detail">
|
||||
<text>{{ order.address.address }}{{ order.address.doorplate }}</text>
|
||||
<text>{{ order.address.address }}{{ order.address.detail }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -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%;
|
||||
|
|
Loading…
Reference in New Issue