<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>