From 8cd7fa2bce2f07d292975480006c0ad40970c3c8 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 23:24:08 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/order/action.vue | 8 +-
src/components/order/item.vue | 2 +-
src/core/apis.js | 19 ++-
src/core/models/order.js | 80 +++++++++++-
src/pages/get/detail.vue | 4 +-
src/pages/index/index.vue | 7 +-
src/pages/order/detail.vue | 209 +++++++++++++++++++-------------
7 files changed, 232 insertions(+), 97 deletions(-)
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;
});
},
},