dingdong-master/pages/order-manage/modal/allocate-service-money.vue

130 lines
3.2 KiB
Vue
Raw Normal View History

2026-03-13 14:27:07 +08:00
<template>
<view class="cu-modal" :class="show?'show':''">
<view class="cu-dialog bg-white">
<view class="cu-bar">
<view class="content">分配服务金额</view>
<view class="action" data-modal="agreeAfterSale" @click="hideModal">
<text class="cuIcon-close text-red"></text>
</view>
</view>
<view class="padding text-left">
<view class="padding-top">
<view class="flex justify-start flex-direction">
<view>本单商品已设置包安装/包施工类服务</view>
<view>请预置分配安装或服务费/工时费</view>
</view>
<view class="margin-top solid radius text-left padding-sm">
<input type="digit" style="width: 100%;" placeholder="请输入本单服务费,工时费可撤回或修改" v-model="serviceMoney">
</view>
</view>
</view>
<view class="cu-bar solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="agreeAfterSale" @click="hideModal">关闭/返回查看商品</view>
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="agreeAfterSale"
@click="noticeConfirm">继续接单</view>
</view>
</view>
<confirm-modal ref="notice" :content="'本单款项银联确认已发起支付,款项已到达或即将到达您所绑定帐户,需退款的同意后您线下与客户操作退款,系统无法提供原路返回退款!'" :confirmMsg="'同意'" @confirm="noticeConfirm" @cancel="noticeCancel"></confirm-modal>
</view>
</template>
<script>
export default {
name: 'agreeAfterSale',
props: {
show: {
type: Boolean,
default: false
},
data: {
type: Object,
default: {}
}
},
data() {
return {
agreedRefund: null,
reasonType: null,
remark: null,
serviceMoney: null
}
},
methods: {
hideModal(e) {
this.resetData();
this.$emit('close', e);
},
resetData() {
this.serviceMoney = null;
},
showNotice(e) {
if (this.data.drawCashStatus != null && this.data.drawCashStatus >= 1) {
this.$refs.notice.showModal();
} else {
this.submit(e);
}
},
noticeConfirm() {
this.submit({
currentTarget: {
dataset: {
modal: 'agreeAfterSale'
}
}
});
},
noticeCancel() {
this.hideModal({
currentTarget: {
dataset: {
modal: 'agreeAfterSale'
}
}
});
},
async submit(e) {
if (!this.serviceMoney) {
uni.showToast({
title: '请输入本单服务费',
icon: 'none'
});
return;
}
if(parseFloat(this.serviceMoney) > this.data.serverMoney) {
uni.showToast({
title: '本单服务费不能大于订单服务金额',
icon: 'none'
});
return;
}
let res = await this.$request.allocateServiceMoney({
id: this.data.orderMasterId,
serverGoodsMoney: this.serviceMoney
});
if (res && res.code === 0) {
uni.showToast({
icon: 'success',
title: '提交成功',
duration: 1000
})
this.hideModal(e);
this.$emit('confirmFeedback');
return;
}
uni.showToast({
icon: 'error',
duration: 1000,
title: '提交失败',
})
}
},
}
</script>
<style scoped>
.inline-input {
flex-basis: 25%;
}
</style>