Source/UBCS-WEB/src/views/code/code.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container class="code-total" style="height: 100%">
  <basic-container class="code-total" style=" height: 100%">
    <!-- 编码规则信息展示区域 -->
    <basic-container class="code-rule-container">
      <p
@@ -36,8 +36,7 @@
      >
        <!-- 表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button
            v-show="scope.row.lcStatus == 'Editing' ? true : false"
          <el-button v-if="permissionList.editBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
            icon="el-icon-edit"
            plain
            size="small"
@@ -45,9 +44,8 @@
            @click="openEdit(scope.row)"
            >编 辑
          </el-button>
          <el-button
            v-show="scope.row.lcStatus == 'Editing' ? true : false"
            :disabled="releadDisabled"
          <el-button v-if="permissionList.releaseBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
            :loading="releadDisabled"
            icon="el-icon-position"
            plain
            size="small"
@@ -55,8 +53,7 @@
            @click="enableOrDeactivatse(scope.row.oid, 'release')"
            >发 布
          </el-button>
          <el-button
            v-show="scope.row.lcStatus == 'Released' ? true : false"
          <el-button v-if="permissionList.deactivateBtn && (scope.row.lcStatus == 'Released' ? true : false)"
            icon="el-icon-video-pause"
            plain
            size="small"
@@ -64,8 +61,7 @@
            @click="enableOrDeactivatse(scope.row.oid, 'disable')"
            >停 用
          </el-button>
          <el-button
            v-show="scope.row.lcStatus == 'Disabled' ? true : false"
          <el-button v-if="permissionList.enableBtn && (scope.row.lcStatus == 'Disabled' ? true : false)"
            icon="el-icon-video-play"
            plain
            size="small"
@@ -76,7 +72,7 @@
        </template>
        <!-- 表格上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button
          <el-button v-if="permissionList.rulDelBtn"
            icon="el-icon-delete"
            plain
            size="small"
@@ -85,16 +81,15 @@
          >
            删 除
          </el-button>
          <el-button
          <el-button v-if="permissionList.advancedQueryBtn"
            icon="el-icon-search"
            plain
            size="small"
            type="primary"
            @click="openAdvancedQuery('codeRule')"
          >
            @click="openAdvancedQuery('codeRule')">
            高级查询
          </el-button>
          <el-button
          <el-button v-if="permissionList.cloneBtn"
            icon="icon-kelong"
            plain
            size="small"
@@ -102,7 +97,7 @@
          >
            克 隆
          </el-button>
          <el-button
          <el-button v-if="permissionList.otherCloneBtn"
            icon="icon-lianjiekelong"
            plain
            size="small"
@@ -111,7 +106,7 @@
          >
            从其他规则中克隆码段
          </el-button>
          <el-button
          <el-button v-if="permissionList.usescopeBtn"
            icon="el-icon-s-help"
            plain
            size="small"
@@ -119,7 +114,7 @@
          >
            使用范围
          </el-button>
          <el-button
          <el-button v-if="permissionList.clearBtn"
            icon="icon-qingkong"
            plain
            size="small"
@@ -127,7 +122,7 @@
          >
            清空码值
          </el-button>
          <el-button
          <el-button  v-if="permissionList.escapeOwnerBtn"
            icon="el-icon-guide"
            plain
            size="small"
@@ -135,7 +130,7 @@
          >
            转移所有者
          </el-button>
          <el-button
          <el-button  v-if="permissionList.maxSerialnumBtn"
            icon="el-icon-data-analysis"
            plain
            size="small"
@@ -156,7 +151,7 @@
    >
    </advanced-query>
    <!-- 编码规则相关对话框 -->
    <!-- 以下是编码规则相关对话框 -->
    <el-dialog
      :visible.sync="codeRangeSettingBox"
      append-to-body
