mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-10 10:26:44 +08:00
Merge branch 'feature/电投自动撤单添加验证码校验' into release/1215
# Conflicts: # src/views/ebiz/sale/List.vue
This commit is contained in:
@@ -164,6 +164,25 @@
|
||||
|
||||
<!-- 短信验证 -->
|
||||
<check-agent @checModelSuccessMethod="initThisPage" />
|
||||
<van-dialog
|
||||
class="dialog-delete"
|
||||
@confirm="checkCaptchaCode"
|
||||
@cancel="cancelCaptchaCode"
|
||||
:before-close="beforeClose"
|
||||
confirm-button-color="#fff"
|
||||
v-model="revokePanelShow"
|
||||
title="短信验证"
|
||||
show-cancel-button
|
||||
>
|
||||
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
|
||||
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
|
||||
<template #button>
|
||||
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
|
||||
sendTime ? `${sendTime}s后获取` : '获取验证码'
|
||||
}}</van-button>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -173,6 +192,7 @@ import { orderList, deleteOrderInfo, revokeOrder } from '@/api/ebiz/sale/sale'
|
||||
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
|
||||
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
|
||||
import CheckAgent from '@/components/common/CheckAgent'
|
||||
import { getAuthCode } from '@/api/ebiz/sale/sale'
|
||||
|
||||
export default {
|
||||
name: 'saleList',
|
||||
@@ -185,7 +205,8 @@ export default {
|
||||
[List.name]: List,
|
||||
[Tag.name]: Tag,
|
||||
[Sticky.name]: Sticky,
|
||||
[Dialog.name]: Dialog
|
||||
[Dialog.name]: Dialog,
|
||||
[Field.name]: Field
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -202,13 +223,22 @@ export default {
|
||||
pageSize: 5, //每页数据条数
|
||||
isSuccess: false,
|
||||
canRevoke: {
|
||||
'02': true,
|
||||
'14': true,
|
||||
'19': true,
|
||||
'02': true,
|
||||
'48': true,
|
||||
'49': true,
|
||||
'55': true
|
||||
}
|
||||
'55': true,
|
||||
'58': true
|
||||
},
|
||||
revokePanelShow: false,
|
||||
sms: '',
|
||||
smsId: '',
|
||||
sendTime: 0,
|
||||
getCaptcha: false,
|
||||
captchaTimer: null,
|
||||
captchaReceiver: '',
|
||||
revokeOrderNo: '',
|
||||
captchaMaped: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -221,6 +251,76 @@ export default {
|
||||
window.appCallBack = this.appCallBack
|
||||
},
|
||||
methods: {
|
||||
beforeClose(action, done) {
|
||||
this.captchaMaped ? done() : done(false)
|
||||
},
|
||||
async getCaptchaCode() {
|
||||
if (this.sendTime !== 0) return
|
||||
this.getCaptcha = true
|
||||
this.sendTime = 60
|
||||
let data = {
|
||||
operateType: 'appntInfoEntry',
|
||||
type: 'H5',
|
||||
operateCode: this.captchaReceiver,
|
||||
system: 'agentApp',
|
||||
operateCodeType: '0'
|
||||
}
|
||||
let res = await getAuthCode(data)
|
||||
if (res.result === '0') {
|
||||
this.$toast('获取验证码成功')
|
||||
}
|
||||
this.smsId = res.sessionId
|
||||
this.captchaTimer = setInterval(() => {
|
||||
this.sendTime--
|
||||
if (this.sendTime === 0) {
|
||||
clearInterval(this.captchaTimer)
|
||||
this.captchaTimer = null
|
||||
}
|
||||
}, 1000)
|
||||
},
|
||||
async checkCaptchaCode() {
|
||||
if (!this.getCaptcha) {
|
||||
return this.$toast('请先获取验证码')
|
||||
}
|
||||
if (!this.sms.trim()) {
|
||||
return this.$toast('请输入验证码')
|
||||
}
|
||||
clearInterval(this.captchaTimer)
|
||||
this.captchaTimer = null
|
||||
let revokeResult = await revokeOrder({
|
||||
id: this.revokeOrderNo,
|
||||
smsId: this.smsId,
|
||||
code: this.sms
|
||||
})
|
||||
if (revokeResult.result == 0) {
|
||||
this.$toast('撤单成功!')
|
||||
setTimeout(() => {
|
||||
this.saleList = []
|
||||
this.isSuccess = false
|
||||
this.currentPage = 1
|
||||
;[this.loading, this.finished] = [true, false]
|
||||
let pageInfo = {
|
||||
pageNum: this.currentPage,
|
||||
pageSize: this.pageSize,
|
||||
orderType: this.active
|
||||
}
|
||||
this.loadMore(pageInfo)
|
||||
}, 1000)
|
||||
} else {
|
||||
Toast.fail(revokeResult.resultMessage)
|
||||
}
|
||||
this.cancelCaptchaCode()
|
||||
this.sms = ''
|
||||
},
|
||||
cancelCaptchaCode() {
|
||||
this.sendTime = 0
|
||||
this.revokePanelShow = false
|
||||
clearInterval(this.captchaTimer)
|
||||
this.captchaTimer = null
|
||||
this.getCaptcha = false
|
||||
this.captchaMaped = false
|
||||
this.captchaReceiver = ''
|
||||
},
|
||||
initThisPage(showFlag) {
|
||||
this.showFlag = showFlag
|
||||
if (this.showFlag) {
|
||||
@@ -359,7 +459,6 @@ export default {
|
||||
// })
|
||||
|
||||
orderList(pageInfo).then(res => {
|
||||
console.log('调用了一次')
|
||||
// this.$toast.clear()
|
||||
if (res.result == '0') {
|
||||
this.isSuccess = true
|
||||
@@ -385,7 +484,6 @@ export default {
|
||||
})
|
||||
})
|
||||
this.saleList = this.saleList.concat(list)
|
||||
console.log(this.saleList.length)
|
||||
if (this.saleList.length == 0) {
|
||||
this.isSuccess = false
|
||||
}
|
||||
@@ -431,7 +529,6 @@ export default {
|
||||
localStorage.orderNo = orderNo
|
||||
localStorage.isFrom = 'sale'
|
||||
localStorage.removeItem('changeCard')
|
||||
console.log('---orderStatus:', orderStatus, orderNo)
|
||||
switch (orderStatus) {
|
||||
case '01': //已签名待客户确认, 跳到签名确认页面
|
||||
url = '/sale/SignatureConfirmation?edit=1'
|
||||
@@ -476,7 +573,7 @@ export default {
|
||||
})
|
||||
},
|
||||
//删除投保单
|
||||
del(order, index) {
|
||||
del(order) {
|
||||
let params = {
|
||||
orderType: 'DEL_ORDER', //列表页 此值为固定
|
||||
id: order.orderInfoDTO.orderNo,
|
||||
@@ -497,7 +594,6 @@ export default {
|
||||
.then(() => {
|
||||
deleteOrderInfo(params).then(res => {
|
||||
if (res.result == 0) {
|
||||
console.log(index)
|
||||
this.saleList = []
|
||||
this.isSuccess = false
|
||||
this.currentPage = 1
|
||||
@@ -535,39 +631,55 @@ export default {
|
||||
})
|
||||
},
|
||||
revokeOrder(order) {
|
||||
console.dir(order)
|
||||
this.$dialog
|
||||
.confirm({
|
||||
className: 'dialog-delete',
|
||||
title: '提示',
|
||||
message: '确认撤销投保单吗?',
|
||||
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
|
||||
cancelButtonColor: '#E9332E',
|
||||
confirmButtonColor: '#FFFFFF'
|
||||
})
|
||||
.then(() => {
|
||||
return revokeOrder({ id: order.orderInfoDTO.orderNo })
|
||||
this.revokePanelShow = true
|
||||
this.captchaReceiver = order.appntDTO.mobile
|
||||
this.revokeOrderNo = order.orderInfoDTO.orderNo
|
||||
})
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
this.saleList = []
|
||||
this.isSuccess = false
|
||||
this.currentPage = 1
|
||||
;[this.loading, this.finished] = [true, false]
|
||||
let pageInfo = {
|
||||
pageNum: this.currentPage,
|
||||
pageSize: this.pageSize,
|
||||
orderType: this.active
|
||||
}
|
||||
this.loadMore(pageInfo)
|
||||
} else {
|
||||
Toast.fail(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
phoneNumFilter(phoneNum) {
|
||||
let num = phoneNum.split('')
|
||||
num.splice(3, 4, '****')
|
||||
return num.join('')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
/deep/ .dialog-delete .van-dialog__header {
|
||||
padding: 0.5em;
|
||||
margin-bottom: 0;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
}
|
||||
|
||||
/deep/ .van-cell {
|
||||
padding: 0;
|
||||
padding-bottom: 0.5em;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
}
|
||||
|
||||
/deep/ .van-dialog__content {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.captchaReceiver {
|
||||
margin-bottom: 1em;
|
||||
padding-bottom: 1em;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.van-search__content {
|
||||
background: #fff !important;
|
||||
border-radius: 10px;
|
||||
|
||||
Reference in New Issue
Block a user