CRM_26-04-29#story#8528,供应商记账模块调整—徐力雯

This commit is contained in:
2026-04-27 15:04:17 +08:00
parent 37aeba20da
commit 424ef98798

View File

@@ -54,6 +54,11 @@
<span <span
class="content">{{ orderInfo.carClothingToolAmount }}</span> class="content">{{ orderInfo.carClothingToolAmount }}</span>
</div> </div>
<div class="item">
<span class="titleLeft">免拖</span>
<span
class="content">{{ orderInfo.customerDistanceLimit }} {{orderInfo.hedgingMileage && orderInfo.hedgingMileage > 0 ? '(超限对冲,只结免拖)' : ''}}</span>
</div>
<div class="item"> <div class="item">
<span class="titleLeft">换电瓶费用</span> <span class="titleLeft">换电瓶费用</span>
<span <span
@@ -72,35 +77,35 @@
<div class="inpInfo"> <div class="inpInfo">
<div class="titleContent"> <div class="titleContent">
<div class="flex-between" v-show="abState"> <div class="flex-between" v-show="abState">
<div> 到事发地距离:</div> <div><span style="color: red;">*</span> 到事发地距离:</div>
<div class="halfOpcity"><input @input="validateIntegerInput" class="ipt" type="number" v-model="form.supplierSettleMileageAb"/>公里</div> <div class="halfOpcity"><input @input="validateIntegerInput" class="ipt" type="number" v-model="form.supplierSettleMileageAb"/>公里</div>
</div> </div>
<div class="flex-between" v-show="bcState"> <div class="flex-between" v-show="bcState">
<div> 拖车里程:</div> <div><span style="color: red;">*</span> 拖车里程:</div>
<div class="halfOpcity"><input class="ipt" type="number" v-model="form.supplierSettleMileageBc"/>公里</div> <div class="halfOpcity"><input class="ipt" type="number" v-model="form.supplierSettleMileageBc"/>公里</div>
</div> </div>
<div class="flex-between" v-show="caState"> <div class="flex-between" v-show="caState">
<div>返程里程:</div> <div><span style="color: red;">*</span>返程里程:</div>
<div class="halfOpcity"><input class="ipt" type="number" v-model="form.supplierSettleMileageCa"/>公里</div> <div class="halfOpcity"><input class="ipt" type="number" v-model="form.supplierSettleMileageCa"/>公里</div>
</div> </div>
<div class="flex-between" v-show="bridgeAbState"> <div class="flex-between" v-show="bridgeAbState">
<div>ab路桥费:</div> <div><span v-show="!isUnsuccessfulSettle" style="color: red;">*</span>ab路桥费:</div>
<div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountAb"/></div> <div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountAb"/></div>
</div> </div>
<div class="flex-between" v-show="bridgeBcState"> <div class="flex-between" v-show="bridgeBcState">
<div>bc路桥费:</div> <div><span v-show="!isUnsuccessfulSettle" style="color: red;">*</span>bc路桥费:</div>
<div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountBc"/></div> <div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountBc"/></div>
</div> </div>
<div class="flex-between" v-show="bridgeCaState"> <div class="flex-between" v-show="bridgeCaState">
<div>ca路桥费:</div> <div><span v-show="!isUnsuccessfulSettle" style="color: red;">*</span>ca路桥费:</div>
<div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountCa"/></div> <div class="halfOpcity"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.supplierBridgeAmountCa"/></div>
</div> </div>
<div class="flex-between" v-show="waitAmountState"> <div class="flex-between" v-show="waitAmountState">
<div>等候费:</div> <div><span style="color: red;">*</span>等候费:</div>
<div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" type="number" v-model="form.supplierWaitAmount"/></div> <div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" type="number" v-model="form.supplierWaitAmount"/></div>
</div> </div>
<div class="flex-between" v-show="tyreAmountState"> <div class="flex-between" v-show="tyreAmountState">
<div>小轮个数:</div> <div><span v-show="!isUnsuccessfulSettle" style="color: red;">*</span>小轮个数:</div>
<div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.tyreNumber"/></div> <div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" :disabled="isUnsuccessfulSettle" type="number" v-model="form.tyreNumber"/></div>
</div> </div>
<div class="flex-between" v-show="tyreAmountState"> <div class="flex-between" v-show="tyreAmountState">
@@ -108,11 +113,11 @@
<div class="halfOpcity inputContent"><input @input="validateIntegerInput" disabled type="number" v-model="form.supplierTyreAmount"/></div> <div class="halfOpcity inputContent"><input @input="validateIntegerInput" disabled type="number" v-model="form.supplierTyreAmount"/></div>
</div> </div>
<div class="flex-between" v-show="dilemmaAmountState && basePriceDisabled"> <div class="flex-between" v-show="dilemmaAmountState && basePriceDisabled">
<div>困境费:</div> <div><span style="color: red;">*</span>困境费:</div>
<div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" type="number" v-model="form.supplierDilemmaAmount"/></div> <div class="halfOpcity inputContent"><input class="ipt" @input="validateIntegerInput" type="number" v-model="form.supplierDilemmaAmount"/></div>
</div> </div>
<div class="flex-between" v-show="basementFeeState"> <div class="flex-between" v-show="basementFeeState">
<div>地库费:</div> <div><span v-show="isBasementSettle && !isUnsuccessfulSettle" style="color: red;">*</span>地库费:</div>
<div class="halfOpcity inputContent"><input @input="validateIntegerInput" class="ipt" type="number" v-model="form.supplierBasementFee" :disabled="!isBasementSettle || isUnsuccessfulSettle" /></div> <div class="halfOpcity inputContent"><input @input="validateIntegerInput" class="ipt" type="number" v-model="form.supplierBasementFee" :disabled="!isBasementSettle || isUnsuccessfulSettle" /></div>
</div> </div>
<div class="flex-between"> <div class="flex-between">
@@ -120,7 +125,7 @@
<div class="halfOpcity inputContent"><input type="number" class="ipt" v-model="form.supplierCustomerAmount"/></div> <div class="halfOpcity inputContent"><input type="number" class="ipt" v-model="form.supplierCustomerAmount"/></div>
</div> </div>
<div class="flex-between bgDisable" :class=" { 'flex-between': true, 'bgDisable' : basePriceDisabled } "> <div class="flex-between bgDisable" :class=" { 'flex-between': true, 'bgDisable' : basePriceDisabled } ">
<div>基本费用:</div> <div><span v-show="!basePriceDisabled && !isBasementSettle" style="color: red;">*</span>基本费用:</div>
<div class="halfOpcity inputContent "><input class="disable" type="number" :readonly="basePriceDisabled || isBasementSettle" <div class="halfOpcity inputContent "><input class="disable" type="number" :readonly="basePriceDisabled || isBasementSettle"
v-model="form.supplierBasePrice"/><span></span></div> v-model="form.supplierBasePrice"/><span></span></div>
</div> </div>
@@ -657,6 +662,50 @@ export default {
this.goback() this.goback()
}, },
async save() { async save() {
const isBlank = (v) => v === '' || v === null || v === undefined || parseFloat(v) <= 0
if (this.abState && isBlank(this.form.supplierSettleMileageAb)) {
this.$toast('请填写到事发地距离'); return;
}
if (this.bcState && isBlank(this.form.supplierSettleMileageBc)) {
this.$toast('请填写拖车里程'); return;
}
if (this.caState && isBlank(this.form.supplierSettleMileageCa)) {
this.$toast('请填写返程里程'); return;
}
if (this.bridgeAbState && !this.isUnsuccessfulSettle && isBlank(this.form.supplierBridgeAmountAb)) {
this.$toast('请填写ab路桥费'); return;
}
if (this.bridgeBcState && !this.isUnsuccessfulSettle && isBlank(this.form.supplierBridgeAmountBc)) {
this.$toast('请填写bc路桥费'); return;
}
if (this.bridgeCaState && !this.isUnsuccessfulSettle && isBlank(this.form.supplierBridgeAmountCa)) {
this.$toast('请填写ca路桥费'); return;
}
if (this.waitAmountState && isBlank(this.form.supplierWaitAmount)) {
this.$toast('请填写等候费'); return;
}
if (this.tyreAmountState && !this.isUnsuccessfulSettle && isBlank(this.form.tyreNumber)) {
this.$toast('请填写小轮个数'); return;
}
if (this.dilemmaAmountState && this.basePriceDisabled && isBlank(this.form.supplierDilemmaAmount)) {
this.$toast('请填写困境费'); return;
}
if (this.basementFeeState && this.isBasementSettle && !this.isUnsuccessfulSettle && isBlank(this.form.supplierBasementFee)) {
this.$toast('请填写地库费'); return;
}
if (!this.basePriceDisabled && !this.isBasementSettle && isBlank(this.form.supplierBasePrice)) {
this.$toast('请填写基本费用'); return;
}
if (
this.orderInfo.customerDistanceLimit &&
parseFloat(this.form.supplierSettleMileageBc) > parseFloat(this.orderInfo.customerDistanceLimit)
) {
console.log(11111111)
if (!this.form.supplierCustomerAmount || parseFloat(this.form.supplierCustomerAmount) == 0) {
this.$toast('拖车里程超出免拖范围,请填写收取客户金额');
return;
}
}
if (this.form.supplierOtherAmount > 0) { if (this.form.supplierOtherAmount > 0) {
if (this.form.supplierOtherAmountRemark == '') { if (this.form.supplierOtherAmountRemark == '') {
this.$toast('请填写其他费用说明'); this.$toast('请填写其他费用说明');
@@ -704,7 +753,7 @@ export default {
formData.append('state', 0); formData.append('state', 0);
formData.append('postfix', this.postfix); formData.append('postfix', this.postfix);
formData.append('supplierBridgeAmount', parseInt(this.form.supplierBridgeAmountAb || 0) + parseInt(this.form.supplierBridgeAmountBc || 0) + parseInt(this.form.supplierBridgeAmountCa || 0)); formData.append('supplierBridgeAmount', parseInt(this.form.supplierBridgeAmountAb || 0) + parseInt(this.form.supplierBridgeAmountBc || 0) + parseInt(this.form.supplierBridgeAmountCa || 0));
let res = await updateAccountRecordInfo(formData); /* let res = await updateAccountRecordInfo(formData);
if (res.code === 200) { if (res.code === 200) {
this.$toast('操作成功') this.$toast('操作成功')
setTimeout(() => { setTimeout(() => {
@@ -717,7 +766,7 @@ export default {
} }
}) })
}, 2000) }, 2000)
} }*/
this.loading = false; this.loading = false;
}, },
async confirmAudit() { async confirmAudit() {
@@ -725,6 +774,49 @@ export default {
this.$toast('已进入后续流程,不允许操作'); this.$toast('已进入后续流程,不允许操作');
return; return;
} }
const isBlank = (v) => v === '' || v === null || v === undefined || parseFloat(v) <= 0
if (this.abState && isBlank(this.form.settleMileageAb)) {
this.$toast('请填写到事发地距离'); return;
}
if (this.bcState && isBlank(this.form.settleMileageBc)) {
this.$toast('请填写拖车里程'); return;
}
if (this.caState && isBlank(this.form.settleMileageCa)) {
this.$toast('请填写返程里程'); return;
}
if (this.bridgeAbState && !this.isUnsuccessfulSettle && isBlank(this.form.bridgeAmountAb)) {
this.$toast('请填写ab路桥费'); return;
}
if (this.bridgeBcState && !this.isUnsuccessfulSettle && isBlank(this.form.bridgeAmountBc)) {
this.$toast('请填写bc路桥费'); return;
}
if (this.bridgeCaState && !this.isUnsuccessfulSettle && isBlank(this.form.bridgeAmountCa)) {
this.$toast('请填写ca路桥费'); return;
}
if (this.waitAmountState && isBlank(this.form.waitAmount)) {
this.$toast('请填写等候费'); return;
}
if (this.tyreAmountState && !this.isUnsuccessfulSettle && isBlank(this.form.tyreNumber)) {
this.$toast('请填写小轮个数'); return;
}
if (this.dilemmaAmountState && this.basePriceDisabled && isBlank(this.form.dilemmaAmount)) {
this.$toast('请填写困境费'); return;
}
if (this.basementFeeState && this.isBasementSettle && !this.isUnsuccessfulSettle && isBlank(this.form.basementFee)) {
this.$toast('请填写地库费'); return;
}
if (!this.basePriceDisabled && !this.isBasementSettle && isBlank(this.form.basePrice)) {
this.$toast('请填写基本费用'); return;
}
if (
this.orderInfo.customerDistanceLimit &&
parseFloat(this.form.settleMileageBc) > parseFloat(this.orderInfo.customerDistanceLimit)
) {
if (!this.form.customerAmount || parseFloat(this.form.customerAmount) == 0) {
this.$toast('拖车里程超出免拖范围,请填写收取客户金额');
return;
}
}
this.loading1 = true; this.loading1 = true;
this.form.supplierExtraPrice = this.form.extraPrice || 0 this.form.supplierExtraPrice = this.form.extraPrice || 0
this.form.supplierBasePrice = this.form.basePrice || 0 this.form.supplierBasePrice = this.form.basePrice || 0
@@ -942,7 +1034,7 @@ img {
} }
.baseInfo { .baseInfo {
@include wh(100%, 344px); width: 100%;
} }