@@ -177,148 +172,18 @@
    </el-dialog>
    <!-- 编码规则,克隆对话框 -->
    <el-dialog
    <clone-rule-dialog
      :visible.sync="cloneSettingBox"
      append-to-body
      class="avue-dialog avue-dialog--top"
      style="height: 100vh"
      title="克隆编码规则"
      top="-3%"
      width="800px"
    >
      <div>
        <el-row>
          <el-form ref="form" :inline="true" :model="form" label-width="80px">
            <el-form-item label="编号" required>
              <el-input v-model="cloneCodeRuleForm.id"></el-input>
            </el-form-item>
            <el-form-item label="名称" required>
              <el-input v-model="cloneCodeRuleForm.name"></el-input>
            </el-form-item>
            <el-form-item class="clone-input-textarea" label="描述">
              <el-input
                v-model="cloneCodeRuleForm.description"
                :autosize="{ minRows: 3, maxRows: 5 }"
                type="textarea"
              ></el-input>
            </el-form-item>
          </el-form>
        </el-row>
        <el-row>
          <p
            style="
              margin: 0 0px 16px 50%;
              font-weight: 500;
              font-size: 20px;
              color: #000;
            "
          >
            码段管理
          </p>
          <avue-crud
            :data="cloneData"
            :option="cloneOption"
            :table-loading="cloneTableLoading"
            class="clone-avue-crud"
            @on-load="cloneDataOnLoad"
          >
            <template slot="menu" slot-scope="scope">
              <el-button
                v-show="scope.row.orderNum > 1"
                icon="el-icon-arrow-up"
                plain
                size="small"
                type="text"
                @click="upOrderNum(scope.row)"
                >上移
              </el-button>
              <el-button
                icon="el-icon-arrow-down"
                plain
                size="small"
                type="text"
                @click="downOrderNum(scope.row)"
                >下移
              </el-button>
            </template>
          </avue-crud>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="saveCloneCodeRule">保 存</el-button>
        <el-button @click="cloneSettingBox = false">取 消</el-button>
      </div>
    </el-dialog>
      :ruleData="selectionList[0]"
      @refreshRuleTable="onLoad">
    </clone-rule-dialog>
    <!-- 编码规则,从其他规则克隆对话框 -->
    <el-dialog
    <clone-other-basic-sec-dialog
      :visible.sync="cloneOtherCodeRuleSettingBox"
      append-to-body
      class="avue-dialog avue-dialog--top"
      destroy-on-close
      style="height: 100vh"
      title="克隆编码规则的基础信息"
      top="-3%"
      width="800px"
    >
      <div>
        <el-row>
          <p
            style="
              margin-top: -20px;
              margin-bottom: 4px;
              font-weight: 570;
              font-size: 19px;
              color: #0e2d5f;
            "
          >
            编码规则
          </p>
          <avue-crud
            ref="crudCloneCodeRuleOther"
            :data="data"
            :option="cloneCodeRuleOption"
            :page.sync="page"
            :table-loading="loading"
            class="other-clone-coderule-crud"
            @row-click="codeOtherCloneRuleRowClick"
            @size-change="sizeChange"
            @selection-change="selectionOtherCloneCodeRuleChange"
            @on-load="onLoad"
          >
          </avue-crud>
        </el-row>
        <el-row style="margin-top: 10px; border-top: 1px solid #ebeef5">
          <p
            style="
              margin-top: 10px;
              margin-bottom: 4px;
              font-weight: 570;
              font-size: 19px;
              color: #0e2d5f;
            "
          >
            码段信息
          </p>
          <avue-crud
            ref="crudCloneCodeBasicOther"
            :data="basicData"
            :option="cloneBasicOption"
            :table-loading="loadingBasic"
            class="other-clone-codebasic-crud"
            @row-click="codeOtherCloneBasicRowClick"
            @selection-change="selectionOtherCloneCodeBasicChange"
          >
          </avue-crud>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px">
        <el-button type="primary" @click="saveOtherCodeBasic">保 存</el-button>
        <el-button @click="cloneOtherCodeRuleSettingBox = false"
          >取 消</el-button
        >
      </div>
    </el-dialog>
      :quiltCloneCodeRule="selectionList[0]"
      @refreshRuleTable="onLoad">
    </clone-other-basic-sec-dialog>
    <!-- 编码规则,转移所有者对话框 -->
    <el-dialog
@@ -326,6 +191,7 @@
      append-to-body
      title="转移所有者"
      width="30%"
      class= "avue-dialog avue-dialog--top"
    >
      <el-select v-model="ruleOwner" class="selects" placeholder="请选择">
        <el-option
@@ -352,21 +218,18 @@
    <!-- 基础码段展示区域 -->
    <basic-container class="code-basicsec-container">
      <p
        style="
          margin-top: -5px;
        style="margin-top: -5px;
          margin-bottom: 4px;
          font-weight: 570;
          font-size: 19px;
          color: #0e2d5f;
        "
      >
          color: #0e2d5f;">
        码段管理
      </p>
      <avue-crud
        ref="crudBasic"
        :data="basicData"
        :option="optionBasic"
        :permission="permissionList"
        :permission="basicPermissionList"
        :table-loading="loadingBasic"
        class="code-basic-crud"
        @row-click="codeBasicSecRowClick"
@@ -377,8 +240,7 @@
      >
        <!-- 基础码段表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button
            v-show="currentRuleLcStatus != 'Editing'"
          <el-button v-if="basicPermissionList.viewBtn && currentRuleLcStatus != 'Editing'"
            icon="el-icon-view"
            plain
            size="small"
@@ -386,8 +248,7 @@
            @click="openBasicDialog('view', scope.row)"
            >查看
          </el-button>
          <el-button
            v-show="currentRuleLcStatus === 'Editing'"
          <el-button v-if="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
            icon="el-icon-edit"
            plain
            size="small"
