Compare commits

..

2 Commits

Author SHA1 Message Date
donqi 5b52699123 Merge branch 'master' into feitian 2023-06-05 00:51:33 +08:00
donqi 7d26065eff 修改appId和全局参数 2023-05-14 21:55:22 +08:00
41 changed files with 382 additions and 1764 deletions

View File

@ -804,9 +804,6 @@ button.cuIcon.lg {
.cu-capsule .cu-tag { .cu-capsule .cu-tag {
margin: 0; margin: 0;
font-size: 25rpx;
padding: 0rpx 12rpx;
height: 42rpx;
} }
.cu-capsule .cu-tag[class*="line-"]:last-child::after { .cu-capsule .cu-tag[class*="line-"]:last-child::after {
@ -3029,12 +3026,8 @@ scroll-view.cu-steps .cu-item {
.margin-top-sm { .margin-top-sm {
margin-top: 20upx; margin-top: 20upx;
} }
.margin-top-sm .labels {
font-size: 30upx;
}
.margin-top { .margin-top {
margin-top: 30upx; margin-top: 30upx;
} }

View File

@ -1,5 +1,5 @@
export default { export default {
deptId: 101, deptId: 102,
from: 'server', from: 'server',
initPageNum: 1, initPageNum: 1,
initPageSize: 10, initPageSize: 10,

View File

@ -1,8 +1,7 @@
import globalData from '@/common/js/globalData.js'; import globalData from '@/common/js/globalData.js';
export default { export default {
// address: 'https://www.opsoul.com:8881', address: 'https://www.opsoul.com:8881',
address: 'https://gmhl.opsoul.com',
// 异步接口拦截 // 异步接口拦截
addInterceptor() { addInterceptor() {
let _this = this; let _this = this;
@ -14,9 +13,9 @@ export default {
}) })
let userInfo = _this.getCurUserInfo(); let userInfo = _this.getCurUserInfo();
// request 触发前拼接 url // request 触发前拼接 url
// args.url = 'https://www.opsoul.com:8881' + args.url; args.url = 'https://www.opsoul.com:8881' + args.url;
// args.url = 'http://127.0.0.1:80' + args.url; // args.url = 'http://127.0.0.1:80' + args.url;
args.url = 'https://gmhl.opsoul.com' + args.url; // args.url = 'http://192.168.2.74:80' + args.url;
if (!args.data) { if (!args.data) {
args.data = {} args.data = {}
@ -47,7 +46,6 @@ export default {
} }
}, },
fail(err) { fail(err) {
console.log(err);
uni.hideLoading(); uni.hideLoading();
uni.showToast({ uni.showToast({
title: '请求失败', title: '请求失败',
@ -274,10 +272,6 @@ export default {
let userProfile = uni.getStorageSync('userProfile'); let userProfile = uni.getStorageSync('userProfile');
return userProfile; return userProfile;
}, },
async refreshCurUserCache() {
let newUserInfo = await this.getCurUserNoCache();
uni.setStorageSync('userProfile', newUserInfo);
},
updateCache(cacheKey, cacheVal) { updateCache(cacheKey, cacheVal) {
uni.setStorageSync(cacheKey, cacheVal); uni.setStorageSync(cacheKey, cacheVal);
}, },
@ -440,9 +434,7 @@ export default {
data: params, data: params,
header: { header: {
pageNum: params.pageNum, pageNum: params.pageNum,
pageSize: params.pageSize, pageSize: params.pageSize
orderByColumn: params.orderByColumn ? params.orderByColumn : "",
isAsc: params.isAsc ? params.isAsc : ""
} }
}) })
return res[1].data; return res[1].data;
@ -459,11 +451,7 @@ export default {
let res = await uni.request({ let res = await uni.request({
url: '/order/app/mix/order/list', url: '/order/app/mix/order/list',
method: 'POST', method: 'POST',
data: params, data: params
header: {
orderByColumn: params.orderByColumn ? params.orderByColumn : "",
isAsc: params.isAsc ? params.isAsc : ""
}
}) })
return res[1].data; return res[1].data;
}, },
@ -471,11 +459,7 @@ export default {
let res = await uni.request({ let res = await uni.request({
url: '/order/app/mix/after/list', url: '/order/app/mix/after/list',
method: 'POST', method: 'POST',
data: params, data: params
header: {
orderByColumn: params.orderByColumn ? params.orderByColumn : "",
isAsc: params.isAsc ? params.isAsc : ""
}
}) })
return res[1].data; return res[1].data;
}, },
@ -510,9 +494,7 @@ export default {
data: params, data: params,
header: { header: {
pageNum: params.pageNum, pageNum: params.pageNum,
pageSize: params.pageSize, pageSize: params.pageSize
orderByColumn: params.orderByColumn ? params.orderByColumn : "",
isAsc: params.isAsc ? params.isAsc : ""
} }
}) })
return res[1].data; return res[1].data;
@ -680,17 +662,6 @@ export default {
}) })
return res[1].data; return res[1].data;
}, },
async rejectMasterOrderWhenAccepted(params = {}) {
let res = await uni.request({
url: '/order/master/console/cancel',
method: 'POST',
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded'
}
})
return res[1].data;
},
async changeOrderPrice(params = {}) { async changeOrderPrice(params = {}) {
let res = await uni.request({ let res = await uni.request({
url: '/order/detail/app/change/price', url: '/order/detail/app/change/price',
@ -715,14 +686,6 @@ export default {
}) })
return res[1].data; return res[1].data;
}, },
async editOrder(params = {}) {
let res = await uni.request({
url: '/order/detail/app/edit',
method: 'POST',
data: params
})
return res[1].data;
},
async editAfterServiceRecord(params = {}) { async editAfterServiceRecord(params = {}) {
let res = await uni.request({ let res = await uni.request({
url: '/worker/record/edit', url: '/worker/record/edit',
@ -802,45 +765,5 @@ export default {
data: params data: params
}) })
return res[1].data; return res[1].data;
},
async callDetailCustomer(params = {}) {
let res = await uni.request({
url: '/order/detail/callCustomer',
method: 'POST',
data: params
})
return res[1].data;
},
async addOrderAttach(params = {}) {
let res = await uni.request({
url: '/order/attach/appAdd',
method: 'POST',
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded'
}
})
return res[1].data;
},
// 操作流程节点
async addOrderOperate(params = {}) {
let res = await uni.request({
url: '/order/operate/app/add',
method: 'POST',
data: params
})
return res[1].data;
},
// 获取操作流程节点列表
async getOrderOperate(params = {}) {
let res = await uni.request({
url: '/order/operate/app/list',
method: 'POST',
data: params
})
return res[1].data;
} }
} }

View File

@ -1,54 +0,0 @@
export default {
data() {
return {
//设置默认的分享参数
share: {
title: '工盟互联',
path: '/pages/index/index',
imageUrl: '',
desc: '',
content: ''
}
}
},
onShareAppMessage(res) {
return {
title: this.share.title,
path: this.share.path,
imageUrl: this.share.imageUrl,
desc: this.share.desc,
content: this.share.content,
success(res) {
uni.showToast({
title: '分享成功'
})
},
fail(res) {
uni.showToast({
title: '分享失败',
icon: 'none'
})
}
}
},
onShareTimeline() {
return {
title: this.share.title,
path: this.share.path,
imageUrl: this.share.imageUrl,
desc: this.share.desc,
content: this.share.content,
success(res) {
uni.showToast({
title: '分享成功'
})
},
fail(res) {
uni.showToast({
title: '分享失败',
icon: 'none'
})
}
}
},
}

View File

@ -4,11 +4,11 @@
</view> </view>
<view class="margin-left-sm product-content"> <view class="margin-left-sm product-content">
<view> <view>
<view class="text-black">{{product.totalName}}</view> <view class="text-black">{{product.goodsName}}</view>
<view class="text-sm" v-if="ifShowComments">{{product.remark}}</view> <view class="text-sm" v-if="ifShowComments">{{product.remark}}</view>
</view> </view>
<view class="flex justify-between align-center"> <view class="flex justify-between align-center">
<!-- <view class="flex justify-start align-center" v-if="product.payMoney"> <view class="flex justify-start align-center" v-if="product.payMoney">
<text class="text-price text-red text-bold text-xl">{{product.payMoney}}</text> <text class="text-price text-red text-bold text-xl">{{product.payMoney}}</text>
</view> </view>
<view v-else-if="product.discountPrice" class="flex justify-start align-center"> <view v-else-if="product.discountPrice" class="flex justify-start align-center">
@ -29,7 +29,7 @@
</view> </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> </view>
<view v-if="ifShowServArea"> <view v-if="ifShowServArea">
<view class="cu-capsule"> <view class="cu-capsule">
@ -58,7 +58,7 @@
}, },
ifShowComments: { ifShowComments: {
type: Boolean, type: Boolean,
default: false default: true
}, },
product: { product: {
type: Object, type: Object,

View File

@ -41,10 +41,6 @@
type: Boolean, type: Boolean,
default: true default: true
}, },
isAutoClose: {
type: Boolean,
default: true
},
}, },
data() { data() {
return { return {
@ -61,9 +57,7 @@
}, },
confirmCallback(e) { confirmCallback(e) {
this.$emit('confirm'); this.$emit('confirm');
if(this.isAutoClose) { this.hideModal();
this.isShow = false;
}
} }
} }
} }

View File

