Commit 511a854145dd251a6d7e8453e0ac04fe8512947b
1 parent
1428b061
Exists in
master
and in
1 other branch
fix: 下单加保险
Showing
5 changed files
with
41 additions
and
5 deletions
Show diff stats
common/api.js
| ... | ... | @@ -165,6 +165,7 @@ module.exports = (vm) => { |
| 165 | 165 | getFreightRisk: params => vm.$u.http.get( freightAPI + '/freightRiskException/page', {params}), // 风控异常 |
| 166 | 166 | riskAppeal: params => vm.$u.http.post( freightAPI + '/freightRiskException/complaint', params), // 风控异常-申诉 |
| 167 | 167 | maModifyRemark: params => vm.$u.http.post( freightAPI + '/freightOrder/maModifyRemark', params), // 修改备注 |
| 168 | + insure: params => vm.$u.http.post( freightAPI + '/freightOrder/insure', params), // 购买保险 | |
| 168 | 169 | freightInsuranceList: params => vm.$u.http.get( freightAPI + '/freightInsuranceProgram/getList', {params}), |
| 169 | 170 | }, |
| 170 | 171 | freightMaRecord: { | ... | ... |
pages/order/add.vue
pages/order/card.vue
| ... | ... | @@ -68,7 +68,14 @@ |
| 68 | 68 | <view class="more-action"> |
| 69 | 69 | <view class="view" v-if="$permission('/freightOrder/add')" @tap="againOne"> 再来一单 </view> |
| 70 | 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 | 79 | </view> |
| 73 | 80 | </template> |
| 74 | 81 | <view class="button"> |
| ... | ... | @@ -78,6 +85,7 @@ |
| 78 | 85 | </view> |
| 79 | 86 | </view> |
| 80 | 87 | </zb-tooltip> |
| 88 | + | |
| 81 | 89 | <view v-if="['WAIT_ACCEPT', 'WAIT_DEPART'].includes(item.status) && $permission('/freightOrder/depart')" class="button primary" @click.stop="start">确认发车</view> |
| 82 | 90 | <view v-if="['TRANSFER'].includes(item.status) && $permission('/freightOrder/arrive')" class="button primary" @click.stop="arrival">确认到达</view> |
| 83 | 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 | 148 | this.visible = false; |
| 141 | 149 | this.$emit('delete', this.item.code); |
| 142 | 150 | }, |
| 151 | + buyInsurance() { | |
| 152 | + this.$emit('buyInsurance', this.item.code, this.item); | |
| 153 | + }, | |
| 143 | 154 | start() { |
| 144 | 155 | this.$emit('start', this.item.code); |
| 145 | 156 | }, | ... | ... |
pages/order/index.vue
| ... | ... | @@ -43,6 +43,7 @@ |
| 43 | 43 | @start="toStartCar" |
| 44 | 44 | @arrival="toArrivalCar" |
| 45 | 45 | @qrShow="qrCodeShow" |
| 46 | + @buyInsurance="buyInsurance" | |
| 46 | 47 | :key="index" |
| 47 | 48 | :item="item" |
| 48 | 49 | @tap="toDetail(item.code)" |
| ... | ... | @@ -306,7 +307,6 @@ export default { |
| 306 | 307 | this.loading = false; |
| 307 | 308 | if (res2.success) { |
| 308 | 309 | this.poster = this.getPoster(res.result, data, res2.result); |
| 309 | - console.info(this.poster); | |
| 310 | 310 | } |
| 311 | 311 | }) |
| 312 | 312 | .catch(e => { |
| ... | ... | @@ -318,6 +318,31 @@ export default { |
| 318 | 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 | 348 | </script> | ... | ... |
pages/order/insurance.vue
| ... | ... | @@ -146,7 +146,6 @@ export default { |
| 146 | 146 | coverageLimit: '', |
| 147 | 147 | }; |
| 148 | 148 | uni.$emit('buy-insurance', form); |
| 149 | - uni.navigateBack(); | |
| 150 | 149 | }, |
| 151 | 150 | submitInsurance() { |
| 152 | 151 | if (!this.form.startDate) { |
| ... | ... | @@ -156,12 +155,11 @@ export default { |
| 156 | 155 | return uni.showToast({ title: '请选择方案', icon: 'none' }); |
| 157 | 156 | } |
| 158 | 157 | uni.$emit('buy-insurance', { ...this.form, programName: this.choseScheme.programName }); |
| 159 | - uni.navigateBack(); | |
| 160 | 158 | }, |
| 161 | 159 | getReceiveInsuranceAmount(choseScheme, paidAmount) { |
| 162 | 160 | if (!paidAmount || !choseScheme) return ''; |
| 163 | 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 | 164 | choseSchemeFun(index) { |
| 167 | 165 | this.choseSchemeIndex = index; | ... | ... |