Dogpame.vue 11.6 KB
<template>
  <div class="eibs-tab">
    <!-- 左边 -->
    <c-col :span="12" style="padding-right: 20px">
      <c-col :span="24">
        <el-form-item label="Description of Goods and/or Services(45B)" prop="ledgrp.blk.lcrgod">
          <c-fullbox>
            <c-input
                    type="textarea"
                    maxlength="52000"
                    v-model="model.ledgrp.blk.lcrgod"
                    :rows="20"
                    show-word-limit
                    placeholder="请输入货物描述"
                    @change="handleLcrgodChanged"
                    :disabled="isLcrgodDisabled"></c-input>
          </c-fullbox>
        </el-form-item>
      </c-col>
      <c-col :span="24">
        <c-ptap-commons  :cols="65" :rows="800" :minRows="12" :maxRows="12" :model="model"
                         :disabledButton="isUsrblkDisabled"
                         :isRules='false'
                         :extCodes="['letamep','lcrgodamep']"
                         lastModel="lcrgod"
                         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="oldledgrp.blk.lcrgodame">
          <c-fullbox>
            <c-input
                    disabled
                    type="textarea"
                    maxlength="52000"
                    v-model="model.oldledgrp.blk.lcrgodame"
                    :rows="20"
                    show-word-limit
                    placeholder="历史修改信息"></c-input>
          </c-fullbox>
        </el-form-item>
      </c-col>
      <c-col :span="24">
        <c-col :span="24" class="">
          <el-form-item label=" " prop="letamep.lcrgodamep.modflg" label-width="180px" style="float: left">
            <c-checkbox
                    v-model="model.letamep.lcrgodamep.modflg"
                    class="checkbox-left"
                    true-label="X"
                    false-label=""
                    :disabled="this.model.letamep.lcrgodamep.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="letamep.lcrgodamep.modmanflg" label-width="180px" style="float: left">
            <c-checkbox
                    v-model="model.letamep.lcrgodamep.modmanflg"
                    class="checkbox-left"
                    true-label="X"
                    false-label=""
                    :disabled="this.model.letamep.lcrgodamep.modflg == 'X'"
                    @change="onModmanflgChange"
            >Modify Text Internally</c-checkbox
            >
          </el-form-item>
        </c-col>
      </c-col>
      <c-col :span="24">
        <el-form-item label-width="160px" style="float: left">
          <text-diff
                  :leftText="model.oldledgrp.blk.lcrgod"
                  :rightText="model.ledgrp.blk.lcrgod"
                  :isShowScale="false"
                  :disabled="model.ledgrp.blk.lcrgod === model.oldledgrp.blk.lcrgod" />
        </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.letamep.lcrgodamep.lcrgod == null || this.model.letamep.lcrgodamep.lcrgod == ''">
            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.letamep.lcrgodamep.lcrgod == null || this.model.letamep.lcrgodamep.lcrgod == ''">
            Delete
          </c-button>
        </el-form-item>
      </c-col>
    </c-col>
  </div>
</template>
<script>
  import event from "../event";
  import moment from 'moment';
  import TextDiff from "~/components/business/TextDiff";
  import commonDepend from "~/mixin/commonDepend";
  export default {
    components: { TextDiff },
    inject: ["root"],
    props: ["model", "codes"],
    mixins: [event,commonDepend],
    data() {
      return {
        isLcrgodDisabled: true,
        isUsrblkDisabled: false,
      };
    },
    methods: {
      onAddClick() {
        if (this.model.letamep.lcrgodamep.lcrgod != null && this.model.letamep.lcrgodamep.lcrgod != "") {
          this.model.ledgrp.blk.lcrgod = this.model.ledgrp.blk.lcrgod + "\n" + this.model.letamep.lcrgodamep.lcrgod;

          this.model.ledgrp.blk.lcrgodame = this.model.ledgrp.blk.lcrgodame+"\n"
                  +"*** Amendment "+this.model.letamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n"
                  +"/ADD/"+"\n"
                  +this.model.letamep.lcrgodamep.lcrgod+"\n";

          //设置lcrgod被修改过
          this.setLcrgodModified();
          this.setGodAddRep();
          
          this.model.letamep.lcrgodamep.lcrgod = "";



        }
      },
      onDeleteClick() {
        if (this.model.ledgrp.blk.lcrgod != null && this.model.ledgrp.blk.lcrgod != "") {
          let lcrgod = this.model.ledgrp.blk.lcrgod;
          let realMatchText = this.specialCharactersProcess(this.model.letamep.lcrgodamep.lcrgod);
          // 使用正则表达式,匹配usrblk文本框中的内容
          // 正则表达式,开启匹配多行 flag: 'g',开启多行模式 flag:'m'
          let usrblkRegExp = new RegExp("^"+realMatchText+"$","gm");
          let matchArray = lcrgod.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.ledgrp.blk.lcrgod = this.model.ledgrp.blk.lcrgod.replace(usrblkRegExp,"");

            this.model.ledgrp.blk.lcrgodame = this.model.ledgrp.blk.lcrgodame+"\n"
                    +"*** Amendment "+this.model.letamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n"
                    +"/DEL/"+"\n"
                    +this.model.letamep.lcrgodamep.lcrgod+"\n";

            //设置lcrgod被修改过
            this.setLcrgodModified();
            
            this.setGodDelRep();

            this.model.letamep.lcrgodamep.lcrgod = "";
            return;
          }
        }
      },
      onModflgChange() {
        if (this.model.letamep.lcrgodamep.modflg == "X") {
          
          // 如果blk.lcrgod的值被修改过,则给出提示
          if(this.isLcrgodModified()){
            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.letamep.lcrgodamep.modflg ="X"

              this.isLcrgodDisabled = false;
              this.isUsrblkDisabled = true;
              this.model.letamep.lcrgodamep.lcrgod = "";
              this.model.ledgrp.blk.lcrgod = this.model.oldledgrp.blk.lcrgod;
              // 值恢复,删除lcrgod的modify记录
              this.resetLcrgodNotModified();



            }).catch(() => {//No的功能在这里写
              this.model.letamep.lcrgodamep.modflg = ""

              this.isLcrgodDisabled = true;
              this.isUsrblkDisabled = false;
            });
          }else{
            this.isLcrgodDisabled = false;
            this.isUsrblkDisabled = true;
            this.model.letamep.lcrgodamep.lcrgod = "";
          }
        } else {

          // 如果blk.lcrgod的值被修改过,则给出reset提示
          if(this.isLcrgodModified()){
            this.$confirm('Do you really want to reset your manual modifications?', '提示', {
              confirmButtonText: 'OK',
              cancelButtonText: 'Cancel',
              type: 'warning',
              showClose: false
            }).then(() => {//yes的执行在这里写,执行reset,将blk.lcrgod恢复到原值
              this.model.letamep.lcrgodamep.modflg = ""

              this.isLcrgodDisabled = true;
              this.isUsrblkDisabled = false;
              this.model.letamep.lcrgodamep.lcrgod = "";
              this.model.ledgrp.blk.lcrgod = this.model.oldledgrp.blk.lcrgod;
              // 值恢复,删除lcrgod的modify记录
              this.resetLcrgodNotModified();

            }).catch(() => {//No的功能在这里写,不执行rest,将modflg的继续选中
              this.model.letamep.lcrgodamep.modflg = "X"

            });

          }else{
            this.isLcrgodDisabled = true;
            this.isUsrblkDisabled = false;
          }
        }
      },
      onModmanflgChange() {
        if (this.model.letamep.lcrgodamep.modmanflg == "X") {
          this.isLcrgodDisabled = false;
          this.isUsrblkDisabled = true;
          this.model.letamep.lcrgodamep.lcrgod = "";
        } else {
          this.isLcrgodDisabled = true;
          this.isUsrblkDisabled = false;
        }
      },

      setLcrgodModified(){
        this.customAddModify(this.model.ledgrp.blk,"lcrgod");
      },

      resetLcrgodNotModified(){

        // 清空add/delete内容
        this.model.godAddDelRep = "";

        this.customRemoveModify(this.model.ledgrp.blk,"lcrgod");
      },

      isLcrgodModified(){
        if(!this.model.ledgrp.blk.modifySet){
          return false;
        }else{
          if (this.model.ledgrp.blk.modifySet.includes("lcrgod")) {
            return true;
          }
        }
        return false;
      },
      
      
      setGodAddRep(){
        if (this.model.godAddDelRep === "") {
          this.model.godAddDelRep = "/ADD/\n" + this.model.letamep.lcrgodamep.lcrgod;
        } else {
          this.model.godAddDelRep = this.model.godAddDelRep + "\n/ADD/\n" + this.model.letamep.lcrgodamep.lcrgod;
        }
      },

      setGodDelRep(){
        if (this.model.godAddDelRep === "") {
          this.model.godAddDelRep = "/DELETE/\n" + this.model.letamep.lcrgodamep.lcrgod;
        } else {
          this.model.godAddDelRep = this.model.godAddDelRep + "\n/DELETE/\n" + this.model.letamep.lcrgodamep.lcrgod;
        }
      },

      handleLcrgodChanged(){
        // 设置修改标记
        this.setLcrgodModified();


        let changedText = "*** Amendment "+this.model.letamep.amenbr+ " Date:"+ moment(new Date()).format("MM/DD/YY")+":"+"\n";

        if(this.model.letamep.lcrgodamep.modflg==='X'){
          changedText = changedText+"/REPALL/"+"\n";
        }else{
          changedText = changedText+"Description of Goods changed as follows:"
        }

        changedText = changedText+this.model.ledgrp.blk.lcrgod+"\n";

        this.model.ledgrp.blk.lcrgodame = this.model.ledgrp.blk.lcrgodame+"\n"+changedText;


      },


    },
  };
</script>
<style></style>