后台接口对接

This commit is contained in:
donqi 2022-06-18 02:03:35 +08:00
parent 235c38dc47
commit 62ed2aa6b9
6 changed files with 151 additions and 59 deletions

View File

@ -11,7 +11,7 @@ export default {
}) })
// request 触发前拼接 url // request 触发前拼接 url
args.url = 'https://www.opsoul.com' + args.url; args.url = 'https://www.opsoul.com' + args.url;
// args.url = 'http://10.45.137.214:80' + args.url; // args.url = 'http://192.168.2.42:80' + args.url;
// args.url = 'http://127.0.0.1:80' + args.url; // args.url = 'http://127.0.0.1:80' + args.url;
if (args.data) { if (args.data) {
args.data.deptId = globalData.deptId; args.data.deptId = globalData.deptId;
@ -396,5 +396,13 @@ export default {
} }
}) })
return res[1].data; return res[1].data;
} },
async getOrderMasterDetail(params = {}) {
let res = await uni.request({
url: '/order/master/app/detail',
method: 'POST',
data: params
})
return res[1].data;
},
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<view class="flex justify-start"> <view class="flex justify-start">
<view class="cu-avatar xxl-view" :style="'background-image:url(' + product.goodsImgUrl + ');'"> <view v-if="product.goodsImgUrl" class="cu-avatar xxl-view" :style="'background-image:url(' + product.goodsImgUrl + ');'"></view>
</view> <view v-else-if="product.goodsLogoUrl" class="cu-avatar xxl-view" :style="'background-image:url(' + product.goodsLogoUrl + ');'"></view>
<view class="margin-left-sm product-content"> <view class="margin-left-sm product-content">
<view> <view>
<view class="text-black">{{product.goodsName}}</view> <view class="text-black">{{product.goodsName}}</view>
@ -24,6 +24,9 @@
<text class="text-price text-red text-bold text-xl">{{product.goodsStandardList[0].goodsPrice}}</text> <text class="text-price text-red text-bold text-xl">{{product.goodsStandardList[0].goodsPrice}}</text>
</view> </view>
</view> </view>
<view v-else-if="product.payMoney" class="flex justify-start align-center">
<text class="text-price text-red text-bold text-xl">{{product.payMoney}}</text>
</view>
<view class="padding-xs" v-if="product.type"> <view class="padding-xs" v-if="product.type">
<view class='cu-tag light bg-blue'>{{product.type}}</view> <view class='cu-tag light bg-blue'>{{product.type}}</view>
</view> </view>

View File

@ -0,0 +1,63 @@
<template>
<view>
<view class="bg-white padding-bottom">
<horizontal-goods-card v-if="product" :ifShowServArea="true" :product="product"></horizontal-goods-card>
<view v-if="columnTitleArr.length" class="flex justify-between margin-tb-sm">
<view class="basis-df">{{columnTitleArr[0]}}</view>
<view class="flex justify-end text-center basis-sm">
<view v-for="(title, index) in columnTitleArr" v-if="index >= 1" class="basis-df">{{title}}</view>
</view>
</view>
<view>
<view class="flex justify-between margin-tb-xs align-center" v-for="(item,index) in pickedList" :key="index">
<view class='cu-tag padding line-main-color basis-df'>{{item[valFieldArr[0]]}}</view>
<view class="flex justify-end basis-sm text-center">
<view class="basis-df">{{item[valFieldArr[1]]}}</view>
<view class="basis-df">{{item[valFieldArr[2]]}}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import horizontalGoodsCard from '@/components/goods-card/horizontal-goods-card.vue';
export default {
name: "simple-product-picked",
props: {
product: {
type: Object,
default: null
},
pickedList: {
type: Array,
default: []
},
columnTitleArr: {
type: Array,
default: []
},
valFieldArr: {
type: Array,
default: []
}
},
components: {
horizontalGoodsCard
},
methods: {
changePiecesNum(curNum, curItem) {
uni.$emit('changePickedNum', curNum, curItem)
}
},
}
</script>
<style scoped>
.certern-height-with-scroll {
max-height: 300rpx;
overflow: scroll;
}
</style>