@@ -395,11 +256,7 @@
            @click="openBasicDialog('edit', scope.row)"
            >编辑
          </el-button>
          <el-button
            v-show="
              scope.row.secType === 'codeclassifysec' ||
              scope.row.secType == 'codefixedsec'
            "
          <el-button v-if="basicPermissionList.basicMgrBtn && (scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec')"
            icon="el-icon-setting"
            plain
            size="small"
@@ -407,8 +264,7 @@
            @click="openBasicSecCodeValueMgr(scope.row)"
            >码值管理
          </el-button>
          <el-button
            v-show="scope.row.orderNum > 1"
          <el-button v-if="basicPermissionList.basicMoveupBtn && scope.row.orderNum > 1"
            icon="el-icon-arrow-up"
            plain
            size="small"
@@ -416,7 +272,7 @@
            @click="upOrderNum(scope.row)"
            >上移
          </el-button>
          <el-button
          <el-button v-if="basicPermissionList.basicDownBtn"
            icon="el-icon-arrow-down"
            plain
            size="small"
@@ -428,7 +284,7 @@
        <!-- 基础码段表格左上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button
          <el-button v-if="basicPermissionList.addBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-plus"
            size="small"
@@ -437,7 +293,7 @@
          >
            新 增
          </el-button>
          <el-button
          <el-button v-if="basicPermissionList.basicDelBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-delete"
            plain
@@ -447,7 +303,7 @@
          >
            删 除
          </el-button>
          <el-button
          <el-button  v-if="basicPermissionList.basicAdvancedQueryBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-search"
            plain
@@ -468,7 +324,7 @@
      append-to-body
      class="avue-dialog avue-dialog--top"
      destroy-on-close
      style="height: 100vh"
      style="height: 110vh"
      title="码段码值管理"
      top="-3%"
      @close="clearFixedOrClassifyForm('close')"
@@ -476,17 +332,17 @@
      <!-- 分类码段码值管理 -->
      <el-row v-show="!isShowFixedForm">
        <el-col :span="11">
          <basic-container>
          <basic-container style="overflow:hidden">
            <div
              class="box classify_value_box"
              style="height: 60vh; margin-bottom: -40px"
            >
              <basic-container>
                <div class="abox" style="height: 54vh">
                <div class="abox">
                  <avue-tree
                    :data="classifyValueTreeData"
                    :option="classisyValueTreeOption"
                    style=""
                    style="height: calc(60vh - 100px);"
                    @node-click="classisyValueTreeOnodeClick"
                  />
                </div>
@@ -1274,9 +1130,8 @@
        <el-button
          :disabled="!showbtn"
          type="primary"
          @click="saveOrEditBasicCode"
          >保 存</el-button
        >
          :loading="isLoadingSecCodeAddBtn"
          @click="saveOrEditBasicCode">保 存</el-button>
        <el-button @click="addBasicCodeSettingBox = false">取 消</el-button>
      </div>
@@ -1331,9 +1186,7 @@
          </el-row>
        </div>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="selectedListClassifyLinkAttr"
            >确 定</el-button
          >
          <el-button type="primary" @click="selectedListClassifyLinkAttr">确 定</el-button>
          <el-button @click="isShowSelectAttrOption = false">取 消</el-button>
        </div>
      </el-dialog>
