Commit 511a854145dd251a6d7e8453e0ac04fe8512947b

Authored by lxf
1 parent 1428b061

fix: 下单加保险

@@ -165,6 +165,7 @@ module.exports = (vm) => { @@ -165,6 +165,7 @@ module.exports = (vm) => {
165 getFreightRisk: params => vm.$u.http.get( freightAPI + '/freightRiskException/page', {params}), // 风控异常 165 getFreightRisk: params => vm.$u.http.get( freightAPI + '/freightRiskException/page', {params}), // 风控异常
166 riskAppeal: params => vm.$u.http.post( freightAPI + '/freightRiskException/complaint', params), // 风控异常-申诉 166 riskAppeal: params => vm.$u.http.post( freightAPI + '/freightRiskException/complaint', params), // 风控异常-申诉
167 maModifyRemark: params => vm.$u.http.post( freightAPI + '/freightOrder/maModifyRemark', params), // 修改备注 167 maModifyRemark: params => vm.$u.http.post( freightAPI + '/freightOrder/maModifyRemark', params), // 修改备注
  168 + insure: params => vm.$u.http.post( freightAPI + '/freightOrder/insure', params), // 购买保险
168 freightInsuranceList: params => vm.$u.http.get( freightAPI + '/freightInsuranceProgram/getList', {params}), 169 freightInsuranceList: params => vm.$u.http.get( freightAPI + '/freightInsuranceProgram/getList', {params}),
169 }, 170 },
170 freightMaRecord: { 171 freightMaRecord: {
pages/order/add.vue
@@ -532,6 +532,7 @@ export default { @@ -532,6 +532,7 @@ export default {
532 }, 532 },
533 buyInsurance() { 533 buyInsurance() {
534 uni.$once('buy-insurance', insuranceForm => { 534 uni.$once('buy-insurance', insuranceForm => {
  535 + uni.navigateBack();
535 this.form = { 536 this.form = {
536 ...this.form, 537 ...this.form,
537 ...insuranceForm, 538 ...insuranceForm,
pages/order/card.vue
@@ -68,7 +68,14 @@ @@ -68,7 +68,14 @@
68 <view class="more-action"> 68 <view class="more-action">
69 <view class="view" v-if="$permission('/freightOrder/add')" @tap="againOne"> 再来一单 </view> 69 <view class="view" v-if="$permission('/freightOrder/add')" @tap="againOne"> 再来一单 </view>
70 <view class="view" v-if="$permission('/freightOrder/delete') && ['CANCEL'].includes(item.status)" @tap="deleteOrder"> 删除订单 </view> 70 <view class="view" v-if="$permission('/freightOrder/delete') && ['CANCEL'].includes(item.status)" @tap="deleteOrder"> 删除订单 </view>
71 - <view class="view" v-if="$permission('/freightOrder/cancel') && ['WAIT_CONFIRM', 'WAIT_ACCEPT', 'WAIT_DEPART'].includes(item.status)" @tap="cancelOrder"> 取消订单 </view> 71 + <view
  72 + class="view"
  73 + v-if="$permission('/freightOrder/cancel') && ['WAIT_CONFIRM', 'WAIT_DEPART', 'WAIT_ACCEPT'].includes(item.status) && !['SUCCESS'].includes(item.insuranceStatus)"
  74 + @tap="buyInsurance"
  75 + >
  76 + 购买保险
  77 + </view>
  78 + <view class="view" v-if="$permission('/freightOrder/add') && ['WAIT_CONFIRM', 'WAIT_ACCEPT', 'WAIT_DEPART'].includes(item.status)" @tap="cancelOrder"> 取消订单 </view>
72 </view> 79 </view>
73 </template> 80 </template>
74 <view class="button"> 81 <view class="button">
@@ -78,6 +85,7 @@ @@ -78,6 +85,7 @@
78 </view> 85 </view>
79 </view> 86 </view>
80 </zb-tooltip> 87 </zb-tooltip>
  88 +
81 <view v-if="['WAIT_ACCEPT', 'WAIT_DEPART'].includes(item.status) && $permission('/freightOrder/depart')" class="button primary" @click.stop="start">确认发车</view> 89 <view v-if="['WAIT_ACCEPT', 'WAIT_DEPART'].includes(item.status) && $permission('/freightOrder/depart')" class="button primary" @click.stop="start">确认发车</view>
82 <view v-if="['TRANSFER'].includes(item.status) && $permission('/freightOrder/arrive')" class="button primary" @click.stop="arrival">确认到达</view> 90 <view v-if="['TRANSFER'].includes(item.status) && $permission('/freightOrder/arrive')" class="button primary" @click.stop="arrival">确认到达</view>
83 <view v-if="item.status === 'COMPLETED' && !item.receiptAttachment && $permission('/freightOrder/modifyReceiptAttachment')" class="button primary" @click.stop="uploadReceipt" 91 <view v-if="item.status === 'COMPLETED' && !item.receiptAttachment && $permission('/freightOrder/modifyReceiptAttachment')" class="button primary" @click.stop="uploadReceipt"
@@ -140,6 +148,9 @@ export default { @@ -140,6 +148,9 @@ export default {
140 this.visible = false; 148 this.visible = false;
141 this.$emit('delete', this.item.code); 149 this.$emit('delete', this.item.code);
142 }, 150 },
  151 + buyInsurance() {
  152 + this.$emit('buyInsurance', this.item.code, this.item);
  153 + },
143 start() { 154 start() {
144 this.$emit('start', this.item.code); 155 this.$emit('start', this.item.code);
145 }, 156 },
pages/order/index.vue
@@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
43 @start="toStartCar" 43 @start="toStartCar"
44 @arrival="toArrivalCar" 44 @arrival="toArrivalCar"
45 @qrShow="qrCodeShow" 45 @qrShow="qrCodeShow"
  46 + @buyInsurance="buyInsurance"
46 :key="index" 47 :key="index"
47 :item="item" 48 :item="item"
48 @tap="toDetail(item.code)" 49 @tap="toDetail(item.code)"
@@ -306,7 +307,6 @@ export default { @@ -306,7 +307,6 @@ export default {
306 this.loading = false; 307 this.loading = false;
307 if (res2.success) { 308 if (res2.success) {
308 this.poster = this.getPoster(res.result, data, res2.result); 309 this.poster = this.getPoster(res.result, data, res2.result);
309 - console.info(this.poster);  
310 } 310 }
311 }) 311 })
312 .catch(e => { 312 .catch(e => {
@@ -318,6 +318,31 @@ export default { @@ -318,6 +318,31 @@ export default {
318 this.loading = false; 318 this.loading = false;
319 }); 319 });
320 }, 320 },
  321 + buyInsurance(code, data) {
  322 + uni.$once('buy-insurance', insuranceForm => {
  323 + uni.showLoading();
  324 + if (insuranceForm.insuranceProgramCode) {
  325 + uni.$u.api.freightOrder
  326 + .insure({
  327 + orderCode: code,
  328 + ...insuranceForm,
  329 + })
  330 + .then(res => {
  331 + uni.hideLoading();
  332 + uni.navigateBack();
  333 + this.onSearch();
  334 + })
  335 + .finally(() => {
  336 + uni.hideLoading();
  337 + });
  338 + } else {
  339 + uni.navigateBack();
  340 + }
  341 + });
  342 + uni.navigateTo({
  343 + url: `/pages/order/insurance?paidAmount=${data.paidAmount}`,
  344 + });
  345 + },
321 }, 346 },
322 }; 347 };
323 </script> 348 </script>
pages/order/insurance.vue
@@ -146,7 +146,6 @@ export default { @@ -146,7 +146,6 @@ export default {
146 coverageLimit: '', 146 coverageLimit: '',
147 }; 147 };
148 uni.$emit('buy-insurance', form); 148 uni.$emit('buy-insurance', form);
149 - uni.navigateBack();  
150 }, 149 },
151 submitInsurance() { 150 submitInsurance() {
152 if (!this.form.startDate) { 151 if (!this.form.startDate) {
@@ -156,12 +155,11 @@ export default { @@ -156,12 +155,11 @@ export default {
156 return uni.showToast({ title: '请选择方案', icon: 'none' }); 155 return uni.showToast({ title: '请选择方案', icon: 'none' });
157 } 156 }
158 uni.$emit('buy-insurance', { ...this.form, programName: this.choseScheme.programName }); 157 uni.$emit('buy-insurance', { ...this.form, programName: this.choseScheme.programName });
159 - uni.navigateBack();  
160 }, 158 },
161 getReceiveInsuranceAmount(choseScheme, paidAmount) { 159 getReceiveInsuranceAmount(choseScheme, paidAmount) {
162 if (!paidAmount || !choseScheme) return ''; 160 if (!paidAmount || !choseScheme) return '';
163 let v1 = Number(paidAmount) * Number(choseScheme.receiveRate); 161 let v1 = Number(paidAmount) * Number(choseScheme.receiveRate);
164 - return v1 >= Number(choseScheme.minReceiveFee) ? Number(v1 + 0.005).toFixed(2) : choseScheme.minReceiveFee; 162 + return v1 >= Number(choseScheme.minReceiveFee) ? Number(v1 + 0.004).toFixed(2) : choseScheme.minReceiveFee;
165 }, 163 },
166 choseSchemeFun(index) { 164 choseSchemeFun(index) {
167 this.choseSchemeIndex = index; 165 this.choseSchemeIndex = index;