完善页面
This commit is contained in:
parent
f5f454a838
commit
8cd7fa2bce
|
@ -2,7 +2,7 @@
|
|||
<view class="component-order-action">
|
||||
<block v-if="order.listType == 't1' || order.listType == 't2'">
|
||||
<block v-if="order.state == 1">
|
||||
<view class="btn normal">待用户支付</view>
|
||||
<view class="btn normal">待客户支付</view>
|
||||
</block>
|
||||
<block v-if="order.state == 2">
|
||||
<view class="btn active" @click.stop="confirmPrice">
|
||||
|
@ -10,10 +10,10 @@
|
|||
</view>
|
||||
</block>
|
||||
<block v-if="order.state == 4">
|
||||
<view class="btn normal">待用户支付尾款</view>
|
||||
<view class="btn normal">待客户支付尾款</view>
|
||||
</block>
|
||||
<block v-if="order.state == 5">
|
||||
<view class="btn normal">待用户确认</view>
|
||||
<view class="btn normal">待客户确认</view>
|
||||
</block>
|
||||
<block v-if="order.state == 6">
|
||||
<view class="btn normal">已完成</view>
|
||||
|
@ -21,7 +21,7 @@
|
|||
</block>
|
||||
<block v-if="order.listType == 't3'">
|
||||
<block v-if="order.state == 2">
|
||||
<view class="btn normal">待用户确认</view>
|
||||
<view class="btn normal">待客户确认</view>
|
||||
</block>
|
||||
<block v-if="order.state == 3">
|
||||
<view class="btn normal">已完成</view>
|
||||
|
|
|
@ -63,7 +63,7 @@ export default {
|
|||
components: {},
|
||||
created() {},
|
||||
mounted() {
|
||||
let [typeText, typeTextBg] = this.$models.order.orderTypeText(this.order.listType, this.order.orderType);
|
||||
let [typeText, typeTextBg] = this.$models.order.typeText(this.order.listType, this.order.orderType);
|
||||
this.typeText = typeText;
|
||||
this.typeTextBg = typeTextBg ? typeTextBg : "#8b9beb";
|
||||
},
|
||||
|
|
|
@ -5,7 +5,7 @@ const apis = {
|
|||
showLoading: true,
|
||||
},
|
||||
serviceData: {
|
||||
url: "/user/workerinfo/datainfo",
|
||||
url: "/user/workerorder/datainfo",
|
||||
showLoading: true,
|
||||
auth: true,
|
||||
},
|
||||
|
@ -114,6 +114,23 @@ const apis = {
|
|||
auth: true,
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
t1: {
|
||||
url: "/user/workerorderb/orderinfo",
|
||||
showLoading: true,
|
||||
auth: true,
|
||||
},
|
||||
t2: {
|
||||
url: "/user/workerorderc/orderinfobyid",
|
||||
showLoading: true,
|
||||
auth: true,
|
||||
},
|
||||
t3: {
|
||||
url: "/user/workerorder/getcarorderinfobyid",
|
||||
showLoading: true,
|
||||
auth: true,
|
||||
},
|
||||
},
|
||||
finish: {
|
||||
t1: {
|
||||
url: "/user/workerorderb/orderok",
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from "vue"
|
|||
let prototype = Vue.prototype;
|
||||
|
||||
export default {
|
||||
orderTypeText(listType, orderType) {
|
||||
typeText(listType, orderType) {
|
||||
switch (listType) {
|
||||
case "t1": return ["购买服务", "#3ABCF6"];
|
||||
case "t2":
|
||||
|
@ -13,6 +13,37 @@ export default {
|
|||
case "t3": return ["货运", "#628BE7"];
|
||||
}
|
||||
},
|
||||
stateText(listType, orderType, state) {
|
||||
if (listType == 't1') {
|
||||
switch (state) {
|
||||
case 2: return ['服务中'];
|
||||
case 4: return ['待支付尾款'];
|
||||
case 5: return ['待客户确认'];
|
||||
case 6: return ['订单已完成'];
|
||||
case 7: return ['退款申请审核中'];
|
||||
case 8: return ['已退款'];
|
||||
case 9: return ['退款未通过'];
|
||||
}
|
||||
} else if (listType == 't2') {
|
||||
switch (state) {
|
||||
case 1: return ['待客户支付'];
|
||||
case 2: return ['服务中'];
|
||||
case 4: return ['待支付尾款'];
|
||||
case 5: return ['服务已完成,待确认'];
|
||||
case 6: return ['订单已完成'];
|
||||
case 7: return ['退款申请审核中'];
|
||||
case 8: return ['已退款'];
|
||||
case 9: return ['退款未通过'];
|
||||
}
|
||||
} else if (listType == 't3') {
|
||||
switch (state) {
|
||||
case 2: return ['待客户确认'];
|
||||
case 3: return ['已完成'];
|
||||
}
|
||||
}
|
||||
|
||||
return ['未知'];
|
||||
},
|
||||
/**
|
||||
* 获取列表
|
||||
*/
|
||||
|
@ -21,7 +52,6 @@ export default {
|
|||
prototype.$request(options.request).then(response => {
|
||||
if (response.code == 1) {
|
||||
let list = [];
|
||||
|
||||
if (options.listType == "t1" || options.listType == "t2") {
|
||||
response.data.forEach(item => {
|
||||
list.push({
|
||||
|
@ -68,10 +98,52 @@ export default {
|
|||
return new Promise((resolve, reject) => {
|
||||
prototype.$request(options.request).then(response => {
|
||||
if (response.code == 1) {
|
||||
return resolve(response.data);
|
||||
let order = {};
|
||||
if (options.listType == "t1" || options.listType == "t2") {
|
||||
order = {
|
||||
listType: options.listType,
|
||||
id: response.data.id,
|
||||
orderId: response.data.order,
|
||||
username: "用户名称",
|
||||
cate: "待返数据",
|
||||
content: response.data.desc,
|
||||
createTime: response.data.time,
|
||||
serviceTime: response.data.times,
|
||||
orderType: response.data.types,
|
||||
state: response.data.status,
|
||||
price: response.data.money,
|
||||
orderId: response.data.order,
|
||||
address: {
|
||||
address: response.data.address.address,
|
||||
detail: response.data.address.doorplate,
|
||||
name: response.data.address.name,
|
||||
mobile: response.data.address.mobil,
|
||||
},
|
||||
};
|
||||
if (options.listType == "t1") {
|
||||
order.images = response.data.goods.map((item) => item.thumbnail);
|
||||
} else {
|
||||
order.images = response.data.img;
|
||||
}
|
||||
} else if (options.listType == "t3") {
|
||||
order = {
|
||||
listType: options.listType,
|
||||
id: response.data.id,
|
||||
orderId: response.data.order,
|
||||
username: "用户名称",
|
||||
cate: "待返数据",
|
||||
createTime: response.data.times,
|
||||
serviceTime: response.data.starttime,
|
||||
pickupAddress: response.data.address,
|
||||
unloadAddress: response.data.addressb,
|
||||
state: response.data.status,
|
||||
price: response.data.money,
|
||||
};
|
||||
}
|
||||
return resolve(order);
|
||||
}
|
||||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
}).catch(e => { throw e });
|
||||
});
|
||||
},
|
||||
/**
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<block v-if="listType == 't1' || (listType == 't2' && order.orderType == 1)">
|
||||
<block v-if="listType == 't1' || listType == 't3' || (listType == 't2' && order.orderType == 1)">
|
||||
<view class="detail-section">
|
||||
<text class="price-box">¥ {{ utils.formatNumber(order.price, 2) }}</text>
|
||||
</view>
|
||||
|
@ -239,7 +239,7 @@ export default {
|
|||
listType: this.listType,
|
||||
})
|
||||
.then((order) => {
|
||||
let [typeText, typeTextBg] = this.$models.order.orderTypeText(this.listType, order.orderType);
|
||||
let [typeText, typeTextBg] = this.$models.order.typeText(this.listType, order.orderType);
|
||||
this.typeText = typeText;
|
||||
this.typeTextBg = typeTextBg ? typeTextBg : "#8b9beb";
|
||||
this.order = order;
|
||||
|
|
|
@ -138,7 +138,12 @@ export default {
|
|||
this.$request({
|
||||
api: "system.serviceData",
|
||||
}).then((response) => {
|
||||
console.log(response);
|
||||
if (response.code == 1) {
|
||||
this.action.item1 = response.data.order1;
|
||||
this.action.item2 = response.data.order2;
|
||||
this.action.item3 = response.data.order3;
|
||||
this.action.item4 = response.data.order4;
|
||||
}
|
||||
});
|
||||
},
|
||||
onReady() {},
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
<view class="detail-section">
|
||||
<view class="order-head">
|
||||
<view class="order-title">
|
||||
<text class="type" :style="{ backgroundColor: models.order.getOrderTypeColor(order.orderType) }">
|
||||
{{ models.order.getOrderTypeText(order.orderType) }}
|
||||
<text class="type" :style="{ backgroundColor: typeTextBg }">
|
||||
{{ typeText }}
|
||||
</text>
|
||||
<text class="text">{{ order.username }}-{{ order.cate }}</text>
|
||||
</view>
|
||||
<view class="state" :style="{ color: models.order.getOrderStateTextColor(order.state) }">
|
||||
{{ models.order.getOrderStateText(order.state) }}
|
||||
<view class="state" :style="{ color: stateTextColor }">
|
||||
{{ stateText }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-body">
|
||||
|
@ -23,53 +23,95 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detail-section">
|
||||
<view class="section-title">需求信息</view>
|
||||
<view class="section-content">
|
||||
<view class="demand-item">
|
||||
<view class="title">需求内容:</view>
|
||||
<view class="content">
|
||||
我想要安装一个书柜,需要上墙,我想要 安装一个书柜,需要上墙,我想要安装一
|
||||
个书柜,需要上墙个书柜,需要上墙个书柜,需要上墙
|
||||
<block v-if="listType == 't1' || listType == 't2'">
|
||||
<view class="detail-section">
|
||||
<view class="section-title">需求信息</view>
|
||||
<view class="section-content">
|
||||
<view class="demand-item">
|
||||
<view class="title">需求内容:</view>
|
||||
<view class="content">
|
||||
{{ order.content }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="demand-item">
|
||||
<view class="title">上门时间:</view>
|
||||
<view class="content service-time">
|
||||
<text class="datetime">
|
||||
{{ order.serviceDateTime.date }}
|
||||
{{ order.serviceDateTime.time[0] }}-{{ order.serviceDateTime.time[1] }}
|
||||
</text>
|
||||
<text class="iconfont icon-bianji"></text>
|
||||
<view class="demand-item">
|
||||
<view class="title">上门时间:</view>
|
||||
<view class="content service-time">
|
||||
<text class="datetime">
|
||||
{{ order.serviceTime }}
|
||||
</text>
|
||||
<text class="iconfont icon-bianji"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="demand-item">
|
||||
<view class="demand-images">
|
||||
<view class="image-box" v-for="(item, index) in order.images" :key="index">
|
||||
<image class="image" :src="item.src" mode="aspectFill" />
|
||||
<view class="demand-item">
|
||||
<view class="demand-images">
|
||||
<view class="image-box" v-for="(item, index) in order.images" :key="index">
|
||||
<image class="image" :src="item" mode="aspectFill" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detail-section">
|
||||
<view class="section-title">上门地址</view>
|
||||
<view class="address-box">
|
||||
<text class="iconfont icon-dingwei"></text>
|
||||
<view>
|
||||
<view class="contact limit-line clamp-1">
|
||||
<text class="name">测试(先生)</text>
|
||||
<text class="mobile">13108196080</text>
|
||||
</view>
|
||||
<view class="detail">
|
||||
<text>四川省成都市涪城区剑门门路西段书亦烧 仙草(成都七中店) 测试</text>
|
||||
<view class="detail-section">
|
||||
<view class="section-title">上门地址</view>
|
||||
<view class="address-box">
|
||||
<text class="iconfont icon-dingwei"></text>
|
||||
<view>
|
||||
<view class="contact limit-line clamp-1">
|
||||
<text class="name">
|
||||
{{ order.address.name }}({{ order.address.sex == "男" ? "先生" : "女士" }})
|
||||
</text>
|
||||
<text class="mobile">{{ order.address.mobile }}</text>
|
||||
</view>
|
||||
<view class="detail">
|
||||
<text>{{ order.address.address }}{{ order.address.detail }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detail-section">
|
||||
<text class="price-box">¥ {{ utils.formatNumber(order.price, 2) }}</text>
|
||||
</view>
|
||||
</block>
|
||||
<block v-if="listType == 't3'">
|
||||
<view class="detail-section">
|
||||
<view class="section-title">取货时间</view>
|
||||
<view class="section-content">
|
||||
<view class="demand-item">
|
||||
<view class="title">上门时间:</view>
|
||||
<view class="content service-time">
|
||||
<text class="datetime">
|
||||
{{ order.serviceTime }}
|
||||
</text>
|
||||
<text class="iconfont icon-bianji"></text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detail-section">
|
||||
<view class="section-title">取货地址</view>
|
||||
<view class="address-box">
|
||||
<text class="iconfont icon-dingwei"></text>
|
||||
<view>
|
||||
<view class="detail">
|
||||
<text>{{ order.pickupAddress }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detail-section">
|
||||
<view class="section-title">卸货地址</view>
|
||||
<view class="address-box">
|
||||
<text class="iconfont icon-dingwei"></text>
|
||||
<view>
|
||||
<view class="detail">
|
||||
<text>{{ order.unloadAddress }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<block v-if="listType == 't1' || listType == 't3' || (listType == 't2' && order.orderType == 1)">
|
||||
<view class="detail-section">
|
||||
<text class="price-box">¥ {{ utils.formatNumber(order.price, 2) }}</text>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="common-bottom-components" :style="{ bottom: pageConfig.safeAreaInsets.bottom + 'px' }">
|
||||
<view class="service" @click="utils.serviceActions()">
|
||||
|
@ -77,11 +119,10 @@
|
|||
<text class="text">客服</text>
|
||||
</view>
|
||||
<view class="action">
|
||||
<order-action :order="order" @confirmPrice="confirmPrice(order.id)" />
|
||||
<order-action :order="order" @confirmPrice="showPriceModal(order.id)" />
|
||||
</view>
|
||||
</view>
|
||||
<order-confirm-price v-show="showConfirmModal" @close="showConfirmModal = false" @confirm="showConfirmModal = false" />
|
||||
<get-post-price v-show="showPriceModal" @close="showPriceModal = false" @confirm="showPriceModal = false" />
|
||||
<order-confirm-price v-show="showConfirmModal" @close="showConfirmModal = false" @confirm="finishOrder" />
|
||||
</app-layout>
|
||||
</template>
|
||||
|
||||
|
@ -90,7 +131,6 @@ import AppLayout from "@/components/layout/layout";
|
|||
import OrderAction from "@/components/order/action";
|
||||
import GetAction from "@/components/get/action";
|
||||
import OrderConfirmPrice from "@/components/order/confirm-price";
|
||||
import GetPostPrice from "@/components/get/post-price";
|
||||
export default {
|
||||
name: "order-detail",
|
||||
data() {
|
||||
|
@ -98,39 +138,14 @@ export default {
|
|||
utils: this.$utils,
|
||||
models: this.$models,
|
||||
pageConfig: {},
|
||||
showPriceModal: false,
|
||||
showConfirmModal: false,
|
||||
listType: "",
|
||||
typeText: "",
|
||||
typeTextBg: "",
|
||||
stateText: "",
|
||||
stateTextColor: "",
|
||||
order: {
|
||||
id: 1,
|
||||
orderId: "xxgfdkgn1223",
|
||||
cate: "家具安装",
|
||||
content: "我想要安装一个书柜,需要上墙啊啊啊啊",
|
||||
createTime: "2022-10-18 10:56:34",
|
||||
serviceDateTime: {
|
||||
date: "2022-10-18",
|
||||
time: ["14:00", "18:00"],
|
||||
},
|
||||
orderType: 2,
|
||||
state: 1,
|
||||
price: 306,
|
||||
username: "李先生",
|
||||
images: [
|
||||
{
|
||||
src: require("@/static/temp/cate/1.png"),
|
||||
},
|
||||
{
|
||||
src: require("@/static/temp/cate/1.png"),
|
||||
},
|
||||
{
|
||||
src: require("@/static/temp/cate/1.png"),
|
||||
},
|
||||
{
|
||||
src: require("@/static/temp/cate/1.png"),
|
||||
},
|
||||
],
|
||||
address: {},
|
||||
},
|
||||
};
|
||||
},
|
||||
|
@ -139,9 +154,8 @@ export default {
|
|||
OrderAction,
|
||||
GetAction,
|
||||
OrderConfirmPrice,
|
||||
GetPostPrice,
|
||||
},
|
||||
async onLoad(e) {
|
||||
onLoad(e) {
|
||||
this.pageConfig = getApp().globalData.pageConfig;
|
||||
if (e.id && e.id > 0) {
|
||||
this.id = e.id;
|
||||
|
@ -149,11 +163,8 @@ export default {
|
|||
this.$utils.toast("参数错误");
|
||||
return;
|
||||
}
|
||||
this.listType = e.type;
|
||||
await this.loadDetail();
|
||||
let [typeText, typeTextBg] = this.$models.order.orderTypeText(this.listType, this.order.orderType);
|
||||
this.typeText = typeText;
|
||||
this.typeTextBg = typeTextBg ? typeTextBg : "#8b9beb";
|
||||
this.listType = e.list;
|
||||
this.loadDetail();
|
||||
},
|
||||
onShow() {},
|
||||
onReady() {},
|
||||
|
@ -172,10 +183,34 @@ export default {
|
|||
},
|
||||
});
|
||||
},
|
||||
confirmPrice(id) {
|
||||
showPriceModal(id) {
|
||||
this.$store.commit("order/setConfirmId", id);
|
||||
this.showConfirmModal = true;
|
||||
},
|
||||
/**
|
||||
* 确认订单
|
||||
*/
|
||||
finishOrder(e) {
|
||||
this.showConfirmModal = false;
|
||||
this.$models.order
|
||||
.finishOrder({
|
||||
request: {
|
||||
api: "order.finish." + this.listType,
|
||||
data: {
|
||||
id: e.id,
|
||||
money: e.price,
|
||||
},
|
||||
},
|
||||
})
|
||||
.then((response) => {
|
||||
this.$utils.toast(response.msg).then(() => {
|
||||
this.loadDetail();
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
this.$utils.toast(e);
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 订单详情
|
||||
*/
|
||||
|
@ -190,8 +225,14 @@ export default {
|
|||
},
|
||||
listType: this.listType,
|
||||
})
|
||||
.then((response) => {
|
||||
console.log(response);
|
||||
.then((order) => {
|
||||
let [typeText, typeTextBg] = this.$models.order.typeText(this.listType, order.orderType);
|
||||
this.typeText = typeText;
|
||||
this.typeTextBg = typeTextBg ? typeTextBg : "#8b9beb";
|
||||
let [stateText, stateTextColor] = this.$models.order.stateText(this.listType, order.orderType, order.state);
|
||||
this.stateText = stateText;
|
||||
this.stateTextColor = stateTextColor ? stateTextColor : "#999999";
|
||||
this.order = order;
|
||||
});
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue