import Api from '~/service/Api'; import commonFunctions from '~/mixin/commonFunctions.js'; import Utils from "~/utils" import moment from 'moment' export default { mixins: [commonFunctions], methods: { isHeadCenter(){ let roleName = JSON.parse(window.sessionStorage.curRole).name; let roleId=JSON.parse(window.sessionStorage.curRole).id; if ("-单证中心-总行业务管理员-".indexOf(roleName)>0 || roleName==="押汇中心经办" ||roleName==="押汇中心复核"){ return true; } if ("-10253-10255-10256-10245-".indexOf(roleId)>0 ){ return true; } return false; }, //重置 handleReset() { this.model.bchcon = ''; this.model.trncorco.ownref = ''; this.model.usrcon = ''; this.model.relflg = []; this.model.minamt=''; this.model.maxamt=''; this.model.atp.cod = ''; this.model.trncorco.dflg = []; this.model.atptxt = ''; this.model.searchAllUsers = false; this.model.codeLev = "01"; this.sortObj={}; }, // 机构列表 async getBranchList() { const loading = this.loading(); let res = await Api.post('/public/quesel/getActBranchList'); if (res.respCode == SUCCESS) { this.bchtypList = res.data.list; } loading.close(); }, //经办柜员列表 async getUserList() { const loading = this.loading(); let param={}; if(this.model.bchcon){ param.bchcon=this.model.bchcon } let res = await Api.post("/public/quesel/getActUserList",param); if (res.respCode == SUCCESS) { this.userList = res.data.list; } loading.close(); }, sortChange(obj) { let order = ""; let prop = ""; let column = ""; if(obj && obj.order){ order=obj.order === 'descending' ? 'desc' : 'asc'; prop=obj.prop; } let rolebool=this.isHeadCenter(); if(rolebool){ switch (prop) { case 'inifrm': column = "q.frm"; break; case 'inifrmName': column = "q.frm"; break; case 'ownref': column = "q.objref"; break; case 'relflgName': column = "dealRelflg"; break; case 'reloricur': column = "q.relcur"; break; case 'reloriamt': column = "q.relamt"; break; case 'inidattim': column = "q.tardattim"; break; case 'iniusr': column = "q.usrcon"; break; case 'relusr3': column = "q.usr"; break; case 'objnam': column = "q.objnam"; break; case 'bchname': column = "q.bchkeyinr"; break; case 'relreqCom': column = "relreqCom"; break; case 'relresCom': column = "relresCom"; break; } }else{ switch (prop) { case 'inifrm': column = "t.inifrm"; break; case 'inifrmName': column = "stb.txt"; break; case 'ownref': column = "t.ownref"; break; case 'relflgName': column = "t.relflg"; break; case 'reloricur': column = "t.reloricur"; break; case 'reloriamt': column = "t.reloriamt"; break; case 'inidattim': column = "t.inidattim"; break; case 'iniusr': column = "t.iniusr"; break; case 'relusr3': column = "t.relusr3"; break; case 'objnam': column = "t.objnam"; break; case 'bchname': column = "t.bchkeyinr"; break; case 'relreqCom': column = "relreqCom"; break; case 'relresCom': column = "relresCom"; break; } } let orderObj = { order: order, column: column } this.sortObj=orderObj; this.handleSearch(orderObj); }, getTrninr(row){ let trninr=row.objtyp==='TRN'?row.objinr:row.inr; if(row.creobjtyp==='TRN' && '-assigned-new-correct-pending-'.indexOf(row.status)>0){ trninr=row.creobjinr; } return trninr; }, selectableFn(row) { return true; }, async handleSelectionChange(val) { this.multipleSelection = val.map((item) => { return item.inr }) this.multipleSelectionObj = val.map((item) => { return item }) this.multipleSelectionRow = val.map((item) => { return item })[0] }, async reBackMethod() { if(this.multipleSelectionObj && this.multipleSelectionObj.length>10){ this.$notify.error({title: '错误', message: '请勿批量选中业务行数超过10条!'}); return; } this.$confirm('您确定批量退回选中的业务交易?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', }).then(async () => { this.batchflg = "Y"; let array = this.multipleSelectionObj; for (let i = 0; i < array.length; i++) { this.onReturn(i + 1, array[i]); } }); }, handleSearch(orderObj){ if(this.searchModel==="OWN"){ this.handleSearchOwn(orderObj); }else{ this.handleSearchAll(orderObj); } }, //查询列表 async handleSearchOwn(orderObj) { this.model.tranType=["02"]; this.searchLoading=true; this.searchModel="OWN"; let inidatfro = this.model.trncorco.inidatfro; if (!inidatfro) { this.$notify.error({title: '错误', message: '查询开始日期必输!'}); this.searchLoadingAll=false; this.searchLoading=false; return; } let inidattil = this.model.trncorco.inidattil; if (!inidattil) { this.$notify.error({title: '错误', message: '查询结束日期必输!'}); this.searchLoadingAll=false; this.searchLoading=false; return; } if (Number(this.model.minamt)>Number(this.model.maxamt)) { this.$notify.error({title: '错误', message: '业务金额区间错误!'}); return; } let params = { ownref: this.model.trncorco.ownref?this.model.trncorco.ownref.trim():this.model.trncorco.ownref, inidatfro: moment(inidatfro).format('YYYY-MM-DD') + ' 00:00:00', inidattil: moment(inidattil).format('YYYY-MM-DD') + ' 23:59:59', usrcon: this.model.usrcon, bchcon: this.model.bchcon, inifrm: this.model.atp.cod, minamt: this.model.minamt, maxamt: this.model.maxamt, bustypList: this.model.trncorco.dflg, relflgList: this.model.relflg, pageNum: this.pagination.pageIndex, pageSize: this.pagination.pageSize, codeLev: this.model.codeLev, searchModel:this.searchModel, }; if (orderObj) { params.orderStr = orderObj.order; params.columnStr = orderObj.column } if(this.roleTypeName==="单证中心" && this.model.tranTypeStr){ params.tranTypeStr=this.model.tranTypeStr; } const loading = this.loading(); let rolebool=this.isHeadCenter(); if(rolebool){ const res = await Api.post('/public/quesel/listIncomplete', params); if (res.respCode === SUCCESS) { this.stmData.data = res.data.list; this.pagination.total = Number(res.data.total); } }else{ const res = await Api.post('/public/trnrel/getUnDataList', params); if (res.respCode === SUCCESS) { this.stmData.data = res.data.list; this.pagination.total = Number(res.data.total); } } this.searchLoading=false; loading.close(); }, async handleSearchAll(orderObj) { this.searchLoadingAll=true; this.searchModel="ALL"; let inidatfro = this.model.trncorco.inidatfro; if (!inidatfro) { this.$notify.error({title: '错误', message: '查询开始日期必输!'}); this.searchLoadingAll=false; this.searchLoading=false; return; } let inidattil = this.model.trncorco.inidattil; if (!inidattil) { this.$notify.error({title: '错误', message: '查询结束日期必输!'}); this.searchLoadingAll=false; this.searchLoading=false; return; } if (Number(this.model.minamt)>Number(this.model.maxamt)) { this.$notify.error({title: '错误', message: '业务金额区间错误!'}); return; } let params = { ownref: this.model.trncorco.ownref?this.model.trncorco.ownref.trim():this.model.trncorco.ownref, inidatfro: moment(inidatfro).format('YYYY-MM-DD') + ' 00:00:00', inidattil: moment(inidattil).format('YYYY-MM-DD') + ' 23:59:59', usrcon: this.model.usrcon, bchcon: this.model.bchcon, inifrm: this.model.atp.cod, minamt: this.model.minamt, maxamt: this.model.maxamt, bustypList: this.model.trncorco.dflg, relflgList: this.model.relflg, pageNum: this.pagination.pageIndex, pageSize: this.pagination.pageSize, codeLev: this.model.codeLev, searchModel:this.searchModel, }; if (orderObj) { params.orderStr = orderObj.order; params.columnStr = orderObj.column } if(this.roleTypeName==="单证中心" && this.model.tranTypeStr){ params.tranTypeStr=this.model.tranTypeStr; } const loading = this.loading(); let rolebool=this.isHeadCenter(); if(rolebool){ const res = await Api.post('/public/quesel/listIncomplete', params); if (res.respCode === SUCCESS) { this.stmData.data = res.data.list; this.pagination.total = Number(res.data.total); } }else{ const res = await Api.post('/public/trnrel/getUnDataList', params); if (res.respCode === SUCCESS) { this.stmData.data = res.data.list; this.pagination.total = Number(res.data.total); } } this.searchLoadingAll=false; loading.close(); }, handleToggleSearch: function () { this.searchToggle = !this.searchToggle this.$emit('search-toggle', this.searchToggle) }, async exportExcel(){ let inidatfro = this.model.trncorco.inidatfro; if (!inidatfro) { this.$notify.error({ title: '错误', message: '查询开始日期必输!' }); return; } let inidattil = this.model.trncorco.inidattil; if (!inidattil) { this.$notify.error({ title: '错误', message: '查询结束日期必输!' }); return; } const loading = this.loading(); let params = { ownref: this.model.trncorco.ownref?this.model.trncorco.ownref.trim():this.model.trncorco.ownref, inidatfro: moment(inidatfro).format('YYYY-MM-DD') + ' 00:00:00', inidattil: moment(inidattil).format('YYYY-MM-DD') + ' 23:59:59', usrcon: this.model.usrcon, bchcon: this.model.bchcon, inifrm: this.model.atp.cod, minamt: this.model.minamt, maxamt: this.model.maxamt, bustypList: this.model.trncorco.dflg, relflgList: this.model.relflg, pageNum: this.pagination.pageIndex, pageSize: this.pagination.pageSize, codeLev: this.model.codeLev, searchModel:this.searchModel, }; let res ={}; let rolebool=this.isHeadCenter(); if(rolebool){ res=await Api.post('/public/quesel/exportUnFinishExcel',params); }else{ res=await Api.post('/public/trnrel/exportUnFinishExcel',params); } if (res.respCode == SUCCESS) { res.data.forEach((arr,index)=>{ if(index == 0) return let num = parseFloat(arr[4]) if(isNaN(num)) num = 0 arr[4] = { v: num, t:'n', z:'#,##0.00' } }) let name=moment(new Date()).format('yyyy-MM-DD HH:mm:ss') ; Utils.exportToExcel (res.data, "未完成列表_"+name+".xlsx", "未完成列表") ; } loading.close(); }, //交易代码 async onSeainf() { this.dialogTitle = `交易列表`; this.dialogTableVisible = true; // 分层取值 this.loadingFlag = true; this.tableList = []; this.currentPage = 1; this.pageSize = 10000; this.total = 0; // 获取table的表格数据 let params = { cod: this.model.atp.cod, pageNo: this.currentPage, pageSize: this.pageSize }; const res = await Api.post('/public/quesel/getFrameList', params); if (res.respCode === SUCCESS) { if (res.data && res.data.list) { this.total = res.data.total; res.data.list.forEach((item, i) => { item.index = i + 1; }); this.tableList = res.data.list; } } this.loadingFlag = false; //接口调完变成false }, currentChange(num) { this.currentPage = num; this.getTableData(); }, async dbClickRow(row, column, event) { // 此处为了回填数据时回调 this.$emit('handleChange') // 回填数据 this.model.atp.cod = row.cod; this.dialogTableVisible = false; }, beforeClose(done) { this.dialogTableVisible = false; this.currentPage = 1; done(); }, async onReturnOne(ind,row){ this.batchflg = "N"; this.onReturn(ind, row); }, async onReturn(ind, row) { //云平台退回 //单证中心退回 let objtyp=row.objtyp; let objinr=row.objinr; if(objtyp!=='TRN' && this.currentOrg!=='1000'){ objtyp='TRN'; objinr=row.inr; } let rtnmsg = await Api.post("/business/lock/getSptAccessible", { objInr: objinr, objType: objtyp, trnName: row.inifrm.toUpperCase() }) if (rtnmsg.respCode===SUCCESS && rtnmsg.data && rtnmsg.data.usrId) { let msg = '该笔待办数据已被锁定!' + "锁定人为" + rtnmsg.data.usrId + ",锁定交易为[" + rtnmsg.data.trnLabel+"]" this.$notify.error({ title: '错误', message: msg }); return } let trninr=this.getTrninr(row); if(row.relflg.indexOf("W")>=0 ){ if (this.batchflg!=='Y') { this.$confirm('您确定退回该笔交易?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', }).then(async () => { let params = { trninr: trninr, remark: '' } let res = await Api.post("/public/trnrel/reprow", params); if (res.respCode == SUCCESS) { this.$notify({ title: '成功', message: '退回成功', type: 'success', }); this.handleSearch(); } else { this.$notify({title: "错误", message: res.respMsg, type: "error",}); } }) }else{ let params = { trninr: trninr, remark: '' } let res = await Api.post("/public/trnrel/reprow", params); if (res.respCode == SUCCESS) { this.$notify({ title: '成功', message: '退回成功', type: 'success', }); this.handleSearch(); } else { this.$notify({title: "错误", message: res.respMsg, type: "error",}); } } }else{ this.$notify({title: "错误",message: "请选择正确的数据退回!",type: "error",}); } }, //详情 async onWaitDetail(idx, row) { let trninr=this.getTrninr(row); let res = await Api.post("/public/trnrel/getFinTrnInfo", {trninr:trninr}); if (res.respCode == SUCCESS) { let inifrm=row.inifrm; if(res.data.finTrninr){ trninr = res.data.finTrninr; inifrm = res.data.finInifrm; } this.routerPush({ path: '/business/trnselDetail', query: { inr: trninr, inifrm: inifrm.toLocaleLowerCase(), businessType: row['objtyp'] } }); } }, //快照 async onHandle(idx, row) { let trninr=this.getTrninr(row); let res = await Api.post("/public/trnrel/getFinTrnInfo", {trninr:trninr}); if (res.respCode == SUCCESS) { let inifrm=row.inifrm; if(res.data.finTrninr){ trninr = res.data.finTrninr; inifrm = res.data.finInifrm; } inifrm=inifrm.toLocaleLowerCase(); this.routerPush({ path: `/review/review-${inifrm}`, query: { businessInr: trninr, businessType: "TRN", type: 'view' } }); } }, // pageSize改变 handleSizeChange(val) { this.pagination.pageIndex = 1; this.pagination.pageSize = val; this.handleSearch(this.sortObj); }, // 页码改变 handleCurrentChange(val) { this.pagination.pageIndex = val; this.handleSearch(this.sortObj); }, }, };