<template> <div> <el-card class="box-card" :class="[isShowCard ? '' : 'is-show-card']" > <c-col :span="24"> <el-form-item label="账号" :prop="`${argadr.grp}.rec.${argadr.rol}act`" style="width: 100%" :rules="[ {required: requiredAct, message: '必输项', trigger:['blur','change'] }, {validator: validateAct, trigger:['blur'] } ]" > <c-fullbox> <c-input v-model.trim="model[argadr.grp].rec[argadr.rol+'act']" v-if="isMyClient" :disabled="disabledAct" @clear="cleanData" > </c-input> <c-input v-model.trim="model[argadr.grp].rec[argadr.rol+'act']" :disabled="disabledAct" v-else > </c-input> <template slot="footer" v-if="isMyClient"> <c-button style="margin:0 10px 0 10px;padding: 0 12px;" size="small" type="primary" @click="showActPtapDialog()" > 查询客户号 </c-button> </template> </c-fullbox> </el-form-item> </c-col> <!-- --> <c-col :span="24"> <el-form-item :label="argadr.title" :prop="`${argadr.grp}.${argadr.rol}.pts.extkey`" :rules="[ {required: requiredExtkey, message: '必输项', trigger:['blur','change'] }, ]" style="width: 100%" > <c-fullbox> <c-input v-model.trim="model[argadr.grp][argadr.rol].pts.extkey" placeholder="" maxlength="16" :disabled="disabledExtkey" :customModifykey="`${argadr.grp}.${argadr.rol}.pts.extkey`" clearable @change="changeExtkey" @keyup.enter.native="showPtapDialog()" @blur="handleExtkeyBlur" @clear="cleanData" > </c-input> <template slot="footer"> <c-button style="margin:0 10px 0 10px;padding: 0 12px;" size="small" type="primary" icon="el-icon-search" :disabled="disabledExtkey" @click="showPtapDialog()" > </c-button> <el-button style="margin:0 0" size="small" type="primary" :disabled="disabledDetail || !isDisabled" @click="showDetail()" > Details </el-button> </template> </c-fullbox> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label-width="120px" :prop="`${argadr.grp}.${argadr.rol}.pts.adrblk`" v-if="showAdrblk" > <c-mul-row-input type="textarea" :rows="2" :cols="30" :autosize="{minRows: 1, maxRows: 2}" :charmod="charmod" :showTip="false" v-model="model[argadr.grp][argadr.rol].pts.adrblk" placeholder="" disabled > </c-mul-row-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item :label="argadr.title+'名称'" :prop="`attp.${argadr.rol}namfxps`" style="width: 100%" > <c-mul-row-input type="textarea" :rows="2" :cols="30" :showTip="false" :autosize="{minRows: 1, maxRows: 2}" :charmod="charmod" v-model="model.attp[argadr.rol+'namfxps']" @blur="hanldeAdrBlur('nam')" :disabled="disabledNam" > </c-mul-row-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item :label="argadr.title+'地址'" :prop="`attp.${argadr.rol}adrfxps`" style="width: 100%" > <c-mul-row-input type="textarea" :rows="2" :cols="35" :showTip="false" :autosize="{minRows: 1, maxRows: 2}" :charmod="charmod" v-model="model.attp[argadr.rol+'adrfxps']" @blur="hanldeAdrBlur('adr')" :disabled="disabledNam" > </c-mul-row-input> </el-form-item> </c-col> </el-card> <!-- 弹窗 --> <el-dialog v-dialogDrag width="64%" :visible.sync="dialogTableVisible" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" v-if="dialogTableVisible" :modal-append-to-body="false" :append-to-body="true" > <div slot="title" style="font-size: 16px;color: black;position: realtive;"> {{ dialogTitle }} <!-- 关闭按钮 --> <div class="close-btn" @click="handleCloseDialogTable"><i class="el-icon-close"></i></div> </div> <div v-if="!tableLoading && tableList.length === 0">暂无数据</div> <div v-else style="width: 100%;height: 100%;"> <el-table id='tableRef' height="calc(100% - 32px)" style="width: 100%;" v-loading="tableLoading" :data="tableList" @row-dblclick="dbClickRow" :before-close="beforeClose"> <el-table-column v-for="(item,key) in tableColumn" :key="key" :prop="item.prop" :render-header="renderheader" :label="item.label"> </el-table-column> </el-table> <el-pagination class="eContainer-pagination" layout="prev, pager, next, jumper, ->, sizes, total" :page-sizes="pageSizes" :page-size="pageSize" :current-page="currentPage" :total="total" @size-change="sizeChange" @current-change="currentChange" ></el-pagination> </div> </el-dialog> <!-- 账号弹窗 --> <el-dialog v-dialogDrag width="64%" :visible.sync="dialogActTableVisible" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" v-if="dialogActTableVisible" :modal-append-to-body="false" :append-to-body="true" > <div slot="title" style="font-size: 16px;color: black;position: realtive;"> {{ dialogTitle }} <!-- 关闭按钮 --> <div class="close-btn" @click="handleCloseActDialogTable"><i class="el-icon-close"></i></div> </div> <div v-if="!tableActLoading && tableActList.length === 0">暂无数据</div> <div v-else style="width: 100%;height: 100%;"> <el-table id='tableRef' height="calc(100% - 32px)" style="width: 100%;" v-loading="tableActLoading" :data="tableActList" @row-dblclick="dbClickRowAct" :before-close="beforeActClose"> <el-table-column v-for="(item,key) in tableActColumn" :key="key" :prop="item.prop" :label="item.label"> </el-table-column> </el-table> <el-pagination class="eContainer-pagination" layout="prev, pager, next, jumper, ->, sizes, total" :page-sizes="pageSizesAct" :page-size="pageSizeAct" :current-page="currentPageAct" :total="totalAct" @size-change="sizeChangeAct" @current-change="currentChangeAct" ></el-pagination> </div> </el-dialog> <!-- 账号列表弹窗 --> <el-dialog v-dialogDrag width="64%" :visible.sync="dialogActListTableVisible" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" v-if="dialogActListTableVisible" :modal-append-to-body="false" :append-to-body="true" > <div slot="title" style="font-size: 16px;color: black;position: realtive;"> {{ dialogTitle }} <!-- 关闭按钮 --> <div class="close-btn" @click="handleCloseActListDialogTable"><i class="el-icon-close"></i></div> </div> <div v-if="tableActList2.length === 0">暂无数据</div> <div v-else style="width: 100%;height: 100%;"> <el-table id='tableRef' height="calc(100% - 32px)" style="width: 100%;" :data="tableActList2" @row-dblclick="dbClickRowActList" :before-close="beforeActListClose"> <el-table-column v-for="(item,key) in tableActColumn2" :key="key" :prop="item.prop" :label="item.label"> </el-table-column> </el-table> <!-- <el-pagination class="eContainer-pagination" layout="prev, pager, next, jumper, ->, sizes, total" :page-sizes="pageSizesActList" :page-size="pageSizeActList" :current-page="currentPageActList" :total="totalActList" @size-change="sizeChangeAct" @current-change="currentChangeAct" ></el-pagination> --> </div> </el-dialog> <el-dialog v-dialogDrag width="64%" custom-class="temp-rol" :visible.sync="tempRolVisible" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" v-if="tempRolVisible" > <div slot="title" style="font-size: 16px;color: black;position: realtive;"> 临时角色信息 <!-- 关闭按钮 --> <!-- <div class="close-btn" @click="handletempRolClose"><i class="el-icon-close"></i></div> --> </div> <div> <el-form ref="tempForm" :model="tempFormData" :validate-on-rule-change="false"> <c-col :span="12" style="padding-right: 10px"> <c-col> <el-form-item label="中文名称" prop="cnnam" :rules="[ {required: payuil == 'CN', message:'必输项', trigger:['blur','change'] }, ]" label-width="95px"> <c-mul-row-input type="textarea" :rows="2" :cols="30" v-model="tempFormData.cnnam" placeholder="请输入" :isCheckInCompontent="false" :showTip="false" ></c-mul-row-input> </el-form-item> </c-col> <c-col> <el-form-item label="中文地址" prop="cnadr" label-width="95px" > <c-mul-row-input type="textarea" :rows="2" :cols="35" v-model="tempFormData.cnadr" placeholder="请输入" :isCheckInCompontent="false" :showTip="false" ></c-mul-row-input> </el-form-item> </c-col> </c-col> <c-col :span="12" style="padding-left: 10px"> <c-col> <el-form-item label="英文名称" prop="ennam" :rules="[ {required: payuil == 'EN', message: 'Required Field', trigger:['blur','change'] }]" label-width="95px"> <c-mul-row-input type="textarea" :rows="2" :cols="30" v-model="tempFormData.ennam" placeholder="请输入" :isCheckInCompontent="false" :showTip="false" ></c-mul-row-input> </el-form-item> </c-col> <c-col> <el-form-item label="英文地址" prop="enadr" label-width="95px" > <c-mul-row-input type="textarea" :rows="2" :cols="35" v-model="tempFormData.enadr" placeholder="请输入" :isCheckInCompontent="false" :showTip="false" ></c-mul-row-input> </el-form-item> </c-col> </c-col> </el-form> </div> <span slot="footer" class="dialog-footer"> <el-button type="default" @click="handletempRolClose">取消</el-button> <el-button type="primary" @click="buildTemp" v-if="!model[argadr.grp][argadr.rol].pts.ptainr">创建临时地址</el-button> <el-button type="primary" @click="tempSure">确 定</el-button> </span> </el-dialog> <!-- 点击详情按钮 --> <el-dialog v-dialogDrag width="64%" title="详情查看" custom-class="temp-rol" :visible.sync="detailVisible" :close-on-click-modal="false" :close-on-press-escape="false" v-if="detailVisible" > <el-form :model="detailFormData" label-width="95px"> <c-col :span="24"> <c-col :span="12" style="padding-right: 10px"> <c-col :span="24"> <el-form-item label="客户编号"> <el-input v-model="detailFormData.ptaptyextkey" disabled></el-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="中文名称"> <el-input type="textarea" v-model="detailFormData.cnnam" disabled></el-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="中文地址"> <el-input type="textarea" v-model="detailFormData.cnadr" disabled></el-input> </el-form-item> </c-col> </c-col> <c-col :span="12" style="padding-left: 10px"> <c-col :span="24"> <!-- :prop="`${argadr.grp}.${argadr.rol}.pts.ref`" --> <el-form-item label="参考号"> <c-input v-model="detailFormData.ref" :customModifykey="`${argadr.grp}.${argadr.rol}.pts.ref`" placeholder="请输入参考号" maxlength="16" show-word-limit @input="handleInput" ></c-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="英文名称"> <el-input type="textarea" v-model="detailFormData.ennam" disabled></el-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="英文地址"> <el-input type="textarea" v-model="detailFormData.enadr" disabled></el-input> </el-form-item> </c-col> </c-col> </c-col> </el-form> <span slot="footer" class="dialog-footer"> <el-button type="primary" @click="saveRef">保存</el-button> </span> </el-dialog> </div> </template> <script> import { columnMap } from "./ptapColumn.js"; import { queryPtaInfos , queryPtsptaInfo12 , queryPtaInfoByOrcact, ptsTmpAdrAdd} from "~/service/business/common"; import commonFunctions from '~/mixin/commonFunctions.js'; import commonDepend from '~/mixin/commonDepend.js' export default { inject: ["root"], mixins: [commonFunctions,commonDepend], props: { model: { type: Object, default: () => {} }, argadr: { type: Object, default: function() { return { title: "",//角色名称 rol: "", //角色 grp: "" //所属模块 }; } }, ptytyp: { // 决定弹框的表头--客户类型 type: String }, isShowCard: { type: Boolean, default: true }, disabledAct: { //账号是否灰显(true:账号处灰显) type: Boolean, default: false }, disabledExtkey: { //extkey是否灰显(true:extkey处灰显) type: Boolean, default: false }, disabledDetail: { //details是否灰显(true:details处灰显) type: Boolean, default: false }, disabledAdrblk: { //adrblk是否灰显(true:adrblk处灰显) type: Boolean, default: false }, disabledNam: { //nam\adr是否灰显(true:nam\adr处灰显) type: Boolean, default: false }, // extkey必填星号*是否显示 requiredExtkey: { type: Boolean, default: false }, // act必填星号*是否显示 requiredAct: { type: Boolean, default: false }, isSerAct:{ type: Boolean, default: true }, typflg: { // 生成临时客户的客户类型 type: String, default: 'C' }, //汇款语种 payuil:{ type: String, default: "EN" }, showAdrblk:{ type: Boolean, default: false }, //是否是我行客户 isMyClient: { type: Boolean, default: false }, }, data() { return { dialogTitle: "", // 弹框标题 dialogTableVisible: false, // 控制弹框的展示和隐藏 tableLoading: false, total: 0, isDisabled: false, currentPage: 1, // 页数 pageSizes: [5, 10, 20, 30, 40, 50, 100], pageSize: 5, // 条数 tableList: [], tableColumn: [], dialogActTableVisible: false, // 控制弹框的展示和隐藏 tableActLoading: false, totalAct: 0, currentPageAct: 1, // 页数 pageSizesAct: [5, 10, 20, 30, 40, 50, 100], pageSizeAct: 5, // 条数 tableActList: [], tableActColumn: [], totalActList: 0, currentPageActList: 1, // 页数 pageSizesActList: [5, 10, 20, 30, 40, 50, 100], pageSizeActList: 5, // 条数 tableActList2: [], //通过客户号带出的账号列表 tableActColumn2: [ { prop: 'cur', label: '币种', }, { prop: 'extkey', label: '账号', }, ], dialogActListTableVisible: false, // 控制弹框的展示和隐藏 markExtkey: '', markOrcact: '', markEnAdrblk: '', markCnAdrblk: '', detailVisible: false, //详情数据 detailFormData:{ ptaptyextkey:'', cnnam:'', cnadr:'', ennam:'', enadr:'', ref:'' }, // 临时地址相关(名称和地址) tempRolVisible: false, tempFormData: { cnnam: '', cnadr: '', ennam: '', enadr: '' }, isChangeRef: '', actWarning:'', //判断是否生成临时地址 tepAdr: false, }; }, watch: { payuil(newVal,oldVal){ this.namAdr() } }, computed:{ charmod(){ return this.payuil == 'CN' ? 5 : 4 } }, methods: { // 弹框 async showPtapDialog() { // if( !this.model[this.argadr.grp].cbs.nom1.cur || !this.model[this.argadr.grp].cbs.nom1.amt){ // this.$message({ // message:'汇款金额或币种为空', // type:'warning' // }); // return // } if (this.tableLoading || this.dialogTableVisible) { return } const value = this.model[this.argadr.grp][this.argadr.rol].pts.extkey; // 分层取值 await this.getTableData(value); if (this.total == 1) { this.dbClickRow(this.tableList[0]); } else { // 设置弹框标题 this.dialogTitle = `${this.argadr.title}详情`; this.dialogTableVisible = true; this.tableColumn = columnMap['C']; this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); }) } }, // 获取弹框内的table数据 async getTableData(value) { return new Promise(async (resolve) => { this.tableLoading = true; this.tableList = []; // 获取table的表格数据 let params = { ptytyp: this.ptytyp, extkey: value || "", pageNum: this.currentPage, pageSize: this.pageSize }; const loading = this.loading(); const res = await queryPtaInfos(params, this.moduleRouter()); loading.close(); if (res.respCode == SUCCESS) { if (res.data && res.data.list) { this.total = res.data.total; this.tableList = res.data.list.map(it => ({ ...it, // 添加新key将Party Number和Address Number换行 partyNumberAndAdressNumber: `${it.ptaptyextkey || ""}\n${it.ptaobjkey || ""}`, bchbranchAndBchbchname: `${it.bchbranch || ""}\n${it.bchbchname || ""}`, adrnam1AndPtanam1: `${it.adrnam1 || ""}\n${it.ptanam1 || ""}`, adradr1AndAdrstr1: `${it.adradr1 || ""}\n${it.adrstr1 || ""}`, adrstr2Andadrloccty: `${it.adrstr2 || ""}\n${it.adrloccty || ""}`, adrloczipAndadrloctxt: `${it.adrloczip || ""}\n${it.adrloctxt || ""}` })); resolve(this.tableList) } } this.tableLoading = false; //接口掉完变成false }) }, beforeClose(done) { this.dialogTableVisible = false; this.currentPage = 1; done(); }, beforeActClose(done) { this.dialogActTableVisible = false; this.currentPageAct = 1; done(); }, showDetail(){ this.detailVisible=true //给详情弹框赋值 this.detailFormData.ref=this.model[this.argadr.grp][this.argadr.rol].pts.ref this.detailFormData.ptaptyextkey=this.model[this.argadr.grp][this.argadr.rol].pts.extkey this.detailFormData.cnnam=this.model[this.argadr.grp][this.argadr.rol].pts.cnnam this.detailFormData.cnadr=this.model[this.argadr.grp][this.argadr.rol].pts.cnadr this.detailFormData.ennam=this.model[this.argadr.grp][this.argadr.rol].pts.ennam this.detailFormData.enadr=this.model[this.argadr.grp][this.argadr.rol].pts.enadr }, // extkey输入框失焦 handleExtkeyBlur (e) { let extkey = this.model[this.argadr.grp][this.argadr.rol].pts.extkey if (extkey && extkey !== this.markExtkey) { this.showPtapDialog() } if(!extkey && this.markExtkey){ this.cleanData() } }, // orcact输入框失焦 handleActBlur (e) { this.actWarning = '' this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) let orcact = this.model[this.argadr.grp].rec[this.argadr.rol+'act'] if (orcact && orcact !== this.markOrcact) { this.showActPtapDialog() } }, // 表头 头部换行,以 / 作为换行标志 renderheader(h, { column, $index }) { return h("span", {}, [ h("span", {}, column.label.split("/")[0]), h("br"), h("span", {}, column.label.split("/")[1]) ]); }, validateAct(rule, value, callback) { if(value.length > 35 ){ return callback(new Error('账号长度不能超过35')) } if (this.actWarning !== '') { callback(new Error(this.actWarning)); } else { callback() } }, // 获取临时生成的地址的extkey;paramsType为标识组件类型,1:标识只有地址;2:标识有地址和名称 async queryTempExtkey (flg) { let language = this.payuil let params = { rol: this.argadr.rol, flg, typflg: this.typflg, language, ptainr: this.model[this.argadr.grp][this.argadr.rol].pts.ptainr, cnnam: this.tempFormData.cnnam, cnadr: this.tempFormData.cnadr, ennam: this.tempFormData.ennam, enadr: this.tempFormData.enadr } const loading = this.loading(); let res = await ptsTmpAdrAdd(params, this.moduleRouter()) loading.close(); if (res.respCode == SUCCESS) { this.model[this.argadr.grp][this.argadr.rol].pts.extkey = res.data.extkey this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); }) // 备份的extkey this.markExtkey = res.data.extkey this.model[this.argadr.grp][this.argadr.rol].pts.rol = res.data.rol.toUpperCase() this.model[this.argadr.grp][this.argadr.rol].pts.ptainr = res.data.ptainr this.model[this.argadr.grp][this.argadr.rol].pts.ptyinr = res.data.ptyinr this.model[this.argadr.grp][this.argadr.rol].pts.nam = this.payuil == 'CN' ? res.data.cnnam : res.data.ennam; this.model[this.argadr.grp][this.argadr.rol].pts.adrblk = this.payuil == 'CN' ? res.data.adrblk : res.data.adrelc this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = res.data.pts.cnnam this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = res.data.pts.cnadr this.model[this.argadr.grp][this.argadr.rol].pts.ennam = res.data.pts.ennam this.model[this.argadr.grp][this.argadr.rol].pts.enadr = res.data.pts.enadr this.model.attp[this.argadr.rol+'namfxps'] = this.payuil == 'CN' ? res.data.pts.cnnam : res.data.pts.ennam this.model.attp[this.argadr.rol+'adrfxps'] = this.payuil == 'CN' ? res.data.pts.cnadr : res.data.pts.enadr //备份临时地址 this.detailFormData.cnadr = res.data.pts.cnadr this.detailFormData.cnnam = res.data.pts.cnnam this.detailFormData.enadr = res.data.pts.enadr this.detailFormData.ennam = res.data.pts.ennam this.markCnAdrblk = res.data.adrblk this.markEnAdrblk = res.data.adrelc this.isDisabled = true this.$emit('handleChange') } else { this.model[this.argadr.grp][this.argadr.rol].pts.extkey = '' this.$message.error(res.respMsg) } }, modifyPtap(){ this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'extkey') this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'cnnam') this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'cnadr') this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'ennam') this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'enadr') this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'nam') this.customAddModify(this.model[this.argadr.grp].rec, `${this.argadr.rol}act`) this.customAddModify(this.model.attp,`${this.argadr.rol}namfxps`) this.customAddModify(this.model.attp,`${this.argadr.rol}adrfxps`) }, // 地址失去焦点 hanldeAdrBlur (type) { //客户地址或者名称没有维护的情况 if(this.markExtkey){ switch (type){ case 'nam': if(this.payuil == 'CN'){ this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = this.model.attp[this.argadr.rol+'namfxps'] }else{ this.model[this.argadr.grp][this.argadr.rol].pts.ennam = this.model.attp[this.argadr.rol+'namfxps'] } break case 'adr': if(this.payuil == 'CN'){ this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = this.model.attp[this.argadr.rol+'adrfxps'] }else{ this.model[this.argadr.grp][this.argadr.rol].pts.enadr = this.model.attp[this.argadr.rol+'adrfxps'] } } this.$emit('handleChange') } //我行客户不生成临时地址 if(this.isMyClient){ return } switch (type) { case 'nam': this.tempRolVisible = true this.tempFormData.cnadr = this.payuil == 'CN' ? this.model.attp[this.argadr.rol+'adrfxps'] : '' this.tempFormData.cnnam = this.payuil == 'CN' ? this.model.attp[this.argadr.rol+'namfxps'] : '' this.tempFormData.enadr = this.payuil == 'EN' ? this.model.attp[this.argadr.rol+'adrfxps'] : '' this.tempFormData.ennam = this.payuil == 'EN' ? this.model.attp[this.argadr.rol+'namfxps'] : '' break; case 'adr': this.tempRolVisible = true this.tempFormData.cnadr = this.payuil == 'CN' ? this.model.attp[this.argadr.rol+'adrfxps'] : '' this.tempFormData.cnnam = this.payuil == 'CN' ? this.model.attp[this.argadr.rol+'namfxps'] : '' this.tempFormData.enadr = this.payuil == 'EN' ? this.model.attp[this.argadr.rol+'adrfxps'] : '' this.tempFormData.ennam = this.payuil == 'EN' ? this.model.attp[this.argadr.rol+'namfxps'] : '' break; default: return; } }, handleInput(){ this.isChangeRef = true }, changeExtkey(){ this.modifyPtap() }, saveRef(){ // 打开弹框并且修改过参考号才给其添加modifySet和markSet if (this.isChangeRef) { this.customAddModify(this.model[this.argadr.grp][this.argadr.rol].pts, 'ref') } this.model[this.argadr.grp][this.argadr.rol].pts.ref = this.detailFormData.ref this.detailVisible=false this.$nextTick(() => { this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); }) }, cleanData(){ this.model[this.argadr.grp][this.argadr.rol].pts.extkey = '' this.model[this.argadr.grp][this.argadr.rol].pts.nam = '' this.model[this.argadr.grp][this.argadr.rol].pts.ennam = '' this.model[this.argadr.grp][this.argadr.rol].pts.enadr = '' this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = '' this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = '' this.model[this.argadr.grp][this.argadr.rol].pts.ptainr='' this.model[this.argadr.grp][this.argadr.rol].pts.ptyinr='' this.model[this.argadr.grp].rec[this.argadr.rol+'act'] = '' this.model[this.argadr.grp][this.argadr.rol].pts.adrblk = '' this.model.attp[this.argadr.rol+'adrfxps'] = '' this.model.attp[this.argadr.rol+'namfxps'] = '' this.markExtkey = '' this.markOrcact = '' this.markEnAdrblk = '' this.markCnAdrblk = '' this.actWarning = '' this.isDisabled = false this.tepAdr = false }, // 关闭弹框 handleCloseDialogTable () { this.dialogTableVisible = false; this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); }) }, async dbClickRow(row, column, event) { let params = { inr: row.ptainr, amt: this.model[this.argadr.grp].cbs.nom1.amt, cur: '' }; const response = await queryPtsptaInfo12(params, this.moduleRouter()); if (response.respCode == SUCCESS) { // 备份的extkey this.markExtkey = row.ptaobjkey this.markEnAdrblk = response.data.ennamadr this.markCnAdrblk = response.data.cnnamadr // 赋值 this.model[this.argadr.grp][this.argadr.rol].pts.extkey = row.ptaobjkey this.model[this.argadr.grp][this.argadr.rol].pts.ennam = response.data.ennam; this.model[this.argadr.grp][this.argadr.rol].pts.enadr = response.data.enadr; this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = response.data.cnnam; this.model[this.argadr.grp][this.argadr.rol].pts.nam = this.payuil == 'CN' ? response.data.cnnam : response.data.ennam; this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = response.data.cnadr; this.model[this.argadr.grp][this.argadr.rol].pts.ptainr = response.data.ptainr; this.model[this.argadr.grp][this.argadr.rol].pts.ptyinr = response.data.ptyinr; this.model[this.argadr.grp][this.argadr.rol].pts.rol = this.argadr.rol.toUpperCase(); //this.model[this.argadr.grp].rec[this.argadr.rol+'act'] = response.data.orcact this.tableActList2 = response.data.actList; //详情赋值 this.detailFormData.ptaptyextkey=this.model[this.argadr.grp][this.argadr.rol].pts.extkey this.detailFormData.cnnam=this.model[this.argadr.grp][this.argadr.rol].pts.cnnam this.detailFormData.cnadr=this.model[this.argadr.grp][this.argadr.rol].pts.cnadr this.detailFormData.ennam=this.model[this.argadr.grp][this.argadr.rol].pts.ennam this.detailFormData.enadr=this.model[this.argadr.grp][this.argadr.rol].pts.enadr //给角色名称和地址赋值 this.namAdr() this.$emit('handleChange') this.modifyPtap() this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); }) } this.isDisabled = true this.dialogTableVisible = false; //弹出账号列表 if(this.isMyClient&&this.tableActList2.length>0){ this.showActListDialog(); } }, namAdr(){ this.model[this.argadr.grp][this.argadr.rol].pts.adrblk = this.payuil == 'CN' ? this.markCnAdrblk : this.markEnAdrblk this.model.attp[this.argadr.rol+'adrfxps'] = this.payuil == 'CN' ? this.detailFormData.cnadr : this.detailFormData.enadr this.model.attp[this.argadr.rol+'namfxps'] = this.payuil == 'CN' ? this.detailFormData.cnnam : this.detailFormData.ennam }, handletempRolClose () { this.tempRolVisible = false if (!this.model[this.argadr.grp][this.argadr.rol].pts.ptainr) { this.tempFormData.cnnam = '' this.tempFormData.cnadr = '' this.tempFormData.ennam = '' this.tempFormData.enadr = '' this.model.attp[this.argadr.rol+'namfxps'] = '' this.model.attp[this.argadr.rol+'adrfxps'] = '' } }, buildTemp () { this.$refs['tempForm'].validate((validStatic) => { if (validStatic) { this.queryTempExtkey(true) this.tempRolVisible = false this.modifyPtap() //生成临时地址,账号栏位无法查询 this.tepAdr = true } }) }, // 点击确定 tempSure () { this.$refs['tempForm'].validate((validStatic) => { if (validStatic) { let ptainr = this.model[this.argadr.grp][this.argadr.rol].pts.ptainr; if (ptainr !== '') { let extkey = this.model[this.argadr.grp][this.argadr.rol].pts.extkey || ''; if (extkey.startsWith('9999') || extkey.startsWith('Temp')) { this.queryTempExtkey(true) this.tempRolVisible = false this.modifyPtap() } return } this.queryTempExtkey(false) this.tempRolVisible = false this.tepAdr = true this.modifyPtap() } }) // this.modifyPtap() // this.$nextTick(()=>{ // this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.${this.argadr.rol}.pts.extkey`]); // }) }, sizeChange(num){ this.pageSize = num; const value = this.model[this.argadr.grp][this.argadr.rol].pts.extkey; this.getTableData(value); }, currentChange(num) { this.currentPage = num; const value = this.model[this.argadr.grp][this.argadr.rol].pts.extkey; this.getTableData(value); }, async showActPtapDialog() { this.actWarning = ''; const value = this.model[this.argadr.grp].rec[this.argadr.rol+'act'] if(!value){ return } if(this.tepAdr){ return } // if( !this.model[this.argadr.grp].cbs.nom1.cur || !this.model[this.argadr.grp].cbs.nom1.amt){ // this.$message({ // message:'汇款金额或币种为空', // type:'warning' // }); // return // } if (this.tableActLoading || this.dialogActTableVisible) { return } // 分层取值 await this.getActTableData(value); if (this.totalAct == 1) { this.dbClickRowAct(this.tableActList[0]); } else { // 设置弹框标题 this.dialogTitle = `${this.argadr.title}详情`; this.dialogActTableVisible = true; this.tableActColumn = columnMap['C']; this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) } }, // 获取弹框内的table数据 async getActTableData(value) { return new Promise(async (resolve) => { this.tableActLoading = true; this.tableActList = []; // 获取table的表格数据 let params = { ptytyp: this.ptytyp, orcact: value || "", cur: '', amt: this.model[this.argadr.grp].cbs.nom1.amt, pageNum: this.currentPageAct, pageSize: this.pageSizeAct }; const loading = this.loading(); const res = await queryPtaInfoByOrcact(params, this.moduleRouter()); loading.close(); if (res.respCode == SUCCESS) { if (res.data && res.data.list) { this.totalAct = res.data.total; this.tableActList = res.data.list.map(it => ({ ...it, // 添加新key将Party Number和Address Number换行 partyNumberAndAdressNumber: `${it.ptaptyextkey || ""}\n${it.ptaobjkey || ""}`, bchbranchAndBchbchname: `${it.bchbranch || ""}\n${it.bchbchname || ""}`, adrnam1AndPtanam1: `${it.adrnam1 || ""}\n${it.ptanam1 || ""}`, adradr1AndAdrstr1: `${it.adradr1 || ""}\n${it.adrstr1 || ""}`, adrstr2Andadrloccty: `${it.adrstr2 || ""}\n${it.adrloccty || ""}`, adrloczipAndadrloctxt: `${it.adrloczip || ""}\n${it.adrloctxt || ""}` })); resolve(this.tableActList) }else{ if(this.isSerAct){ this.actWarning = res.data this.model[this.argadr.grp][this.argadr.rol].pts.extkey = '' this.model[this.argadr.grp][this.argadr.rol].pts.ennam = '' this.model[this.argadr.grp][this.argadr.rol].pts.enadr = '' this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = '' this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = '' this.model[this.argadr.grp][this.argadr.rol].pts.ptainr='' this.model[this.argadr.grp][this.argadr.rol].pts.ptyinr='' this.model[this.argadr.grp][this.argadr.rol].pts.adrblk = '' this.model.attp[this.argadr.rol+'adrfxps'] = '' this.model.attp[this.argadr.rol+'namfxps'] = '' this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) this.markOrcact = this.model[this.argadr.grp].rec[this.argadr.rol+'act'] } } } this.tableActLoading = false; //接口掉完变成false }) }, async dbClickRowAct(row, column, event) { let params = { inr: row.ptainr, amt: this.model[this.argadr.grp].cbs.nom1.amt, cur: '' }; const response = await queryPtsptaInfo12(params, this.moduleRouter()); if (response.respCode == SUCCESS) { // 备份的extkey this.markOrcact = row.orcact this.markExtkey = row.ptaobjkey this.markEnAdrblk = response.data.ennamadr this.markCnAdrblk = response.data.cnnamadr // 赋值 this.model[this.argadr.grp][this.argadr.rol].pts.extkey = row.ptaobjkey this.model[this.argadr.grp][this.argadr.rol].pts.ptainr = row.ptainr; this.model[this.argadr.grp][this.argadr.rol].pts.ptyinr = response.data.ptyinr; this.model[this.argadr.grp][this.argadr.rol].pts.ennam = response.data.ennam; this.model[this.argadr.grp][this.argadr.rol].pts.nam = this.payuil == 'CN' ? response.data.cnnam : response.data.ennam; this.model[this.argadr.grp][this.argadr.rol].pts.rol = this.argadr.rol.toUpperCase(); this.model[this.argadr.grp][this.argadr.rol].pts.enadr = response.data.enadr; this.model[this.argadr.grp][this.argadr.rol].pts.cnnam = response.data.cnnam; this.model[this.argadr.grp][this.argadr.rol].pts.cnadr = response.data.cnadr; //this.model[this.argadr.grp].rec[this.argadr.rol+'act'] = response.data.orcact //详情赋值 this.detailFormData.ptaptyextkey=this.model[this.argadr.grp][this.argadr.rol].pts.extkey this.detailFormData.cnnam=this.model[this.argadr.grp][this.argadr.rol].pts.cnnam this.detailFormData.cnadr=this.model[this.argadr.grp][this.argadr.rol].pts.cnadr this.detailFormData.ennam=this.model[this.argadr.grp][this.argadr.rol].pts.ennam this.detailFormData.enadr=this.model[this.argadr.grp][this.argadr.rol].pts.enadr //给角色名称和地址赋值 this.namAdr() this.$emit('handleChange') this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) } this.isDisabled = true this.dialogActTableVisible = false; }, sizeChangeAct(num){ this.pageSizeAct = num; const value = this.model[this.argadr.grp].rec[this.argadr.rol+'act']; this.getActTableData(value); }, currentChangeAct(num) { this.currentPageAct = num; const value = this.model[this.argadr.grp].rec[this.argadr.rol+'act']; this.getActTableData(value); }, // 关闭弹框 handleCloseActDialogTable () { this.dialogActTableVisible = false; this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) }, showActListDialog() { // 设置弹框标题 this.dialogTitle = `${this.argadr.title}账号详情`; this.dialogActListTableVisible = true; }, //双击账号列表事件 dbClickRowActList(row, column, event) { // if(this.model[this.argadr.grp].cbs.nom1.cur!=''&&this.model[this.argadr.grp].cbs.nom1.cur!= row.cur){ // this.$confirm("当前汇款币种与选定账号对应币种不一致,是否覆盖当前汇款币种?", "提示", { // closeOnClickModal:false, // closeOnPressEscape:false, // distinguishCancelAndClose:true, // confirmButtonText: "是", // cancelButtonText: "否", // cancelButtonClass: 'btn-custom-cancel', // type: "warning", // }).then(() => { // this.model[this.argadr.grp].cbs.nom1.cur = row.cur; // }).catch((action) => { // if (action === 'cancel') { // } // }); // } this.model[this.argadr.grp].rec[this.argadr.rol+'act'] = row.extkey; this.markOrcact = row.extkey; this.dialogActListTableVisible = false; }, sizeChangeActList(num){ this.pageSizeActList = num; const value = this.model[this.argadr.grp].rec[this.argadr.rol+'act']; //this.getActTableData(value); }, currentChangeActList(num) { this.currentPageActList = num; const value = this.model[this.argadr.grp].rec[this.argadr.rol+'act']; //this.getActTableData(value); }, // 关闭账号列表弹框 handleCloseActListDialogTable () { this.dialogActListTableVisible = false; this.$nextTick(()=>{ this.root.$refs['modelForm'].validateField([`${this.argadr.grp}.rec.${this.argadr.rol}act`]); }) }, beforeActListClose(done) { this.dialogActListTableVisible = false; this.currentPageActList = 1; done(); }, }, }; </script> <style scoped lang="less"> .box-card { margin-bottom: 10px; /deep/ .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item { margin-bottom: 10px; } /deep/ .el-card__body { padding: 10px 10px 10px 0px; } } .close-btn { width: 20px; height: 20px; position: absolute; top: 20px; right: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; } .close-btn:hover { background: rgba(0, 0, 0, .1) } .is-show-card { border: none!important; box-shadow: none!important; margin-bottom: 0!important; /deep/ .el-card__body { padding: 0!important; } } </style>