diff --git a/src/components/order/action.vue b/src/components/order/action.vue index c57a306..73b6a10 100644 --- a/src/components/order/action.vue +++ b/src/components/order/action.vue @@ -2,7 +2,7 @@ - 待用户支付 + 待客户支付 @@ -10,10 +10,10 @@ - 待用户支付尾款 + 待客户支付尾款 - 待用户确认 + 待客户确认 已完成 @@ -21,7 +21,7 @@ - 待用户确认 + 待客户确认 已完成 diff --git a/src/components/order/item.vue b/src/components/order/item.vue index 8e17442..5065d62 100644 --- a/src/components/order/item.vue +++ b/src/components/order/item.vue @@ -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"; }, diff --git a/src/core/apis.js b/src/core/apis.js index 1956a12..6d3f37f 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -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", diff --git a/src/core/models/order.js b/src/core/models/order.js index 1323cc6..5b02ecb 100644 --- a/src/core/models/order.js +++ b/src/core/models/order.js @@ -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 }); }); }, /** diff --git a/src/pages/get/detail.vue b/src/pages/get/detail.vue index 0cfc89b..789197d 100644 --- a/src/pages/get/detail.vue +++ b/src/pages/get/detail.vue @@ -104,7 +104,7 @@ - + ¥ {{ utils.formatNumber(order.price, 2) }} @@ -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; diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 4ceb047..4b961c6 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -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() {}, diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue index aea32eb..90ec60c 100644 --- a/src/pages/order/detail.vue +++ b/src/pages/order/detail.vue @@ -4,13 +4,13 @@ - - {{ models.order.getOrderTypeText(order.orderType) }} + + {{ typeText }} {{ order.username }}-{{ order.cate }} - - {{ models.order.getOrderStateText(order.state) }} + + {{ stateText }} @@ -23,53 +23,95 @@ - - 需求信息 - - - 需求内容: - - 我想要安装一个书柜,需要上墙,我想要 安装一个书柜,需要上墙,我想要安装一 - 个书柜,需要上墙个书柜,需要上墙个书柜,需要上墙 + + + 需求信息 + + + 需求内容: + + {{ order.content }} + - - - 上门时间: - - - {{ order.serviceDateTime.date }} - {{ order.serviceDateTime.time[0] }}-{{ order.serviceDateTime.time[1] }} - - + + 上门时间: + + + {{ order.serviceTime }} + + + - - - - - + + + + + - - - 上门地址 - - - - - 测试(先生) - 13108196080 - - - 四川省成都市涪城区剑门门路西段书亦烧 仙草(成都七中店) 测试 + + 上门地址 + + + + + + {{ order.address.name }}({{ order.address.sex == "男" ? "先生" : "女士" }}) + + {{ order.address.mobile }} + + + {{ order.address.address }}{{ order.address.detail }} + - - - ¥ {{ utils.formatNumber(order.price, 2) }} - + + + + 取货时间 + + + 上门时间: + + + {{ order.serviceTime }} + + + + + + + + 取货地址 + + + + + {{ order.pickupAddress }} + + + + + + 卸货地址 + + + + + {{ order.unloadAddress }} + + + + + + + + ¥ {{ utils.formatNumber(order.price, 2) }} + + @@ -77,11 +119,10 @@ 客服 - + - - + @@ -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; }); }, },