@ -9,7 +9,7 @@
</view> </view>
<view class="cu-bar bg-white solid-top"> <view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal" <view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal"
@tap="hideModal">{{text}}</view> @tap="hideModal">以后绑定</view>
<view class="action margin-0 flex-sub text-main-color solid-left" <view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showTakeCertifiedModal" @tap="hideModal" @click="goToBindBank">立即绑定</view> data-modal="showTakeCertifiedModal" @tap="hideModal" @click="goToBindBank">立即绑定</view>
</view> </view>
@ -21,13 +21,7 @@
<script> <script>
export default { export default {
name: 'vertify-bank-bind', name: 'vertify-bank-bind',
emits: ['reload', 'stillAcceptOrder'], emits: ['reload'],
props: {
text: {
type: String,
default: '以后绑定'
}
},
data() { data() {
return { return {
isShow: false isShow: false
@ -39,9 +33,6 @@
}, },
hideModal(e) { hideModal(e) {
this.isShow = false; this.isShow = false;
if(this.text == '仍然接单') {
this.$emit('stillAcceptOrder')
}
}, },
goToBindBank() { goToBindBank() {
uni.navigateTo({ uni.navigateTo({

View File

@ -9,7 +9,7 @@
</view> </view>
<view class="cu-bar bg-white solid-top"> <view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal" <view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal"
@tap="hideModal">{{text}}</view> @tap="hideModal">以后认证</view>
<view class="action margin-0 flex-sub text-main-color solid-left" <view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showTakeCertifiedModal" @tap="hideModal" @click="goToCertify">立即认证</view> data-modal="showTakeCertifiedModal" @tap="hideModal" @click="goToCertify">立即认证</view>
</view> </view>
@ -21,13 +21,7 @@
<script> <script>
export default { export default {
name: 'vertify-certify', name: 'vertify-certify',
emits: ['reload', 'stillAcceptOrder'], emits: ['reload'],
props: {
text: {
type: String,
default: '以后认证'
}
},
data() { data() {
return { return {
isShow: false isShow: false
@ -39,9 +33,6 @@
}, },
hideModal(e) { hideModal(e) {
this.isShow = false; this.isShow = false;
if(this.text == '仍然接单') {
this.$emit('stillAcceptOrder')
}
}, },
goToCertify() { goToCertify() {
uni.navigateTo({ uni.navigateTo({

View File

@ -49,10 +49,6 @@ Vue.prototype.$calcUtil = calcUtil;
Vue.prototype.$commonFun = commonFun; Vue.prototype.$commonFun = commonFun;
Vue.prototype.$request = request; Vue.prototype.$request = request;
import share from 'common/mixin/share.js'//我命名为share.js
Vue.mixin(share)
Vue.config.productionTip = false Vue.config.productionTip = false
App.mpType = 'app' App.mpType = 'app'

View File

@ -1,6 +1,6 @@
{ {
"name" : "dingdong-master", "name" : "dingdong-master",
"appid" : "__UNI__EF8108C", "appid" : "",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",
@ -52,7 +52,8 @@
"quickapp" : {}, "quickapp" : {},
/* */ /* */
"mp-weixin" : { "mp-weixin" : {
"appid" : "wx105ce607b514ff2a", /* */
"appid" : "wxc2920b79d0980f8b",
"setting" : { "setting" : {
"urlCheck" : false, "urlCheck" : false,
"minified" : true, "minified" : true,

View File

@ -27,7 +27,7 @@
:value="areaMultiIndex" :range-key="'areaName'" :range="areaList"> :value="areaMultiIndex" :range-key="'areaName'" :range="areaList">
<view class="flex justify-start"> <view class="flex justify-start">
<view class="text-cut search-nav-item-text"> <view class="text-cut search-nav-item-text">
{{chosenArea && chosenArea.length ? chosenArea[chosenArea.length - 1].areaName : item.title}} {{chosenArea && chosenArea.length ? chosenArea[2].areaName : item.title}}
</view> </view>
<text class="text-lg"><text class="cuIcon-triangledownfill"></text></text> <text class="text-lg"><text class="cuIcon-triangledownfill"></text></text>
</view> </view>
@ -38,7 +38,7 @@
:range="categoryList"> :range="categoryList">
<view class="flex justify-start"> <view class="flex justify-start">
<view class="text-cut search-nav-item-text"> <view class="text-cut search-nav-item-text">
{{chosenCategory && chosenCategory.length ? chosenCategory[chosenCategory.length - 1].goodsCategoryName : item.title}} {{chosenCategory && chosenCategory.length ? chosenCategory[2].goodsCategoryName : item.title}}
</view> </view>
<text class="text-lg"><text class="cuIcon-triangledownfill"></text></text> <text class="text-lg"><text class="cuIcon-triangledownfill"></text></text>
</view> </view>
@ -57,7 +57,7 @@
</view> </view>
<!-- 任务单 --> <!-- 任务单 -->
<view class="margin-lr-sm margin-bottom-lg"> <view class="margin-lr-sm margin-bottom-lg">
<view v-for="(task, index) in tasks" :key="index" class="padding bg-white margin-top-sm"> <view v-for="(task, index) in tasks" class="padding bg-white margin-top-sm">
<view class="flex justify-between"> <view class="flex justify-between">
<view class="text-lg text-bold text-cut" style="width: 70%;">{{task.goodsName}}</view> <view class="text-lg text-bold text-cut" style="width: 70%;">{{task.goodsName}}</view>
<view class="text-right"> <view class="text-right">
@ -68,19 +68,7 @@
</view> </view>
</view> </view>
<view class="flex justify-start" v-if="task.tag"> <view class="flex justify-start" v-if="task.tag">
<view v-for="(tagContent, index1) in task.tag" :key="index1" class='cu-tag margin-right-xs'>{{tagContent}}</view> <view v-for="(tagContent, index1) in task.tag" class='cu-tag margin-right-xs'>{{tagContent}}</view>
</view>
<view>
<view v-if="task.consultMode === '01'" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>合约单</view>
<view v-if="task.payType === 1 && task.consultMode !== '01'" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>到付单</view>
<template v-if="task.consultMode === '01'">
<view v-if="task.changeMoney" class='cu-tag margin-right-xs radius line-red margin-top-xs'>有待付款</view>
<view v-else class='cu-tag margin-right-xs radius line-red margin-top-xs'>款已付清</view>
</template>
<template v-else>
<view v-if="task.changeMoney || task.payStatus != 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>有待付款</view>
<view v-else class='cu-tag margin-right-xs radius line-red margin-top-xs'>款已付清</view>
</template>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text <text class="text-main-color text-lg margin-right-xs"><text
@ -89,8 +77,8 @@
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text>
<text v-if="task.expectTimeEndFront">期望时间{{task.expectTimeStartFront + '~' + task.expectTimeEndFront}}</text> <text v-if="task.expectTimeEndFront">{{task.expectTimeStartFront + '~' + task.expectTimeEndFront}}</text>
<text v-else>期望时间{{task.expectTimeStartFront}}</text> <text v-else>{{task.expectTimeStartFront}}</text>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-phone"></text></text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-phone"></text></text>
@ -199,8 +187,8 @@
</view> </view>
</view> </view>
<!-- 账户及实名弹窗 --> <!-- 账户及实名弹窗 -->
<vertify-bank-bind ref="vertifyBankBind" text="仍然接单" @stillAcceptOrder="stillAccept"></vertify-bank-bind> <vertify-bank-bind ref="vertifyBankBind"></vertify-bank-bind>
<vertify-certify ref="vertifyCertify" text="仍然接单" @stillAcceptOrder="stillAccept"></vertify-certify> <vertify-certify ref="vertifyCertify"></vertify-certify>
</view> </view>
</template> </template>
@ -288,13 +276,7 @@
chosenCategory: [], chosenCategory: [],
bankCard: null, bankCard: null,
certifyInfo: null, certifyInfo: null,
hasNotice: false, hasNotice: false
workerCityIds: [],
workerDistrictIds: [],
workerStreetIds: [],
workerFirstCategoryIds: [],
workerSecondCategoryIds: [],
workerThirdCategoryIds: []
} }
}, },
onShow() { onShow() {
@ -303,8 +285,6 @@
methods: { methods: {
async loadData() { async loadData() {
this.curUserInfo = this.$request.getCurUserInfo(); this.curUserInfo = this.$request.getCurUserInfo();
this.getWorkerAreaIds();
await this.getWorkerDataCategoryIds();
// this.checkBankAndCertify(); // this.checkBankAndCertify();
// this.tasks = await this.$api.data('tasks'); // this.tasks = await this.$api.data('tasks');
this.reloadMasterOrderPage(); this.reloadMasterOrderPage();
@ -325,8 +305,6 @@
this.certifyInfo = certifyInfoRes.data; this.certifyInfo = certifyInfoRes.data;
let res = true; let res = true;
// this.$refs.vertifyCertify.showModal();
// res = false;
if (!this.bankCard || !this.bankCard.bankNum) { if (!this.bankCard || !this.bankCard.bankNum) {
this.$refs.vertifyBankBind.showModal(); this.$refs.vertifyBankBind.showModal();
res = false; res = false;
@ -337,50 +315,6 @@
} }
return res; return res;
}, },
async getWorkerAreaIds() {
let res = await this.$request.getWorkerArea({
workerId: this.curUserInfo.workerId
});
let cityIds = [];
let districtIds = [];
let streetIds = [];
for(let i = 0; i < res.data.length; i++) {
if (cityIds.indexOf(res.data[i].cityId) === -1) {
cityIds.push(res.data[i].cityId)
}
if (districtIds.indexOf(res.data[i].districtId) === -1) {
districtIds.push(res.data[i].districtId)
}
if (streetIds.indexOf(res.data[i].streetId) === -1) {
streetIds.push(res.data[i].streetId)
}
}
this.workerCityIds = cityIds;
this.workerDistrictIds = districtIds;
this.workerStreetIds = streetIds;
},
async getWorkerDataCategoryIds() {
let res = await this.$request.getWorkerGoodsCategory({
workerId: this.curUserInfo.workerId
});
let firstGoodsCategoryIds = [];
let secondGoodsCategoryIds = [];
let thirdGoodsCategoryIds = [];
for(let i = 0; i < res.data.length; i++) {
if (firstGoodsCategoryIds.indexOf(res.data[i].goodsCategoryId) === -1) {
firstGoodsCategoryIds.push(res.data[i].goodsCategoryId)
}
if (secondGoodsCategoryIds.indexOf(res.data[i].goodsCategoryId) === -1) {
secondGoodsCategoryIds.push(res.data[i].goodsCategoryId)
}
if (thirdGoodsCategoryIds.indexOf(res.data[i].goodsCategoryId) === -1) {
thirdGoodsCategoryIds.push(res.data[i].goodsCategoryId)
}
}
this.workerFirstCategoryIds = firstGoodsCategoryIds;
this.workerSecondCategoryIds = secondGoodsCategoryIds;
this.workerThirdCategoryIds = thirdGoodsCategoryIds;
},
async loadMasterOrderPage(params = {}) { async loadMasterOrderPage(params = {}) {
params.pageSize = this.$globalData.initPageSize; params.pageSize = this.$globalData.initPageSize;
params.pageNum = this.pageNum; params.pageNum = this.pageNum;
@ -396,36 +330,6 @@
} }
}) })
//
params.cityIds = this.workerCityIds;
if (this.chosenArea.length === 1) {
//
params.cityIds = [this.chosenArea[0].areaId]
} else if (this.chosenArea.length === 2) {
//
params.districtIds = [this.chosenArea[1].areaId]
} else if (this.chosenArea.length === 3) {
//
params.districtIds = [this.chosenArea[1].areaId];
params.streetIds = [this.chosenArea[2].areaId];
}
//
params.thirdGoodsCategoryIds = this.workerThirdCategoryIds;
if (this.chosenCategory.length === 1) {
//
params.firstGoodsCategoryIds = [this.chosenCategory[0].goodsCategoryId];
} else if (this.chosenCategory.length === 2) {
//
params.firstGoodsCategoryIds = [this.chosenCategory[0].goodsCategoryId];
params.secondGoodsCategoryIds = [this.chosenCategory[1].goodsCategoryId];
} else if (this.chosenArea.length === 3) {
//
params.firstGoodsCategoryIds = [this.chosenCategory[0].goodsCategoryId];
params.secondGoodsCategoryIds = [this.chosenCategory[1].goodsCategoryId];
params.thirdGoodsCategoryIds = [this.chosenCategory[2].goodsCategoryId];
}
this.$refs.loadStatusBar.showLoading(); this.$refs.loadStatusBar.showLoading();
try { try {
let res = await this.$request.qryMasterOrderPage(params); let res = await this.$request.qryMasterOrderPage(params);
@ -491,59 +395,27 @@
goodsCategoryId: col3Id goodsCategoryId: col3Id
}); });
thirdTypeList = thirdTypeList.data; thirdTypeList = thirdTypeList.data;
//
subTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
subSubTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
thirdTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
this.categoryList.push(subTypeList); this.categoryList.push(subTypeList);
this.categoryList.push(subSubTypeList); this.categoryList.push(subSubTypeList);
this.categoryList.push(thirdTypeList); this.categoryList.push(thirdTypeList);
}, },
async loadRegionList() { async loadRegionList() {
let regionList = await this.$request.areaListByStep({ let regionList = await this.$request.areaListByStep();
areaIds: this.workerCityIds,
parentCode: ''
});
regionList = regionList.data; regionList = regionList.data;
let subRegionList = []; let subRegionList = [];
let subSubRegionList = []; let subSubRegionList = [];
if (regionList && regionList.length > 0) { if (regionList && regionList.length > 0) {
subRegionList = await this.$request.areaListByStep({ subRegionList = await this.$request.areaListByStep({
parentCode: regionList[0].areaCode, parentCode: regionList[0].areaCode
areaIds: this.workerDistrictIds
}); });
subRegionList = subRegionList.data; subRegionList = subRegionList.data;
} }
if (subRegionList && subRegionList.length > 0) { if (subRegionList && subRegionList.length > 0) {
subSubRegionList = await this.$request.areaListByStep({ subSubRegionList = await this.$request.areaListByStep({
parentCode: subRegionList[0].areaCode, parentCode: subRegionList[0].areaCode
areaIds: this.workerStreetIds
}); });
subSubRegionList = subSubRegionList.data; subSubRegionList = subSubRegionList.data;
} }
//
regionList.unshift({
areaName: '全部',
areaId: -1
});
subRegionList.unshift({
areaName: '全部',
areaId: -1
});
subSubRegionList.unshift({
areaName: '全部',
areaId: -1
});
this.areaList.push(regionList); this.areaList.push(regionList);
this.areaList.push(subRegionList); this.areaList.push(subRegionList);
this.areaList.push(subSubRegionList); this.areaList.push(subSubRegionList);
@ -565,40 +437,23 @@
this.areaMultiIndex = e.detail.value; this.areaMultiIndex = e.detail.value;
let chosenArea = []; let chosenArea = [];
for (let i = 0; i < this.areaList.length; i++) { for (let i = 0; i < this.areaList.length; i++) {
if (this.areaMultiIndex[i] === 0) {
//
break;
}
chosenArea.push(this.areaList[i][this.areaMultiIndex[i]]); chosenArea.push(this.areaList[i][this.areaMultiIndex[i]]);
} }
this.chosenArea = chosenArea; this.chosenArea = chosenArea;
// this.taskConditions[this.tabCur].value = chosenArea[chosenArea.length - 1].areaId; this.taskConditions[this.tabCur].value = chosenArea[chosenArea.length - 1].areaId;
this.searchTasks(); this.searchTasks();
}, },
async regionColChange(e) { async regionColChange(e) {
let colObj = e.detail; let colObj = e.detail;
if (colObj.column == 0) { if (colObj.column == 0) {
// //
let subAreaList = await this.$request.areaListByStep({parentCode: this.areaList[0][colObj.value].areaCode, areaIds: this.workerDistrictIds}); let subAreaList = await this.$request.areaListByStep({parentCode: this.areaList[0][colObj.value].areaCode});
subAreaList = subAreaList.data; subAreaList = subAreaList.data;
let subSubAreaList = []; let subSubAreaList = [];
if (subAreaList.length) { if (subAreaList.length) {
subSubAreaList = await this.$request.areaListByStep({parentCode: subAreaList[0].areaCode, areaIds: this.workerStreetIds}); subSubAreaList = await this.$request.areaListByStep({parentCode: subAreaList[0].areaCode});
subSubAreaList = subSubAreaList.data; subSubAreaList = subSubAreaList.data;
} }
//
if (subAreaList.length > 0) {
subAreaList.unshift({
areaName: '全部',
areaId: -1
});
}
if (subSubAreaList.length > 0) {
subSubAreaList.unshift({
areaName: '全部',
areaId: -1
});
}
this.areaList.pop(); this.areaList.pop();
this.areaList.pop(); this.areaList.pop();
this.areaList.push(subAreaList); this.areaList.push(subAreaList);
@ -606,15 +461,8 @@
this.areaMultiIndex = [colObj.value, 0, 0]; this.areaMultiIndex = [colObj.value, 0, 0];
} else if (colObj.column == 1) { } else if (colObj.column == 1) {
// //
let subAreaList = await this.$request.areaListByStep({parentCode: this.areaList[1][colObj.value].areaCode, areaIds: this.workerStreetIds}); let subAreaList = await this.$request.areaListByStep({parentCode: this.areaList[1][colObj.value].areaCode});
subAreaList = subAreaList.data; subAreaList = subAreaList.data;
//
if (subAreaList.length > 0) {
subAreaList.unshift({
areaName: '全部',
areaId: -1
});
}
this.areaList.pop(); this.areaList.pop();
this.areaList.push(subAreaList); this.areaList.push(subAreaList);
this.areaMultiIndex = [this.areaMultiIndex[0], colObj.value, 0]; this.areaMultiIndex = [this.areaMultiIndex[0], colObj.value, 0];
@ -624,14 +472,10 @@
this.categoryMultiIndex = e.detail.value; this.categoryMultiIndex = e.detail.value;
let chosenCategory = []; let chosenCategory = [];
for (let i = 0; i < this.categoryList.length; i++) { for (let i = 0; i < this.categoryList.length; i++) {
if (this.categoryMultiIndex[i] === 0) {
//
break;
}
chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]); chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]);
} }
this.chosenCategory = chosenCategory; this.chosenCategory = chosenCategory;
// this.taskConditions[this.tabCur].value = chosenCategory[chosenCategory.length - 1].goodsCategoryId; this.taskConditions[this.tabCur].value = chosenCategory[chosenCategory.length - 1].goodsCategoryId;
this.searchTasks(); this.searchTasks();
}, },
async categoryColChange(e) { async categoryColChange(e) {
@ -651,15 +495,6 @@
}); });
subSubTypeList = subSubTypeList.data; subSubTypeList = subSubTypeList.data;
} }
//
subTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
subSubTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
this.categoryList.pop(); this.categoryList.pop();
this.categoryList.pop(); this.categoryList.pop();
this.categoryList.push(subTypeList); this.categoryList.push(subTypeList);
@ -672,11 +507,6 @@
goodsCategoryId: this.categoryList[1][colObj.value].goodsCategoryId goodsCategoryId: this.categoryList[1][colObj.value].goodsCategoryId
}); });
subSubTypeList = subSubTypeList.data; subSubTypeList = subSubTypeList.data;
//
subSubTypeList.unshift({
goodsCategoryName: '全部',
goodsCategoryId: -1
});
this.categoryList.pop(); this.categoryList.pop();
this.categoryList.push(subSubTypeList); this.categoryList.push(subSubTypeList);
this.categoryMultiIndex = [this.categoryMultiIndex[0], colObj.value, 0]; this.categoryMultiIndex = [this.categoryMultiIndex[0], colObj.value, 0];
@ -692,7 +522,6 @@
}) })
}, },
async takeTask(e, task) { async takeTask(e, task) {
this.curTask = task;
if (!this.hasNotice) { if (!this.hasNotice) {
let checkRes = await this.checkBankAndCertify(); let checkRes = await this.checkBankAndCertify();
this.hasNotice = true; this.hasNotice = true;
@ -713,24 +542,6 @@
} }
this.showModal(e, task); this.showModal(e, task);
}, },
async stillAccept() {
// this.showModal({currentTarget:{dataset: {modal : 'showTakeSuccessModal'}}}, this.curTask);
// console.log('still order',{
// workerId: this.curUserInfo.workerId,
// id: this.curTask.orderMasterId,
// orderStatus: 1
// });
// return;
//
let res = await this.$request.updateOrder({
workerId: this.curUserInfo.workerId,
id: this.curTask.orderMasterId,
orderStatus: 1
});
if(res.code !== 0) return;
this.reloadMasterOrderPage();
this.showModal({currentTarget:{dataset: {modal : 'showTakeSuccessModal'}}}, this.curTask);
},
contactCustomer(e) { contactCustomer(e) {
// uni.makePhoneCall({ // uni.makePhoneCall({
// phoneNumber: this.curTask.customerPhone // phoneNumber: this.curTask.customerPhone

View File

@ -24,8 +24,8 @@
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text>
<text v-if="order.expectTimeEndFront">期望时间{{order.expectTimeStartFront + '~' + order.expectTimeEndFront}}</text> <text v-if="order.expectTimeEndFront">{{order.expectTimeStartFront + '~' + order.expectTimeEndFront}}</text>
<text v-else>期望时间{{order.expectTimeStartFront}}</text> <text v-else>{{order.expectTimeStartFront}}</text>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-phone"></text></text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-phone"></text></text>

View File

@ -96,15 +96,9 @@
<view hover-class="none" class="nav-li serv-module" @click="clickServModule(item)" <view hover-class="none" class="nav-li serv-module" @click="clickServModule(item)"
:class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]" :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]"
v-for="(item,index) in servModules " :key="index"> v-for="(item,index) in servModules " :key="index">
<template v-if="item.id !== 4"> <view :class="index === 0 ? 'text-xxl' : 'text-xl'">{{item.title}}</view>
<view :class="index === 0 ? 'text-xxl' : 'text-xl'">{{item.title}}</view> <!-- <view class="nav-name">{{item.name}}</view> -->
<!-- <view class="nav-name">{{item.name}}</view> --> <text :class="'cuIcon-' + item.cuIcon"></text>
<text :class="'cuIcon-' + item.cuIcon"></text>
</template>
<button data-name="shareBtn" open-type="share" hover-class="none" v-else>
<view :class="index === 0 ? 'text-xxl' : 'text-xl'">{{item.title}}</view>
<text :class="'cuIcon-' + item.cuIcon"></text>
</button>
</view> </view>
</view> </view>
</view> </view>
@ -248,9 +242,7 @@
let waitServRes = await this.$request.qryDetailOrderPage({ let waitServRes = await this.$request.qryDetailOrderPage({
orderStatus: 2, orderStatus: 2,
expectTimeStart: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00", expectTimeStart: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00",
expectTimeEnd: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59", expectTimeEnd: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59"
orderByColumn: "expectTimeStart",
isAsc: "desc"
}); });
this.waitServOrderToday = waitServRes.rows; this.waitServOrderToday = waitServRes.rows;
}, },
@ -272,12 +264,10 @@
}, },
async clickServModule(pageObj) { async clickServModule(pageObj) {
if (pageObj && !pageObj.pageUrl) { if (pageObj && !pageObj.pageUrl) {
if(pageObj.id !== 4) { uni.showToast({
uni.showToast({ icon: 'none',
icon: 'none', title: '功能开发中'
title: '功能开发中' })
})
}
} }
if (pageObj.checkLogin) { if (pageObj.checkLogin) {
let res = await this.authLogin(); let res = await this.authLogin();
@ -334,21 +324,6 @@
line-height: 195rpx; line-height: 195rpx;
} }
.nav-li button{
padding: 0;
margin: 0;
border: none;
background-color: transparent;
line-height: inherit;
color: inherit;
position: static;
text-align: left;
}
.nav-li button::after {
border: none;
}
.nav-li { .nav-li {
padding: 30rpx; padding: 30rpx;
border-radius: 12rpx; border-radius: 12rpx;

View File

@ -40,14 +40,6 @@
} }
}, },
onLoad(options) { onLoad(options) {
let curUserInfo = this.$request.getCurUserInfo();
if(!curUserInfo) {
uni.reLaunch({
url: '/pages/login/login'
})
return
}
this.loadData(); this.loadData();
if (options && options.menuCode) { if (options && options.menuCode) {
this.changeCurPageCode(options.menuCode) this.changeCurPageCode(options.menuCode)

View File

@ -44,7 +44,7 @@
<view class="bg-white"> <view class="bg-white">
<view class="margin-top margin-lr-sm"> <view class="margin-top margin-lr-sm">
<view class="flex justify-between align-center solid-bottom padding padding-lr-lg text-lg" <view class="flex justify-between align-center solid-bottom padding padding-lr-lg text-lg"
v-for="(item, index) in menuList" :key="index" @click="clickMenuItem(item)" v-for="(item, index) in menuList" @click="clickMenuItem(item)"
v-if="item.show || (item.showByStatus ? curUserInfo.status != -1 : false)"> v-if="item.show || (item.showByStatus ? curUserInfo.status != -1 : false)">
<view class="flex justify-start align-center"> <view class="flex justify-start align-center">
<view class="margin-right-sm text-main-color text-xl"><view :class="'cuIcon-' + item.icon"></view></view> <view class="margin-right-sm text-main-color text-xl"><view :class="'cuIcon-' + item.icon"></view></view>
@ -55,17 +55,6 @@
</view> </view>
</view> </view>
</view> </view>
<confirm-modal ref="focusModal" :showCancel="false" :isAutoClose="false" confirmMsg="已关注" @confirm="checkIfFollow()">
<template #contentView>
<view style="display: flex;flex-direction: column;justify-content: center;align-items: center;">
<text style="font-size: 30rpx;margin-bottom: 30rpx;font-weight: 500;">先关注公众号绑定订单通知</text>
<image style="width: 400upx;height: 400upx;margin-bottom: 20upx;" :show-menu-by-longpress="true" src="http://gqz.opsoul.com/qrcode_for_gh_e1c9ac86741f_860.jpg" mode="aspectFill"></image>
<text style="margin-bottom: 20upx;">操作方式</text>
<text>长按二维码前往公众号点关注</text>
</view>
</template>
</confirm-modal>
</view> </view>
</template> </template>
@ -97,15 +86,8 @@
icon: 'profile', icon: 'profile',
pageUrl: '/pages/my/master-settled-info', pageUrl: '/pages/my/master-settled-info',
show: true show: true
}, }, {
{ name: '个人信息',
name: '订单通知绑定',
icon: 'roundcheck',
show: true,
prefixFun: 'showFollowBox'
},
{
name: '商家信息',
icon: 'lock', icon: 'lock',
pageUrl: '/pages/my/personal-info', pageUrl: '/pages/my/personal-info',
show: true show: true
@ -141,7 +123,6 @@
}, },
methods: { methods: {
async loadData() { async loadData() {
await this.$request.refreshCurUserCache();
this.curUserInfo = this.$request.getCurUserInfo(); this.curUserInfo = this.$request.getCurUserInfo();
let res = await this.$request.getWorkerCertify(); let res = await this.$request.getWorkerCertify();
this.curCertifyInfo = res.data; this.curCertifyInfo = res.data;
@ -161,58 +142,6 @@
uni.navigateTo({ uni.navigateTo({
url: pageUrl url: pageUrl
}) })
},
async showFollowBox() {
const status = await this.checkBeforeFollow()
if(!status) {
this.$refs.focusModal.showModal();
} else {
uni.showToast({
title: '您已绑定消息通知',
icon: 'none'
})
}
},
async checkBeforeFollow() {
const wxLoginRes = await wx.login();
console.log(wxLoginRes);
const wxAuthRes = await uni.request({
url: '/wx/check',
header: {
code: wxLoginRes.code
}
})
// const wxAuthRes = await uni.request({
// url: '/wx/auth',
// header: {
// code: wxLoginRes.code
// }
// })
return wxAuthRes[1].data.data
},
async checkIfFollow() {
const status = await this.checkBeforeFollow()
// const wxLoginRes = await wx.login();
// const wxAuthRes = await uni.request({
// url: '/wx/check',
// header: {
// code: wxLoginRes.code
// }
// })
if(!status) {
uni.showToast({
title: '请完成公众号关注',
icon: 'none'
})
return;
} else {
// uni.showToast({
// title: '',
// icon: 'success'
// })
this.$refs.focusModal.hideModal();
return;
}
} }
}, },
} }

