Commit e572dbb325b7e040fd8c5ba5601d8372a1edbbff
1 parent
ec5a0352
Exists in
master
and in
1 other branch
fix: 下单加保险
Showing
8 changed files
with
173 additions
and
39 deletions
Show diff stats
common/api.js
| @@ -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 | + freightInsuranceList: params => vm.$u.http.get( freightAPI + '/freightInsuranceProgram/getList', {params}), | ||
| 168 | }, | 169 | }, |
| 169 | freightMaRecord: { | 170 | freightMaRecord: { |
| 170 | add: params => vm.$u.http.post( freightAPI + '/freightMaRecord/add', params,{custom: {toast:true}}), // 出发到达记录日志 | 171 | add: params => vm.$u.http.post( freightAPI + '/freightMaRecord/add', params,{custom: {toast:true}}), // 出发到达记录日志 |
pages/order/add.vue
| @@ -134,10 +134,18 @@ | @@ -134,10 +134,18 @@ | ||
| 134 | </template> | 134 | </template> |
| 135 | </u-input> | 135 | </u-input> |
| 136 | </u-form-item> | 136 | </u-form-item> |
| 137 | - <u-form-item label="货物保险" @click="buyInsurance"> | ||
| 138 | - <u-input v-model="form.loadTime" border="none" suffix-icon="arrow-right" placeholder="最高赔付300万" disabledColor="#ffffff" placeholder-style="color:#ffcc00" disabled> | 137 | + <u-form-item v-if="openExternalInsuranceFlag && form.paidAmount" label="货物保险" @click="buyInsurance"> |
| 138 | + <u-input | ||
| 139 | + v-model="form.loadTime" | ||
| 140 | + border="none" | ||
| 141 | + suffix-icon="arrow-right" | ||
| 142 | + :placeholder="form.coverageLimit ? `最高赔付${form.coverageLimit}万` : '最高赔付300万'" | ||
| 143 | + disabledColor="#ffffff" | ||
| 144 | + placeholder-style="color:#ffcc00" | ||
| 145 | + disabled | ||
| 146 | + > | ||
| 139 | <template #suffix> | 147 | <template #suffix> |
| 140 | - <view style="display: flex; align-items: center">未购买 <u-icon name="arrow-right"></u-icon> </view | 148 | + <view style="display: flex; align-items: center">{{ form.insuranceProgramCode ? '已购买' : '未购买' }} <u-icon name="arrow-right"></u-icon> </view |
| 141 | ></template> | 149 | ></template> |
| 142 | </u-input> | 150 | </u-input> |
| 143 | </u-form-item> | 151 | </u-form-item> |
| @@ -203,6 +211,7 @@ export default { | @@ -203,6 +211,7 @@ export default { | ||
| 203 | components: { UTextarea, PopupPlatenumber, payee }, | 211 | components: { UTextarea, PopupPlatenumber, payee }, |
| 204 | data() { | 212 | data() { |
| 205 | return { | 213 | return { |
| 214 | + openExternalInsuranceFlag: true, | ||
| 206 | eventCode: '', | 215 | eventCode: '', |
| 207 | loading: false, | 216 | loading: false, |
| 208 | showModal: '', | 217 | showModal: '', |
| @@ -244,6 +253,10 @@ export default { | @@ -244,6 +253,10 @@ export default { | ||
| 244 | weightUnitPrice: '', | 253 | weightUnitPrice: '', |
| 245 | goodsSourceCode: '', | 254 | goodsSourceCode: '', |
| 246 | goodsSourceBiddingCode: '', | 255 | goodsSourceBiddingCode: '', |
| 256 | + startDate: '', | ||
| 257 | + receiveInsuranceAmount: '', | ||
| 258 | + insuranceProgramCode: '', | ||
| 259 | + coverageLimit: '', | ||
| 247 | }, | 260 | }, |
| 248 | payeeModel: {}, | 261 | payeeModel: {}, |
| 249 | driverObj: {}, //司机信息 | 262 | driverObj: {}, //司机信息 |
| @@ -394,6 +407,7 @@ export default { | @@ -394,6 +407,7 @@ export default { | ||
| 394 | }, | 407 | }, |
| 395 | getAllowDriverSeeFreightAmount() { | 408 | getAllowDriverSeeFreightAmount() { |
| 396 | uni.$u.api.freightOrder.currentFreight({}).then(en => { | 409 | uni.$u.api.freightOrder.currentFreight({}).then(en => { |
| 410 | + this.openExternalInsuranceFlag = en.result.openExternalInsuranceFlag !== false; | ||
| 397 | this.currentFreight = en?.result || {}; | 411 | this.currentFreight = en?.result || {}; |
| 398 | this.form.allowDriverSeeFreightAmountNode = this.currentFreight.allowDriverSeeFreightAmountNode; | 412 | this.form.allowDriverSeeFreightAmountNode = this.currentFreight.allowDriverSeeFreightAmountNode; |
| 399 | }); | 413 | }); |
| @@ -517,7 +531,13 @@ export default { | @@ -517,7 +531,13 @@ export default { | ||
| 517 | uni.navigateTo({ url: `/pages/common/webview?url=${url}&query=${JSON.stringify(params)}` }); | 531 | uni.navigateTo({ url: `/pages/common/webview?url=${url}&query=${JSON.stringify(params)}` }); |
| 518 | }, | 532 | }, |
| 519 | buyInsurance() { | 533 | buyInsurance() { |
| 520 | - uni.navigateTo({ url: `/pages/order/insurance` }); | 534 | + uni.$once('buy-insurance', insuranceForm => { |
| 535 | + this.form = { | ||
| 536 | + ...this.form, | ||
| 537 | + ...insuranceForm, | ||
| 538 | + }; | ||
| 539 | + }); | ||
| 540 | + uni.navigateTo({ url: `/pages/order/insurance?paidAmount=${this.form.paidAmount}` }); | ||
| 521 | }, | 541 | }, |
| 522 | computedDistance() { | 542 | computedDistance() { |
| 523 | if (this.form.waypoints[0].lng && this.form.waypoints[1].lng) { | 543 | if (this.form.waypoints[0].lng && this.form.waypoints[1].lng) { |
pages/order/again-assign.vue
| @@ -57,6 +57,12 @@ | @@ -57,6 +57,12 @@ | ||
| 57 | </view> | 57 | </view> |
| 58 | </u-form> | 58 | </u-form> |
| 59 | </view> | 59 | </view> |
| 60 | + <view v-if="showWarning" class="color-red"> | ||
| 61 | + <view style="font-weight: bold">温馨提示:</view> | ||
| 62 | + <view style="font-size: 12px; margin-top: 5px"> | ||
| 63 | + 当前订单已购买保险,保单号<span class="color-blue">[{{ item.policyNo }}]</span>,由于你修改了车牌,原保单将会失效,请知悉! | ||
| 64 | + </view> | ||
| 65 | + </view> | ||
| 60 | </template> | 66 | </template> |
| 61 | <template #footer> | 67 | <template #footer> |
| 62 | <u-button type="primary" @tap="submit">确认更改</u-button> | 68 | <u-button type="primary" @tap="submit">确认更改</u-button> |
| @@ -106,6 +112,21 @@ export default { | @@ -106,6 +112,21 @@ export default { | ||
| 106 | } | 112 | } |
| 107 | : {}; | 113 | : {}; |
| 108 | }, | 114 | }, |
| 115 | + haveInsurance() { | ||
| 116 | + return this.item && this.item.insuranceStatus === 'SUCCESS'; | ||
| 117 | + }, | ||
| 118 | + licenseChangeFlag() { | ||
| 119 | + return this.form.licenseNumber && this.form.licenseNumber !== this.item.vehicleLicenseNum; | ||
| 120 | + }, | ||
| 121 | + trailerChangeFlag() { | ||
| 122 | + if (!this.form.trailerNumber && !this.item.trailerLicenseNum) { | ||
| 123 | + return false; | ||
| 124 | + } | ||
| 125 | + return this.form.trailerNumber !== this.item.trailerLicenseNum; | ||
| 126 | + }, | ||
| 127 | + showWarning() { | ||
| 128 | + return this.haveInsurance && (this.licenseChangeFlag || this.trailerChangeFlag); | ||
| 129 | + }, | ||
| 109 | }, | 130 | }, |
| 110 | onLoad(options) { | 131 | onLoad(options) { |
| 111 | if (options.code) { | 132 | if (options.code) { |
pages/order/change-fee.vue
| @@ -124,6 +124,12 @@ | @@ -124,6 +124,12 @@ | ||
| 124 | </view> | 124 | </view> |
| 125 | </view> | 125 | </view> |
| 126 | </view> | 126 | </view> |
| 127 | + <view v-if="showWarning" class="color-red" style="padding: 15px"> | ||
| 128 | + <view style="font-weight: bold">温馨提示:</view> | ||
| 129 | + <view style="font-size: 12px; margin-top: 5px"> | ||
| 130 | + 当前订单已购买保险,保单号<span class="color-blue">[{{ item.policyNo }}]</span>,由于你增加了运费,出险后将无法足额理赔,请知悉! | ||
| 131 | + </view> | ||
| 132 | + </view> | ||
| 127 | </template> | 133 | </template> |
| 128 | <template #footer> | 134 | <template #footer> |
| 129 | <u-button type="primary" @tap="submit">确定更改</u-button> | 135 | <u-button type="primary" @tap="submit">确定更改</u-button> |
| @@ -191,6 +197,12 @@ export default { | @@ -191,6 +197,12 @@ export default { | ||
| 191 | // 自动计算货到 | 197 | // 自动计算货到 |
| 192 | return 'OUT_INVITE_ARRIVAL' === this.currentFreight?.autoComputeFeeType; | 198 | return 'OUT_INVITE_ARRIVAL' === this.currentFreight?.autoComputeFeeType; |
| 193 | }, | 199 | }, |
| 200 | + haveInsurance() { | ||
| 201 | + return this.item && this.item.insuranceStatus === 'SUCCESS'; | ||
| 202 | + }, | ||
| 203 | + showWarning() { | ||
| 204 | + return this.haveInsurance && this.form.paidAmount > this.item.paidAmount; | ||
| 205 | + }, | ||
| 194 | }, | 206 | }, |
| 195 | onLoad(options) { | 207 | onLoad(options) { |
| 196 | if (options.code) { | 208 | if (options.code) { |
pages/order/detail.vue
| @@ -250,6 +250,10 @@ | @@ -250,6 +250,10 @@ | ||
| 250 | <view class="card__item_field">综合服务费</view> | 250 | <view class="card__item_field">综合服务费</view> |
| 251 | <view class="card__item_content">¥{{ item.serviceAmount ? item.serviceAmount : '' }}</view> | 251 | <view class="card__item_content">¥{{ item.serviceAmount ? item.serviceAmount : '' }}</view> |
| 252 | </view> | 252 | </view> |
| 253 | + <view class="card__item"> | ||
| 254 | + <view class="card__item_field">保费</view> | ||
| 255 | + <view class="card__item_content">¥{{ item.receiveInsuranceAmount ? item.receiveInsuranceAmount : '' }}</view> | ||
| 256 | + </view> | ||
| 253 | <view class="count-line"> | 257 | <view class="count-line"> |
| 254 | <view class="field">订单总额</view> | 258 | <view class="field">订单总额</view> |
| 255 | <view class="number">¥{{ item.totalAmount ? item.totalAmount : '' }}</view> | 259 | <view class="number">¥{{ item.totalAmount ? item.totalAmount : '' }}</view> |
| @@ -279,6 +283,29 @@ | @@ -279,6 +283,29 @@ | ||
| 279 | <view class="number">¥{{ item.freightAmount }}</view> | 283 | <view class="number">¥{{ item.freightAmount }}</view> |
| 280 | </view> | 284 | </view> |
| 281 | </view> | 285 | </view> |
| 286 | + <view class="card" v-if="item.policyNo"> | ||
| 287 | + <view class="card__header"> | ||
| 288 | + <view class="label"> 投保信息 </view> | ||
| 289 | + </view> | ||
| 290 | + <view class="card__item"> | ||
| 291 | + <view class="card__item_field" style="width: 200rpx">货值(理赔限额)</view> | ||
| 292 | + <view class="card__item_content" v-if="item.coverageLimit" style="color: #f39800">{{ item.coverageLimit }}万</view> | ||
| 293 | + </view> | ||
| 294 | + <view class="card__item"> | ||
| 295 | + <view class="card__item_field" style="width: 200rpx">投保状态</view> | ||
| 296 | + <view class="card__item_content" v-if="item.insuranceStatus"> | ||
| 297 | + <render-dict dict="FREIGHT_ORDER_INSURANCE_STATUS" :value="item.insuranceStatus"></render-dict> | ||
| 298 | + </view> | ||
| 299 | + </view> | ||
| 300 | + <view class="card__item"> | ||
| 301 | + <view class="card__item_field" style="width: 200rpx">保单号</view> | ||
| 302 | + <view class="card__item_content">{{ item.policyNo ? item.policyNo : '' }}</view> | ||
| 303 | + </view> | ||
| 304 | + <view class="card__item"> | ||
| 305 | + <view class="card__item_field" style="width: 200rpx">费率</view> | ||
| 306 | + <view class="card__item_content">{{ item.insuranceReceiveRate ? item.insuranceReceiveRate : '' }}</view> | ||
| 307 | + </view> | ||
| 308 | + </view> | ||
| 282 | <view class="card"> | 309 | <view class="card"> |
| 283 | <u-steps current="0" direction="column" dot> | 310 | <u-steps current="0" direction="column" dot> |
| 284 | <u-steps-item v-for="(it, i) in item.operateRecords" :key="i" :title="it.type" :desc="it.operateTime"> </u-steps-item> | 311 | <u-steps-item v-for="(it, i) in item.operateRecords" :key="i" :title="it.type" :desc="it.operateTime"> </u-steps-item> |
pages/order/filter.vue
| @@ -37,6 +37,15 @@ | @@ -37,6 +37,15 @@ | ||
| 37 | <u-input v-model="searchForm.payStatusName" border="none" suffix-icon="arrow-right" placeholder="请选择" disabledColor="#ffffff" disabled /> | 37 | <u-input v-model="searchForm.payStatusName" border="none" suffix-icon="arrow-right" placeholder="请选择" disabledColor="#ffffff" disabled /> |
| 38 | </u-form-item> | 38 | </u-form-item> |
| 39 | </view> | 39 | </view> |
| 40 | + <view class="card"> | ||
| 41 | + <u-form-item label="是否已投保" labelWidth="130"> | ||
| 42 | + <u-radio-group v-model="searchForm.insuranceFlag"> | ||
| 43 | + <u-radio v-for="(item, index) in radioList" :key="index" :name="item.value"> | ||
| 44 | + {{ item.text }} | ||
| 45 | + </u-radio> | ||
| 46 | + </u-radio-group> | ||
| 47 | + </u-form-item> | ||
| 48 | + </view> | ||
| 40 | </u-form> | 49 | </u-form> |
| 41 | </template> | 50 | </template> |
| 42 | <template #footer> | 51 | <template #footer> |
| @@ -71,6 +80,7 @@ export default { | @@ -71,6 +80,7 @@ export default { | ||
| 71 | receiptFlag: '', // 是否已签单 | 80 | receiptFlag: '', // 是否已签单 |
| 72 | payStatus: '', // 支付状态 | 81 | payStatus: '', // 支付状态 |
| 73 | payStatusName: '', // | 82 | payStatusName: '', // |
| 83 | + insuranceFlag: '', // | ||
| 74 | }, | 84 | }, |
| 75 | radioList: [ | 85 | radioList: [ |
| 76 | { text: '是', value: 'true' }, | 86 | { text: '是', value: 'true' }, |
pages/order/index.vue
| @@ -110,6 +110,7 @@ export default { | @@ -110,6 +110,7 @@ export default { | ||
| 110 | receiptFlag: '', // 是否已签单 | 110 | receiptFlag: '', // 是否已签单 |
| 111 | payStatus: '', // 支付状态 | 111 | payStatus: '', // 支付状态 |
| 112 | payStatusName: '', // | 112 | payStatusName: '', // |
| 113 | + insuranceFlag: '', // | ||
| 113 | }, | 114 | }, |
| 114 | activeTab: 0, | 115 | activeTab: 0, |
| 115 | count: {}, | 116 | count: {}, |
pages/order/insurance.vue
| @@ -8,37 +8,39 @@ | @@ -8,37 +8,39 @@ | ||
| 8 | <view class="card"> | 8 | <view class="card"> |
| 9 | <u-form-item label="起运时间" @click="showLoadTime = true" required border-bottom> | 9 | <u-form-item label="起运时间" @click="showLoadTime = true" required border-bottom> |
| 10 | <u-datetime-picker :show="showLoadTime" :value="loadTimeDef" @cancel="showLoadTime = false" @close="showLoadTime = false" @confirm="loadTimeFormat"></u-datetime-picker> | 10 | <u-datetime-picker :show="showLoadTime" :value="loadTimeDef" @cancel="showLoadTime = false" @close="showLoadTime = false" @confirm="loadTimeFormat"></u-datetime-picker> |
| 11 | - <u-input v-model="form.loadTime" border="none" suffix-icon="arrow-right" placeholder="请选择" disabledColor="#ffffff" disabled /> | 11 | + <u-input v-model="form.startDate" border="none" suffix-icon="arrow-right" placeholder="请选择" disabledColor="#ffffff" disabled /> |
| 12 | </u-form-item> | 12 | </u-form-item> |
| 13 | <u-form-item label="选择方案" required> </u-form-item> | 13 | <u-form-item label="选择方案" required> </u-form-item> |
| 14 | <u-form-item border-bottom custom-style="paddingTop:0"> | 14 | <u-form-item border-bottom custom-style="paddingTop:0"> |
| 15 | <view class="scheme-box"> | 15 | <view class="scheme-box"> |
| 16 | - <view v-for="item in schemeList" :key="item.amount" class="scheme-item" :class="item.amount === form.amount ? 'scheme-item-active' : ''" @click="form.amount = item.amount"> | ||
| 17 | - <view class="amount">{{ item.amountStr }}</view> | ||
| 18 | - <view class="title">{{ item.title }}</view> | ||
| 19 | - <view class="sub-title">{{ item.subTitle }}</view> | 16 | + <view v-for="(item, index) in schemeList" :key="item.amount" class="scheme-item" :class="index === choseSchemeIndex ? 'scheme-item-active' : ''" @click="choseSchemeFun(index)"> |
| 17 | + <view class="amount">{{ item.coverageLimit }}万</view> | ||
| 18 | + <view class="title">货值(赔付限额)</view> | ||
| 19 | + <view class="sub-title">{{ item.remark }}</view> | ||
| 20 | </view> | 20 | </view> |
| 21 | </view> | 21 | </view> |
| 22 | </u-form-item> | 22 | </u-form-item> |
| 23 | <u-form-item label="被保人" label-width="60" border-bottom> | 23 | <u-form-item label="被保人" label-width="60" border-bottom> |
| 24 | - <span>浙江中邮物流有限公司</span> | 24 | + <span>{{ frightInfo.name }}</span> |
| 25 | </u-form-item> | 25 | </u-form-item> |
| 26 | <u-form-item label="保费" label-width="60"> | 26 | <u-form-item label="保费" label-width="60"> |
| 27 | - <text style="font-weight: 400; font-size: 12px"> 运费 * 费率=10000 * 0.0005=<text class="color-red">5元</text>(最低5元每笔)</text> | 27 | + <text style="font-weight: 400; font-size: 12px" v-if="choseScheme && paidAmount"> |
| 28 | + 运费 * 费率 = {{ paidAmount }} * {{ choseScheme.receiveRate }} = <text class="color-red">{{ form.receiveInsuranceAmount }}元</text>(最低{{ choseScheme.minReceiveFee }}元每笔) | ||
| 29 | + </text> | ||
| 28 | </u-form-item> | 30 | </u-form-item> |
| 29 | </view> | 31 | </view> |
| 30 | <view class="tips"> | 32 | <view class="tips"> |
| 31 | - <u-checkbox-group v-model="checkboxValue" placement="column" @change="checkboxChange"> | 33 | + <u-checkbox-group v-model="checkboxValue" placement="column"> |
| 32 | <u-checkbox :customStyle="{ marginBottom: '8px' }" name="agree"> </u-checkbox> | 34 | <u-checkbox :customStyle="{ marginBottom: '8px' }" name="agree"> </u-checkbox> |
| 33 | </u-checkbox-group> | 35 | </u-checkbox-group> |
| 34 | <span class="tip-text">投保前请仔细阅读并同意</span> | 36 | <span class="tip-text">投保前请仔细阅读并同意</span> |
| 35 | - <view class="file-name" @click="openPreFile">《保价须知及责任免除》</view> | 37 | + <view class="file-name" @click="openWebView">《保价须知及责任免除》</view> |
| 36 | </view> | 38 | </view> |
| 37 | </u-form> | 39 | </u-form> |
| 38 | <u-popup mode="center" :show="fileShow" @close="fileShow = false" closeable :safe-area-inset-bottom="false"> | 40 | <u-popup mode="center" :show="fileShow" @close="fileShow = false" closeable :safe-area-inset-bottom="false"> |
| 39 | <view class="popup-file"> | 41 | <view class="popup-file"> |
| 40 | <view class="popup-file-title">保价须知及责任免除</view> | 42 | <view class="popup-file-title">保价须知及责任免除</view> |
| 41 | - <view class="popup-file-text"></view> | 43 | + <view class="popup-file-text"> </view> |
| 42 | <u-button type="primary" @click="agreeFun" :disabled="shengYuTime" | 44 | <u-button type="primary" @click="agreeFun" :disabled="shengYuTime" |
| 43 | >已阅读并同意<text v-if="shengYuTime">({{ shengYuTime }}s)</text></u-button | 45 | >已阅读并同意<text v-if="shengYuTime">({{ shengYuTime }}s)</text></u-button |
| 44 | > | 46 | > |
| @@ -47,8 +49,8 @@ | @@ -47,8 +49,8 @@ | ||
| 47 | </template> | 49 | </template> |
| 48 | <template #footer> | 50 | <template #footer> |
| 49 | <view style="display: flex; align-items: center; gap: 20rpx"> | 51 | <view style="display: flex; align-items: center; gap: 20rpx"> |
| 50 | - <u-button type="primary" plain custom-style="flex:1" @click="fileShow = true">取消</u-button> | ||
| 51 | - <u-button type="primary" custom-style="flex:2">确定投保</u-button> | 52 | + <u-button type="primary" plain custom-style="flex:1" @click="cancelInsurance">取消投保</u-button> |
| 53 | + <u-button type="primary" custom-style="flex:2" @click="submitInsurance" :disabled="checkboxValue.length === 0">确定投保</u-button> | ||
| 52 | </view> | 54 | </view> |
| 53 | </template> | 55 | </template> |
| 54 | </Page> | 56 | </Page> |
| @@ -65,44 +67,48 @@ export default { | @@ -65,44 +67,48 @@ export default { | ||
| 65 | }, | 67 | }, |
| 66 | data() { | 68 | data() { |
| 67 | return { | 69 | return { |
| 70 | + pdfFile0: 'https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/tms/a15401e7-3d44-41ab-9302-39c6574a1233.pdf', | ||
| 71 | + pdfFile: 'https://zeyi-tms-product.oss-cn-hangzhou.aliyuncs.com/file/tms/71c2d1ff-0ea1-491b-b387-d2f18de0b19d.html', | ||
| 72 | + paidAmount: '', | ||
| 68 | checkboxValue: [], | 73 | checkboxValue: [], |
| 69 | haveAgree: false, | 74 | haveAgree: false, |
| 70 | fileShow: false, | 75 | fileShow: false, |
| 71 | showLoadTime: false, | 76 | showLoadTime: false, |
| 72 | loadTimeDef: new Date(), | 77 | loadTimeDef: new Date(), |
| 73 | - schemeList: [ | ||
| 74 | - { | ||
| 75 | - title: '货值(赔付限额)', | ||
| 76 | - amountStr: '100万', | ||
| 77 | - amount: 1000000, | ||
| 78 | - subTitle: '', | ||
| 79 | - }, | ||
| 80 | - { | ||
| 81 | - title: '货值(赔付限额)', | ||
| 82 | - amountStr: '200万', | ||
| 83 | - amount: 2000000, | ||
| 84 | - subTitle: '不含大宗及冷藏', | ||
| 85 | - }, | ||
| 86 | - { | ||
| 87 | - title: '货值(赔付限额)', | ||
| 88 | - amountStr: '300万', | ||
| 89 | - amount: 3000000, | ||
| 90 | - subTitle: '不含大宗及冷藏', | ||
| 91 | - }, | ||
| 92 | - ], | 78 | + choseSchemeIndex: -1, |
| 79 | + schemeList: [], | ||
| 93 | form: { | 80 | form: { |
| 94 | - radio: 'true', | ||
| 95 | - amount: '', | 81 | + startDate: '', |
| 82 | + receiveInsuranceAmount: '', | ||
| 83 | + insuranceProgramCode: '', | ||
| 84 | + coverageLimit: '', | ||
| 96 | }, | 85 | }, |
| 97 | shengYuTime: 10, | 86 | shengYuTime: 10, |
| 98 | popupHandel: null, | 87 | popupHandel: null, |
| 88 | + choseScheme: null, | ||
| 89 | + frightInfo: {}, | ||
| 99 | }; | 90 | }; |
| 100 | }, | 91 | }, |
| 92 | + onLoad(option) { | ||
| 93 | + this.paidAmount = option.paidAmount; | ||
| 94 | + this.initData(); | ||
| 95 | + }, | ||
| 101 | methods: { | 96 | methods: { |
| 97 | + initData() { | ||
| 98 | + uni.$u.api.freightOrder.freightInsuranceList({}).then(res => { | ||
| 99 | + this.schemeList = res.result || []; | ||
| 100 | + }); | ||
| 101 | + uni.$u.api.freightOrder.currentFreight({}).then(res => { | ||
| 102 | + this.frightInfo = res.result || {}; | ||
| 103 | + }); | ||
| 104 | + }, | ||
| 102 | loadTimeFormat({ value }) { | 105 | loadTimeFormat({ value }) { |
| 103 | - this.form.loadTime = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); | 106 | + this.form.startDate = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); |
| 104 | this.showLoadTime = false; | 107 | this.showLoadTime = false; |
| 105 | }, | 108 | }, |
| 109 | + openWebView() { | ||
| 110 | + uni.navigateTo({ url: '/pages/common/webview?url=' + this.pdfFile }); | ||
| 111 | + }, | ||
| 106 | openPreFile() { | 112 | openPreFile() { |
| 107 | if (popupHandel) { | 113 | if (popupHandel) { |
| 108 | clearInterval(popupHandel); | 114 | clearInterval(popupHandel); |
| @@ -132,6 +138,42 @@ export default { | @@ -132,6 +138,42 @@ export default { | ||
| 132 | this.haveAgree = true; | 138 | this.haveAgree = true; |
| 133 | this.checkboxValue = ['agree']; | 139 | this.checkboxValue = ['agree']; |
| 134 | }, | 140 | }, |
| 141 | + cancelInsurance() { | ||
| 142 | + let form = { | ||
| 143 | + startDate: '', | ||
| 144 | + receiveInsuranceAmount: '', | ||
| 145 | + insuranceProgramCode: '', | ||
| 146 | + coverageLimit: '', | ||
| 147 | + }; | ||
| 148 | + uni.$emit('buy-insurance', form); | ||
| 149 | + uni.navigateBack(); | ||
| 150 | + }, | ||
| 151 | + submitInsurance() { | ||
| 152 | + if (!this.form.startDate) { | ||
| 153 | + return uni.showToast({ title: '起运时间不能为空', icon: 'none' }); | ||
| 154 | + } | ||
| 155 | + if (!this.form.insuranceProgramCode) { | ||
| 156 | + return uni.showToast({ title: '请选择方案', icon: 'none' }); | ||
| 157 | + } | ||
| 158 | + uni.$emit('buy-insurance', { ...this.form, programName: this.choseScheme.programName }); | ||
| 159 | + uni.navigateBack(); | ||
| 160 | + }, | ||
| 161 | + getReceiveInsuranceAmount(choseScheme, paidAmount) { | ||
| 162 | + if (!paidAmount || !choseScheme) return ''; | ||
| 163 | + let v1 = Number(paidAmount) * Number(choseScheme.receiveRate); | ||
| 164 | + return v1 >= Number(choseScheme.minReceiveFee) ? Number(v1 + 0.005).toFixed(2) : choseScheme.minReceiveFee; | ||
| 165 | + }, | ||
| 166 | + choseSchemeFun(index) { | ||
| 167 | + this.choseSchemeIndex = index; | ||
| 168 | + let choseScheme = this.schemeList[index]; | ||
| 169 | + this.form = { | ||
| 170 | + insuranceProgramCode: choseScheme.code, | ||
| 171 | + coverageLimit: choseScheme.coverageLimit, | ||
| 172 | + receiveInsuranceAmount: this.getReceiveInsuranceAmount(choseScheme, this.paidAmount), | ||
| 173 | + startDate: this.form.startDate, | ||
| 174 | + }; | ||
| 175 | + this.choseScheme = choseScheme; | ||
| 176 | + }, | ||
| 135 | }, | 177 | }, |
| 136 | }; | 178 | }; |
| 137 | </script> | 179 | </script> |