@@ -1412,7 +1265,6 @@
  remove,
  listUseRange,
  updateStatus,
  clone,
  clearAllCode,
  checkLikeCodeRule,
} from "@/api/code/mdmrule";
@@ -1422,7 +1274,6 @@
  upOrderNum,
  deleteData,
  editSave,
  cloneCodeBasic,
  addSave,
  refDataGridClassifySec,
} from "@/api/code/codebasic";
@@ -1443,9 +1294,6 @@
} from "@/api/code/codeClassifyValue";
import { getDictionary } from "@/api/omd/enum";
import optionBasic from "@/const/code/codebasic";
import cloneOption from "@/const/code/cloneOption";
import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
import optionRule from "@/const/code/mdmrule";
import attrOption from "@/const/code/selectAttrOptionDialog";
import treeOption from "@/const/code/classifyTreeOptionDialog";
@@ -1455,11 +1303,12 @@
import { mapGetters } from "vuex";
import { getByRoleUserList } from "@/api/system/user";
import func from "@/util/func";
import logeVue from '../docking/loge.vue';
import secTypeEnum from '@/enumpack/CodeSecTypeEnum';
export default {
  data() {
    return {
      crudOption:{...optionRule},
      ruleForm: {},
      query: {},
      loading: true,
@@ -1474,21 +1323,13 @@
      optionRule: optionRule,
      data: [],
      currentRuleLcStatus: "",
      /*克隆对话框控制变量*/
      /*克隆编码规则对话框控制变量*/
      cloneSettingBox: false,
      cloneTableLoading: false,
      cloneOption: cloneOption,
      cloneData: [],
      cloneCodeRuleForm: {
        id: "",
        name: "",
        description: "",
      },
      /*从其他规则克隆码段*/
      cloneOtherCodeRuleSettingBox: false,
      cloneBasicOption: cloneBasicOption,
      cloneCodeRuleOption: cloneCodeRuleOption,
      selectionOtherCloneCodeBasicList: [], // 当前选中的基础码段
      /** 转移所有者对话框 */
      escapeOwnerVisible: false,
      ruleAdminUserList: [], //规则管理员列表
@@ -1543,7 +1384,8 @@
      loadingBasic: false,
      selectionBasicList: [],
      addBasicCodeSettingBox: false,
      showbtn: false, //基础码段新增是否显示基础码段
      showbtn: false, //基础码段新增按钮是否禁用
      isLoadingSecCodeAddBtn: false,
      basicSecDialogTitle: "", //基础码段第一层对话框标题
      basicSecOnlyRead: false, //新增基础码段表单是否只读
@@ -1729,11 +1571,35 @@
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.codeRule_add, true),
        viewBtn: this.vaildData(this.permission.codeRule_view, false),
        delBtn: this.vaildData(this.permission.plCodeRule_delete, false),
        editBtn: this.vaildData(this.permission.codeRule_edit, true),
        // 编码规则相关按钮
        addBtn: this.vaildData(this.permission.code_rule.code_rule_add, false),
        //viewBtn: this.vaildData(this.permission.code_rule.code_rule_view, false),
        rulDelBtn: this.vaildData(this.permission.code_rule.code_rule_delete, false),
        editBtn: this.vaildData(this.permission.code_rule.code_rule_edit, false),
        deactivateBtn: this.vaildData(this.permission.code_rule.code_rule_deactivate, false),
        enableBtn: this.vaildData(this.permission.code_rule.code_rule_enable, false),
        releaseBtn: this.vaildData(this.permission.code_rule.   code_rule_release, false),
        advancedQueryBtn: this.vaildData(this.permission.code_rule.code_rule_advanced_query, false),
        cloneBtn: this.vaildData(this.permission.code_rule.code_rule_clone, false),
        otherCloneBtn: this.vaildData(this.permission.code_rule.code_rule_other_clone, false),
        usescopeBtn: this.vaildData(this.permission.code_rule.code_rule_usescope, false),
        clearBtn: this.vaildData(this.permission.code_rule.code_rule_clear, false),
        escapeOwnerBtn: this.vaildData(this.permission.code_rule.code_rule_escape_owner, false),
        maxSerialnumBtn: this.vaildData(this.permission.code_rule.code_rule_max_serialnum, false),
      };
    },
    basicPermissionList() {
      return{
        // 基础码段相关按钮
        addBtn: this.vaildData(this.permission.code_rule.code_basic_add, false),
        editBtn: this.vaildData(this.permission.code_rule.code_basic_edit, false),
        viewBtn: this.vaildData(this.permission.code_rule.   code_basic_view, false),
        basicDelBtn: this.vaildData(this.permission.code_rule.code_basic_delete, false),
        basicAdvancedQueryBtn: this.vaildData(this.permission.code_rule.code_basic_advanced_query, false),
        basicMgrBtn: this.vaildData(this.permission.code_rule.code_basic_mgr, false),
        basicMoveupBtn: this.vaildData(this.permission.code_rule.code_basic_moveup, false),
        basicDownBtn: this.vaildData(this.permission.code_rule.code_basic_down, false),
      }
    },
  },
  watch: {},