View File

@ -83,23 +83,12 @@
<!-- 加入师傅团队提示 --> <!-- 加入师傅团队提示 -->
<!-- <invite-master ref="inviteMasterModal" :inviteMasterObj="inviter" @confirm="inviteMaster"></invite-master> --> <!-- <invite-master ref="inviteMasterModal" :inviteMasterObj="inviter" @confirm="inviteMaster"></invite-master> -->
<confirm-modal ref="inviteMasterModal" :content="'是否确认加入' + inviter.name + '的团队?'" @confirm="inviteMaster(inviter)"></confirm-modal> <confirm-modal ref="inviteMasterModal" :content="'是否确认加入' + inviter.name + '的团队?'" @confirm="inviteMaster(inviter)"></confirm-modal>
<confirm-modal ref="focusModal" cancelMsg="返回" :isAutoClose="false" confirmMsg="已关注,继续注册" @cancel="cancelFollow" @confirm="checkIfFollow()">
<template #contentView>
<view style="display: flex;flex-direction: column;justify-content: center;align-items: center;">
<text style="font-size: 30rpx;margin-bottom: 30rpx;font-weight: 500;">先关注公众号绑定订单通知</text>
<image style="width: 400upx;height: 400upx;margin-bottom: 20upx;" :show-menu-by-longpress="true" src="http://gqz.opsoul.com/qrcode_for_gh_e1c9ac86741f_860.jpg" mode="aspectFill"></image>
<text style="margin-bottom: 20upx;">操作方式</text>
<text>长按二维码前往公众号点关注</text>
</view>
</template>
</confirm-modal>
</view> </view>
</template> </template>
<script> <script>
// import inviteMaster from '../area-proxy/modal/invite-master.vue' // import inviteMaster from '../area-proxy/modal/invite-master.vue'
// 18929577155 qq880920
export default { export default {
components: { components: {
// inviteMaster // inviteMaster
@ -128,16 +117,11 @@
changeAgreeContract() { changeAgreeContract() {
this.agreeContract = !this.agreeContract; this.agreeContract = !this.agreeContract;
}, },
async changeOperType() { changeOperType() {
this.reset(); this.reset();
this.operType = this.operType === 0 ? 1 : 0; this.operType = this.operType === 0 ? 1 : 0;
if (this.operType === 1) { if (this.operType === 1) {
const status = await this.checkBeforeFollow() this.authLogin();
if(!status) {
this.$refs.focusModal.showModal();
} else {
this.authLogin();
}
} }
}, },
reset() { reset() {
@ -326,41 +310,6 @@
icon: 'error' icon: 'error'
}) })
} }
},
cancelFollow() {
this.reset();
this.operType = 0;
this.$refs.focusModal.isShow = false;
},
async checkBeforeFollow() {
const wxLoginRes = await wx.login();
const wxAuthRes = await uni.request({
url: '/wx/check',
header: {
code: wxLoginRes.code
}
})
return wxAuthRes[1].data.data
},
async checkIfFollow() {
const res = await this.checkBeforeFollow()
// const wxLoginRes = await wx.login();
// const wxAuthRes = await uni.request({
// url: '/wx/check',
// header: {
// code: wxLoginRes.code
// }
// })
if(!res) {
uni.showToast({
title: '请先关注公众号',
icon: 'error'
})
return
}
this.$refs.focusModal.isShow = false;
this.authLogin();
} }
}, },
} }
@ -420,6 +369,5 @@
position: relative; position: relative;
height: 60rpx; height: 60rpx;
line-height: 60rpx; line-height: 60rpx;
flex-basis: 140rpx;
} }
</style> </style>

View File

