This commit is contained in:
parent
0a2a568a12
commit
e0db5cb26d
|
|
@ -0,0 +1,35 @@
|
||||||
|
export default {
|
||||||
|
dateCache: null,
|
||||||
|
countDownDiffCache: null,
|
||||||
|
countDownDiff(dateStr) {
|
||||||
|
if (dateStr == this.dateCache) {
|
||||||
|
return this.countDownDiffCache;
|
||||||
|
}
|
||||||
|
let dayTimes = 24*60*60*1000;
|
||||||
|
let hourTimes = 60*60*1000;
|
||||||
|
let minTimes = 60*1000;
|
||||||
|
let secondsTimes = 1000;
|
||||||
|
let dateTimesDiff = new Date(dateStr).getTime() - new Date().getTime();
|
||||||
|
let day = Math.floor(dateTimesDiff / dayTimes);
|
||||||
|
let leftOver = dateTimesDiff % dayTimes;
|
||||||
|
let hour = Math.floor(leftOver / hourTimes);
|
||||||
|
leftOver = leftOver % hourTimes;
|
||||||
|
let min = Math.floor(leftOver / minTimes);
|
||||||
|
leftOver = leftOver % minTimes;
|
||||||
|
let seconds = Math.floor(leftOver / secondsTimes);
|
||||||
|
leftOver = leftOver % secondsTimes;
|
||||||
|
this.dateCache = dateStr;
|
||||||
|
this.countDownDiffCache = {
|
||||||
|
day: day,
|
||||||
|
hour: hour,
|
||||||
|
min: min,
|
||||||
|
seconds: seconds
|
||||||
|
}
|
||||||
|
return this.countDownDiffCache;
|
||||||
|
},
|
||||||
|
addHours(dateStr, hourAmount) {
|
||||||
|
let date = new Date(dateStr);
|
||||||
|
date.setHours(date.getHours() + hourAmount);
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +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',
|
||||||
// 异步接口拦截
|
// 异步接口拦截
|
||||||
addInterceptor() {
|
addInterceptor() {
|
||||||
uni.addInterceptor('request', {
|
uni.addInterceptor('request', {
|
||||||
|
|
@ -11,7 +12,7 @@ export default {
|
||||||
})
|
})
|
||||||
// request 触发前拼接 url
|
// request 触发前拼接 url
|
||||||
args.url = 'https://www.opsoul.com' + args.url;
|
args.url = 'https://www.opsoul.com' + args.url;
|
||||||
// args.url = 'http://120.79.136.57' + args.url;
|
// args.url = 'http://192.168.2.20:80' + args.url;
|
||||||
// args.url = 'http://127.0.0.1:80' + args.url;
|
// args.url = 'http://127.0.0.1:80' + args.url;
|
||||||
if (args.data && Object.prototype && Object.prototype.toString.call(args.data) === '[object Object]') {
|
if (args.data && Object.prototype && Object.prototype.toString.call(args.data) === '[object Object]') {
|
||||||
args.data.deptId = globalData.deptId;
|
args.data.deptId = globalData.deptId;
|
||||||
|
|
@ -392,11 +393,22 @@ export default {
|
||||||
name: 'uploadFile'
|
name: 'uploadFile'
|
||||||
})
|
})
|
||||||
let resStr = res[1].data;
|
let resStr = res[1].data;
|
||||||
let resObj = {};
|
let resObj = null;
|
||||||
if (resStr != null && resStr.length > 0) {
|
if (resStr != null && resStr.length > 0) {
|
||||||
|
try {
|
||||||
resObj = JSON.parse(resStr);
|
resObj = JSON.parse(resStr);
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e)
|
||||||
}
|
}
|
||||||
return resObj;
|
}
|
||||||
|
if (!resObj || resObj.code !== 0) {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'error',
|
||||||
|
title: '上传失败'
|
||||||
|
})
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return resObj.url;
|
||||||
},
|
},
|
||||||
// async qryOrderGoodsPage(params = {}) {
|
// async qryOrderGoodsPage(params = {}) {
|
||||||
// let res = await uni.request({
|
// let res = await uni.request({
|
||||||
|
|
@ -562,5 +574,41 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return res[1].data;
|
return res[1].data;
|
||||||
|
},
|
||||||
|
async getDetailListByMasterId(params = {}) {
|
||||||
|
let res = await uni.request({
|
||||||
|
url: '/order/master/app/getDetailListByMasterId',
|
||||||
|
method: 'POST',
|
||||||
|
data: params.orderMasterId
|
||||||
|
})
|
||||||
|
return res[1].data;
|
||||||
|
},
|
||||||
|
async getAfterList() {
|
||||||
|
let res = await uni.request({
|
||||||
|
url: '/order/master/after/list',
|
||||||
|
method: 'POST',
|
||||||
|
data: {}
|
||||||
|
})
|
||||||
|
return res[1].data;
|
||||||
|
},
|
||||||
|
async addAfterServiceRecord(params = {}) {
|
||||||
|
let res = await uni.request({
|
||||||
|
url: '/worker/record/add',
|
||||||
|
method: 'POST',
|
||||||
|
data: params,
|
||||||
|
header: {
|
||||||
|
pageNum: params.pageNum,
|
||||||
|
pageSize: params.pageSize
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
return res[1].data;
|
||||||
|
},
|
||||||
|
async getOrderAfterServiceRecords(params = {}) {
|
||||||
|
let res = await uni.request({
|
||||||
|
url: '/worker/record/app/list',
|
||||||
|
method: 'POST',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
return res[1].data;
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
main.js
2
main.js
|
|
@ -7,6 +7,7 @@ import Data from './common/js/data.js';
|
||||||
import globalFun from './common/js/glogalFun.js';
|
import globalFun from './common/js/glogalFun.js';
|
||||||
import validate from './common/js/validate.js';
|
import validate from './common/js/validate.js';
|
||||||
import request from './common/js/request.js';
|
import request from './common/js/request.js';
|
||||||
|
import dateUtil from './common/js/dateUtil.js';
|
||||||
import globalData from './common/js/globalData.js';
|
import globalData from './common/js/globalData.js';
|
||||||
import vertifyLogin from '@/components/vertify/vertify-login.vue';
|
import vertifyLogin from '@/components/vertify/vertify-login.vue';
|
||||||
import vertifyPhone from '@/components/vertify/vertify-phone.vue';
|
import vertifyPhone from '@/components/vertify/vertify-phone.vue';
|
||||||
|
|
@ -31,6 +32,7 @@ Vue.prototype.$globalFun = globalFun;
|
||||||
Vue.prototype.$validate = validate;
|
Vue.prototype.$validate = validate;
|
||||||
Vue.prototype.$request = request;
|
Vue.prototype.$request = request;
|
||||||
Vue.prototype.$globalData = globalData;
|
Vue.prototype.$globalData = globalData;
|
||||||
|
Vue.prototype.$dateUtil = dateUtil;
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,14 @@
|
||||||
<text>待确认</text>
|
<text>待确认</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="cu-item" @click="showMyOrders(servOrderTabList, 6, servOrderType)">
|
<view class="cu-item" @click="showMyOrders(servOrderTabList, 6, servOrderType)">
|
||||||
|
<view class="cuIcon-service">
|
||||||
|
<view class="cu-tag badge" v-if="myInfo.serOrderNum.afterServ > 0">
|
||||||
|
<block>{{myInfo.serOrderNum.afterServ}}</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<text>售后中</text>
|
||||||
|
</view>
|
||||||
|
<view class="cu-item" @click="showMyOrders(servOrderTabList, 7, servOrderType)">
|
||||||
<view class="cuIcon-forward">
|
<view class="cuIcon-forward">
|
||||||
<view class="cu-tag badge" v-if="myInfo.serOrderNum.wait2Forward > 0">
|
<view class="cu-tag badge" v-if="myInfo.serOrderNum.wait2Forward > 0">
|
||||||
<block>{{myInfo.serOrderNum.wait2Forward}}</block>
|
<block>{{myInfo.serOrderNum.wait2Forward}}</block>
|
||||||
|
|
@ -307,6 +315,9 @@
|
||||||
}, {
|
}, {
|
||||||
type: 4,
|
type: 4,
|
||||||
name: '待确认'
|
name: '待确认'
|
||||||
|
}, {
|
||||||
|
// type: 4,
|
||||||
|
name: '售后中'
|
||||||
}, {
|
}, {
|
||||||
type: 5,
|
type: 5,
|
||||||
name: '已完成'
|
name: '已完成'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,205 @@
|
||||||
|
<template>
|
||||||
|
<view class="cu-modal" :class="show?'show':''">
|
||||||
|
<view class="cu-dialog bg-white">
|
||||||
|
<view class="cu-bar">
|
||||||
|
<view class="content">{{afterServiceType === 1 ? '退单退款' : '发起售后'}}</view>
|
||||||
|
<view class="action" @click="hideModal">
|
||||||
|
<text class="cuIcon-close text-red"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="padding text-left">
|
||||||
|
<view class="flex justify-start align-center">
|
||||||
|
<view class="title">选择子单:</view>
|
||||||
|
<my-uni-combox class="form-val-area inline-input" :candidates="detailList" placeholder="请选择" :showField="'remark'"
|
||||||
|
v-model="detailObj">
|
||||||
|
</my-uni-combox>
|
||||||
|
</view>
|
||||||
|
<view class="flex justify-start align-center margin-top-sm">
|
||||||
|
<view class="title">申请原因:</view>
|
||||||
|
<my-uni-combox class="form-val-area inline-input" :candidates="customerReasonTypeArr" placeholder="请选择" :showField="'name'"
|
||||||
|
v-model="customerReasonType">
|
||||||
|
</my-uni-combox>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm flex justify-start align-center margin-top-sm">
|
||||||
|
<view>退款金额:</view>
|
||||||
|
<input class="radius-input inline-input" v-model="refund" style="flex-basis: 70%;"></input>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm flex justify-start margin-top-sm">
|
||||||
|
<view>具体原因:</view>
|
||||||
|
<textarea style="height: 200rpx;" class="solid radius text-left padding-sm inline-input"
|
||||||
|
v-model="remark" maxlength="-1"></textarea>
|
||||||
|
</view>
|
||||||
|
<!-- 上传图片 -->
|
||||||
|
<view class="padding-top">
|
||||||
|
<view class="grid col-3 grid-square flex-sub margin-top-sm">
|
||||||
|
<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="chooseImgList(e, imgList)" v-if="imgList.length < 3">
|
||||||
|
<text class='cuIcon-cameraadd'></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-bar solid-top">
|
||||||
|
<view class="action margin-0 flex-sub text-black" @click="hideModal">取消</view>
|
||||||
|
<view class="action margin-0 flex-sub text-main-color solid-left" @click="apply">确认</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import myUniCombox from '@/components/uni-combox/my-uni-combox.vue';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'applyAfterSale',
|
||||||
|
components: {
|
||||||
|
myUniCombox
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
show: false,
|
||||||
|
afterServiceType: 2, // 1为申请退款,2为发起售后
|
||||||
|
customerReasonType: null,
|
||||||
|
refund: null,
|
||||||
|
remark: null,
|
||||||
|
imgList: [],
|
||||||
|
detailList: [],
|
||||||
|
detailObj: null,
|
||||||
|
toUpdateStatus: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async init(curOrder) {
|
||||||
|
let res = await this.$request.getDetailListByMasterId({
|
||||||
|
orderMasterId: curOrder.orderMasterId
|
||||||
|
});
|
||||||
|
if (res && res.code === 0) {
|
||||||
|
this.detailList = res.data;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showModal(curOrder, params) {
|
||||||
|
this.init(curOrder);
|
||||||
|
this.afterServiceType = params.afterServiceType;
|
||||||
|
this.toUpdateStatus = params.toUpdateStatus;
|
||||||
|
this.show = true;
|
||||||
|
},
|
||||||
|
hideModal(e) {
|
||||||
|
this.resetData();
|
||||||
|
this.$emit('cancel');
|
||||||
|
this.show = false;
|
||||||
|
},
|
||||||
|
resetData() {
|
||||||
|
this.afterServiceType = null;
|
||||||
|
this.customerReasonType = null;
|
||||||
|
this.data = null;
|
||||||
|
this.refund = null;
|
||||||
|
this.imgList = [];
|
||||||
|
this.remark = null;
|
||||||
|
},
|
||||||
|
chooseImgList(e, imgList) {
|
||||||
|
uni.chooseImage({
|
||||||
|
count: 3 - imgList.length, //默认9
|
||||||
|
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
|
||||||
|
sourceType: ['album'], //从相册选择
|
||||||
|
success: (res) => {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '上传中',
|
||||||
|
mask: true
|
||||||
|
});
|
||||||
|
res.tempFilePaths.forEach((tmpUrl, index) => {
|
||||||
|
this.$request.uploadFile(tmpUrl).then((url) => {
|
||||||
|
imgList.push(url);
|
||||||
|
if (index === res.tempFilePaths.length - 1) {
|
||||||
|
uni.hideLoading();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
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 apply() {
|
||||||
|
let imgObjList = [];
|
||||||
|
this.imgList.forEach(url => {
|
||||||
|
imgObjList.push({
|
||||||
|
imgUrl: url,
|
||||||
|
imgUploadBy: 1
|
||||||
|
})
|
||||||
|
})
|
||||||
|
let res = await this.$request.addAfterServiceRecord({
|
||||||
|
customerReasonType: this.customerReasonType,
|
||||||
|
customerReason: this.remark,
|
||||||
|
orderDetailId: this.detailObj.orderDetailId,
|
||||||
|
operType: this.afterServiceType,
|
||||||
|
refund: this.refund,
|
||||||
|
imgsList: imgObjList,
|
||||||
|
createBy: 1
|
||||||
|
});
|
||||||
|
if (res && res.code === 0) {
|
||||||
|
let updateStatusRes = {
|
||||||
|
code: 0
|
||||||
|
}
|
||||||
|
if (this.toUpdateStatus) {
|
||||||
|
updateStatusRes = await this.$request.updateOrder({
|
||||||
|
id: this.data.orderMasterId,
|
||||||
|
orderStatus: 3
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (updateStatusRes && updateStatusRes.code === 0) {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1000
|
||||||
|
})
|
||||||
|
this.hideModal();
|
||||||
|
this.$emit('confirmFeedback');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'error',
|
||||||
|
duration: 1000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.inline-input {
|
||||||
|
flex-basis: 74%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -73,12 +73,7 @@
|
||||||
<view>
|
<view>
|
||||||
<button class="cu-btn sm bg-yellow margin-right-sm"
|
<button class="cu-btn sm bg-yellow margin-right-sm"
|
||||||
@click="updateFinisheStatus(shopOrder, 5, false)">确认完单</button>
|
@click="updateFinisheStatus(shopOrder, 5, false)">确认完单</button>
|
||||||
<!-- <button class="cu-btn sm bg-yellow margin-right-sm"
|
<button class="cu-btn sm bg-yellow margin-right-sm" @click="showModalByRef('applyAfterService', shopOrder, {afterServiceType: 2, toUpdateStatus: true})">拒绝完单</button>
|
||||||
@click="updateFinisheStatus(shopOrder, 3, true)">拒绝完单</button> -->
|
|
||||||
<!-- <button v-if="shopOrder.finishOrder.finishStatus === 2"
|
|
||||||
class="cu-btn sm bg-yellow margin-right-sm" disabled type="">已确认完单</button>
|
|
||||||
<button v-if="shopOrder.finishOrder.finishStatus === -1"
|
|
||||||
class="cu-btn sm bg-yellow margin-right-sm" disabled type="">已拒绝完单</button> -->
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -111,17 +106,20 @@
|
||||||
</view>
|
</view>
|
||||||
<load-status-bar ref="loadStatusBar" @loadMore="loadOrderPage"></load-status-bar>
|
<load-status-bar ref="loadStatusBar" @loadMore="loadOrderPage"></load-status-bar>
|
||||||
<confirm-modal ref="confirmModal" :content="'是否确定取消订单?'" @confirm="cancelOrder" @cancel="blurCurOrder"></confirm-modal>
|
<confirm-modal ref="confirmModal" :content="'是否确定取消订单?'" @confirm="cancelOrder" @cancel="blurCurOrder"></confirm-modal>
|
||||||
|
<apply-after-service ref="applyAfterService" :data="curOrder" @confirmFeedback="reloadOrderPage" @cancel="blurCurOrder"></apply-after-service>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import productPicked from '@/pages/my/components/product-picked.vue';
|
import productPicked from '@/pages/my/components/product-picked.vue';
|
||||||
import loadStatusBar from '@/components/custom-bar/load-status-bar.vue';
|
import loadStatusBar from '@/components/custom-bar/load-status-bar.vue';
|
||||||
|
import applyAfterService from '@/pages/my/components/modal/apply-after-service.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
productPicked,
|
productPicked,
|
||||||
loadStatusBar
|
loadStatusBar,
|
||||||
|
applyAfterService
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -187,7 +185,12 @@
|
||||||
params.payStatus = 0;
|
params.payStatus = 0;
|
||||||
params.exceptOrderStatus = 6;
|
params.exceptOrderStatus = 6;
|
||||||
}
|
}
|
||||||
let res = await this.$request.qryOrderPage(params);
|
let res = null;
|
||||||
|
if (this.tabCur === 6) {
|
||||||
|
res = await this.$request.getAfterList();
|
||||||
|
} else {
|
||||||
|
res = await this.$request.qryOrderPage(params);
|
||||||
|
}
|
||||||
let rowsLength = res.rows.length;
|
let rowsLength = res.rows.length;
|
||||||
if (rowsLength > 0) {
|
if (rowsLength > 0) {
|
||||||
this.myOrders = this.myOrders.concat(res.rows);
|
this.myOrders = this.myOrders.concat(res.rows);
|
||||||
|
|
@ -225,14 +228,15 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return res;
|
||||||
},
|
},
|
||||||
showServDetail(order) {
|
showServDetail(order) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages/my/serv-detail?order=' + encodeURIComponent(JSON.stringify(order))
|
url: '/pages/my/serv-detail?order=' + encodeURIComponent(JSON.stringify(order))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
showModalByRef(refName, curOrder) {
|
showModalByRef(refName, curOrder, params) {
|
||||||
this.$refs[refName].showModal();
|
this.$refs[refName].showModal(curOrder, params);
|
||||||
this.curOrder = curOrder;
|
this.curOrder = curOrder;
|
||||||
},
|
},
|
||||||
blurCurOrder() {
|
blurCurOrder() {
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,115 @@
|
||||||
<text>备注:{{item.remark}}</text>
|
<text>备注:{{item.remark}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view v-if="item.afterServiceRecordList && item.afterServiceRecordList.length" class="bg-white">
|
||||||
|
<view class="cu-bar">
|
||||||
|
<view class="action bar-first-action">
|
||||||
|
<text class="cuIcon-title text-main-color"></text> {{item.afterServiceRecordList[0].operType === 1 ? '退款记录' : '售后记录'}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-for="(afterServiceRecord, afterServiceRecordIndex) in item.afterServiceRecordList" class="solid-top padding-tb">
|
||||||
|
<view v-if="afterServiceRecord.createBy == 1">
|
||||||
|
<view class='cu-tag bg-main-color radius light'>客户发起</view>
|
||||||
|
<view v-if="afterServiceRecord.operType === 1">
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款申请:</text>
|
||||||
|
<uni-countdown :show-colon="false" :backgroundColor="'#eee'"
|
||||||
|
:day="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).day"
|
||||||
|
:hour="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).hour"
|
||||||
|
:minute="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).min"
|
||||||
|
:second="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).seconds">
|
||||||
|
</uni-countdown>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款金额:</text>
|
||||||
|
<text>{{afterServiceRecord.refund}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款原因:</text>
|
||||||
|
<text>{{afterServiceRecord.customerReason}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="grid col-3 grid-square flex-sub margin-top-sm">
|
||||||
|
<view class="bg-img" v-for="(imgObj, imgIndex) in afterServiceRecord.imgsList" :key="imgIndex">
|
||||||
|
<image :src="imgObj.imgUrl" @tap="viewImage($event, [imgObj.imgUrl])" :data-url="imgObj.imgUrl" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else-if="afterServiceRecord.operType === 2">
|
||||||
|
<view class="flex justify-start align-end">
|
||||||
|
<text>待处理售后:</text>
|
||||||
|
<uni-countdown :show-colon="false" :backgroundColor="'#eee'"
|
||||||
|
:day="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).day"
|
||||||
|
:hour="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).hour"
|
||||||
|
:minute="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).min"
|
||||||
|
:second="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).seconds">
|
||||||
|
</uni-countdown>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<text>售后原因:</text>
|
||||||
|
<text>{{afterServiceRecord.customerReason}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>完成操作:点击“处理完成”提交由客服回访!</text>
|
||||||
|
</view>
|
||||||
|
<view class="grid col-3 grid-square flex-sub margin-top-sm">
|
||||||
|
<view class="bg-img" v-for="(imgObj, imgIndex) in afterServiceRecord.imgsList" :key="imgIndex">
|
||||||
|
<image :src="imgObj.imgUrl" @tap="viewImage($event, [imgObj.imgUrl])" :data-url="imgObj.imgUrl" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="afterServiceRecord.updateBy == 2">
|
||||||
|
<view class='cu-tag bg-main-color radius light'>师傅反馈</view>
|
||||||
|
<view v-if="afterServiceRecord.operType === 1">
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款申请:</text>
|
||||||
|
<uni-countdown :show-colon="false" :backgroundColor="'#eee'"
|
||||||
|
:day="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).day"
|
||||||
|
:hour="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).hour"
|
||||||
|
:minute="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).min"
|
||||||
|
:second="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).seconds">
|
||||||
|
</uni-countdown>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款金额:</text>
|
||||||
|
<text>{{afterServiceRecord.agreedRefund ? afterServiceRecord.agreedRefund : afterServiceRecord.refund}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>退款原因:</text>
|
||||||
|
<text>{{afterServiceRecord.workerFeedbackReason}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="grid col-3 grid-square flex-sub margin-top-sm">
|
||||||
|
<view class="bg-img" v-for="(imgObj, imgIndex) in afterServiceRecord.imgsList" :key="imgIndex">
|
||||||
|
<image :src="imgObj.imgUrl" @tap="viewImage($event, [imgObj.imgUrl])" :data-url="imgObj.imgUrl" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else-if="afterServiceRecord.operType === 2">
|
||||||
|
<view class="flex justify-start align-end">
|
||||||
|
<text>待处理售后:</text>
|
||||||
|
<uni-countdown :show-colon="false" :backgroundColor="'#eee'"
|
||||||
|
:day="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).day"
|
||||||
|
:hour="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).hour"
|
||||||
|
:minute="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).min"
|
||||||
|
:second="$dateUtil.countDownDiff($dateUtil.addHours(afterServiceRecord.createTime, 24)).seconds">
|
||||||
|
</uni-countdown>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<text>售后原因:</text>
|
||||||
|
<text>{{afterServiceRecord.workerFeedbackReason}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="margin-top-sm">
|
||||||
|
<text>完成操作:点击“处理完成”提交由客服回访!</text>
|
||||||
|
</view>
|
||||||
|
<view class="grid col-3 grid-square flex-sub margin-top-sm">
|
||||||
|
<view class="bg-img" v-for="(imgObj, imgIndex) in afterServiceRecord.imgsList" :key="imgIndex">
|
||||||
|
<image :src="imgObj.imgUrl" @tap="viewImage($event, [imgObj.imgUrl])" :data-url="imgObj.imgUrl" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 订单编码和时间 -->
|
<!-- 订单编码和时间 -->
|
||||||
<view class="bg-white margin-top-sm padding margin-lr-sm margin-bottom-with-bar">
|
<view class="bg-white margin-top-sm padding margin-lr-sm margin-bottom-with-bar">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue