<template> <div class="eibs"> <!-- 左边 --> <c-col :span="12" style="padding-right: 20px"> <c-col :span="24"> <el-form-item label="Special Payment Conditions for Bank Only" prop="ltdgrp.blk.spcrcb"> <c-fullbox> <c-input type="textarea" maxlength="52000" v-model="model.ltdgrp.blk.spcrcb" :rows="20" show-word-limit @change="handleSpcrcbChanged" placeholder="请输入仅适用于指定银行的特殊付款条款" :disabled="isSpcrcbDisabled"></c-input> </c-fullbox> </el-form-item> </c-col> <c-col :span="24"> <c-ptap-commons :cols="65" :rows="800" :minRows="12" :maxRows="800" :model="model" :disabledButton="isUsrblkDisabled" :extCodes="['lttamep', 'spcrcbamep']" lastModel="spcrcb" :charmod="3" title="Adding/Deleting Text in Current Amendment"> </c-ptap-commons> </c-col> </c-col> <!-- 右边 --> <c-col :span="12" style="padding-left: 20px"> <c-col :span="24"> <el-form-item label="Historic Overview" prop="ltdgrp.blk.spcrcbame"> <c-fullbox> <c-input disabled type="textarea" maxlength="52000" v-model="model.ltdgrp.blk.spcrcbame" :rows="20" show-word-limit placeholder=""></c-input> </c-fullbox> </el-form-item> </c-col> <c-col :span="24" class=""> <el-form-item label=" " prop="lttamep.spcrcbamep.modflg" label-width="180px" style="float: left"> <c-checkbox v-model="model.lttamep.spcrcbamep.modflg" class="checkbox-left" true-label="X" false-label="" :disabled="this.model.lttamep.spcrcbamep.modmanflg == 'X'" @change="onModflgChange" >Modify Text to Replace</c-checkbox > </el-form-item> </c-col> <c-col :span="24" class=""> <el-form-item label=" " prop="lttamep.spcrcbamep.modmanflg" label-width="180px" style="float: left"> <c-checkbox v-model="model.lttamep.spcrcbamep.modmanflg" class="checkbox-left" true-label="X" false-label="" :disabled="this.model.lttamep.spcrcbamep.modflg == 'X'" @change="onModmanflgChange" >Modify Text Internally</c-checkbox > </el-form-item> </c-col> <c-col :span="24"> <el-form-item label-width="160px" style="float: left"> <text-diff :leftText="model.oldltdgrp.blk.spcrcb" :rightText="model.ltdgrp.blk.spcrcb" :isShowScale="false" :disabled="model.ltdgrp.blk.spcrcb === model.oldltdgrp.blk.spcrcb" /> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label-width="180px" style="float: left"> <c-button type="primary" @click="onAddClick" :disabled="this.model.lttamep.spcrcbamep.spcrcb == null || this.model.lttamep.spcrcbamep.spcrcb == ''"> Add </c-button> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label-width="180px" style="float: left"> <c-button type="primary" @click="onDeleteClick" :disabled="this.model.lttamep.spcrcbamep.spcrcb == null || this.model.lttamep.spcrcbamep.spcrcb == ''"> Delete </c-button> </el-form-item> </c-col> </c-col> </div> </template> <script> import Api from '~/service/Api'; import CodeTable from '~/config/CodeTable'; import event from '../event'; import moment from 'moment'; import commonDepend from "~/mixin/commonDepend"; import TextDiff from "~/components/business/TextDiff"; export default { components: { TextDiff }, inject: ['root'], props: ['model', 'codes'], mixins: [event, commonDepend], data() { return { isSpcrcbDisabled: true, isUsrblkDisabled: false, tempLcrbnk: "", }; }, methods: { onAddClick() { if (this.model.lttamep.spcrcbamep.spcrcb != null && this.model.lttamep.spcrcbamep.spcrcb != "") { this.model.ltdgrp.blk.spcrcb = this.model.ltdgrp.blk.spcrcb + "\n" + this.model.lttamep.spcrcbamep.spcrcb; this.model.ltdgrp.blk.spcrcbame = this.model.ltdgrp.blk.spcrcbame+"\n" +"*** Amendment "+this.model.lttamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n" +"/ADD/"+"\n" +this.model.lttamep.spcrcbamep.spcrcb+"\n"; //设置spcrcb被修改过 this.setSpcrcbModified(); if (this.model.bnkAddDelRep === "") { this.model.bnkAddDelRep = "/ADD/\n" + this.model.lttamep.spcrcbamep.spcrcb; } else { this.model.bnkAddDelRep = this.model.bnkAddDelRep + "\n/ADD/\n" + this.model.lttamep.spcrcbamep.spcrcb; } this.model.lttamep.spcrcbamep.spcrcb = ""; } }, onDeleteClick() { if (this.model.ltdgrp.blk.spcrcb != null && this.model.ltdgrp.blk.spcrcb != "") { let spcrcb = this.model.ltdgrp.blk.spcrcb; let realMatchText = this.specialCharactersProcess(this.model.lttamep.spcrcbamep.spcrcb); // 使用正则表达式,匹配usrblk文本框中的内容 // 正则表达式,开启匹配多行 flag: 'g',开启多行模式 flag:'m' let usrblkRegExp = new RegExp("^"+realMatchText+"$","gm"); let matchArray = spcrcb.match(usrblkRegExp); // 未找到匹配字符串 if(matchArray == null || matchArray.length<=0){ this.$alert('Text to delete not found in original text and thus cannot be deleted', "提示", { confirmButtonText: "OK", }); return; } // 匹配到多个 字符串 if(matchArray!=null&&matchArray.length>1){ this.$alert('Text to delete found more than once in original text and thus cannot be deleted. \n'+ 'Please extend portion to delete or use modify to replace.', "提示", { confirmButtonText: "OK", }); return; } // 匹配到正好1个字符串 if(matchArray!=null&&matchArray.length==1){ this.model.ltdgrp.blk.spcrcb = this.model.ltdgrp.blk.spcrcb.replace("\n" + realMatchText, ""); this.model.ltdgrp.blk.spcrcb = this.model.ltdgrp.blk.spcrcb.replace(realMatchText + "\n", ""); this.model.ltdgrp.blk.spcrcb = this.model.ltdgrp.blk.spcrcb.replace(realMatchText, ""); this.model.ltdgrp.blk.spcrcbame = this.model.ltdgrp.blk.spcrcbame+"\n" +"*** Amendment "+this.model.lttamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n" +"/DEL/"+"\n" +this.model.lttamep.spcrcbamep.spcrcb+"\n"; //设置spcrcb被修改过 this.setSpcrcbModified(); if (this.model.bnkAddDelRep === "") { this.model.bnkAddDelRep = "/DELETE/\n" + this.model.lttamep.spcrcbamep.spcrcb; } else { this.model.bnkAddDelRep = this.model.bnkAddDelRep + "\n/DELETE/\n" + this.model.lttamep.spcrcbamep.spcrcb; } this.model.lttamep.spcrcbamep.spcrcb = ""; return; } } }, onModflgChange() { if (this.model.lttamep.spcrcbamep.modflg == "X") { // 如果blk.spcrcb的值被修改过,则给出提示 if(this.isSpcrcbModified()){ this.$confirm('Do you really want to change to modification of the complete text?\n' + 'The information about single added and deleted lines will be lost.', '提示', { confirmButtonText: 'OK', cancelButtonText: 'Cancel', type: 'warning', showClose: false }).then(() => {//yes的执行在这里写 this.model.lttamep.spcrcbamep.modflg ="X" this.isSpcrcbDisabled = false; this.isUsrblkDisabled = true; this.model.lttamep.spcrcbamep.spcrcb = ""; this.model.ltdgrp.blk.spcrcb = this.model.oldltdgrp.blk.spcrcb; // 值恢复,删除spcrcb的modify记录 this.resetSpcrcbNotModified(); // 清空add/delete内容 this.model.bnkAddDelRep = ""; }).catch(() => {//No的功能在这里写 this.model.lttamep.spcrcbamep.modflg = "" this.isSpcrcbDisabled = true; this.isUsrblkDisabled = false; }); }else{ this.isSpcrcbDisabled = false; this.isUsrblkDisabled = true; } } else { // 如果blk.spcrcb的值被修改过,则给出reset提示 if(this.isSpcrcbModified()){ this.$confirm('Do you really want to reset your manual modifications?', '提示', { confirmButtonText: 'OK', cancelButtonText: 'Cancel', type: 'warning', showClose: false }).then(() => {//yes的执行在这里写,执行reset,将blk.spcrcb恢复到原值 this.model.lttamep.spcrcbamep.modflg = "" this.isSpcrcbDisabled = true; this.isUsrblkDisabled = false; this.model.lttamep.spcrcbamep.spcrcb = ""; this.model.ltdgrp.blk.spcrcb = this.model.oldltdgrp.blk.spcrcb; // 值恢复,删除spcrcb的modify记录 this.resetSpcrcbNotModified(); }).catch(() => {//No的功能在这里写,不执行rest,将modflg的继续选中 this.model.lttamep.spcrcbamep.modflg = "X" }); }else{ this.isSpcrcbDisabled = true; this.isUsrblkDisabled = false; } } }, onModmanflgChange() { if (this.model.lttamep.spcrcbamep.modmanflg == "X") { this.isSpcrcbDisabled = false; this.isUsrblkDisabled = true; this.model.lttamep.spcrcbamep.spcrcb = ""; this.tempLcrbnk = this.model.ltdgrp.blk.spcrcb; } else { if (this.tempLcrbnk !== this.model.ltdgrp.blk.spcrcb) { // 如果有修改过,则需提示 this.$confirm("Do you really want to reset your manual modifications?", "提示", { confirmButtonText: "OK", cancelButtonText: "Cancel", type: "warning", showClose: false, }) .then(() => { // 确认取消勾选 this.isSpcrcbDisabled = true; this.isUsrblkDisabled = false; // 将blk的值还原成手动修改前的值 this.model.ltdgrp.blk.spcrcb = this.tempLcrbnk; }) .catch(() => { // 不取消勾选 this.model.lttamep.spcrcbamep.modmanflg = "X"; }); } else { // 没做过手动修改 this.isSpcrcbDisabled = true; this.isUsrblkDisabled = false; } } }, setSpcrcbModified() { this.customAddModify(this.model.ltdgrp.blk, "spcrcb"); }, resetSpcrcbNotModified() { this.customRemoveModify(this.model.ltdgrp.blk, "spcrcb"); }, isSpcrcbModified(){ if(!this.model.ltdgrp.blk.modifySet){ return false; }else{ if (this.model.ltdgrp.blk.modifySet.includes("spcrcb")) { return true; } } return false; }, handleSpcrcbChanged(){ // 设置修改标记 this.setSpcrcbModified(); let changedText = "*** Amendment "+this.model.lttamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n"; if(this.model.lttamep.spcrcbamep.modflg==='X'){ changedText = changedText+"/REPALL/"+"\n"; }else{ changedText = changedText+"Special Payment Conditions for Bank only changed as follows:" } changedText = changedText+this.model.ltdgrp.blk.spcrcb+"\n"; this.model.ltdgrp.blk.spcrcbame = this.model.ltdgrp.blk.spcrcbame+"\n"+changedText; }, }, }; </script> <style> .marginLable { padding-left: 160px; } </style>