@@ -1748,6 +1614,7 @@
    });
  },
  methods: {
    /** 转移规则所有者对话框 */
    escapeOwner() {
      if (this.selectionList.length === 0) {
@@ -1788,11 +1655,11 @@
      if (JSON.stringify(conditionMaps) != "{}") {
        if (this.advancedQueryParam.currentOpen == "codeRule") {
          this.query = conditionMaps;
          // console.log(this.query);
          this.onLoad(this.page);
        } else {
          this.sendGridCodeBasicSec(conditionMaps, true);
        }
        //console.log(conditionMaps);
      }
    },
    /* 公式编辑框内容改变,子组件编辑完公式之后内容回显时调用 */
@@ -1801,12 +1668,12 @@
    },
    /* 引用码段参照配置,子组件填完参照配置之后内容回显时调用 */
    setReferConfigValue(content) {
      // console.log(content.referTypeName);
      this.form.referBtmId = content.referType || "";
      this.form.referBtmName = content.referTypeName || content.referType;
      //转换成JSON字符串进行父组件回显
      let submitFormJson = JSON.stringify(content);
      this.form.referConfig = submitFormJson || "";
      debugger;
    },
    /** 引用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */
    echoReferBtmType(content) {
@@ -1818,7 +1685,6 @@
    /** 父分类选择对话框,第二层嵌套对话框,及其相关方法 */
    /** 保存当前父分类码段的选中行,并进行回显 */
    saveSelectedParentClassify() {
      //console.log(this.parentClsfyParams.parentClassifySelectionList.length);
      if (this.parentClsfyParams.parentClassifySelectionList.length != 1) {
        this.$message.warning("请选择一条数据!");
        return false;
@@ -1886,7 +1752,6 @@
        page.pageSize,
        conditionMaps
      ).then((res) => {
        //console.log(res.data);
        const data = res.data.data;
        parentClsParam.parentClassifyDataPage.total = data.total;
        parentClsParam.parentClassifyData = data.records;
@@ -1904,7 +1769,6 @@
    /** 加载分类连接属性表格数据 */
    loadlistClassifyLinkAttr() {
      let attrParam = this.selectAttrParams;
      //console.log(this.currentSelectTreeData);
      this.selectAttrParams.selectAttrOptionLoading = true;
      let conditionMaps = {};
      if (attrParam.selectAttrQeury) {
@@ -1922,7 +1786,6 @@
        this.$nextTick(() => {
          this.$refs[attrParam.ref].doLayout();
        });
        //console.log(data.data);
        this.selectAttrParams.selectAttrData = data.data;
        this.selectAttrParams.selectAttrOptionLoading = false;
        // 将搜索框内容置空
@@ -1992,13 +1855,11 @@
      this.fixedValueOptionLoading = true;
      gridCodeFixedValue(1, -1, { codeFixedSecOid: row.oid }).then((res) => {
        this.fixedValueData = res.data.data.records;
        //console.log(this.fixedValueData);
        this.fixedValueOptionLoading = false;
      });
    },
    /** 单击固定码段的码值表中行时触发的事件*/
    selectedCodeValueRow(row) {
      //console.log(row);
      this.selectedFixedOrCodeclassifyValue = row;
      this.codeFixdForm.id = row.id;
      this.codeFixdForm.description = row.description;
@@ -2010,14 +1871,15 @@
        if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) {
          return;
        }
        this.codeFixdForm.codeFixedSecOid =
          this.codefixedsecOrCodeclassifysec.oid;
        this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysec.oid;
        addSaveCodeFixedValue(this.codeFixdForm).then(
          () => {
            this.loadFixedValueTableData({
              oid: this.codefixedsecOrCodeclassifysec.oid,
            });
            this.clearFixedOrClassifyForm("codefixedsec");
            this.$refs.crudFixedValue.refreshTable();
            this.$refs.crudFixedValue.doLayout();
            this.$message({
              type: "success",
              message: "操作成功!",
@@ -2033,7 +1895,6 @@
        }
        this.codeClassifyForm.codeClassifySecOid =
          this.codefixedsecOrCodeclassifysec.oid;
        // console.log(this.codeClassifyForm);
        addSaveCodeClassifyValue(this.codeClassifyForm).then(
          () => {
            this.loadClassifyValueData({
@@ -2058,7 +1919,6 @@
    clearFixedOrClassifyForm(condition) {
      //点击取消时清空表单与当前选中的码值,并禁用按钮
      this.selectedFixedOrCodeclassifyValue = "";
      //console.log(condition);
      if (condition === "close") {
        this.codeFixdForm = this.$options.data().codeFixdForm;
        this.codeClassifyForm = this.$options.data().codeClassifyForm;
@@ -2452,6 +2312,12 @@
            queryField: "lcStatus",
            comboxKey: "codeSearchLCStatus",
          },
          {
            data: [],
            title: "所有者",
            fieldType: "text",
            queryField: "ownerText",
          },
        ];
      } else {
        this.advancedQueryParam.options = [
@@ -2514,6 +2380,7 @@
    updateStatus(oid, update) {
      updateStatus({ oid: oid, ts: new Date().getTime, update: update }).then(
        () => {
          this.releadDisabled = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
@@ -2528,8 +2395,8 @@
    /** 发布编码规则 */
    async enableOrDeactivatse(oid, update) {
      if (update === "release") {
        // 避免用户重复点击按钮
        this.releadDisabled = true;
        // 避免用户重复点击按钮
        await checkLikeCodeRule(oid)
          .then((res) => {
            //console.log(res)
@@ -2540,17 +2407,15 @@
                distinguishCancelAndClose: true,
                confirmButtonText: "继续发布",
                cancelButtonText: "取消",
              })
              .then(() => {
              }).then(() => {
                this.updateStatus(oid, update);
                this.releadDisabled = false;
              })
              .catch((action) => {
                this.releadDisabled = false;
              }).catch((action) => {
                this.$message({
                  type: "info",
                  message: "取消发布!",
                });
                this.releadDisabled = false;
              });
            }
          })
@@ -2561,53 +2426,15 @@
        this.updateStatus(oid, update);
      }
    },
    /** 打开编码规则克隆对话框*/
    openCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
        return;
      }
      this.cloneSettingBox = true;
      this.cloneCodeRuleForm.id = this.selectionList[0].id;
      this.cloneCodeRuleForm.name = this.selectionList[0].name;
      this.cloneCodeRuleForm.description = this.selectionList[0].description;
      this.loadBasic({ oid: this.selectionList[0].oid });
    },
    /** 克隆编码规则保存功能*/
    saveCloneCodeRule() {
      let form = this.cloneCodeRuleForm;
      if (form.id.trim() == "") {
        this.$message.warning("编号不能为空!");
        return;
      }
      if (form.name.trim() == "") {
        this.$message.warning("码值不能为空!");
        return;
      }
      this.selectionList[0].oid = "";
      this.selectionList[0].id = form.id;
      this.selectionList[0].name = form.name;
      this.selectionList[0].description = form.description;
      this.selectionList[0].createTime = new Date().getTime();
      this.selectionList[0].ts = new Date(this.selectionList[0].ts).getTime();
      this.selectionList[0].lcStatus = "Editing";
      let data = Object.assign({}, this.selectionList[0], {
        elements: this.cloneData,
      });
      clone(data).then(
        () => {
          this.cloneSettingBox = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        },
        (error) => {
          window.console.log(error);
        }
      );
      //console.log(data);
    },
    /** 打开从其他编码规则中克隆码段对话框*/
    openOtherCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
@@ -2619,79 +2446,7 @@
      }
      this.cloneOtherCodeRuleSettingBox = true;
    },
    //** 从其他编码规则中克隆码段对话框-单击编码规则实现行选择*/
    codeOtherCloneRuleRowClick(row) {
      this.$refs.crudCloneCodeRuleOther.toggleSelection();
      this.selectionOtherCloneCodeRuleList = row;
      this.$refs.crudCloneCodeRuleOther.setCurrentRow(row);
      this.$refs.crudCloneCodeRuleOther.toggleRowSelection(row); //选中当前行
      this.loadBasic(row);
    },
    /** 从其他编码规则中克隆码段对话框-单击基础码段实现行选择*/
    codeOtherCloneBasicRowClick(row) {
      this.$refs.crudCloneCodeBasicOther.toggleSelection();
      this.selectionOtherCloneCodeBasicList = row;
      this.$refs.crudCloneCodeBasicOther.setCurrentRow(row);
      this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //选中当前行
    },
    /** 从其他规则克隆码段界面中编码规则当前选中行变化的时候触发*/
    selectionOtherCloneCodeRuleChange(list) {
      //console.log(list);
      this.selectionOtherCloneCodeRuleList = list;
      this.$refs.crudBasic.setCurrentRow(
        this.selectionBasicList[list.length - 1]
      );
      if (list == "") {
        this.basicData = [];
      }
      if (this.selectionOtherCloneCodeRuleList.length > 0) {
        this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length - 1]);
      }
    },
    selectionOtherCloneCodeBasicChange(list) {
      this.selectionOtherCloneCodeBasicList = list;
      this.$refs.crudCloneCodeBasicOther.setCurrentRow(
        this.selectionOtherCloneCodeBasicList[list.length - 1]
      );
    },
    /** 从其他编码规则中克隆码段信息*/
    saveOtherCodeBasic() {
      let oid = this.selectionList[0].oid;
      let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
      if (fromDialogPkCodebasic.length <= 0) {
        this.$message.warning("请选择码段数据!");
        return;
      }
      let res = fromDialogPkCodebasic.filter((item) => {
        return item.pkCodeRule == oid;
      });
      if (res != "") {
        this.$message.warning("需要克隆的编码规则与被克隆的编码规则相同!");
        return;
      }
      let oidArr = [];
      fromDialogPkCodebasic.forEach((ele) => {
        oidArr.push(ele.oid);
      });
      let data = {
        pkCodeRule: oid,
        oidArr: oidArr.join(","),
      };
      //console.log(data);
      cloneCodeBasic(data).then(
        () => {
          this.cloneOtherCodeRuleSettingBox = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        },
        (error) => {
          window.console.log(error);
        }
      );
    },
    /** 清空码值*/
    clearAllCodeSec() {
      if (this.selectionList.length == 0) {
@@ -2722,7 +2477,6 @@
    },
    /** 添加*/
    rowSave(row, done, loading) {
      console.log(row);
      add(row).then(
        () => {
          this.onLoad(this.page);
@@ -2793,10 +2547,12 @@
      }
      done();
    },
    // 编码规则快速查询重置
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    // 编码规则快速查询searchChange
    searchChange(params, done) {
      this.page.currentPage = 1;
      // 多个conditionMap这样传参,快速查询默认采用模糊查询
@@ -2808,7 +2564,12 @@
        });
      }
      this.query = requestData;
      this.onLoad(this.page);
      this.onLoad(this.page, this.query);
      // console.log(  this.findObject(this.optionRule.column,'id'))
      // console.log(this.crudOption.column[0])
      // this.crudOption.column && this.crudOption.column.length > 0
      //   ? (this.crudOption.column[0].value = '')
      //   : null;
      done();
    },
    /** 编码规则当前选中行变化的时候触发*/
@@ -2846,7 +2607,11 @@
    },
    onLoad(page, params = {}) {
      this.loading = true;
      gridCodeRule(page.currentPage, page.pageSize, this.query).then((res) => {
      gridCodeRule(
        page.currentPage,
        page.pageSize,
        Object.assign({},params,this.query),
      ).then((res) => {
        //console.log(res.data);
        const data = res.data.data;
        this.page.total = data.total;
@@ -2871,6 +2636,7 @@
    /** 防止打开过编辑窗口之后表单中存在值,所以需要清空,并初始化form表单属性*/
    clearBasicAddForm() {
      this.form = this.$options.data().form;
      //this.isLoadingSecCodeAddBtn = false;
      // this.changeSectypeFormItems(null);
    },
    /** 打开新增窗口*/
@@ -2900,18 +2666,19 @@
        this.basicSecDialogTitle = "修改码段信息";
        this.showbtn = true;
        this.basicSecOnlyRead = false;
        //为form绑定值
      } else {
        this.basicSecDialogTitle = "查看码段信息";
        this.showbtn = false;
        this.basicSecOnlyRead = true;
      }
      //console.log(this.form);
      //为form绑定值
      this.changeSectypeFormItems(condition == "add" ? null : row);
      this.addBasicCodeSettingBox = true;
    },
    /** 新增基础码段*/
    async saveOrEditBasicCode() {
      this.isLoadingSecCodeAddBtn = true;
      if (
        this.selectionList[0].oid == null ||
        this.selectionList[0].oid == ""
@@ -2928,16 +2695,16 @@
                type: "success",
                message: "操作成功!",
              });
              // 关闭对话框
              this.addBasicCodeSettingBox = false;
              // 点击新增基础码段,关闭窗口之后触发重新加载
              this.loadBasic(this.selectionList[0]);
            },
            (error) => {
              window.console.log(error);
            }
          );
          // 关闭对话框
          this.addBasicCodeSettingBox = false;
        }
        // 点击新增基础码段,关闭窗口之后触发重新加载
        this.loadBasic(this.selectionList[0]);
      } else {
        // 可能参照引用的业务类型会发生改变所以这儿直接对referConfig的json进行改变
        if (
@@ -2951,21 +2718,39 @@
          // let referValueInfo = JSON.parse(this.form.referValueInfo);
          // referValueInfo.referType = this.form.referBtmId;
        }
        editSave(this.form).then(
        let oldBasicSec = this.selectionBasicList.at(-1);
        let secType = this.form.secType;
        Vue.set(this.form, 'isClearValue', false);
        if((oldBasicSec.secType == "codefixedsec" || oldBasicSec.secType === "codeclassifysec") && oldBasicSec.secType != secType){
          await this.$confirm("码段类型由【"+oldBasicSec.secTypeText+"】,修改为"+"【"+secTypeEnum.getTextByValue(secType)+"】,请问是否需要清空关联的码值?", "提示", {
            distinguishCancelAndClose: true,
            closeOnClickModal: false,
            confirmButtonText: "清空码值",
            cancelButtonText: "保留码值",
          }).then(() => {
            // 清空码值
            this.form.isClearValue = true;
          }).catch(action => {
            this.form.isClearValue = false;
          });
        }
        await editSave(this.form).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            this.loadBasic(this.selectionList[0]);
            // 关闭对话框
            this.addBasicCodeSettingBox = false;
          },
          (error) => {
            window.console.log(error);
          }
        );
        this.loadBasic(this.selectionList[0]);
        // 关闭对话框
        this.addBasicCodeSettingBox = false;
      }
      // 取消保存按钮加载效果
      this.isLoadingSecCodeAddBtn = false;
    },
    /** 因为elementui的表单校验设置不上所以采用判断的方式来做表单检验方式*/
    checkForm() {
@@ -3174,6 +2959,10 @@
      if (!this.tipsMessage(this.selectionBasicList)) {
        return;
      }
      if (this.selectionList.at(-1).lcStatus != "Editing") {
        this.$message.warning('编码规则状态不是"编辑中",不允许删除码段!');
        return;
      }
      let oid = this.selectionBasicList[0].oid;
      this.$confirm("是否删除这条数据?如果被引用将不能被删除!", {
        confirmButtonText: "确定",
@@ -3200,14 +2989,10 @@
    },
    /** 点击触发加载基础码段信息*/
    loadBasic(row) {
      if (this.cloneSettingBox) {
        this.cloneTableLoading = true;
      } else {
        this.loadingBasic = true;
      }
      this.loadingBasic = true;
      // console.log(row.oid);
      //存储当前关联的编码规则相关信息
      if (row != "" || row != null) {
        //存储当前关联的编码规则相关信息
        this.currentCodeRuleOid = row.oid;
        this.currentRuleLcStatus = row.lcStatus;
        this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false);
@@ -3237,14 +3022,8 @@
      gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then(
        (res) => {
          const data = res.data.data;
          if (this.cloneSettingBox) {
            this.cloneData = data.records;
            this.cloneTableLoading = false;
          } else {
            this.basicData = data.records;
            // console.log(this.basicData);
            this.loadingBasic = false;
          }
          this.basicData = data.records;
          this.loadingBasic = false;
        }
      );
    },
@@ -3402,42 +3181,25 @@
    },
    /** 码段类型改变时,增加对应的form表单中的属性*/
    changeSectypeFormItems(row) {
      //console.log(row);
      if (
        func.isEmpty(this.enumParam.secTypeList) ||
        this.enumParam.secTypeList.length == 0
      ) {
        this.loadCodeSecType();
      }
      if (row != null) {
        this.form = {
          oid: row.oid,
          id: row.id, //编号,
          name: row.name, //名称
          secType: row.secType, //码段类型
          description: row.description, //描述
          serialDependFlag: row.serialDependFlag == "true" ? true : false, //是否流水依赖
          serialDependOrder: row.serialDependOrder, //流水依赖顺序
          nullableFlag: row.nullableFlag == "true" ? true : false, //是否为空
          displayFlag: row.displayFlag == "true" ? true : false,
          componentCodeFlag: row.componentCodeFlag == "true" ? true : false, //是否参与编码
          pkCodeRule: row.pkCodeRule, //所属编码规则
        };
      } else {
        this.form = {
          id: this.form.id, //编号
          name: this.form.name, //名称
          secType: this.form.secType, //码段类型
          description: this.form.description, //描述
          serialDependFlag: this.form.serialDependFlag, //是否流水依赖
          serialDependOrder: this.form.serialDependOrder, //流水依赖顺序
          nullableFlag: this.form.nullableFlag, //是否为空
          displayFlag: this.form.displayFlag, //
          componentCodeFlag: this.form.componentCodeFlag, //是否参与编码
          pkCodeRule: this.form.pkCodeRule, //所属编码规则
        };
        //console.log(this.form);
      }
      this.form = {
        oid: row !=null ? row.oid:this.form.oid,
        id: row !=null ? row.id:this.form.id, //编号,
        name: row !=null ? row.name:this.form.name, //名称
        secType: row !=null ?  row.secType:this.form.secType, //码段类型
        description:  row !=null ? row.description:this.form.description, //描述
        serialDependFlag: this.isNullJsonBoolean(row,this.form, 'serialDependFlag'), //是否流水依赖
        serialDependOrder:  row !=null ? row.serialDependOrder:this.form.serialDependOrder, //流水依赖顺序
        nullableFlag: this.isNullJsonBoolean(row, this.form, 'nullableFlag'), //是否为空
        displayFlag: this.isNullJsonBoolean(row, this.form, 'displayFlag'),
        componentCodeFlag: this.isNullJsonBoolean(row, this.form, 'componentCodeFlag'), //是否参与编码
        pkCodeRule:  row !=null ? row.pkCodeRule:this.form.pkCodeRule, //所属编码规则
      };
      if (this.form.secType === "codefixedsec") {
        //固定码段
        this.form = Object.assign({}, this.form, {
@@ -3502,8 +3264,6 @@
              ? row.customCodeSerialClass
              : "", //自定义流水算法
        });
        console.log(this.form);
        console.log(this.enumParam.codeFillType);
        this.loadCodeFillType();
        this.loadCodeFillSeparator();
      } else if (this.form.secType === "codelevelsec") {
@@ -3549,7 +3309,6 @@
              : "", //日期格式
        });
      } else if (this.form.secType === "codeclassifysec") {
        //console.log(this.form);
        //分类码段
        this.form = Object.assign({}, this.form, {
          codeSecLengthType:
@@ -3592,7 +3351,15 @@
        this.loadCodeFillType();
        this.loadCodeFillSeparator();
      }
      // console.log(this.form);
    },
    // 判断Boolean值是否为空,并且对str类型布尔值进行转换
    isNullJsonBoolean(row,form,attr) {
        //console.log(row[attr],form[attr]);
        if(row != null){
          return JSON.parse(row[attr]);
        }else {
          return form[attr];
        }
    },
    /** 第一次请求的枚举数据放缓存*/
    getLocalStorageEnum(enumKey) {
@@ -3649,11 +3416,14 @@
    },
    // 最大流水号
    maxSerialNum() {
      console.log(this.selectionList);
      if (this.selectionList.length === 0) {
      if (this.selectionList.length <= 0) {
        this.$message.warning("请选择一条编码规则!");
        return;
      }
      if(this.selectionList.length> 1){
        this.$message.warning("只能选择一条编码规则!");
        return;
      }
      this.maxSerial.visible = true;
      this.maxSerial.ruleOid = this.selectionList[0]["oid"];
    },