diff --git a/src/components/order/change-time.vue b/src/components/order/change-time.vue new file mode 100644 index 0000000..f3a6c87 --- /dev/null +++ b/src/components/order/change-time.vue @@ -0,0 +1,118 @@ + + + + + \ No newline at end of file diff --git a/src/components/order/item.vue b/src/components/order/item.vue index a1c9bea..1130491 100644 --- a/src/components/order/item.vue +++ b/src/components/order/item.vue @@ -32,6 +32,12 @@ 服务时间: {{ order.serviceTime }} + + + + 修改时间 + + @@ -124,6 +130,9 @@ export default { }, }); }, + changeTime() { + this.$emit("changeTime"); + }, }, }; @@ -179,6 +188,22 @@ export default { color: #8194f2; margin-left: 24rpx; } + .btn { + position: absolute; + top: 0; + right: 0; + display: flex; + align-items: center; + line-height: 30rpx; + color: #999999; + } + .btn-desc { + font-size: 24rpx; + } + .iconfont { + font-size: 30rpx; + margin-right: 4rpx; + } } .order-desc-row:last-child { margin-bottom: 0; diff --git a/src/core/apis.js b/src/core/apis.js index 20ffbee..c606827 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -281,6 +281,19 @@ export default { url: "" } }, + changeServiceTime: { + t1: { + url: "", + }, + t2: { + url: "/wxapp/orderb/saveordrbyid", + showLoading: true, + auth: true, + }, + t3: { + url: "" + } + }, chooseWorker: { url: "/wxapp/orderb/chooseshifu", showLoading: true, diff --git a/src/core/models/order.js b/src/core/models/order.js index 71e5fec..6bf3bd9 100644 --- a/src/core/models/order.js +++ b/src/core/models/order.js @@ -345,5 +345,18 @@ export default { return reject(response.msg); }).catch(e => { }); }); - } + }, + /** + * 修改服务时间 + */ + changeServiceTime(options) { + return new Promise((resolve, reject) => { + prototype.$request(options.request).then(response => { + if (response.code == 1) { + return resolve(response); + } + return reject(response.msg); + }).catch(e => { }); + }); + }, } diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue index 809a296..24a4e7b 100644 --- a/src/pages/order/detail.vue +++ b/src/pages/order/detail.vue @@ -79,6 +79,12 @@ 服务时间: {{ order.serviceTime }} + + + + 修改时间 + + @@ -162,6 +168,12 @@ + @@ -171,6 +183,7 @@ import WorkerItem from "@/components/worker/item"; import ServiceInsurance from "@/components/service/insurance"; import OrderAction from "@/components/order/action"; import WidgetService from "@/components/widgets/service"; +import AppOrderChangeTime from "@/components/order/change-time"; export default { name: "order-detail", data() { @@ -191,6 +204,10 @@ export default { }, showDetail: false, showList: false, + changeTimeData: { + changeTimeModal: false, + data: {}, + }, }; }, components: { @@ -199,6 +216,7 @@ export default { ServiceInsurance, OrderAction, WidgetService, + AppOrderChangeTime, }, async onLoad(e) { this.pageConfig = getApp().globalData.pageConfig; @@ -332,6 +350,39 @@ export default { current: index, }); }, + /** + * 修改服务时间 + */ + changeTime(item) { + this.changeTimeData.data = item; + this.changeTimeData.changeTimeModal = true; + }, + /** + * 提交修改 + */ + submit(data) { + if (!data.date || !data.time) { + return this.$utils.toast("请选择日期和时间"); + } + let datetime = data.date + " " + data.time; + this.$models.order + .changeServiceTime({ + request: { + api: "order.changeServiceTime." + this.listType, + data: { + id: this.changeTimeData.data.id, + times: datetime, + }, + }, + }) + .then(() => { + this.changeTimeData.data.serviceTime = datetime; + this.changeTimeData.changeTimeModal = false; + }) + .catch((e) => { + this.$utils.toast(e); + }); + }, }, }; @@ -486,6 +537,22 @@ export default { color: #8194f2; margin-left: 24rpx; } + .btn { + position: absolute; + top: 0; + right: 0; + display: flex; + align-items: center; + line-height: 30rpx; + color: #999999; + } + .btn-desc { + font-size: 24rpx; + } + .iconfont { + font-size: 30rpx; + margin-right: 4rpx; + } } .info-row:last-child { margin-bottom: 0; @@ -528,20 +595,4 @@ export default { } } } -.common-bottom-components { - .service { - display: flex; - align-items: center; - .iconfont { - font-size: 60rpx; - color: #999999; - } - .text { - display: inline-block; - font-size: 28rpx; - color: #999999; - margin-left: 10rpx; - } - } -} \ No newline at end of file diff --git a/src/pages/order/order.vue b/src/pages/order/order.vue index 1d74feb..772a16b 100644 --- a/src/pages/order/order.vue +++ b/src/pages/order/order.vue @@ -29,7 +29,7 @@ :key="index" @click="toDetail(item.id, item.state, item.listType, item.orderType)" > - + @@ -49,6 +49,12 @@ + @@ -57,6 +63,7 @@ import AppLayout from "@/components/layout/layout"; import OrderItem from "@/components/order/item"; import OrderAction from "@/components/order/action"; import WidgetLoadMore from "@/components/widgets/loadmore"; +import AppOrderChangeTime from "@/components/order/change-time"; import { mapState } from "vuex"; export default { name: "order", @@ -64,6 +71,10 @@ export default { return { tabIndex: 0, tabHeight: 0, + changeTimeData: { + changeTimeModal: false, + data: {}, + }, tabList: [ { listType: "t1", @@ -94,6 +105,7 @@ export default { OrderItem, OrderAction, WidgetLoadMore, + AppOrderChangeTime, }, computed: { ...mapState({ @@ -198,6 +210,40 @@ export default { refresh() { this.switchTab(this.tabIndex); }, + /** + * 修改服务时间 + */ + changeTime(item) { + this.changeTimeData.data = item; + this.changeTimeData.changeTimeModal = true; + }, + /** + * 提交修改 + */ + submit(data) { + if (!data.date || !data.time) { + return this.$utils.toast("请选择日期和时间"); + } + let currentTab = this.tabList[this.tabIndex]; + let datetime = data.date + " " + data.time; + this.$models.order + .changeServiceTime({ + request: { + api: "order.changeServiceTime." + currentTab.listType, + data: { + id: this.changeTimeData.data.id, + times: datetime, + }, + }, + }) + .then(() => { + this.changeTimeData.data.serviceTime = datetime; + this.changeTimeData.changeTimeModal = false; + }) + .catch((e) => { + this.$utils.toast(e); + }); + }, }, };