View File

@ -248,6 +248,7 @@
curUserInfo: {}, curUserInfo: {},
myInfo: {}, myInfo: {},
servOrderTabList: [{ servOrderTabList: [{
type: 1,
name: '待付款' name: '待付款'
}, { }, {
type: 1, type: 1,

View File

@ -54,6 +54,7 @@
<view class="flex justify-end" v-if="tabCur === 2"> <view class="flex justify-end" v-if="tabCur === 2">
<button class="cu-btn bg-gray margin-right-sm shadow-blur">取消订单</button> <button class="cu-btn bg-gray margin-right-sm shadow-blur">取消订单</button>
<button class="cu-btn bg-gray margin-right-sm shadow-blur">撤换师傅</button> <button class="cu-btn bg-gray margin-right-sm shadow-blur">撤换师傅</button>
<button class="cu-btn bg-main-color margin-right-sm shadow-blur" @click="showServDetail(shopOrder)">查看</button>
</view> </view>
<view class="flex justify-end" v-if="tabCur === 3"> <view class="flex justify-end" v-if="tabCur === 3">
<!-- <button class="cu-btn bg-gray margin-right-sm shadow-blur">申请售后</button> --> <!-- <button class="cu-btn bg-gray margin-right-sm shadow-blur">申请售后</button> -->
@ -88,7 +89,7 @@
class="padding-tb-sm solid-top"> class="padding-tb-sm solid-top">
<view>约定服务时间</view> <view>约定服务时间</view>
<view class="flex justify-between align-end"> <view class="flex justify-between align-end">
<view>{{shopOrder.agreedServTime.time}}</view> <view>{{shopOrder.serverTime}}</view>
<view> <view>
<button v-if="shopOrder.agreedServTime.customerAgreeStatus === 1" <button v-if="shopOrder.agreedServTime.customerAgreeStatus === 1"
class="cu-btn sm bg-yellow margin-right-sm" class="cu-btn sm bg-yellow margin-right-sm"
@ -211,9 +212,9 @@
updateFinisheStatus(status, index) { updateFinisheStatus(status, index) {
this.myOrders[index].finishOrder.finishStatus = status; this.myOrders[index].finishOrder.finishStatus = status;
}, },
showServDetail(shopOrder) { showServDetail(order) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/my/serv-detail' url: '/pages/my/serv-detail?order=' + encodeURIComponent(JSON.stringify(order))
}) })
}, },
showModalByRef(refName, curOrder) { showModalByRef(refName, curOrder) {

View File

@ -7,7 +7,7 @@
<block slot="content">服务订单详情</block> <block slot="content">服务订单详情</block>
</cu-custom> </cu-custom>
<!-- 任务进度跟踪 --> <!-- 任务进度跟踪 -->
<view class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm"> <view v-if="servDetail.orderStatus === 3" class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm">
<uni-collapse v-model="value"> <uni-collapse v-model="value">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
@ -31,43 +31,44 @@
<!-- 服务单概况 --> <!-- 服务单概况 -->
<view class="bg-white margin-lr-sm margin-top-sm padding"> <view class="bg-white margin-lr-sm margin-top-sm padding">
<view class="flex align-center"> <view class="flex align-center">
<text class="text-xl margin-right">{{servDetail.mainServOrder.servTitle}}</text> <text class="text-xl margin-right">{{servDetail.goodsName}}</text>
<view class='cu-tag bg-purple radius light margin-right-sm'>服务中</view> <view class='cu-tag bg-purple radius light margin-right-sm' v-if="servDetail.orderStatus === 3">服务中</view>
<view class='cu-tag bg-purple radius light margin-right-sm' v-if="servDetail.orderStatus === 2">待上门</view>
</view> </view>
<view class="margin-top-sm"> <!-- <view class="margin-top-sm">
<view v-for="(item, index) in servDetail.mainServOrder.orderTag" class='cu-tag radius margin-right-sm'> <view v-for="(item, index) in servDetail.mainServOrder.orderTag" class='cu-tag radius margin-right-sm'>
{{item}}</view> {{item}}</view>
</view> </view> -->
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="cuIcon-location text-main-color margin-right-xs"></text> <text class="cuIcon-location text-main-color margin-right-xs"></text>
<text>{{servDetail.mainServOrder.address}}</text> <text>{{servDetail.address}}</text>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="cuIcon-people text-main-color margin-right-xs"></text> <text class="cuIcon-people text-main-color margin-right-xs"></text>
<text>{{servDetail.mainServOrder.person2Contact.name}}</text> <text class="margin-right-sm">{{servDetail.workerName}}</text>
<text>{{servDetail.mainServOrder.person2Contact.phone}}</text> <text>{{servDetail.workerPhone}}</text>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="cuIcon-time text-main-color margin-right-xs"></text> <text class="cuIcon-time text-main-color margin-right-xs"></text>
<text>预约时间{{servDetail.mainServOrder.bookTime}}</text> <text>预约时间{{servDetail.serverTime}}</text>
</view> </view>
<view class="margin-top-sm"> <!-- <view class="margin-top-sm">
<text class="cuIcon-time text-main-color margin-right-xs"></text> <text class="cuIcon-time text-main-color margin-right-xs"></text>
<text>排单时间{{servDetail.mainServOrder.boodTime}}</text> <text>排单时间{{servDetail.mainServOrder.boodTime}}</text>
</view> </view> -->
<view class="margin-top-sm"> <view class="margin-top-sm" v-if="servDetail.orderStatus === 3">
<text class="cuIcon-time text-main-color margin-right-xs"></text> <text class="cuIcon-time text-main-color margin-right-xs"></text>
<text>上门时间{{servDetail.mainServOrder.doorTime}}</text> <text>上门时间{{servDetail.workBeginTime}}</text>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="cuIcon-moneybag text-main-color margin-right-xs"></text> <text class="cuIcon-moneybag text-main-color margin-right-xs"></text>
<text>任务金额</text> <text>任务金额</text>
<text class="text-price">{{servDetail.mainServOrder.taskPrice}}</text> <text class="text-price">{{servDetail.payMoney}}</text>
</view> </view>
<view class="margin-top-xs text-sm text-gray" <!-- <view class="margin-top-xs text-sm text-gray"
v-for="(item, index) in servDetail.mainServOrder.gratuityRecord"> v-for="(item, index) in servDetail.mainServOrder.gratuityRecord">
追加费用<text class="text-price">{{item.price}}</text>[{{item.type}}] 追加费用<text class="text-price">{{item.price}}</text>[{{item.type}}]
</view> </view> -->
</view> </view>
<!-- 待服务列 --> <!-- 待服务列 -->
<view class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm"> <view class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm">
@ -77,24 +78,29 @@
</view> </view>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<product-picked :product="servDetail.product" :pickedList="servDetail.product.pickedList" :columnTitleArr="servingColumnHeaders" :showToServNum="true"></product-picked> <simple-product-picked :product="servDetail" :pickedList="servDetail.standardList" :columnTitleArr="servingColumnHeaders" :valFieldArr="servingValFields"></simple-product-picked>
</view> </view>
</view> </view>
<!-- 完成记录 --> <!-- 子单完成记录 -->
<view class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm" v-for="(item, index) in servDetail.finishRecord"> <view class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm" v-for="(item, index) in servDetail.orderStandardDetailList">
<view class="cu-bar solid-bottom"> <view class="cu-bar solid-bottom">
<view class="action bar-first-action"> <view class="action bar-first-action">
<text class="cuIcon-titles text-main-color"></text> 完成记录{{item.finishList.length}} <text class="cuIcon-titles text-main-color"></text> 实施单完成记录
</view> </view>
<view class='cu-tag bg-purple radius light margin-right-sm'>{{item.finishTime}}</view> <view class='cu-tag bg-purple radius light margin-right-sm'>编码:{{item.orderDetailCode}}</view>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<product-picked :pickedList="item.finishList" :columnTitleArr="servedColumnHeaders" :showToServNum="true"></product-picked> <view>师傅{{item.workerName}}</view>
<view class="margin-top-sm">联系方式{{item.workerPhone}}</view>
<view class="margin-top-sm">预约时间{{item.revTime}}</view>
<view class="margin-top-sm" v-if="servDetail.orderStatus === 2">上门时间{{item.workBeginTime}}</view>
<view class="margin-top-sm" v-if="item.workFinishTime">完成时间{{item.workFinishTime}}</view>
<simple-product-picked :pickedList="item.orderStandardList" :columnTitleArr="servedColumnHeaders" :valFieldArr="servedValFields"></simple-product-picked>
</view> </view>
</view> </view>
<!-- 订单编码和时间 --> <!-- 订单编码和时间 -->
<view class="bg-white margin-top-sm padding margin-lr-sm margin-bottom-with-bar"> <view class="bg-white margin-top-sm padding margin-lr-sm margin-bottom-with-bar">
<view>订单编码{{servDetail.serialCode}}</view> <view>订单编码{{servDetail.orderMasterCode}}</view>
<view class="margin-top-xs">订单时间{{servDetail.createTime}}</view> <view class="margin-top-xs">订单时间{{servDetail.createTime}}</view>
</view> </view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
@ -126,21 +132,24 @@
</template> </template>
<script> <script>
import productPicked from '@/components/goods-card/product-picked.vue'; import simpleProductPicked from '@/components/goods-card/simple-product-picked.vue';
import urgentMsg from '@/pages/my/components/modal/urgent-msg.vue'; import urgentMsg from '@/pages/my/components/modal/urgent-msg.vue';
export default { export default {
components: { components: {
productPicked, simpleProductPicked,
urgentMsg urgentMsg
}, },
data() { data() {
return { return {
value: ['0'], value: ['0'],
order: {},
servDetail: {}, servDetail: {},
finishRecord4Show: [], finishRecord4Show: [],
servingColumnHeaders: ['购买型号', '购买量', '待服务'], servingColumnHeaders: ['购买型号', '购买量', '待服务'],
servedColumnHeaders: ['购买型号', '购买量', '已服务'], servedColumnHeaders: ['购买型号', '购买量', '已服务'],
servingValFields: ['standardName', 'standardNum', 'waitServerNum'],
servedValFields: ['standardName', 'standardNum', 'serverNum'],
process: '', process: '',
ifShowPageMeta: false, ifShowPageMeta: false,
orderManageMenu: [{ orderManageMenu: [{
@ -150,20 +159,27 @@
sendUrgentMsgModal: false sendUrgentMsgModal: false
} }
}, },
onLoad() { onLoad(options) {
this.loadData(); if (options && options.order) {
this.order = JSON.parse(decodeURIComponent(options.order));
}
this.loadData(this.order.orderMasterId);
}, },
methods: { methods: {
async loadData() { async loadData(orderMasterId) {
this.servDetail = await this.$api.data('servDetail'); // this.servDetail = await this.$api.data('servDetail');
this.finishList4Show = this.servDetail.finishRecord; // this.finishList4Show = this.servDetail.finishRecord;
for (let i = 0; i < this.finishList4Show.length; i++) { // for (let i = 0; i < this.finishList4Show.length; i++) {
let finishList = this.finishList4Show[i].finishList; // let finishList = this.finishList4Show[i].finishList;
for (let j = 0; j < finishList.length; j++) { // for (let j = 0; j < finishList.length; j++) {
finishList[j].secondColumnNum = finishList[j].servedNum; // finishList[j].secondColumnNum = finishList[j].servedNum;
} // }
this.finishList4Show[i].finishList = finishList; // this.finishList4Show[i].finishList = finishList;
} // }
let servDetailRes = await this.$request.getOrderMasterDetail({
id: orderMasterId
});
this.servDetail = servDetailRes.data;
}, },
changePopupState(e) { changePopupState(e) {
this.ifShowPageMeta = e.show; this.ifShowPageMeta = e.show;