+ 投保人手机号: {{ captchaReceiver | phoneNumFilter }}
+
+
+ {{
+ sendTime ? `${sendTime}s后获取` : '获取验证码'
+ }}
+
+
+
@@ -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('')
}
}
}