diff --git a/src/views/ebiz/sale/List.vue b/src/views/ebiz/sale/List.vue index 9deffa8b7..43dff85d1 100644 --- a/src/views/ebiz/sale/List.vue +++ b/src/views/ebiz/sale/List.vue @@ -164,6 +164,25 @@ + +

投保人手机号: {{ captchaReceiver | phoneNumFilter }}

+ + + +
@@ -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('') } } }