@ -119,19 +119,15 @@
placeholder="请输入公司执照号码"></input> placeholder="请输入公司执照号码"></input>
</view> </view>
<view class="cu-form-group"> <view class="cu-form-group">
<view class="title">公司区域</view> <view class="title">公司地址</view>
<view class="flex-column-between"> <view class="flex-column-between flex-view">
<picker :mode="'multiSelector'" @change="regionChange" @columnchange="regionColChange" <picker :mode="'multiSelector'" @change="regionChange" @columnchange="regionColChange"
:value="multiIndex" :range-key="'areaName'" :range="areaList"> :value="multiIndex" :range-key="'areaName'" :range="areaList">
<view class="picker"> <view class="picker">
{{realNameInfo.companyArea && realNameInfo.companyArea.length ? realNameInfo.companyArea[0].areaName + '-' + realNameInfo.companyArea[1].areaName + '-' + realNameInfo.companyArea[2].areaName : '请选择'}} {{realNameInfo.companyArea && realNameInfo.companyArea.length ? realNameInfo.companyArea[0].areaName + '-' + realNameInfo.companyArea[1].areaName + '-' + realNameInfo.companyArea[2].areaName : '请选择'}}
</view> </view>
</picker> </picker>
</view> <!-- <view><input name="companyAddress" v-model="realNameInfo.companyAddress" placeholder="请输入营业执照地址/经营地址/服务网点"></input></view> -->
</view>
<view class="cu-form-group">
<view class="title">公司地址</view>
<view class="flex-column-between flex-view">
<textarea name="companyAddress" class="solid padding-sm" maxlength="-1" <textarea name="companyAddress" class="solid padding-sm" maxlength="-1"
v-model="realNameInfo.companyAddress" placeholder="请输入营业执照地址/经营地址/服务网点" /> v-model="realNameInfo.companyAddress" placeholder="请输入营业执照地址/经营地址/服务网点" />
</view> </view>
@ -396,7 +392,6 @@
data() { data() {
return { return {
curUserInfo: null, curUserInfo: null,
hasJoinedTeam: false,
curCertifyInfo: null, curCertifyInfo: null,
servSpecialSkills: null, servSpecialSkills: null,
curStep: 0, curStep: 0,
@ -442,7 +437,6 @@
methods: { methods: {
async loadData() { async loadData() {
this.curUserInfo = this.$request.getCurUserInfo(); this.curUserInfo = this.$request.getCurUserInfo();
this.checkedHasJoinedTeam();
let res = await this.$request.getWorkerCertify(); let res = await this.$request.getWorkerCertify();
this.curCertifyInfo = res.data; this.curCertifyInfo = res.data;
if (this.curCertifyInfo && this.curCertifyInfo.workerCertificationId) { if (this.curCertifyInfo && this.curCertifyInfo.workerCertificationId) {
@ -461,13 +455,6 @@
this.loadSpecialSkillType(); this.loadSpecialSkillType();
} }
}, },
async checkedHasJoinedTeam() {
let params = {
hasRegistered: true
}
let res = await this.$request.getTeamPage(params);
this.hasJoinedTeam = res.rows.length > 0 ? true : false;
},
async showForm() { async showForm() {
this.loadAreaList(); this.loadAreaList();
this.loadSpecialSkillType(); this.loadSpecialSkillType();
@ -709,15 +696,14 @@
this.specialSkill[index].insurEndDate = e[1]; this.specialSkill[index].insurEndDate = e[1];
}, },
async chooseImage(e, imgList, count) { async chooseImage(e, imgList, count) {
uni.chooseMedia({ uni.chooseImage({
count: count && count > 0 ? count : 1, //9 count: count && count > 0 ? count : 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
// //
res.tempFiles.forEach((fileObj) => { res.tempFilePaths.forEach((tmpPath) => {
this.$request.uploadFile(fileObj.tempFilePath).then((url) => { this.$request.uploadFile(tmpPath).then((url) => {
// //
imgList.push(url); imgList.push(url);
}); });
@ -748,23 +734,6 @@
validData() { validData() {
let teamParams = this.realNameInfo; let teamParams = this.realNameInfo;
let errMsg = null; let errMsg = null;
if (!this.hasJoinedTeam) {
if (!teamParams.licenseImgList || !teamParams.licenseImgList.length) {
errMsg = "请上传公司营业执照";
} else if (!teamParams.companyName) {
errMsg = "请填写公司名称";
} else if (!teamParams.businessLicenseNum) {
errMsg = "请填写公司营业执照号码";
} else if (!teamParams.companyArea || !teamParams.companyArea.length) {
errMsg = "请选择公司地址所在省市区";
} else if (!teamParams.companyAddress) {
errMsg = "请输入营业执照地址/经营地址/服务网点";
} else if (!teamParams.legalPersionName) {
errMsg = "请填写法人姓名";
} else if (!teamParams.legalPersionPhoneNum) {
errMsg = "请填写法人联系电话";
}
}
if (teamParams.companySize == null || teamParams.companySize == undefined) { if (teamParams.companySize == null || teamParams.companySize == undefined) {
errMsg = "请选择经营主体规模"; errMsg = "请选择经营主体规模";
} else if (!teamParams.brandName) { } else if (!teamParams.brandName) {
@ -777,6 +746,20 @@
errMsg = "请填写名字" errMsg = "请填写名字"
} else if (!teamParams.idCardNum) { } else if (!teamParams.idCardNum) {
errMsg = "请填写身份证号"; errMsg = "请填写身份证号";
} else if (!teamParams.licenseImgList || !teamParams.licenseImgList.length) {
errMsg = "请上传公司营业执照";
} else if (!teamParams.companyName) {
errMsg = "请填写公司名称";
} else if (!teamParams.businessLicenseNum) {
errMsg = "请填写公司营业执照号码";
} else if (!teamParams.companyArea || !teamParams.companyArea.length) {
errMsg = "请选择公司地址所在省市区";
} else if (!teamParams.companyAddress) {
errMsg = "请输入营业执照地址/经营地址/服务网点";
} else if (!teamParams.legalPersionName) {
errMsg = "请填写法人姓名";
} else if (!teamParams.legalPersionPhoneNum) {
errMsg = "请填写法人联系电话";
} }
if (errMsg) { if (errMsg) {
uni.showToast({ uni.showToast({
@ -890,7 +873,7 @@
position: relative; position: relative;
height: 60rpx; height: 60rpx;
line-height: 60rpx; line-height: 60rpx;
flex-basis: 55%; flex-basis: 40%;
} }
.form-opt { .form-opt {

View File

@ -531,15 +531,14 @@
this.specialSkill[index].insurEndDate = e[1]; this.specialSkill[index].insurEndDate = e[1];
}, },
async chooseImage(e, imgList) { async chooseImage(e, imgList) {
uni.chooseMedia({ uni.chooseImage({
count: 1, //9 count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
// //
res.tempFiles.forEach((fileObj) => { res.tempFilePaths.forEach((tmpPath) => {
this.$request.uploadFile(fileObj.tempFilePath).then((url) => { this.$request.uploadFile(tmpPath).then((url) => {
// //
imgList.push(url); imgList.push(url);
}); });

View File

@ -32,7 +32,7 @@
</view> </view>
</view> </view>
<uni-collapse ref="collapse"> <uni-collapse ref="collapse">
<uni-collapse-item ref="collapseItem" :showArrow="false" v-for="(billItem, index) in bill" :key="index" :open="openStatusArr[index] === '0' ? true : false" > <uni-collapse-item ref="collapseItem" :showArrow="false" v-for="(billItem, index) in bill" :open="openStatusArr[index] === '0' ? true : false" >
<template v-slot:title> <template v-slot:title>
<view class="padding bg-white" :data-index="index" @click="showStatement"> <view class="padding bg-white" :data-index="index" @click="showStatement">
<view class="margin-bottom-xs">{{billItem.createTime}}</view> <view class="margin-bottom-xs">{{billItem.createTime}}</view>
@ -46,7 +46,6 @@
</template> </template>
<view class="content"> <view class="content">
<view v-for="(item, index1) in billItem.statement" <view v-for="(item, index1) in billItem.statement"
:key="index1"
class="bg-white padding flex justify-between align-center solid-bottom" @click="showDetail(bill[index].statement[index1])"> class="bg-white padding flex justify-between align-center solid-bottom" @click="showDetail(bill[index].statement[index1])">
<view> <view>
<view class="flex"> <view class="flex">

View File

@ -31,7 +31,7 @@
<view v-if="formData.specsList && formData.specsList.length > 0"> <view v-if="formData.specsList && formData.specsList.length > 0">
<checkbox-group class="padding-lr bg-white" @change="checkSpecs" <checkbox-group class="padding-lr bg-white" @change="checkSpecs"
:class="isShowAllSpecs ? '' : 'certern-height'"> :class="isShowAllSpecs ? '' : 'certern-height'">
<view v-for="(item, index) in formData.specsList" :key="index" class="padding-tb-sm"> <view v-for="(item, index) in formData.specsList" class="padding-tb-sm">
<view class="flex"> <view class="flex">
<view class="flex-sub"> <view class="flex-sub">
<checkbox style="transform:scale(1)" class="margin-right-xs" <checkbox style="transform:scale(1)" class="margin-right-xs"
@ -149,7 +149,7 @@
</view> </view>
<view class="padding-lr bg-white"> <view class="padding-lr bg-white">
<checkbox-group @change="checkDistirct" class="grid col-3"> <checkbox-group @change="checkDistirct" class="grid col-3">
<view v-for="(item, index) in formData.districtList" :key="index" class="margin-tb-xs"> <view v-for="(item, index) in formData.districtList" class="margin-tb-xs">
<checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="index" <checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="index"
:checked="item.checked"></checkbox> :checked="item.checked"></checkbox>
<text>{{item.areaName}}</text> <text>{{item.areaName}}</text>
@ -165,7 +165,7 @@
v-model="formData.areaDesc" maxlength="-1" placeholder="如XX区XX街道未覆盖或XX区仅服务XX街道"></textarea> v-model="formData.areaDesc" maxlength="-1" placeholder="如XX区XX街道未覆盖或XX区仅服务XX街道"></textarea>
</view> </view>
<!-- 多城市 --> <!-- 多城市 -->
<view v-for="(item,index) in servArea" :key="index" class="bg-white"> <view v-for="(item,index) in servArea" class="bg-white">
<view class="solid-top"> <view class="solid-top">
<view @click="delServArea(index)"> <view @click="delServArea(index)">
<button class="cu-btn bg-red light"> <button class="cu-btn bg-red light">
@ -177,19 +177,19 @@
<view class="title">上架区域<text class="text-red">*</text></view> <view class="title">上架区域<text class="text-red">*</text></view>
<picker :mode="'multiSelector'" @change="multiRegionChange($event, index)" <picker :mode="'multiSelector'" @change="multiRegionChange($event, index)"
@columnchange="multiRegionColChange($event, index)" @columnchange="multiRegionColChange($event, index)"
:value="item.regionMultiIndex" :range-key="'areaName'" :value="servArea[index].regionMultiIndex" :range-key="'areaName'"
:range="item.regionList"> :range="servArea[index].regionList">
<input disabled class="line-input radius-input" v-if="item.region" <input disabled class="line-input radius-input" v-if="servArea[index].region"
:value="item.region && item.region.length ? item.region[0].areaName + '-' + item.region[1].areaName : ''" :value="servArea[index].region && servArea[index].region.length ? servArea[index].region[0].areaName + '-' + servArea[index].region[1].areaName : ''"
placeholder="请选择区域"></input> placeholder="请选择区域"></input>
</picker> </picker>
</view> </view>
<view class="padding-lr bg-white"> <view class="padding-lr bg-white">
<checkbox-group @change="multiAreaCheckDistirct($event, index)" class="grid col-3"> <checkbox-group @change="multiAreaCheckDistirct($event, index)" class="grid col-3">
<view v-for="(item1, index1) in item.districtList" :key="item1.id" class="margin-tb-xs"> <view v-for="(item, index1) in servArea[index].districtList" class="margin-tb-xs">
<checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="index1" <checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="index1"
:checked="item1.checked"></checkbox> :checked="item.checked"></checkbox>
<text>{{item1.areaName}}</text> <text>{{item.areaName}}</text>
</view> </view>
</checkbox-group> </checkbox-group>
</view> </view>
@ -744,14 +744,13 @@
chooseImgList(e, imgListField, cropWidth, cropHeight) { chooseImgList(e, imgListField, cropWidth, cropHeight) {
this.cropWidth = cropWidth && cropWidth > 0 ? cropWidth : this.sysInfo.windowWidth * 2; this.cropWidth = cropWidth && cropWidth > 0 ? cropWidth : this.sysInfo.windowWidth * 2;
this.cropHeight = cropHeight && cropHeight > 0 ? cropHeight : this.sysInfo.windowWidth * 2 * 1.15; this.cropHeight = cropHeight && cropHeight > 0 ? cropHeight : this.sysInfo.windowWidth * 2 * 1.15;
uni.chooseMedia({ uni.chooseImage({
count: 1, //9 count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
res.tempFiles.forEach((fileObj, index) => { res.tempFilePaths.forEach((tmpUrl, index) => {
this.url2Crop = fileObj.tempFilePath; this.url2Crop = tmpUrl;
this.curImgListField = imgListField; this.curImgListField = imgListField;
}); });
} }
@ -774,9 +773,8 @@
this.url2Crop = ""; this.url2Crop = "";
}, },
chooseImgNoCrop(e, imgListField) { chooseImgNoCrop(e, imgListField) {
uni.chooseMedia({ uni.chooseImage({
count: 9, //9 count: 9, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
@ -784,10 +782,10 @@
title: '上传中', title: '上传中',
mask: true mask: true
}); });
res.tempFiles.forEach((fileObj, index) => { res.tempFilePaths.forEach((tmpUrl, index) => {
this.$request.uploadFile(fileObj.tempFilePath).then((url) => { this.$request.uploadFile(tmpUrl).then((url) => {
this.formData[imgListField].push(url); this.formData[imgListField].push(url);
if (index === res.tempFiles.length - 1) { if (index === res.tempFilePaths.length - 1) {
uni.hideLoading(); uni.hideLoading();
} }
}); });

View File

@ -3,18 +3,13 @@
<!-- 顶部操作条 --> <!-- 顶部操作条 -->
<cu-custom :bgColor="'bg-main-color'" :isBack="true"> <cu-custom :bgColor="'bg-main-color'" :isBack="true">
<block slot="backText">返回</block> <block slot="backText">返回</block>
<block slot="content">商家信息</block> <block slot="content">个人信息</block>
</cu-custom> </cu-custom>
<form @submit="submit"> <form @submit="submit">
<view class="text-center padding-tb-lg">
<button class="cu-avatar round"
:style="'width: 120rpx; height: 120rpx; background-image:url(' + curUserInfo.workerLogoUrl + ');'"
open-type="chooseAvatar" @chooseavatar="onChooseAvatar"></button>
</view>
<view class="margin-top-sm bg-white"> <view class="margin-top-sm bg-white">
<view class="cu-form-group"> <view class="cu-form-group">
<view class="title">商家昵称</view> <view class="title">用户昵称</view>
<input name="name" v-model="curUserInfo.name"></input> <input name="name" :value="curUserInfo.name"></input>
</view> </view>
<view class="cu-form-group"> <view class="cu-form-group">
<view class="title">公司名称</view> <view class="title">公司名称</view>
@ -36,9 +31,9 @@
</view> </view>
</view> </view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<view class="cu-bar tabbar border shop fixed-bottom-bar"> <!-- <view class="cu-bar tabbar border shop fixed-bottom-bar">
<button class="cu-btn bg-main-color long-btn margin-lr-sm shadow-blur" form-type="submit">保存</button> <button class="cu-btn bg-main-color long-btn margin-lr-sm shadow-blur" form-type="submit">保存</button>
</view> </view> -->
</form> </form>
</view> </view>
</template> </template>
@ -47,19 +42,13 @@
export default { export default {
data() { data() {
return { return {
curUserInfo: {}, curUserInfo: {}
avatarUrl: '',
} }
}, },
onLoad() { onLoad() {
this.loadData(); this.loadData();
}, },
methods: { methods: {
onChooseAvatar(e) {
this.$request.uploadFile(e.detail.avatarUrl).then((url) => {
this.curUserInfo.workerLogoUrl = url;
});
},
async loadData() { async loadData() {
this.curUserInfo = await this.$request.getCurUserNoCache(); this.curUserInfo = await this.$request.getCurUserNoCache();
}, },
@ -67,25 +56,6 @@
uni.navigateTo({ uni.navigateTo({
url: '/pages/my/account-security' url: '/pages/my/account-security'
}) })
},
async submit() {
let res = await this.$request.updateWorker({
workerId: this.curUserInfo.workerId,
name: this.curUserInfo.name,
workerLogoUrl: this.curUserInfo.workerLogoUrl
})
if (res && res.code === 0) {
uni.showToast({
icon: 'success',
title: '更新成功'
})
let timeout = setTimeout(() => {
uni.navigateTo({
url: '/pages/index/index?menuCode=myPage'
})
clearTimeout(timeout);
}, 1500);
}
} }
}, },
} }

View File

@ -108,20 +108,15 @@
}) })
}, },
chooseImage(e) { chooseImage(e) {
uni.chooseMedia({ uni.chooseImage({
count: 9, //9 count: 9, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath)
})
if (this.imgList.length != 0) { if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(tempFilePaths) this.imgList = this.imgList.concat(res.tempFilePaths)
} else { } else {
this.imgList = tempFilePaths this.imgList = res.tempFilePaths
} }
} }
}); });

View File

@ -99,20 +99,15 @@
}, },
methods: { methods: {
chooseImgList(e) { chooseImgList(e) {
uni.chooseMedia({ uni.chooseImage({
count: 9, //9 count: 9, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath)
})
if (this.formData.imgList.length != 0) { if (this.formData.imgList.length != 0) {
this.formData.imgList = this.formData.imgList.concat(tempFilePaths) this.formData.imgList = this.formData.imgList.concat(res.tempFilePaths)
} else { } else {
this.formData.imgList = tempFilePaths this.formData.imgList = res.tempFilePaths
} }
} }
}); });

View File

@ -193,8 +193,7 @@
workerId: member.workerId, workerId: member.workerId,
totalPay: this.dispatchTotalPrice, totalPay: this.dispatchTotalPrice,
orderMasterId: this.curOrder.orderMasterId, orderMasterId: this.curOrder.orderMasterId,
isAll: isAll, isAll: isAll
workerName: member.workerName || member.name
} }
this.$emit('assignWork', params); this.$emit('assignWork', params);
} else { } else {

View File

@ -21,7 +21,7 @@
<view class="margin-top-sm bg-white padding"> <view class="margin-top-sm bg-white padding">
<!-- 服务指标 --> <!-- 服务指标 -->
<checkbox-group class="block" @change="changeServIndexChecked"> <checkbox-group class="block" @change="changeServIndexChecked">
<view style="min-width: 50%;" class="flex justify-start align-center margin-top-sm float-left" v-for="(item, index) in servIndex" :key="index"> <view style="min-width: 50%;" class="flex justify-start align-center margin-top-sm float-left" v-for="(item, index) in servIndex">
<checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="item.code"> <checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="item.code">
</checkbox> </checkbox>
<text class="text-sm">{{item.desc}}</text> <text class="text-sm">{{item.desc}}</text>
@ -96,9 +96,8 @@
this.order = orderInfo; this.order = orderInfo;
}, },
chooseImgList(e, imgList) { chooseImgList(e, imgList) {
uni.chooseMedia({ uni.chooseImage({
count: 12 - imgList.length, //9 count: 12 - imgList.length, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
@ -106,10 +105,10 @@
title: '上传中', title: '上传中',
mask: true mask: true
}); });
res.tempFiles.forEach((fileObj, index) => { res.tempFilePaths.forEach((tmpUrl, index) => {
this.$request.uploadFile(fileObj.tempFilePath).then((url) => { this.$request.uploadFile(tmpUrl).then((url) => {
imgList.push(url); imgList.push(url);
if (index === res.tempFiles.length - 1) { if (index === res.tempFilePaths.length - 1) {
uni.hideLoading(); uni.hideLoading();
} }
}); });
@ -152,11 +151,6 @@
} }
return true; return true;
}, },
//
async addOrderOperate(params = {}) {
let res = await this.$request.addOrderOperate(params);
return res;
},
async finishOrder() { async finishOrder() {
if (!this.validData()) { if (!this.validData()) {
return; return;
@ -174,13 +168,10 @@
title: '提交成功', title: '提交成功',
duration: 1500 duration: 1500
}) })
this.addOrderOperate({
orderId: this.order.orderDetailId,
orderType: '02',
content: '师傅完工'
})
setTimeout(() => { setTimeout(() => {
uni.navigateBack() uni.navigateTo({
url: '/pages/order-manage/order-manage?tabCur=3'
})
}, 1500); }, 1500);
} else if (res && res.msg) { } else if (res && res.msg) {
uni.showToast({ uni.showToast({

View File

@ -23,7 +23,7 @@
<script> <script>
export default { export default {
name: 'acceptOrderNotice', name: 'acceptOrderNotice',
emits: ['confirmFeedback', 'close'], emits: ['confirmFeedback'],
props: { props: {
show: { show: {
type: Boolean, type: Boolean,
@ -31,7 +31,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
} }
}, },
data() { data() {
@ -39,8 +39,8 @@
} }
}, },
methods: { methods: {
hideModal() { hideModal(e) {
this.$emit('close'); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
contactCustomer(e) { contactCustomer(e) {
this.hideModal(e); this.hideModal(e);

View File

@ -79,7 +79,7 @@
methods: { methods: {
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
resetData() { resetData() {
// this.data = null; // this.data = null;

View File

@ -1,296 +0,0 @@
<template>
<view class="cu-modal" :class="show?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end solid-bottom">
<view class="content">申请订单加价/预付款</view>
<view class="action" data-modal="applyExtraChargeModal" @click="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="bg-white padding text-left">
<view class="text-lg padding-top flex justify-start align-center">
<text class="title-input">加价金额</text>
<input type="digit" class="radius-input inline-input" placeholder="请输入金额(订单完成或取消后原路退回此款)" v-model="moneyAmount"></input>
</view>
<view class="text-lg padding-top flex justify-start align-center">
<text class="title-input">加价原因</text>
<picker style="width: 75%;" @change="bindPickerChange" :value="chooseIndex" :range="array">
<view class="radius-input inline-input custom-input">{{array[chooseIndex]}}</view>
</picker>
</view>
<view class="text-lg padding-top flex justify-start align-center">
<text class="title-input">{{chooseIndex < 6 ? '配件费' : '施工费'}}</text>
<input type="digit" class="radius-input inline-input" placeholder="请输入该费用实际金额" v-model="extraAmount"></input>
</view>
<view>
<view class="padding-tb-sm">凭证上传</view>
<view class="grid col-3 grid-square">
<view class="bg-img" v-for="(item,index) in imgList" :key="index"
@tap="viewImage($event, imgList)" :data-url="item">
<image :src="item" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="delImg($event, imgList)" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="chooseImage" v-if="imgList.length < 1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view>
<view class="padding-tb-sm">申请原因</view>
<view class="solid">
<textarea style="width: 100%; height: 200rpx;" fixed="true" class="radius text-left padding-sm"
v-model="remark" maxlength="-1"></textarea>
</view>
</view>
</view>
<view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="applyChargeModal"
@click="hideModal">取消</view>
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="applyChargeModal"
@click="submit">确认</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'applyCharge',
props: {
show: {
type: Boolean,
default: false
},
data: {
type: Object,
default: () => {}
}
},
data() {
return {
array: ['加单加价','加急费','拆机/拆换费','搬运费','清理费','远程费','施工费','垫付金','奖励金','质保金','客户押金','工具押金','物品押金'],
chooseIndex: 0,
imgList: [],
moneyAmount: '',
reason: '1',
extraAmount: '',
remark: ''
}
},
methods: {
bindPickerChange(e) {
this.chooseIndex = parseInt(e.detail.value)
},
hideModal(e) {
this.$emit('close', e);
},
chooseImage(e) {
uni.chooseMedia({
count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath)
})
if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(tempFilePaths)
} else {
this.imgList = tempFilePaths
}
}
});
},
viewImage(e, imgList) {
uni.previewImage({
urls: imgList,
current: e.currentTarget.dataset.url
});
},
delImg(e, imgList) {
uni.showModal({
title: '',
content: '确定要删除这张图片吗?',
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
imgList.splice(e.currentTarget.dataset.index, 1)
}
}
})
},
async resetPriceChangedInfo() {
let res = await this.$request.getChangeOrderPrice(this.data);
if (res && res.code === 0) {
return res.data
}
},
resetData() {
this.chooseIndex = 0
this.imgList = []
this.moneyAmount = ''
this.extraAmount = ''
this.remark = ''
},
async submit(e) {
if (!this.moneyAmount) {
uni.showToast({
title: '请输入本次加价总金额',
icon: 'none'
});
return;
}
if (!this.extraAmount) {
uni.showToast({
title: '请输入该费用实际金额',
icon: 'none'
});
return;
}
if(this.chooseIndex === 6 && this.imgList.length === 0) {
uni.showToast({
title: '请上传凭证,至少一张',
icon: 'none'
});
return;
}
const num_moneyAmount = parseInt(this.moneyAmount)
const num_extraAmount = parseInt(this.extraAmount)
if(num_extraAmount > num_moneyAmount) {
uni.showToast({
title: '费用实际金额不能大于本次加价总金额',
icon: 'none'
});
return;
}
if(this.chooseIndex < 6 && num_moneyAmount == num_extraAmount) {
//
console.log('调用详情接口',{
orderDetailId: this.data.orderDetailId,
attachMoney: this.moneyAmount,
type: '01'
});
//
let res = await this.$request.addOrderAttach({
orderDetailId: this.data.orderDetailId,
attachMoney: this.moneyAmount,
type: '01'
});
if (res.code === 0) {
uni.showToast({
title: '操作成功',
icon: 'success'
});
this.hideModal(e);
this.resetData()
}
} else if(this.chooseIndex >= 6 && num_moneyAmount == num_extraAmount) {
//
const res = await this.resetPriceChangedInfo()
if (res && res.type != 1) {
uni.showToast({
icon: 'none',
title: '你有加价未付款,请客户支付后再加或在原加价上增加金额!',
duration: 3500
})
return;
}
console.log('调用列表接口',{
orderDetailId: this.data.orderDetailId,
changeMoney: num_moneyAmount,
type: 1,
remark: this.remark
});
let res1 = await this.$request.changeOrderPrice({
orderDetailId: this.data.orderDetailId,
changeMoney: newPrice,
type: this.payAction,
remark: this.remark
});
if (res1 && res1.code === 0) {
uni.showToast({
icon: 'success',
title: '操作成功'
})
this.hideModal(e);
this.resetData()
}
} else if(num_moneyAmount > num_extraAmount) {
const res = await this.resetPriceChangedInfo()
if (res && res.type != 1) {
uni.showToast({
icon: 'none',
title: '你有加价未付款,请客户支付后再加或在原加价上增加金额!',
duration: 3500
})
return;
}
let type1_price, type2_price;
if(this.chooseIndex < 6) {
type1_price = num_extraAmount
type2_price = num_moneyAmount - num_extraAmount
} else {
type2_price = num_extraAmount
type1_price = num_moneyAmount - num_extraAmount
}
console.log('调用详情接口',{
orderDetailId: this.data.orderDetailId,
attachMoney: type1_price,
type: '01'
});
let res1 = await this.$request.addOrderAttach({
orderDetailId: this.data.orderDetailId,
attachMoney: type1_price,
type: '01'
});
if (res1.code != 0) return
console.log('调用列表接口',{
orderDetailId: this.data.orderDetailId,
changeMoney: type2_price,
type: 1,
remark: this.remark
});
let res2 = await this.$request.changeOrderPrice({
orderDetailId: this.data.orderDetailId,
changeMoney: type2_price,
type: this.payAction,
remark: this.remark
});
if (res2.code != 0) return
uni.showToast({
icon: 'success',
title: '操作成功'
})
this.hideModal(e);
this.resetData()
}
}
}
}
</script>
<style scoped>
.grid.col-3.grid-square>view {
padding-bottom: calc((100% - 40rpx)/3);
height: 0;
width: calc((100% - 40rpx)/3);
}
.inline-input {
flex-basis: 70%;
}
.title-input {
display: inline-block;
width: 165rpx;
}
.custom-input {
height: 1.4rem;
min-height: 1.4rem;
}
</style>

View File

@ -1,150 +0,0 @@
<template>
<view class="cu-modal" :class="show?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end solid-bottom">
<view class="content">附加费用申请</view>
<view class="action" data-modal="applyExtraChargeModal" @click="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="bg-white padding text-left">
<view class="text-lg padding-top flex justify-start align-center">
<text>金额</text>
<input type="digit" class="radius-input inline-input" v-model="moneyAmount"></input>
</view>
<view class="text-lg padding-top flex justify-start align-center">
<text>原因</text>
<input type="text" class="radius-input inline-input" v-model="reason" disabled value="配件费"></input>
</view>
<view>
<view class="padding-tb-sm">上传图片</view>
<view class="grid col-3 grid-square">
<view class="bg-img" v-for="(item,index) in imgList" :key="index"
@tap="viewImage($event, imgList)" :data-url="item">
<image :src="item" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="delImg($event, imgList)" :data-index="index">
<text class='cuIcon-close'></text>
</view>
</view>
<view class="solids" @tap="chooseImage" v-if="imgList.length < 1">
<text class='cuIcon-cameraadd'></text>
</view>
</view>
</view>
<view>
<view class="padding-tb-sm">申请原因</view>
<view class="solid">
<textarea style="width: 100%; height: 200rpx;" fixed="true" class="radius text-left padding-sm"
v-model="remark" maxlength="-1"></textarea>
</view>
</view>
</view>
<view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="applyExtraChargeModal"
@click="hideModal">取消</view>
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="applyExtraChargeModal"
@click="submit">确认</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'applyExtraCharge',
props: {
show: {
type: Boolean,
default: false
},
data: {
type: Object,
default: {}
}
},
data() {
return {
imgList: [],
moneyAmount: '',
reason: ''
}
},
methods: {
hideModal(e) {
this.$emit('close', e);
},
chooseImage(e) {
uni.chooseMedia({
count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath)
})
if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(tempFilePaths)
} else {
this.imgList = tempFilePaths
}
}
});
},
viewImage(e, imgList) {
uni.previewImage({
urls: imgList,
current: e.currentTarget.dataset.url
});
},
delImg(e, imgList) {
uni.showModal({
title: '',
content: '确定要删除这张图片吗?',
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
imgList.splice(e.currentTarget.dataset.index, 1)
}
}
})
},
async submit(e) {
if (!this.moneyAmount) {
uni.showToast({
title: '请输入金额',
icon: 'none'
});
return;
}
//
let res = await this.$request.addOrderAttach({
orderDetailId: this.data.orderDetailId,
attachMoney: this.moneyAmount,
type: '01'
});
if (res.code === 0) {
uni.showToast({
title: '操作成功',
icon: 'success'
});
this.hideModal(e);
}
}
}
}
</script>
<style scoped>
.grid.col-3.grid-square>view {
padding-bottom: calc((100% - 40rpx)/3);
height: 0;
width: calc((100% - 40rpx)/3);
}
.inline-input {
flex-basis: 75%;
}
</style>

View File

@ -79,7 +79,7 @@
<script> <script>
export default { export default {
name: 'edit-time-arrange', name: 'edit-time-arrange',
emits: ['showArrangeFailTime', 'editServTime', 'close'], emits: ['showArrangeFailTime', 'editServTime'],
props: { props: {
show: { show: {
type: Boolean, type: Boolean,
@ -87,7 +87,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
}, },
curDate: { curDate: {
type: String, type: String,
@ -161,7 +161,7 @@
}, },
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
cannotArrangeTime(e) { cannotArrangeTime(e) {
this.resetData(); this.resetData();

View File

@ -23,9 +23,8 @@
<text>加单总额</text> <text>加单总额</text>
<input class="radius-input inline-input" type="digit" v-model="newPriceForA1"></input> <input class="radius-input inline-input" type="digit" v-model="newPriceForA1"></input>
<text class="margin-left-xs"></text> <text class="margin-left-xs"></text>
<view class="cu-btn line-main-color sm margin-left" <view class="cu-btn line-main-color sm margin-left" v-if="priceObj && priceObj.type == 1"
v-if="priceObj && priceObj.type == 1" @click="changeOrderPrice(newPriceForA1)">修改报价 @click="changeOrderPrice(newPriceForA1)">修改报价</view>
</view>
<view class="cu-btn line-main-color sm margin-left" v-else <view class="cu-btn line-main-color sm margin-left" v-else
@click="changeOrderPrice(newPriceForA1)">确认报价</view> @click="changeOrderPrice(newPriceForA1)">确认报价</view>
</view> </view>
@ -39,9 +38,8 @@
<text>报价总额</text> <text>报价总额</text>
<input class="radius-input inline-input" type="digit" v-model="newPriceForA2"></input> <input class="radius-input inline-input" type="digit" v-model="newPriceForA2"></input>
<text class="margin-left-xs"></text> <text class="margin-left-xs"></text>
<view class="cu-btn line-main-color sm margin-left" <view class="cu-btn line-main-color sm margin-left" v-if="priceObj && priceObj.type == 2"
v-if="priceObj && priceObj.type == 2" @click="changeOrderPrice(newPriceForA2)">修改报价 @click="changeOrderPrice(newPriceForA2)">修改报价</view>
</view>
<view class="cu-btn line-main-color sm margin-left" v-else <view class="cu-btn line-main-color sm margin-left" v-else
@click="changeOrderPrice(newPriceForA2)">确认报价</view> @click="changeOrderPrice(newPriceForA2)">确认报价</view>
</view> </view>
@ -53,28 +51,15 @@
v-model="remark" maxlength="-1" v-model="remark" maxlength="-1"
placeholder="报价额需符合双方约定并把关键内容附上。如保内维修XX含配件XXX等分别XX元。如约定下单方寄配件则订单内“申请配件发起”。"></textarea> placeholder="报价额需符合双方约定并把关键内容附上。如保内维修XX含配件XXX等分别XX元。如约定下单方寄配件则订单内“申请配件发起”。"></textarea>
</view> </view>
<view class="cu-btn line-main-color margin-top-sm long-btn" v-if="priceObj" @click="clearCurAddedPrice"> <view class="cu-btn line-main-color margin-top-sm long-btn" v-if="priceObj" @click="clearCurAddedPrice">清空加价</view>
清空加价</view>
</view> </view>
<view class="cu-bar bg-white solid-top"> <view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOfflineModal" <view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOfflineModal"
@click="hideModal">退出/再次上门</view> @click="hideModal">退出/再次上门</view>
<!-- <view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOfflineModal" <view class="action margin-0 flex-sub text-main-color solid-left" v-if="(priceObj && priceObj.payStatus === 0) || data.payStatus === 0"
@click="directlyFinish" v-if="data.consultMode === '01' && data.changeMoney != 0">直接完单</view> --> data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<template v-if="data.consultMode === '01'"> <view class="action margin-0 flex-sub text-main-color solid-left"
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showNewServPriceOfflineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
v-if="(priceObj && priceObj.payStatus === 0) || data.changeMoney != 0"
data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showNewServPriceOnlineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
</template>
<template v-else>
<view class="action margin-0 flex-sub text-main-color solid-left"
v-if="(priceObj && priceObj.payStatus === 0) || data.payStatus === 0"
data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showNewServPriceOnlineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
</template>
</view> </view>
</view> </view>
<pay-qrcode ref="payQrcode" :show="showPayQrcodeModal" :data="data" @finishQrPay="finishQrPay"></pay-qrcode> <pay-qrcode ref="payQrcode" :show="showPayQrcodeModal" :data="data" @finishQrPay="finishQrPay"></pay-qrcode>
@ -96,7 +81,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
} }
}, },
data() { data() {
@ -137,7 +122,7 @@
}, },
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
async resetPriceChangedInfo() { async resetPriceChangedInfo() {
let res = await this.$request.getChangeOrderPrice(this.data); let res = await this.$request.getChangeOrderPrice(this.data);
@ -175,19 +160,6 @@
}, 1500); }, 1500);
} }
}, },
async directlyFinish(e) {
let res = await this.$request.editOrder({
id: this.data.orderDetailId,
orderStatus: 5
});
if (res && res.code === 0) {
uni.showToast({
icon: 'success',
title: '操作成功'
})
this.hideModal(e)
}
},
async makePayQrcode(e) { async makePayQrcode(e) {
let res = await this.$request.priceAddedQrPay(this.data); let res = await this.$request.priceAddedQrPay(this.data);
if (res && res.code === 0) { if (res && res.code === 0) {

View File

@ -56,22 +56,10 @@
<view class="cu-bar bg-white solid-top"> <view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOnlineModal" <view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOnlineModal"
@click="hideModal">退出/再次上门</view> @click="hideModal">退出/再次上门</view>
<!-- <view class="action margin-0 flex-sub text-black" data-modal="showNewServPriceOfflineModal" <view class="action margin-0 flex-sub text-main-color solid-left" v-if="(priceObj && priceObj.payStatus === 0) || data.payStatus === 0"
@click="directlyFinish" v-if="data.consultMode === '01'">直接完单</view> --> data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<template v-if="data.consultMode === '01'"> <view class="action margin-0 flex-sub text-main-color solid-left"
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showNewServPriceOnlineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
v-if="(priceObj && priceObj.payStatus === 0) || data.changeMoney != 0"
data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showNewServPriceOnlineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
</template>
<template v-else>
<view class="action margin-0 flex-sub text-main-color solid-left"
v-if="(priceObj && priceObj.payStatus === 0) || data.payStatus === 0"
data-modal="showPayQrcodeModal" @tap="makePayQrcode($event)">请客户支付</view>
<view class="action margin-0 flex-sub text-main-color solid-left"
data-modal="showNewServPriceOnlineModal" @tap="hideModal" @click="goFinishOrder" v-else>去完单</view>
</template>
</view> </view>
</view> </view>
<pay-qrcode ref="payQrcode" :show="showPayQrcodeModal" :data="data" @finishQrPay="finishQrPay"></pay-qrcode> <pay-qrcode ref="payQrcode" :show="showPayQrcodeModal" :data="data" @finishQrPay="finishQrPay"></pay-qrcode>
@ -93,7 +81,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
} }
}, },
data() { data() {
@ -134,7 +122,7 @@
}, },
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
async resetPriceChangedInfo() { async resetPriceChangedInfo() {
let res = await this.$request.getChangeOrderPrice(this.data); let res = await this.$request.getChangeOrderPrice(this.data);
@ -146,19 +134,6 @@
changePayAction(payAction) { changePayAction(payAction) {
this.payAction = payAction; this.payAction = payAction;
}, },
async directlyFinish(e) {
let res = await this.$request.editOrder({
id: this.data.orderDetailId,
orderStatus: 5
});
if (res && res.code === 0) {
uni.showToast({
icon: 'success',
title: '操作成功'
})
this.hideModal(e)
}
},
async changeOrderPrice(newPrice) { async changeOrderPrice(newPrice) {
if (this.priceObj && this.payAction != this.priceObj.type) { if (this.priceObj && this.payAction != this.priceObj.type) {
uni.showToast({ uni.showToast({

View File

@ -38,7 +38,7 @@
export default { export default {
name: 'onDoorImmediately', name: 'onDoorImmediately',
emits: ['confirmFeedback', 'close'], emits: ['confirmFeedback'],
props: { props: {
show: { show: {
type: Boolean, type: Boolean,
@ -46,7 +46,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
} }
}, },
components: { components: {
@ -59,17 +59,12 @@
} }
}, },
methods: { methods: {
hideModal() { hideModal(e) {
this.$emit('close'); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
minChange(e) { minChange(e) {
this.waitMin = this.minList[e.detail.value]; this.waitMin = this.minList[e.detail.value];
}, },
//
async addOrderOperate(params = {}) {
let res = await this.$request.addOrderOperate(params);
return res;
},
async workBegin(e) { async workBegin(e) {
let order = this.data; let order = this.data;
let curDate = new Date(); let curDate = new Date();
@ -87,11 +82,6 @@
icon: 'success', icon: 'success',
duration: 1000 duration: 1000
}) })
this.addOrderOperate({
orderId: order.orderDetailId,
orderType: '02',
content: '师傅上门'
})
this.hideModal(e); this.hideModal(e);
this.$emit('confirmFeedback'); this.$emit('confirmFeedback');
} }

View File

@ -80,7 +80,7 @@
methods: { methods: {
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
resetData() { resetData() {
this.data = null; this.data = null;
@ -91,9 +91,8 @@
this.reasonType = e.detail.value; this.reasonType = e.detail.value;
}, },
chooseImgList(e, imgList) { chooseImgList(e, imgList) {
uni.chooseMedia({ uni.chooseImage({
count: 3 - imgList.length, //9 count: 3 - imgList.length, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
@ -101,10 +100,10 @@
title: '上传中', title: '上传中',
mask: true mask: true
}); });
res.tempFiles.forEach((fileObj, index) => { res.tempFilePaths.forEach((tmpUrl, index) => {
this.$request.uploadFile(fileObj.tempFilePath).then((url) => { this.$request.uploadFile(tmpUrl).then((url) => {
imgList.push(url); imgList.push(url);
if (index === res.tempFiles.length - 1) { if (index === res.tempFilePaths.length - 1) {
uni.hideLoading(); uni.hideLoading();
} }
}); });

View File

@ -1,54 +0,0 @@
<template>
<view>
<!-- 模态框 -->
<view class="cu-modal" :class="show?'show':''">
<view class="cu-dialog">
<view class="padding-xl" style="background-color: #ffffff;">
<view class="text-bold text-lg margin-bottom-sm">任务进度</view>
<view class="cu-timeline">
<view class="cu-item text-main-color" v-for="(item, index) in arr" :key="index">
<view class="content shadow-blur" style="text-align: left;padding: 15upx 20upx;">
<view><text style="color: black;">{{item.content}}</text></view>
<text style="color: #999999;font-size: 24upx;">{{item.createTime}}</text>
</view>
</view>
</view>
</view>
<view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black solid-left" data-modal="taskProcessDetail"
@tap="hideModal">关闭</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'taskProcessDetail',
emits: ['confirmFeedback'],
props: {
show: {
type: Boolean,
default: false
},
arr: {
type: Object,
default: () => []
}
},
data() {
return {
}
},
methods: {
hideModal(e) {
this.$emit('close', e);
}
}
}
</script>
<style>
</style>

View File

@ -64,7 +64,7 @@
}, },
data: { data: {
type: Object, type: Object,
default: () => {} default: {}
} }
}, },
data() { data() {
@ -76,23 +76,18 @@
}, },
methods: { methods: {
hideModal(e) { hideModal(e) {
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
chooseImage(e) { chooseImage(e) {
uni.chooseMedia({ uni.chooseImage({
count: 1, //9 count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath)
})
if (this.imgList.length != 0) { if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(tempFilePaths) this.imgList = this.imgList.concat(res.tempFilePaths)
} else { } else {
this.imgList = tempFilePaths this.imgList = res.tempFilePaths
} }
} }
}); });

View File

@ -61,7 +61,7 @@
<script> <script>
export default { export default {
name: 'time-arrange', name: 'time-arrange',
emits: ['showArrangeFailTime', 'editServTime', 'close'], emits: ['showArrangeFailTime', 'editServTime'],
props: { props: {
show: { show: {
type: Boolean, type: Boolean,
@ -139,7 +139,7 @@
}, },
hideModal(e) { hideModal(e) {
this.resetData(); this.resetData();
this.$emit('close', e); uni.$emit(this.$globalFun.HIDE_MODAL, e);
}, },
cannotArrangeTime(e) { cannotArrangeTime(e) {
this.resetData(); this.resetData();
@ -162,11 +162,6 @@
id: order.orderMasterId, id: order.orderMasterId,
isCall: '02' isCall: '02'
}); });
} else {
this.$request.callDetailCustomer({
id: order.orderDetailId,
isCall: '02'
});
} }
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: order.customerPhone phoneNumber: order.customerPhone

View File

@ -73,20 +73,15 @@
this.toWho = toWho; this.toWho = toWho;
}, },
chooseImgList(e) { chooseImgList(e) {
uni.chooseMedia({ uni.chooseImage({
count: 9, //9 count: 9, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], // sizeType: ['original', 'compressed'], //
sourceType: ['album'], // sourceType: ['album'], //
success: (res) => { success: (res) => {
let tempFilePaths = [];
res.tempFiles.forEach((fileObj) => {
tempFilePaths.push(fileObj.tempFilePath);
})
if (this.imgList.length != 0) { if (this.imgList.length != 0) {
this.imgList = this.imgList.concat(tempFilePaths) this.imgList = this.imgList.concat(res.tempFilePaths)
} else { } else {
this.imgList = tempFilePaths this.imgList = res.tempFilePaths
} }
} }
}); });

View File

@ -1,6 +1,6 @@
<template> <template>
<page-meta :page-style="'overflow:'+(ifShowPageMeta?'hidden':'visible')"></page-meta>
<view> <view>
<page-meta :page-style="'overflow:'+(ifShowPageMeta?'hidden':'visible')"></page-meta>
<!-- 顶部操作条 --> <!-- 顶部操作条 -->
<cu-custom :bgColor="'bg-main-color'" :isBack="true"> <cu-custom :bgColor="'bg-main-color'" :isBack="true">
<block slot="backText">返回</block> <block slot="backText">返回</block>
@ -93,7 +93,7 @@
</scroll-view> </scroll-view>
</view> </view>
<!-- tab content --> <!-- tab content -->
<view class="padding bg-white margin-top-sm margin-lr-sm" v-for="(order, index) in orderList" :key="index"> <view class="padding bg-white margin-top-sm margin-lr-sm" v-for="(order, index) in orderList">
<view class="flex justify-between"> <view class="flex justify-between">
<view class="text-lg text-bold text-cut">{{order.goodsName}}</view> <view class="text-lg text-bold text-cut">{{order.goodsName}}</view>
<!-- 不同状态订单使用不同角标 --> <!-- 不同状态订单使用不同角标 -->
@ -106,28 +106,14 @@
<view v-else-if="order.orderStatus === 5" class="right-tag padding-lr-sm padding-tb-xs bg-green"></view> <view v-else-if="order.orderStatus === 5" class="right-tag padding-lr-sm padding-tb-xs bg-green"></view>
</view> </view>
<view class="float-left"> <view class="float-left">
<view v-if="order.goodsBrand" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>{{order.goodsBrand}}</view> <view v-if="order.payType === 1" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>到付单</view>
<view v-if="order.goodsSpecification" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>{{order.goodsSpecification}}</view> <view v-if="order.changeMoney || order.payStatus != 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>有待付款</view>
</view> <view v-else class='cu-tag margin-right-xs radius line-red margin-top-xs'>款已付清</view>
<view class="float-left">
<view v-if="order.consultMode === '01'" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>合约单</view>
<view v-if="order.payType === 1 && order.consultMode !== '01'" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>到付单</view>
<template v-if="order.consultMode === '01'">
<view v-if="order.changeMoney" class='cu-tag margin-right-xs radius line-red margin-top-xs'>有待付款</view>
<view v-else class='cu-tag margin-right-xs radius line-red margin-top-xs'>款已付清</view>
</template>
<template v-else>
<view v-if="order.changeMoney || order.payStatus != 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>有待付款</view>
<view v-else class='cu-tag margin-right-xs radius line-red margin-top-xs'>款已付清</view>
</template>
</view> </view>
<view> <view>
<view v-if="order.timeout == 1" class="float-left"> <view v-if="order.timeout == 1" class="float-left">
<view v-if="order.orderStatus === 0" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未接单</view> <view v-if="order.orderStatus === 0" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未接单</view>
<view v-else-if="order.orderStatus === 1 && order.isCall === '1'" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未预约</view> <view v-else-if="order.orderStatus === 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未预约</view>
<view v-else-if="order.orderStatus === 1 && order.isCall === '02'" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未排单</view>
<view v-else-if="order.orderStatus === 1 && order.orderDetailId != null" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未预约</view>
<view v-else-if="order.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view> <view v-else-if="order.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view>
<view v-else-if="order.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view> <view v-else-if="order.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view>
</view> </view>
@ -138,7 +124,7 @@
<view v-else-if="timeoutRecord.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view> <view v-else-if="timeoutRecord.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view>
</view> --> </view> -->
</view> </view>
<view class="float-left" v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList" :key="afterServiceRecord.id"> <view class="float-left" v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy && !afterServiceRecord.updateBy" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后发起中</view> <view v-if="afterServiceRecord.createBy && !afterServiceRecord.updateBy" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后发起中</view>
<view v-if="afterServiceRecord.workerFeedbackResult == 1 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>售后已同意</view> <view v-if="afterServiceRecord.workerFeedbackResult == 1 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>售后已同意</view>
<view v-if="afterServiceRecord.workerFeedbackResult == 0 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后已拒绝</view> <view v-if="afterServiceRecord.workerFeedbackResult == 0 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后已拒绝</view>
@ -178,50 +164,40 @@
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-time"></text></text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-time"></text></text>
<text>完成时间{{order.workFinishTime}}</text> <text>完成时间{{order.workFinishTime}}</text>
</view> </view>
<template v-if="order.consultMode === '01' && order.orderStatus === 4 && order.payStatus != 1"> <view class="margin-top-sm flex justify-start align-center" v-if="order.orderDetailId != null && tabCur === 3 && order.drawCashStatus === 0 && $dateUtil.addHours(order.workFinishTime, 1).getTime() > new Date().getTime()">
<view class="margin-top-sm flex justify-start align-center"> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-time"></text></text>
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-time"></text></text> <text>距完单分帐</text>
<text>距完单分帐</text> <uni-countdown :show-colon="false" :backgroundColor="'#e35b33'" :color="'#faf3f0'"
<text style="color: #e35b33;">合约单按期结算款项请等待</text> :day="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).day"
</view> :hour="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).hour"
</template> :minute="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).min"
<template v-else> :second="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).seconds">
<view class="margin-top-sm flex justify-start align-center" v-if="order.orderDetailId != null && tabCur === 3 && order.drawCashStatus === 0 && $dateUtil.addHours(order.workFinishTime, 1).getTime() > new Date().getTime()"> </uni-countdown>
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-time"></text></text> </view>
<text>距完单分帐</text> <view class="margin-top-sm text-red" @click="normalShowModalByRef('ledgerAccountRemark')"
<uni-countdown :show-colon="false" :backgroundColor="'#e35b33'" :color="'#faf3f0'" v-if="order.orderDetailId != null && tabCur === 3 && order.drawCashStatus === 0 && $dateUtil.addHours(order.workFinishTime, 1).getTime() < new Date().getTime()">
:day="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).day" <text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
:hour="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).hour" <text>银联发起T+1支付中正在刷新...</text>
:minute="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).min" <text class="text-main-color margin-left-sm">详情</text>
:second="$dateUtil.countDownDiff($dateUtil.addHours(order.workFinishTime, 1)).seconds"> </view>
</uni-countdown> <view class="margin-top-sm text-red" @click="normalShowModalByRef('ledgerAccountRemark')"
</view> v-if="order.orderDetailId != null && order.drawCashStatus === 1">
<view class="margin-top-sm text-red" @click="normalShowModalByRef('ledgerAccountRemark')" <text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
v-if="order.orderDetailId != null && tabCur === 3 && order.drawCashStatus === 0 && $dateUtil.addHours(order.workFinishTime, 1).getTime() < new Date().getTime()"> <text>银联发起T+1支付中{{order.drawCashTime}}</text>
<text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text> <text class="text-main-color margin-left-sm">详情</text>
<text>银联发起T+1支付中正在刷新...</text> </view>
<text class="text-main-color margin-left-sm">详情</text> <!-- <view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === 2">
</view> <text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
<view class="margin-top-sm text-red" @click="normalShowModalByRef('ledgerAccountRemark')" <text>本单银联已确认货款结算完毕订单支付完成款项已到达或即将到达您所绑定帐户同意退款的需同意后您线下与客户另行操作系统无法提供原路返回退款</text>
v-if="order.orderDetailId != null && order.drawCashStatus === 1"> </view> -->
<text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text> <view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === 2">
<text>银联发起T+1支付中{{order.drawCashTime}}</text> <text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
<text class="text-main-color margin-left-sm">详情</text> <text>货款分账成功{{order.arrivalTime}}</text>
</view> </view>
<!-- <view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === 2"> <view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === -1">
<text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text> <text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
<text>本单银联已确认货款结算完毕订单支付完成款项已到达或即将到达您所绑定帐户同意退款的需同意后您线下与客户另行操作系统无法提供原路返回退款</text> <text>提现失败</text>
</view> --> </view>
<view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === 2">
<text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
<text>货款分账成功{{order.arrivalTime}}</text>
</view>
<view class="margin-top-sm text-red" v-if="order.orderDetailId != null && order.drawCashStatus === -1">
<text class="text-lg margin-right-xs"><text class="cuIcon-notice"></text></text>
<text>提现失败</text>
</view>
</template>
<!-- 不同状态订单支持不同操作按钮 --> <!-- 不同状态订单支持不同操作按钮 -->
<view v-if="order.orderStatus === 0"> <view v-if="order.orderStatus === 0">
<!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-popup="dispatchOrder" @click="getCanAssignList(order)" @tap="togglePopup($event, order)">派单</button> <!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-popup="dispatchOrder" @click="getCanAssignList(order)" @tap="togglePopup($event, order)">派单</button>
@ -239,14 +215,13 @@
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="assignWork2MySelf(order)" v-show="order.orderDetailId == null">自己承接</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="assignWork2MySelf(order)" v-show="order.orderDetailId == null">自己承接</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showTimeArrangeModal" @tap="showModal($event, order)">预约时间</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showTimeArrangeModal" @tap="showModal($event, order)">预约时间</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" v-if="order.orderDetailId != null" @click="rejectDetailOrder(order)">退单</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" v-if="order.orderDetailId != null" @click="rejectDetailOrder(order)">退单</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" v-if="order.orderDetailId == null" @click="rejectMasterOrderWhenAccepted(order)">退单</button>
</view> </view>
<view v-else-if="order.orderStatus === 1"> <view v-else-if="order.orderStatus === 1">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button>
</view> </view>
<view v-if="order.orderStatus === 2"> <view v-if="order.orderStatus === 2">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="makePhoneCall(order.customerPhone)">联系客户</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="makePhoneCall(order)">联系客户</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">修改时间</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">修改时间</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showOnDoorNoticeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">立即上门</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showOnDoorNoticeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">立即上门</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" v-if="order.orderDetailId != null" @click="rejectDetailOrder(order)">退单</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" v-if="order.orderDetailId != null" @click="rejectDetailOrder(order)">退单</button>
@ -259,7 +234,7 @@
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOnline" data-modal="showNewServPriceOnlineModal" v-show="order.orderDetailId != null && order.clockInLocation && order.payType === 0">报价/完单</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOnline" data-modal="showNewServPriceOnlineModal" v-show="order.orderDetailId != null && order.clockInLocation && order.payType === 0">报价/完单</button>
<!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOffline" data-modal="showNewServPriceOfflineModal" v-show="order.orderDetailId != null && order.payType === 1">报价/完单</button> --> <!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOffline" data-modal="showNewServPriceOfflineModal" v-show="order.orderDetailId != null && order.payType === 1">报价/完单</button> -->
<!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOnline" data-modal="showNewServPriceOnlineModal" v-show="order.orderDetailId != null && order.payType === 0">报价/完单</button> --> <!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOnline" data-modal="showNewServPriceOnlineModal" v-show="order.orderDetailId != null && order.payType === 0">报价/完单</button> -->
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="makePhoneCall(order.customerPhone)">联系客户</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="makePhoneCall(order)">联系客户</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">重新排期</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)" v-show="order.orderDetailId != null">重新排期</button>
<!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="finishOrder(order)" v-if="order.payStatus === 1" v-show="order.orderDetailId != null">发起完单</button> --> <!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="finishOrder(order)" v-if="order.payStatus === 1" v-show="order.orderDetailId != null">发起完单</button> -->
<!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showPayQrcodeModal" v-if="order.payStatus === 0" @tap="makePayQrcode($event, order)" v-show="order.orderDetailId != null">生成收款码</button> --> <!-- <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showPayQrcodeModal" v-if="order.payStatus === 0" @tap="makePayQrcode($event, order)" v-show="order.orderDetailId != null">生成收款码</button> -->
@ -267,8 +242,6 @@
</view> </view>
<view v-if="order.orderStatus === 4 || order.orderStatus === 5"> <view v-if="order.orderStatus === 4 || order.orderStatus === 5">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click="showServOrderDetail(order)">查看</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOffline" data-modal="showNewServPriceOfflineModal" v-show="order.orderDetailId != null && order.clockInLocation && order.payType === 1 && order.consultMode === '01'">报价/完单</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @click = "changePrice($event, order)" data-ref="newServPriceOnline" data-modal="showNewServPriceOnlineModal" v-show="order.orderDetailId != null && order.clockInLocation && order.payType === 0 && order.consultMode === '01'">报价/完单</button>
</view> </view>
<!-- <view v-if="order.orderStatus === 'afterSaleService'"> <!-- <view v-if="order.orderStatus === 'afterSaleService'">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="makePhoneCall(order.customerPhone)">联系客户</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" @tap="makePhoneCall(order.customerPhone)">联系客户</button>
@ -276,7 +249,7 @@
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm">立即上门</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm">立即上门</button>
</view> --> </view> -->
<view v-if="order.afterServiceRecordList && order.afterServiceRecordList.length && order.orderDetailId != null" class="bg-white margin-top-sm"> <view v-if="order.afterServiceRecordList && order.afterServiceRecordList.length && order.orderDetailId != null" class="bg-white margin-top-sm">
<view v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList" :key="afterServiceRecord.id"> <view v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy == 1" class="padding-tb solid-top"> <view v-if="afterServiceRecord.createBy == 1" class="padding-tb solid-top">
<view class='cu-tag bg-main-color radius light'>售后发起中</view> <view class='cu-tag bg-main-color radius light'>售后发起中</view>
<view v-if="afterServiceRecord.operType === 1"> <view v-if="afterServiceRecord.operType === 1">
@ -440,18 +413,18 @@
<load-status-bar v-show="[5,6].indexOf(tabCur) >= 0 || (stateCur != null && stateList[stateCur].code === 105)" ref="loadStatusBar" @loadMore="loadMasterOrderPage"></load-status-bar> <load-status-bar v-show="[5,6].indexOf(tabCur) >= 0 || (stateCur != null && stateList[stateCur].code === 105)" ref="loadStatusBar" @loadMore="loadMasterOrderPage"></load-status-bar>
<view v-show="tabCur !== 5 && stateCur !== 0" class="cu-tabbar-height"></view> <view v-show="tabCur !== 5 && stateCur !== 0" class="cu-tabbar-height"></view>
<!-- 模态框 --> <!-- 模态框 -->
<agree-after-sale v-if="agreeAfterSale" :show="agreeAfterSale" :data="curOrder" @confirmFeedback="reloadMasterOrderPage" @close="agreeAfterSale = false"></agree-after-sale> <agree-after-sale v-if="agreeAfterSale" :show="agreeAfterSale" :data="curOrder" @confirmFeedback="reloadMasterOrderPage"></agree-after-sale>
<reject-after-sale v-if="rejectAfterSale" :show="rejectAfterSale" :data="curOrder" @confirmFeedback="reloadMasterOrderPage" @close="rejectAfterSale = false"></reject-after-sale> <reject-after-sale v-if="rejectAfterSale" :show="rejectAfterSale" :data="curOrder" @confirmFeedback="reloadMasterOrderPage"></reject-after-sale>
<time-arrange v-if="showTimeArrangeModal" :show="showTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime" @close="showTimeArrangeModal = false"></time-arrange> <time-arrange v-if="showTimeArrangeModal" :show="showTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime"></time-arrange>
<time-arrange-fail v-if="showArrangeFailTimeModal" :show="showArrangeFailTimeModal" :data="curOrder" @close="showArrangeFailTimeModal = false"></time-arrange-fail> <time-arrange-fail v-if="showArrangeFailTimeModal" :show="showArrangeFailTimeModal" :data="curOrder"></time-arrange-fail>
<new-serv-price-online v-if="showNewServPriceOnlineModal" ref="newServPriceOnline" :show="showNewServPriceOnlineModal" :data="curOrder" @finishOrder="finishOrder" @close="showNewServPriceOnlineModal = false;reloadMasterOrderPage()"></new-serv-price-online> <new-serv-price-online v-if="showNewServPriceOnlineModal" ref="newServPriceOnline" :show="showNewServPriceOnlineModal" :data="curOrder" @finishOrder="finishOrder"></new-serv-price-online>
<new-serv-price-offline v-if="showNewServPriceOfflineModal" ref="newServPriceOffline" :show="showNewServPriceOfflineModal" :data="curOrder" @finishOrder="finishOrder" @close="showNewServPriceOfflineModal = false;reloadMasterOrderPage()"></new-serv-price-offline> <new-serv-price-offline v-if="showNewServPriceOfflineModal" ref="newServPriceOffline" :show="showNewServPriceOfflineModal" :data="curOrder" @finishOrder="finishOrder"></new-serv-price-offline>
<pay-qrcode v-if="showPayQrcodeModal" ref="payQrcode" :show="showPayQrcodeModal" :data="curOrder" @finishQrPay="finishQrPay"></pay-qrcode> <pay-qrcode v-if="showPayQrcodeModal" ref="payQrcode" :show="showPayQrcodeModal" :data="curOrder" @finishQrPay="finishQrPay"></pay-qrcode>
<edit-time-arrange v-if="showEditTimeArrangeModal" :show="showEditTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime" :ifRollback2WS="true" @close="showEditTimeArrangeModal = false"></edit-time-arrange> <edit-time-arrange v-if="showEditTimeArrangeModal" :show="showEditTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime" :ifRollback2WS="true"></edit-time-arrange>
<urgent-msg v-if="sendUrgentMsgModal" :show="sendUrgentMsgModal" @hideModal="sendUrgentMsgModal = false"></urgent-msg> <urgent-msg v-if="sendUrgentMsgModal" :show="sendUrgentMsgModal" @hideModal="hideModal"></urgent-msg>
<pic-modal ref="showPicModal" :imgList="picModalImgList"></pic-modal> <pic-modal ref="showPicModal" :imgList="picModalImgList"></pic-modal>
<on-door-immediately v-if="showOnDoorNoticeModal" :show="showOnDoorNoticeModal" :data="curOrder" @close="showOnDoorNoticeModal = false" @confirmFeedback="reloadMasterOrderPage"></on-door-immediately> <on-door-immediately v-if="showOnDoorNoticeModal" :show="showOnDoorNoticeModal" :data="curOrder" @confirmFeedback="reloadMasterOrderPage"></on-door-immediately>
<accept-order-notice v-if="showAcceptOrderNoticeModal" :show="showAcceptOrderNoticeModal" :data="curOrder" @close="showAcceptOrderNoticeModal = false" @confirmFeedback="setCurTab(0)"></accept-order-notice> <accept-order-notice v-if="showAcceptOrderNoticeModal" :show="showAcceptOrderNoticeModal" :data="curOrder" @confirmFeedback="setCurTab(0)"></accept-order-notice>
<confirm-modal ref="ledgerAccountRemark" :showCancel="false" :showConfirm="true"> <confirm-modal ref="ledgerAccountRemark" :showCancel="false" :showConfirm="true">
<block slot="contentView"> <block slot="contentView">
<view class="text-left"> <view class="text-left">
@ -613,11 +586,6 @@
this.loadData(); this.loadData();
this.bindEvent(); this.bindEvent();
}, },
onShow() {
if(this.orderList.length){
this.reloadMasterOrderPage();
}
},
onUnload() { onUnload() {
this.offBindEvent(); this.offBindEvent();
}, },
@ -670,8 +638,6 @@
params.goodsName = this.formData.orderKeywords; params.goodsName = this.formData.orderKeywords;
params.countryId = this.formData.area && this.formData.area.length > 2 ? this.formData.area[2].areaId : null; params.countryId = this.formData.area && this.formData.area.length > 2 ? this.formData.area[2].areaId : null;
params.goodsCategoryId = this.formData.category && this.formData.category.length > 2 ? this.formData.category[2].goodsCategoryId : null; params.goodsCategoryId = this.formData.category && this.formData.category.length > 2 ? this.formData.category[2].goodsCategoryId : null;
params.orderByColumn = "updateTime";
params.isAsc = "desc";
// //
if (this.tabCur != null) { if (this.tabCur != null) {
params.orderStatus = this.subStateList[this.tabCur].code; params.orderStatus = this.subStateList[this.tabCur].code;
@ -694,15 +660,11 @@
params.orderStatus = 2; params.orderStatus = 2;
params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00", params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00",
params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59" params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59"
params.orderByColumn = "expectTimeStart";
params.isAsc = "asc";
} else if (this.stateList[this.stateCur].code === 101) { } else if (this.stateList[this.stateCur].code === 101) {
// //
params.orderStatus = 2; params.orderStatus = 2;
params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 00:00:00", params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 00:00:00",
params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 23:59:59" params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 23:59:59"
params.orderByColumn = "expectTimeStart";
params.isAsc = "asc";
} else if (this.stateList[this.stateCur].code === 104) { } else if (this.stateList[this.stateCur].code === 104) {
// //
params.shelveStatus = 1; params.shelveStatus = 1;
@ -711,17 +673,11 @@
} else if (this.stateList[this.stateCur].code === 105) { } else if (this.stateList[this.stateCur].code === 105) {
// //
// params.orderStatuses = "2,3,4,5"; // params.orderStatuses = "2,3,4,5";
params.allSelfAssigned = 0;
params.isMonitoredOrder = true; params.isMonitoredOrder = true;
} else if (this.stateList[this.stateCur].code === 103) { } else if (this.stateList[this.stateCur].code === 103) {
// //
params.isMonitoredOrder = true; params.isMonitoredOrder = true;
params.orderByColumn = "createTime"; params.allSelfAssigned = 0;
params.isAsc = "desc";
} else if (this.stateList[this.stateCur].code === 0) {
//
params.orderByColumn = "createTime";
params.isAsc = "desc";
} }
// else if (this.stateList[this.stateCur].code === 100) { // else if (this.stateList[this.stateCur].code === 100) {
// // // //
@ -743,10 +699,6 @@
// / // /
params.workFinishTimeExisted = true; params.workFinishTimeExisted = true;
params.drawCashStatus = 2; params.drawCashStatus = 2;
} else if (this.tabCur === 1) {
//
params.orderByColumn = "expectTimeStart";
params.isAsc = "asc";
} }
} }
try { try {
@ -1003,7 +955,6 @@
this.$refs[refName].showModal(); this.$refs[refName].showModal();
}, },
hideModal(e) { hideModal(e) {
console.log(e);
this.curOrder = null; this.curOrder = null;
this[e.currentTarget.dataset.modal] = false; this[e.currentTarget.dataset.modal] = false;
}, },
@ -1051,11 +1002,6 @@
} }
if (finishFlag) { if (finishFlag) {
this.reloadMasterOrderPage(); this.reloadMasterOrderPage();
// this.addOrderOperate({
// orderId: id,
// orderType: reqFunName === 'updateOrder' ? '01' : '02',
// content: ''
// })
uni.showToast({ uni.showToast({
title: '预约时间成功', title: '预约时间成功',
icon: 'none', icon: 'none',
@ -1068,11 +1014,6 @@
let res = await this.$request.updateDetailOrder(params); let res = await this.$request.updateDetailOrder(params);
return res; return res;
}, },
//
async addOrderOperate(params = {}) {
let res = await this.$request.addOrderOperate(params);
return res;
},
// async ledgerAccountcountdownTimeup(order = {}, index) { // async ledgerAccountcountdownTimeup(order = {}, index) {
// let res = await this.$request.updateDetailOrder({ // let res = await this.$request.updateDetailOrder({
// id: order.orderDetailId, // id: order.orderDetailId,
@ -1118,11 +1059,15 @@
changePopupState(e) { changePopupState(e) {
this.ifShowPageMeta = e.show; this.ifShowPageMeta = e.show;
}, },
makePhoneCall(tel) { makePhoneCall(order) {
console.log('order.customerPhone==='+tel); if (order.orderDetailId == null) {
if(!tel) return this.$request.callCustomer({
id: order.orderMasterId,
isCall: '02'
});
}
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: tel phoneNumber: order.customerPhone
}) })
}, },
async makePayQrcode(e, orderInfo) { async makePayQrcode(e, orderInfo) {
@ -1186,19 +1131,6 @@
if (res && res.code === 0) { if (res && res.code === 0) {
this.reloadMasterOrderPage(); this.reloadMasterOrderPage();
this.showModal(e, order); this.showModal(e, order);
if(funName == 'updateMasterOrder') {
this.addOrderOperate({
orderId: id,
orderType: '01',
content: `师傅接单`
})
} else {
this.addOrderOperate({
orderId: id,
orderType: '02',
content: `师傅接单`
})
}
} }
}, },
async noticeMsg(params = {}) { async noticeMsg(params = {}) {
@ -1268,15 +1200,6 @@
title: '派单成功', title: '派单成功',
icon: 'success' icon: 'success'
}) })
if(params.workerName) {
this.addOrderOperate({
orderId: this.curOrder.orderDetailId == null ? this.curOrder.orderMasterId : this.curOrder.orderDetailId,
orderType: this.curOrder.orderDetailId == null ? '01' : '02',
content: `师傅派单给-${params.workerName}`
})
}
return true; return true;
} else { } else {
uni.showToast({ uni.showToast({
@ -1305,11 +1228,6 @@
orderMasterId: orderInfo.orderMasterId, orderMasterId: orderInfo.orderMasterId,
isAll: 1 isAll: 1
} }
this.addOrderOperate({
orderId: orderInfo.orderDetailId == null ? orderInfo.orderMasterId : orderInfo.orderDetailId,
orderType: orderInfo.orderDetailId == null ? '01' : '02',
content: '师傅接单'
})
return await this.assignWork(params); return await this.assignWork(params);
}, },
async rejectMasterOrder(order) { async rejectMasterOrder(order) {
@ -1320,14 +1238,14 @@
if (res && res.code === 0) { if (res && res.code === 0) {
this.reloadMasterOrderPage(); this.reloadMasterOrderPage();
uni.showToast({ uni.showToast({
icon: 'success', icon: 'none',
title: '拒单成功', title: '拒绝接单成功',
duration: 1000 duration: 1000
}) })
} else { } else {
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '拒单失败' title: '拒绝接单失败'
}) })
} }
}, },
@ -1338,43 +1256,14 @@
if (res && res.code === 0) { if (res && res.code === 0) {
this.reloadMasterOrderPage(); this.reloadMasterOrderPage();
uni.showToast({ uni.showToast({
icon: 'success', icon: 'none',
title: '退单成功', title: '拒绝接单成功',
duration: 1000 duration: 1000
}) })
this.addOrderOperate({
orderId: order.orderDetailId,
orderType: '02',
content: '师傅退单'
})
} else { } else {
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '退单失败' title: '拒绝接单失败'
})
}
},
async rejectMasterOrderWhenAccepted(order) {
let res = await this.$request.rejectMasterOrderWhenAccepted({
id: order.orderMasterId
});
if (res && res.code === 0) {
this.reloadMasterOrderPage();
uni.showToast({
icon: 'none',
title: '退单成功',
duration: 1000
})
this.addOrderOperate({
orderId: order.orderMasterId,
orderType: '01',
content: '师傅退单'
})
} else {
uni.showToast({
icon: 'none',
title: res.msg,
duration: 2000
}) })
} }
}, },
@ -1473,11 +1362,6 @@
icon: 'success', icon: 'success',
duration: 1000 duration: 1000
}) })
this.addOrderOperate({
orderId: order.orderDetailId,
orderType: '02',
content: '打卡到达'
})
} }
}, },
async revisit() { async revisit() {

View File

@ -1,30 +1,27 @@
<template> <template>
<page-meta :page-style="'overflow:'+(ifShowPageMeta?'hidden':'visible')"></page-meta>
<view> <view>
<page-meta :page-style="'overflow:'+(ifShowPageMeta?'hidden':'visible')"></page-meta>
<!-- 顶部操作条 --> <!-- 顶部操作条 -->
<cu-custom :bgColor="'bg-main-color'" :isBack="true"> <cu-custom :bgColor="'bg-main-color'" :isBack="true">
<block slot="backText">返回</block> <block slot="backText">返回</block>
<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-if="taskListArr.length"> <uni-collapse v-model="value">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
<view class="cu-bar"> <view class="cu-bar">
<view class="action bar-first-action"> <view class="action bar-first-action">
<text class="cuIcon-titles text-main-color"></text> <text @click.stop="showTaskDetailMdl()">任务进度跟踪</text> <text class="cuIcon-titles text-main-color"></text> 任务进度跟踪
</view> </view>
</view> </view>
</template> </template>
<view class="cu-timeline"> <view class="cu-timeline">
<view class="cu-item text-main-color" key="cu-timeline"> <view class="cu-item text-main-color" v-for="(item, index) in servDetail.taskTraceLine">
<!-- :class="index === 0 ? 'bg-main-color light' : 'bg-gray'" --> <view class="content shadow-blur" :class="index === 0 ? 'bg-main-color light' : 'bg-gray'">
<view class="content shadow-blur bg-main-color light" > <text class="margin-right">{{item.time}}</text>
<view> <text>{{item.action}}</text>
<text>{{taskListArr[taskListArr.length-1].content}}</text>
</view>
<text>{{taskListArr[taskListArr.length-1].createTime}}</text>
</view> </view>
</view> </view>
</view> </view>
@ -47,24 +44,24 @@
</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><text class="labels">服务地址</text>{{servDetail.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 class="margin-right-sm"><text class="labels">客户</text>{{servDetail.customerName}}</text> <text class="margin-right-sm">客户{{servDetail.customerName}}</text>
<text>{{servDetail.customerPhone.substring(0, 3) + "****" + servDetail.customerPhone.substring(7)}}</text> <text>{{servDetail.customerPhone.substring(0, 3) + "****" + servDetail.customerPhone.substring(7)}}</text>
<button class="cu-btn line-main-color sm" @click="makeCustomerPhoneCall(servDetail)">拨打</button> <button class="cu-btn line-main-color sm" @click="makePhoneCall(servDetail.customerPhone)">拨打</button>
</view> </view>
<view class="margin-top-sm" v-if="servDetail.orderDetailId"> <view class="margin-top-sm" v-if="servDetail.orderDetailId">
<text class="cuIcon-friendfamous text-main-color margin-right-xs"></text> <text class="cuIcon-friendfamous text-main-color margin-right-xs"></text>
<text class="margin-right-sm"><text class="labels">派单公司</text>{{servDetail.masterCompanyName}}</text> <text class="margin-right-sm">派单公司{{servDetail.masterCompanyName}}</text>
<text class="margin-right-xs">{{servDetail.masterWorkerPhone}}</text> <text class="margin-right-xs">{{servDetail.masterWorkerPhone}}</text>
<button class="cu-btn line-main-color sm" @click="makePhoneCall(servDetail.masterWorkerPhone)">拨打</button> <button class="cu-btn line-main-color sm" @click="makePhoneCall(servDetail.masterWorkerPhone)">拨打</button>
</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 v-if="servDetail.expectTimeEndFront"><text class="labels">预约时间</text>{{servDetail.expectTimeStartFront + '~' + servDetail.expectTimeEndFront}}</text> <text v-if="servDetail.expectTimeEndFront">预约时间{{servDetail.expectTimeStartFront + '~' + servDetail.expectTimeEndFront}}</text>
<text v-else><text class="labels">预约时间</text>{{servDetail.expectTimeStartFront}}</text> <text v-else>预约时间{{servDetail.expectTimeStartFront}}</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>
@ -72,25 +69,21 @@
</view> --> </view> -->
<view class="margin-top-sm" v-if="servDetail.orderDetailId != null && servDetail.orderStatus >= 3"> <view class="margin-top-sm" v-if="servDetail.orderDetailId != null && 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><text class="labels">上门时间</text>{{servDetail.workBeginTime}}</text> <text>上门时间{{servDetail.workBeginTime}}</text>
</view> </view>
<!-- <view class="margin-top-sm" v-if="servDetail.orderDetailId == null && servDetail.orderMode == '02'"> <view class="margin-top-sm" v-if="servDetail.orderDetailId == null && servDetail.orderMode == '02'">
<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.totalMoney}}</text> <text class="text-price">{{servDetail.totalMoney}}</text>
</view> --> </view>
<view class="margin-top-sm" v-if="servDetail.customerRemark"> <view class="margin-top-sm" v-if="servDetail.customerRemark">
<text class="cuIcon-message text-main-color margin-right-xs"></text> <text class="cuIcon-message text-main-color margin-right-xs"></text>
<text><text class="labels">备注</text>{{servDetail.customerRemark}}</text> <text>备注{{servDetail.customerRemark}}</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 class="labels">服务金额</text> <text>服务金额</text>
<text class="text-price" v-if="servDetail.orderDetailId != null"> <text class="text-price" v-if="servDetail.orderDetailId != null">{{servDetail.payMoney}}</text>
{{servDetail.payAddMoney}}
<text v-if="servDetail.payType === 1 && servDetail.financialChangeRecords && servDetail.financialChangeRecords.length > 0">订单加价单独到账</text>
<text v-else-if="servDetail.payType === 0 && servDetail.financialChangeRecords && servDetail.financialChangeRecords.length > 0">订单加价合并到账</text>
</text>
<text class="text-price" v-else>{{servDetail.serverMoney}}</text> <text class="text-price" v-else>{{servDetail.serverMoney}}</text>
</view> </view>
<view class="text-sm text-gray margin-left-lg" <view class="text-sm text-gray margin-left-lg"
@ -105,7 +98,7 @@
</text> </text>
</view> </view>
<view class="text-sm text-gray margin-left-lg" v-if="servDetail.orderDetailId != null && servDetail.financialChangeRecords != null" <view class="text-sm text-gray margin-left-lg" v-if="servDetail.orderDetailId != null && servDetail.financialChangeRecords != null"
v-for="(item, index) in servDetail.financialChangeRecords" :key="index"> v-for="(item, index) in servDetail.financialChangeRecords">
<text v-if="item.payStatus === 1">加减费用:<text class="text-price margin-top-xs">+{{item.changeMoney}}</text>[订单加价]</text> <text v-if="item.payStatus === 1">加减费用:<text class="text-price margin-top-xs">+{{item.changeMoney}}</text>[订单加价]</text>
</view> </view>
</view> </view>
@ -120,10 +113,6 @@
<product-picked :product="servDetail" :pickedList="servDetail.standardList" :columnTitleArr="servingColumnHeaders" :valFieldArr="servingValFields"></product-picked> <product-picked :product="servDetail" :pickedList="servDetail.standardList" :columnTitleArr="servingColumnHeaders" :valFieldArr="servingValFields"></product-picked>
</view> </view>
</view> </view>
<!-- 下单备注 -->
<view v-if="servDetail.remark" class="bg-white margin-lr-sm padding margin-top-sm">
<view>订单备注: {{servDetail.remark}}</view>
</view>
<!-- 加价记录 子单详情展示 --> <!-- 加价记录 子单详情展示 -->
<view v-if="servDetail.orderDetailId != null && servDetail.financialChangeRecords && servDetail.financialChangeRecords.length > 0" class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm"> <view v-if="servDetail.orderDetailId != null && servDetail.financialChangeRecords && servDetail.financialChangeRecords.length > 0" class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm">
<view class="cu-bar solid-bottom"> <view class="cu-bar solid-bottom">
@ -131,7 +120,7 @@
<text class="cuIcon-titles text-main-color"></text> 加价记录 <text class="cuIcon-titles text-main-color"></text> 加价记录
</view> </view>
</view> </view>
<view class="padding-tb-sm" v-for="(changeRecord, changeRecordIndex) in servDetail.financialChangeRecords" :key="changeRecordIndex"> <view class="padding-tb-sm" v-for="(changeRecord, changeRecordIndex) in servDetail.financialChangeRecords">
<view> <view>
<text>加价金额</text> <text>加价金额</text>
<text>{{changeRecord.changeMoney}}</text> <text>{{changeRecord.changeMoney}}</text>
@ -164,7 +153,7 @@
<text class="cuIcon-titles text-main-color"></text> 售后记录 <text class="cuIcon-titles text-main-color"></text> 售后记录
</view> </view>
</view> </view>
<view v-for="(afterServiceRecord, afterServiceRecordIndex) in servDetail.afterServiceRecordList" :key="afterServiceRecordIndex"> <view v-for="(afterServiceRecord, afterServiceRecordIndex) in servDetail.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy == 1" class="padding-tb-sm solid-top"> <view v-if="afterServiceRecord.createBy == 1" class="padding-tb-sm solid-top">
<view class='cu-tag bg-main-color radius light'>售后发起中</view> <view class='cu-tag bg-main-color radius light'>售后发起中</view>
<view v-if="afterServiceRecord.operType === 1"> <view v-if="afterServiceRecord.operType === 1">
@ -320,7 +309,7 @@
</view> </view>
</view> </view>
<!-- 完成记录 主单详情展示 --> <!-- 完成记录 主单详情展示 -->
<view v-if="servDetail.orderDetailId == null" class="bg-white margin-lr-sm padding-lr padding-bottom margin-top-sm" v-for="(item, index) in servDetail.orderStandardDetailList" :key="index"> <view v-if="servDetail.orderDetailId == null" 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> 服务记录 <text class="cuIcon-titles text-main-color"></text> 服务记录
@ -337,7 +326,7 @@
<!-- <view class='cu-tag bg-purple radius light margin-right-sm' v-if="item.orderStatus > 3">{{item.workFinishTime}}</view> --> <!-- <view class='cu-tag bg-purple radius light margin-right-sm' v-if="item.orderStatus > 3">{{item.workFinishTime}}</view> -->
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<view class="float-left" v-for="(afterServiceRecord, afterServiceRecordIndex) in item.afterServiceRecordList" :key="afterServiceRecordIndex"> <view class="float-left" v-for="(afterServiceRecord, afterServiceRecordIndex) in item.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy && !afterServiceRecord.updateBy" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后发起中</view> <view v-if="afterServiceRecord.createBy && !afterServiceRecord.updateBy" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后发起中</view>
<view v-if="afterServiceRecord.workerFeedbackResult == 1 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>售后已同意</view> <view v-if="afterServiceRecord.workerFeedbackResult == 1 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-main-color margin-top-xs'>售后已同意</view>
<view v-if="afterServiceRecord.workerFeedbackResult == 0 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后已拒绝</view> <view v-if="afterServiceRecord.workerFeedbackResult == 0 && afterServiceRecord.customerFinalCheck == null" class='cu-tag margin-right-xs radius line-red margin-top-xs'>售后已拒绝</view>
@ -374,7 +363,7 @@
<text class="cuIcon-title text-main-color"></text> 加价记录 <text class="cuIcon-title text-main-color"></text> 加价记录
</view> </view>
</view> </view>
<view class="padding-tb-sm" v-for="(changeRecord, changeRecordIndex) in item.financialChangeRecord" :key="changeRecordIndex"> <view class="padding-tb-sm" v-for="(changeRecord, changeRecordIndex) in item.financialChangeRecord">
<view> <view>
<text>加价金额</text> <text>加价金额</text>
<text>{{changeRecord.changeMoney}}</text> <text>{{changeRecord.changeMoney}}</text>
@ -408,7 +397,7 @@
{{item.afterServiceRecordList[0].operType === 1 ? '退款记录' : '售后记录'}} {{item.afterServiceRecordList[0].operType === 1 ? '退款记录' : '售后记录'}}
</view> </view>
</view> </view>
<view v-for="(afterServiceRecord, afterServiceRecordIndex) in item.afterServiceRecordList" :key="afterServiceRecordIndex"> <view v-for="(afterServiceRecord, afterServiceRecordIndex) in item.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy == 1" class="padding-tb-sm solid-top"> <view v-if="afterServiceRecord.createBy == 1" class="padding-tb-sm solid-top">
<view class='cu-tag bg-main-color radius light'>售后发起中</view> <view class='cu-tag bg-main-color radius light'>售后发起中</view>
<view v-if="afterServiceRecord.operType === 1"> <view v-if="afterServiceRecord.operType === 1">
@ -565,21 +554,14 @@
</view> </view>
</view> </view>
<!-- 订单编码和时间 --> <!-- 订单编码和时间 -->
<view class="bg-white margin-top-sm padding margin-lr-sm"> <view class="bg-white margin-top-sm padding margin-lr-sm margin-bottom-with-bar">
<view v-if="servDetail.orderDetailCode != null">订单编码{{servDetail.orderDetailCode}}</view> <view v-if="servDetail.orderDetailCode != null">订单编码{{servDetail.orderDetailCode}}</view>
<view v-else>订单编码{{servDetail.orderMasterCode}}</view> <view v-else>订单编码{{servDetail.orderMasterCode}}</view>
<view class="margin-top-xs">订单时间{{servDetail.createTime}}</view> <view class="margin-top-xs">订单时间{{servDetail.createTime}}</view>
</view> </view>
<view class="occupancy-bottom-bar"></view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<view class="cu-bar bg-white tabbar border fixed-bottom-bar" v-if="servDetail.orderDetailId != null && servDetail.orderStatus > 0 && servDetail.orderStatus != 6"> <view class="cu-bar bg-white tabbar border fixed-bottom-bar" v-if="servDetail.orderDetailId != null && servDetail.orderStatus === 2">
<view class="action" data-popup="orderManage" @click="togglePopup"> <!-- <view class="action" data-popup="orderManage" @click="togglePopup">
<view class="cuIcon-list"></view> 订单管理
</view>
<view v-if="servDetail.orderDetailId != null && servDetail.orderStatus === 2" class="bg-main-color submit" @click="workBegin">立即上门</view>
</view>
<!-- <view class="cu-bar bg-white tabbar border fixed-bottom-bar" v-if="servDetail.orderDetailId != null && servDetail.orderStatus === 2">
<view class="action" data-popup="orderManage" @click="togglePopup">
<view class="cuIcon-list"></view> 订单管理 <view class="cuIcon-list"></view> 订单管理
</view> </view>
<view class="action" data-modal="sendUrgentMsgModal" @click="showModal"> <view class="action" data-modal="sendUrgentMsgModal" @click="showModal">
@ -587,16 +569,16 @@
<view class="cu-tag badge" v-if="servDetail.talkMsgNum > 0">{{servDetail.talkMsgNum}}</view> <view class="cu-tag badge" v-if="servDetail.talkMsgNum > 0">{{servDetail.talkMsgNum}}</view>
</view> </view>
发送急报 发送急报
</view> </view> -->
<view class="action" data-popup="orderManage"> <view class="action" data-popup="orderManage">
</view> </view>
<view class="action" data-modal="sendUrgentMsgModal"> <view class="action" data-modal="sendUrgentMsgModal">
</view> </view>
<view v-if="servDetail.orderStatus === 2" class="bg-main-color submit" @click="workBegin">立即上门</view> <view v-if="servDetail.orderStatus === 2" class="bg-main-color submit" @click="workBegin">立即上门</view>
</view> --> </view>
<uni-popup ref="orderManage" type="bottom" @change="changePopupState"> <uni-popup ref="orderManage" type="bottom" @change="changePopupState">
<view class="bg-white text-center bottom-option-list-bar"> <view class="bg-white text-center">
<view v-for="(menu,index) in orderManageMenu" :key="index" class="padding solid-bottom" :data-action="menu.action" :data-modal="menu.modal" @click="clickOrderManageMenu"> <view v-for="(menu,index) in orderManageMenu" class="padding solid-bottom" :data-action="menu.action" @click="clickOrderManageMenu">
{{menu.name}} {{menu.name}}
</view> </view>
</view> </view>
@ -605,27 +587,17 @@
</uni-popup> </uni-popup>
<!-- 模态框 --> <!-- 模态框 -->
<urgent-msg :show="sendUrgentMsgModal" @hideModal="hideModal"></urgent-msg> <urgent-msg :show="sendUrgentMsgModal" @hideModal="hideModal"></urgent-msg>
<apply-extra-charge v-if="applyExtraChargeModal" :show="applyExtraChargeModal" :data="servDetail" @close="applyExtraChargeClose"></apply-extra-charge>
<apply-charge v-if="applyChargeModal" :show="applyChargeModal" :data="servDetail" @close="applyChargeClose"></apply-charge>
<task-process-detail :show="taskProcessDetail" :arr="taskListArr" @close="taskDetailClose"></task-process-detail>
</view> </view>
</template> </template>
<script> <script>
import productPicked from '@/components/goods-card/product-picked.vue'; import productPicked from '@/components/goods-card/product-picked.vue';
import urgentMsg from '@/pages/order-manage/modal/urgent-msg.vue'; import urgentMsg from '@/pages/order-manage/modal/urgent-msg.vue';
import applyExtraCharge from '@/pages/order-manage/modal/apply-extra-charge.vue';
import applyCharge from '@/pages/order-manage/modal/apply-charge.vue';
import taskProcessDetail from '@/pages/order-manage/modal/task_process_detail.vue'
export default { export default {
components: { components: {
productPicked, productPicked,
urgentMsg, urgentMsg
applyExtraCharge,
taskProcessDetail,
applyCharge
}, },
data() { data() {
return { return {
@ -638,67 +610,33 @@
servingValFields: ['standardName', 'standardNum', 'waitServerNum'], servingValFields: ['standardName', 'standardNum', 'waitServerNum'],
servedValFields: ['standardName', 'standardNum', 'serverNum'], servedValFields: ['standardName', 'standardNum', 'serverNum'],
ifShowPageMeta: false, ifShowPageMeta: false,
orderManageMenu: [ orderManageMenu: [{
// { name: '申请配件',
// name: '', action: 'applyFittings'
// action: 'applyFittings' }, {
// },
{
name: '申请附加费', name: '申请附加费',
action: 'applyExtraCharge', action: ''
modal: 'applyExtraChargeModal' }, {
}, name: '拍照回单',
{ action: ''
name: '申请费用', }, {
action: 'applyCharge', name: '指派/撤回订单',
modal: 'applyChargeModal' action: ''
} }, {
// { name: '申请退单',
// name: '', action: 'applyCancelOrder'
// action: '' }],
// },
// {
// name: '/',
// action: ''
// },
// {
// name: '退',
// action: 'applyCancelOrder'
// },
],
sendUrgentMsgModal: false, sendUrgentMsgModal: false,
overtimeRecords: null, overtimeRecords: null
applyExtraChargeModal: false,
taskProcessDetail: false,
taskListArr: [],
applyChargeModal: false
} }
}, },
onLoad(options) { onLoad(options) {
this.bindEvent();
if (options && options.order) { if (options && options.order) {
this.order = JSON.parse(decodeURIComponent(options.order)); this.order = JSON.parse(decodeURIComponent(options.order));
} }
this.loadData(); this.loadData();
}, },
onUnload() {
this.offBindEvent();
},
methods: { methods: {
//
showTaskDetailMdl() {
this.taskProcessDetail = true
},
taskDetailClose() {
console.log('close close');
this.taskProcessDetail = false
},
bindEvent() {
uni.$on(this.$globalFun.HIDE_MODAL, this.hideModal);
},
offBindEvent() {
uni.$off(this.$globalFun.HIDE_MODAL);
},
async loadData() { async loadData() {
let orderId = null; let orderId = null;
let funName = null; let funName = null;
@ -715,15 +653,6 @@
id: orderId id: orderId
}); });
this.servDetail = servDetailRes.data; this.servDetail = servDetailRes.data;
this.getProcessData()
},
async getProcessData() {
const isDetail = this.order.orderDetailId == null
const res = await this.$request.getOrderOperate({
orderId: isDetail ? this.order.orderMasterId : this.order.orderDetailId,
orderType: isDetail ? '01' : '02'
})
this.taskListArr = res.rows;
}, },
changePopupState(e) { changePopupState(e) {
this.ifShowPageMeta = e.show; this.ifShowPageMeta = e.show;
@ -741,19 +670,6 @@
applyFittings() { applyFittings() {
console.log("申请配件") console.log("申请配件")
}, },
applyExtraCharge() {
console.log("申请charge")
this.applyExtraChargeModal = true;
},
applyExtraChargeClose() {
this.applyExtraChargeModal = false;
},
applyCharge() {
this.applyChargeModal = true;
},
applyChargeClose() {
this.applyChargeModal = false;
},
applyCancelOrder() { applyCancelOrder() {
let params = { let params = {
orderInfo: this.servDetail.mainServOrder orderInfo: this.servDetail.mainServOrder
@ -792,23 +708,6 @@
current: e.currentTarget.dataset.url current: e.currentTarget.dataset.url
}); });
}, },
async makeCustomerPhoneCall(order) {
uni.makePhoneCall({
phoneNumber: order.customerPhone
})
if (order.orderDetailId == null) {
let res = await this.$request.callCustomer({
id: order.orderMasterId,
isCall: '02'
});
} else {
this.$request.callDetailCustomer({
id: order.orderDetailId,
isCall: '02'
});
}
this.loadData();
},
makePhoneCall(phoneNum) { makePhoneCall(phoneNum) {
uni.makePhoneCall({ uni.makePhoneCall({
phoneNumber: phoneNum phoneNumber: phoneNum
@ -841,9 +740,4 @@
margin-left: unset !important; margin-left: unset !important;
font-size: 30rpx !important; font-size: 30rpx !important;
} }
.bottom-option-list-bar {
z-index: 99;
position: relative;
}
</style> </style>

View File

@ -237,7 +237,7 @@
} }
.cu-form-group textarea { .cu-form-group textarea {
margin: 20rpx 0 !important; margin: 0 0 20rpx 0 !important;
padding: 20rpx !important; padding: 20rpx !important;
} }