ludc
2023-06-07 a17f731ee4bcad459c184be5a7c3de6c3619443b
Source/UBCS-WEB/src/views/code/code.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container style="height: 350px;">
  <basic-container style="height: 100%;">
    <!-- 编码规则信息展示区域 -->
    <basic-container class="code-rule-container">
@@ -54,45 +54,69 @@
            @click="enableOrDeactivatse(scope.row.oid,'enable')">启 用
          </el-button>
        </template>
        <!-- 表格左上方按钮区域 -->
        <!-- 表格上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button type="danger"
                    size="small"
                    icon="el-icon-delete"
                    plain
                    @click="handleDelete">删 除
            size="small"
            icon="el-icon-delete"
            plain
            @click="handleDelete">
            删 除
          </el-button>
          <el-button size="small"
                    icon="icon-kelong"
                    plain
                    @click="openCodeRuleDialog">克 隆
          <el-button type="primary"
            size="small"
            icon="el-icon-search"
            plain
            @click="openAdvancedQuery('codeRule')">
            高级查询
          </el-button>
          <el-button size="small"
                    icon="icon-lianjiekelong"
                    style="font-size: 12px;"
                    plain
                    @click="openOtherCodeRuleDialog">从其他规则中克隆码段
          <el-button
            size="small"
            icon="icon-kelong"
            plain
            @click="openCodeRuleDialog">
            克 隆
          </el-button>
          <el-button size="small"
                    icon="el-icon-s-help"
                    plain
                    @click="handleRange">使用范围
          <el-button
            size="small"
            icon="icon-lianjiekelong"
            style="font-size: 12px;"
            plain
            @click="openOtherCodeRuleDialog">
            从其他规则中克隆码段
          </el-button>
          <el-button size="small"
                    icon="icon-qingkong"
                    plain
                    @click="clearAllCodeSec">清空码值
          <el-button
            size="small"
            icon="el-icon-s-help"
            plain
            @click="handleRange">
            使用范围
          </el-button>
          <el-button
              size="small"
              icon="icon-qingkong"
              plain
              @click="clearAllCodeSec">
              清空码值
          </el-button>
        </template>
      </avue-crud>
    </basic-container>
    <!-- 高级查询对话框 -->
    <advanced-query
      :ref="advancedQueryParam.ref"
      :options="advancedQueryParam.options"
      :visible.sync="advancedQueryParam.advancedQuerySettingBox"
      @echoContion="echoSeniorContionMap">
    </advanced-query>
    <!-- 编码规则相关对话框 -->
    <el-dialog title="编码规则使用范围"
      append-to-body
      :visible.sync="codeRangeSettingBox"
      width="800px"
        style="height: 116vh; margin-top: -10vh;">
      style="height: 116vh; margin-top: -10vh;">
      <avue-crud
        :option="dialogeOption" 
        :table-loading="dialogLoading"
@@ -100,6 +124,7 @@
        @refresh-change="refreshUseRangeChange">
      </avue-crud>
    </el-dialog>
    <!-- 编码规则,克隆对话框 -->
    <el-dialog title="克隆编码规则"
      append-to-body
@@ -149,10 +174,11 @@
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
        <el-button @click="cloneSettingBox = false">取 消</el-button>
        <el-button type="primary" @click="saveCloneCodeRule">保 存</el-button>
        <el-button @click="cloneSettingBox = false">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 编码规则,从其他规则克隆对话框 -->
    <el-dialog title="克隆编码规则的基础信息"
      append-to-body
@@ -184,13 +210,14 @@
            ref="crudCloneCodeBasicOther"
            :table-loading="loadingBasic"
            :data="basicData"
            @row-click="codeOtherCloneBasicRowClick"
            @selection-change="selectionOtherCloneCodeBasicChange">
          </avue-crud>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
        <el-button @click="cloneOtherCodeRuleSettingBox = false">取 消</el-button>
        <el-button type="primary" @click="saveOtherCodeBasic">保 存</el-button>
        <el-button @click="cloneOtherCodeRuleSettingBox = false">取 消</el-button>
      </div>
    </el-dialog>
@@ -202,6 +229,9 @@
        ref="crudBasic"
        :table-loading="loadingBasic"
        :data="basicData"
        @row-click="codeBasicSecRowClick"
        @search-change="basicSearchChange"
        @search-reset="basicSearchReset"
        :permission="permissionList"
        @selection-change="selectionBasicChange"
        @refresh-change="refreshChangeBasicSec">
@@ -252,15 +282,26 @@
      <!-- 基础码段表格左上方按钮区域 -->
      <template slot="menuLeft" slot-scope="scope">
        <el-button type="primary"
                  size="small"
                  icon="el-icon-plus"
                  @click="addBasicCodeSec">新 增
            size="small"
            icon="el-icon-plus"
            :disabled="selectionList.length <= 0"
            @click="openAddBasicCodeSec">
            新 增
        </el-button>
        <el-button type="danger"
                  size="small"
                  icon="el-icon-delete"
                  plain
                  @click="deleteBasicCode(scope.row)">删 除
            size="small"
            icon="el-icon-delete"
            :disabled="selectionList.length <= 0"
            plain
            @click="deleteBasicCode(scope.row)">
            删 除
        </el-button>
        <el-button type="primary"
            size="small"
            icon="el-icon-search"
            plain
            @click="openAdvancedQuery('codeBasicSec')">
            高级查询
        </el-button>
      </template>
@@ -360,7 +401,7 @@
            </div>
            <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
              <el-button :disabled="selectedFixedOrCodeclassifyValue!=''" size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codefixedsec')">添加</el-button>
              <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codefixedsec')">修改</el-button>
              <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codefixedsec')">修改</el-button>
              <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="danger" icon="el-icon-close" class="button" @click="delCodeSecValue('codefixedsec')">删除</el-button>
              <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codefixedsec')">取消</el-button>
            </div>
@@ -379,8 +420,8 @@
      @close="clearBasicAddForm">
      <!--  第一层对话框,添加码段信息对话框中的内容 -->
      <div class="total" style="overflow-y: auto; height: 70vh">
        <el-form :model="form">
      <div class="add-basicsec-total" style="overflow-y: auto; height: 70vh">
        <el-form :model="form" class="add-basicsec-form">
          <span class="left">
            <el-form-item label="码段编号:" :label-width="leftFormLabelWidth" required>
              <el-input v-model="form.id" :readonly="basicSecOnlyRead" ref="id"></el-input>
@@ -393,10 +434,10 @@
            <el-form-item label="码段类型" :label-width="leftFormLabelWidth" required>
              <el-select v-model="form.secType" placeholder="请选择" @change="changeSectypeFormItems(null)" :disabled="basicSecOnlyRead">
                <el-option
                  v-for="item in sectypeList"
                  :key="item.dictValue"
                  :label="item.dictValue"
                  :value="item.dictKey">
                  v-for="item in enumParam.secTypeList"
                  :key="item.itemValue"
                  :label="item.itemName"
                  :value="item.itemValue">
                </el-option>
              </el-select>
            </el-form-item>
@@ -421,10 +462,10 @@
              <el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.codeSecLengthType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                  v-for="item in codeSecLengthType"
                  :key="item.dictValue"
                  :label="item.dictValue"
                  :value="item.dictKey">
                  v-for="item in enumParam.codeSecLengthType"
                  :key="item.itemValue"
                  :label="item.itemName"
                  :value="item.itemValue">
                </el-option>
                </el-select>
              </el-form-item>
@@ -478,20 +519,20 @@
              <el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.codeFillType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option label="左补位" value="codeattrsec"
                    v-for="item in codeFillType"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeFillType"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="补位时的字符:" :label-width="rightFormLabelWidth">
                <el-select v-model="form.codeFillSeparatorSelect" @blur="inputSelectBlur" filterable placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeFillSeparator"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeFillSeparator"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
@@ -513,10 +554,10 @@
              <el-form-item label="层级类型:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.codeLevelType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeLevelType"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeLevelType"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
@@ -526,20 +567,20 @@
              <el-form-item label="字符截取类型:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.valueCutType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeCutType"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeCutType"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="取值类型:" :label-width="rightFormLabelWidth">
                <el-select v-model="form.codeGetValueType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeGetValueType"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeGetValueType"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
@@ -552,7 +593,7 @@
                  placeholder="请选择"
                  prefix-icon="el-icon-search"
                  readonly="true"
                  v-model="form.referBtmId"
                  v-model="form.referBtmName"
                  @focus="openAttrSelectOrGetValue('referBtmId')"
                  :disabled="basicSecOnlyRead">
                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i>
@@ -582,10 +623,10 @@
              <el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.codeSecLengthType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeSecLengthType"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeSecLengthType"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
@@ -600,7 +641,7 @@
                  placeholder="请选择"
                  prefix-icon="el-icon-search"
                  readonly="true"
                  v-model="form.parentClassifySecOid"
                  v-model="form.parentClassifySecText"
                  @focus="openAttrSelectOrGetValue('parentClassifySecOid')"
                  :disabled="basicSecOnlyRead">
                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i>
@@ -615,20 +656,20 @@
              <el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth" required>
                <el-select v-model="form.codeFillType" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                      v-for="item in codeFillType"
                      :key="item.dictValue"
                      :label="item.dictValue"
                      :value="item.dictKey">
                      v-for="item in enumParam.codeFillType"
                      :key="item.itemValue"
                      :label="item.itemName"
                      :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="补位时的字符:" :label-width="rightFormLabelWidth">
                <el-select v-model="form.codeFillSeparatorSelect" filterable @blur="inputSelectBlur" placeholder="请选择" :disabled="basicSecOnlyRead">
                  <el-option
                    v-for="item in codeFillSeparator"
                    :key="item.dictValue"
                    :label="item.dictValue"
                    :value="item.dictKey">
                    v-for="item in enumParam.codeFillSeparator"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue">
                  </el-option>
                </el-select>
              </el-form-item>
@@ -637,13 +678,13 @@
        </el-form>
      </div>
      <!-- 第一层对话框的按钮和,线条 -->
      <el-divider direction="horizontal"></el-divider>
      <el-divider class="horizontal-line" direction="horizontal"></el-divider>
      <div slot="footer" class="dialog-footer">
        <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">取 消</el-button>
        <el-button type="primary" @click="saveOrEditBasicCode" v-show="showbtn">保 存</el-button>
        <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">取 消</el-button>
      </div>
      <!--  第二层对话框,属性码段,属性选择弹窗 -->
      <!--  第二层对话框,属性码段,属性选择对话框 -->
      <el-dialog title="为【属性】选取值"
        append-to-body
        :visible.sync="isShowSelectAttrOption"
@@ -656,109 +697,97 @@
              <div class="box">
                <el-scrollbar style="height: auto; border-bottom-right-radius:8px ">
                  <basic-container>
                    <div class="abox">
                    <div class="treeBox">
                      <avue-tree :data="attrClassifyTreeData" :option="treeOption" @node-click="nodeClick"/>
                    </div>
                  </basic-container>
                </el-scrollbar>
              </div>
            </el-col>
            <!-- 右侧表格显示区域 -->
            <el-col span="19">
              <basic-container>
                <div class="bbox">
                <avue-crud
                  :data="selectattrData"
                  :option="attrOption"
                  :table-loading="selectAttrOptionLoading"
                  @search-change="selectAttrOptionSearchChange"
                  :data="selectAttrParams.selectAttrData"
                  :option="selectAttrParams.attrOption"
                  :table-loading="selectAttrParams.selectAttrOptionLoading"
                  :ref="selectAttrParams.ref"
                  @search-change="selectAttrSearchChange"
                  @search-reset="searchAttrReset"
                  @row-click="selectionAttrRowClick"
                  @selection-change="selectionChangeAttr">
                </avue-crud>
                </div>
              </basic-container>
            </el-col>
          </el-row>
        </div>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowSelectAttrOption = false">取 消</el-button>
          <el-button type="primary" @click="selectedListClassifyLinkAttr">确 定</el-button>
          <el-button @click="isShowSelectAttrOption = false">取 消</el-button>
        </div>
      </el-dialog>
      <!-- 第二层对话框,属性码段,公式编辑框弹窗组件 -->
      <formula-editor ref="formulaEditor"
      <!-- 第二层对话框,属性码段,公式编辑框对话框组件 -->
      <formula-editor
        ref="formulaEditor"
        @updateFormulaContent="updateFormulaContent" 
        :thisSceneTableData="thisSceneTableData"
        :systemVariableTableData="systemVariableTableData">
        :thisSceneTableData="formulaEditorParams.thisSceneTableData"
        :visible.sync="formulaEditorParams.formulaEditorSettingBox"
        :systemVariableTableData="formulaEditorParams.systemVariableTableData">
      </formula-editor>
      <!-- 第二层对话框,为【父分类码段】选取值弹窗 -->
      <!-- 第二层对话框,为【父分类码段】选取值对话框 -->
      <el-dialog title="为【父分类码段】选取值"
        append-to-body
        :visible.sync="isShowParentClassifyOption"
        :visible.sync="parentClsfyParams.isShowParentClassifySettingBox"
        width="65%"
        style="height: 150vh; margin-top: -13vh;"
        destroy-on-close>
        <avue-crud
          :page.sync="parentClassifyDataPage"
          ref="crudParentClassify"
          :option="parentClassifyParentOption"
          :table-loading="classifyDialogLoading"
          :data="parentClassifyData"
          :page.sync="parentClsfyParams.parentClassifyDataPage"
          :ref="parentClsfyParams.ref"
          :option="parentClsfyParams.parentClassifyParentOption"
          :table-loading="parentClsfyParams.classifyDialogLoading"
          :data="parentClsfyParams.parentClassifyData"
          @refresh-change="refreshParentClassifyDataChange"
          @search-change="parentClassifySearchChange"
          @search-reset="parentClassifySearchReset"
          @row-click="parentClassifyRowClick"
          @selection-change="parentClassifySelectionChange"
          @current-change="parentClassifyCurrentChange"
          @size-change="parentClassifySizeChange"
          @on-load="parentClassifyOnLoad">
        </avue-crud>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowParentClassifyOption = false">取 消</el-button>
          <el-button type="primary" @click="saveSelectedParentClassify">保 存</el-button>
          <el-button @click="parentClsfyParams.isShowParentClassifySettingBox = false">取 消</el-button>
        </div>
      </el-dialog>
      <!-- 第二层对话框,为【参照引用的业务类型】选取值弹窗 -->
      <el-dialog title="为【参照引用的业务类型】选取值"
        append-to-body
        :visible.sync="isShowSelectReferBtmOption"
        width="65%"
        style="height: 150vh; margin-top: -13vh;"
        destroy-on-close>
      <!-- 第二层对话框,为【参照引用的业务类型】选取值对话框 -->
      <refer-btm-type-crud-dialog
        :visible.sync="referBtmDialogParams.selectReferBtmSettingBox"
        :ref="referBtmDialogParams.ref"
        @echoReferBtmType="echoReferBtmType">
      </refer-btm-type-crud-dialog>
        <avue-crud
          :page.sync="referBtmDataPage"
          ref="crudReferBtm"
          :option="referBtmOption"
          :table-loading="referBtmDialogLoading"
          :data="referBtmData"
          @refresh-change="referBtmDataChange"
          @search-change="referBtmSearchChange"
          @search-reset="referBtmSearchReset"
          @selection-change="referBtmSelectionChange"
          @current-change="referBtmCurrentChange"
          @size-change="referBtmSizeChange"
          @on-load="referBtmOnLoad">
        </avue-crud>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowSelectReferBtmOption = false">取 消</el-button>
          <el-button type="primary" @click="saveSelectedreferBtm">保 存</el-button>
        </div>
      </el-dialog>
      <!-- 第二层对话框,自定义参照配置Form组件 -->
      <refer-config-form-dialog
        ref="referConfigFormDialog"
        @echoReferConfig="echoReferConfig">
      </refer-config-form-dialog>
      <!-- 第二层对话框,直接选择参照配置crud组件 -->
      <refer-config-crud-dialog
        ref="referConfigCrudDialog"
        @openReconfigInterFace="openReconfigInterFace"
        @echoReferConfig="echoReferConfig">
      </refer-config-crud-dialog>
    </el-dialog>
  </basic-container>
</template>
<script>
@@ -773,22 +802,23 @@
    addSave,
    refDataGridClassifySec,
  } from "@/api/code/codebasic";
  import { treeTopCodeClassify, listClassifyLinkAttr } from "@/api/code/codeclassify";
  import { listClassifyLinkAttr } from "@/api/code/codeclassify";
  import { gridCodeFixedValue,addSaveCodeFixedValue,deleteCodeFixedValue,editCodeFixedValue,saveOrder } from "@/api/code/codeFixedValue";
  import { treeCodeClassifyValue,addSaveCodeClassifyValue,editCodeClassifyValue,deleteCodeClassifyValue,saveCodeClassifyValueOrder } from "@/api/code/codeClassifyValue";
  import { getDictionary } from "@/api/omd/dict";
  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.js";
  import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
  import optionRule from "@/const/code/mdmrule";
  import attrOption from "@/const/code/selectAttrOptionDialog";
  import treeOption from "@/const/code/classifyTreeOptionDialog";
  import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog";
  import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog";
  import referBtmOption from "@/const/code/referBtmDialog";
  import fixedValueOption from "@/const/code/fixedValueMgrDialog";
  import {mapGetters} from "vuex";
  import func from "@/util/func";
  import {MasterTable} from "@/api/GetItem";
  export default {
      data() {
@@ -894,7 +924,7 @@
          },
          classisyValueTreeOption: classisyValueTreeOption, //分类码段树相关配置项
          classifyValueTreeData: [],
          currentSelectTreeData: '', //当前选中的分类码值树节点
          //currentSelectClsValueTreeData: '', //当前选中的分类码值树节点
          /* 为属性选取值窗口显示打开控制变量 */
          isShowSelectAttrOption: false,
@@ -903,103 +933,107 @@
          treeOption: treeOption,
          currentSelectTreeData: '', //当前选中的树节点
          /* 为属性选值右侧表格相关数据 */
          attrOption: attrOption,
          selectattrData: [],
          selectAttrOptionLoading: false,
          selectionChangeAttrList: [],
          // 属性码段,公式编辑框组件的本场景显示变量、与系统变量
          thisSceneTableData: [
            {
                formula: "${}",
                desc: "",
            }
          ],
          systemVariableTableData: [
            {
                formula: "#CURRENTUSER.OID#",
                desc: "当前用户的主键",
            },
            {
                formula: "#CURRENTUSER.ID#",
                desc: "当前用户的账户",
            },
            {
                formula: "#CURRENTTIME#",
                desc: "当前时间",
            },
            {
                formula: "#CURRENTDATE#",
                desc: "当前日期",
            },
            {
                formula: "#CURRENTDATETIME#",
                desc: "当前日期时间",
            },
            {
                formula: "#CURRENTUSER_NAME#",
                desc: "当前用户的姓名",
            },
            {
                formula: "#CURRENTUSER.SECRETGRADE#",
                desc: "当前用户密级",
            },
            {
                formula: "#CURRENTUSER.IPSECRET#",
                desc: "当前用户的IP密级",
            },
            {
                formula: "#CURRENTUSER.BUSINESSUNIT#",
                desc: "当前用户所属业务单元",
            },
            {
                formula: "#CURRENTUSER.BUSINESSUNITNAME#",
                desc: "当前用户所属业务单元名称",
            },
            {
                formula: "#CURRENTUSER.GROUPOID#",
                desc: "当前用户的部门主键",
            },
            {
                formula: "#CURRENTUSER.GROUPNAME#",
                desc: "当前用户所属部门名称",
            },
            {
                formula: "#CURRENTUSER.EMAIL#",
                desc: "当前用户邮件地址",
            },
            {
                formula: "#CURRENTUSER.ROLENAME#",
                desc: "当前用户所属角色名称",
            },
          ],
          /* 父分类码段对话框 */
          isShowParentClassifyOption: false, //父分类码段对话框显示控制
          classifyDialogLoading: true, //表格数据加载提示
          parentClassifyParentOption: parentClassifyParentOption,  //表格配置
          parentClassifyData: [], //表格数据
          //分页参数配置
          parentClassifyDataPage: {
            pageSize: 10,
            currentPage: 1,
            total: 0
          selectAttrParams: {
            ref: "selectionAttrCrud",
            attrOption: attrOption,
            selectAttrData: [],
            selectAttrOptionLoading: false,
            selectionChangeAttrList: [],
            selectAttrQeury: {},
          },
          parentClassifyQuery: {}, //查询条件
          parentClassifySelectionList: [], //当前选中行
          // 属性码段,公式编辑框组件的本场景显示变量、与系统变量
          formulaEditorParams: {
            thisSceneTableData: [
              {
                  formula: "${}",
                  desc: "",
              }
            ],
            systemVariableTableData: [
              {
                  formula: "#CURRENTUSER.OID#",
                  desc: "当前用户的主键",
              },
              {
                  formula: "#CURRENTUSER.ID#",
                  desc: "当前用户的账户",
              },
              {
                  formula: "#CURRENTTIME#",
                  desc: "当前时间",
              },
              {
                  formula: "#CURRENTDATE#",
                  desc: "当前日期",
              },
              {
                  formula: "#CURRENTDATETIME#",
                  desc: "当前日期时间",
              },
              {
                  formula: "#CURRENTUSER_NAME#",
                  desc: "当前用户的姓名",
              },
              {
                  formula: "#CURRENTUSER.SECRETGRADE#",
                  desc: "当前用户密级",
              },
              {
                  formula: "#CURRENTUSER.IPSECRET#",
                  desc: "当前用户的IP密级",
              },
              {
                  formula: "#CURRENTUSER.BUSINESSUNIT#",
                  desc: "当前用户所属业务单元",
              },
              {
                  formula: "#CURRENTUSER.BUSINESSUNITNAME#",
                  desc: "当前用户所属业务单元名称",
              },
              {
                  formula: "#CURRENTUSER.GROUPOID#",
                  desc: "当前用户的部门主键",
              },
              {
                  formula: "#CURRENTUSER.GROUPNAME#",
                  desc: "当前用户所属部门名称",
              },
              {
                  formula: "#CURRENTUSER.EMAIL#",
                  desc: "当前用户邮件地址",
              },
              {
                  formula: "#CURRENTUSER.ROLENAME#",
                  desc: "当前用户所属角色名称",
              },
            ],
            formulaEditorSettingBox: false,
          },
          /* 父分类码段对话框 */
          parentClsfyParams: {
            ref: 'crudParentClassify',
            isShowParentClassifySettingBox: false, //父分类码段对话框显示控制
            classifyDialogLoading: true, //表格数据加载提示
            parentClassifyParentOption: parentClassifyParentOption,  //表格配置
            parentClassifyData: [], //表格数据
            //分页参数配置
            parentClassifyDataPage: {
              pageSize: 10,
              currentPage: 1,
              total: 0
            },
            parentClassifyQuery: {}, //查询条件
            parentClassifySelectionList: [], //当前选中行
          },
          
          /** 参照引用的业务类型对话框相关数据 */
          isShowSelectReferBtmOption: false,   //对话框显示控制
          referBtmDialogLoading: true,   //表格数据加载提示
          referBtmDataPage: {
            pageSize: 10,
            currentPage: 1,
            total: 0
          referBtmDialogParams: {
            ref: 'crudReferBtm',
            selectReferBtmSettingBox: false,
          },
          referBtmOption: referBtmOption, //表格配置
          referBtmData: [], //表格数据
          referBtmQuery: {}, //查询条件
          referBtmSelectionList: [], //当前选中行
          /** 基础码段新增表单 */
          form: {
@@ -1014,79 +1048,30 @@
            componentCodeFlag: false, //是否参与编码
            pkCodeRule: '', //所属编码规则
          },
          // formRules: {
          //   id: [
          //     { required: true, message: '请输入码段编号', trigger: 'blur' },
          //   ],
          //   name: [
          //     { required: true, message: '请输入码段名称', trigger: 'blur' },
          //   ],
          //   secType: [
          //     { required: true, message: '请选中码段类型', trigger: 'change' },
          //   ],
          //   codeSecLengthType: [
          //     { required: true, message: '请选择码段长度类型', trigger: 'change' },
          //   ],
          //   codeSecLength: [
          //     { required: true, message: '请输入码段的长度', trigger: ['blur', 'change']},
          //     { type: 'number', message: '码段的长度必须为数字值',trigger: ['blur', 'change']}
          //   ],
          //   referAttributeName: [
          //     { required: true, message: '请选择属性', trigger: 'change' },
          //   ],
          //   serialStart: [
          //     { type: 'number', message: '流水号的起始值必须为数字值',trigger: ['blur', 'change']}
          //   ],
          //   serialStep: [
          //     { type: 'number', message: '流水的步长必须为数字值',trigger: ['blur', 'change']}
          //   ],
          //   codeFillType: [
          //     { required: true, message: '请选择编码补位方式', trigger: ['blur', 'change']},
          //   ],
          //   // 设置补位时的字符,需要自定义来做判断
          //   codeFillSeparatorSelect: [
          //     { validator: validateCodeFill, trigger: ['blur', 'change'] },
          //   ],
          //   codeFillLength: [
          //     { required: true, message: '请输入填充长度', trigger: ['blur', 'change'] },
          //     { type: 'number', message: '填充长度必须为数字值',trigger: ['blur', 'change']}
          //   ],
          //   codeFillLimit: [
          //     { required: true, message: '请输入流水上限', trigger: ['blur', 'change'] },
          //     { type: 'number', message: '流水上限必须为数字值',trigger: ['blur', 'change']}
          //   ],
          //   codeLevelType: [
          //     { required: true, message: '请选择层级类型', trigger: 'change' },
          //   ],
          //   codeLevelValue: [
          //     { required: false, type: 'number', message: '层级的值必须为数字值', trigger: 'change'}
          //   ],
          //   valueCutType: [
          //     { required: true, message: '请选择字符截取类型', trigger: 'change' },
          //   ],
          //   referBtmId: [
          //     { required: true, message: '请选择参照应用的业务类型', trigger: 'change' },
          //   ],
          //   referConfig: [
          //     { required: true, message: '请选择参照配置', trigger: 'change' },
          //   ],
          //   codeDateFormatStr: [
          //     { required: true, message: '请输入日期格式', trigger: ['blur', 'change'] },
          //   ],
          // },
          //枚举和可输可选查询
          sectypeList:[],    //码段类型
          codeSecLengthType:[],  //码段长度类型
          codeFillType:[],   //编码补位方式
          codeFillSeparator:[], //补位时的字符,可输可选内容
          codeLevelType:[],     //层级类型
          codeCutType:[],       //字符截取类型
          codeGetValueType:[],  //取值类型
          enumParam: {
            secTypeList:[],    //码段类型
            codeSecLengthType:[],  //码段长度类型
            codeFillType:[],   //编码补位方式
            codeFillSeparator:[], //补位时的字符,可输可选内容
            codeLevelType:[],     //层级类型
            codeCutType:[],       //字符截取类型
            codeGetValueType:[],  //取值类型
          },
          //表单元素标签宽度
          leftFormLabelWidth: '110px',
          rightFormLabelWidth: '150px',
          // 高级查询对话框相关参数
          advancedQueryParam: {
            ref: 'advancedQuery',
            advancedQuerySettingBox: false,
            options: [],
            currentOpen: '', //当前打开高级查询的窗口是
            //conditionMapParams: {},
          },
        };
      },
@@ -1101,122 +1086,109 @@
          };
        },
      },
      watch:{
      },
      methods: {
        /** 高级查询对话框组件,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */
        echoSeniorContionMap(conditionMaps){
          //console.log(conditionMaps);
          if(JSON.stringify(conditionMaps)!='{}'){
            if(this.advancedQueryParam.currentOpen =='codeRule'){
              this.query = conditionMaps;
              this.onLoad(this.page);
            }else{
              this.sendGridCodeBasicSec(conditionMaps,true);
            }
            //console.log(conditionMaps);
          }
        },
        /* 公式编辑框内容改变,子组件编辑完公式之后内容回显时调用 */
        updateFormulaContent(content){
          this.form.getValueClass = content;
        },
        /* 引用码段参照配置,子组件填完参照配置之后内容回显时调用 */
        echoReferConfig(content){
          // console.log(content.referTypeName);
          this.form.referBtmId = content.referType;
          this.form.referBtmName = content.referTypeName;
          //转换成JSON字符串进行父组件回显
          let submitFormJson = JSON.stringify(content);
          this.form.referConfig = submitFormJson;
        },
        /** 引用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */
        echoReferBtmType(content){
            // 实现回显
            this.form.referBtmId = content.id;
            this.form.referBtmName = content.name;
        },
        
        /** 选中参照引用的业务类型,第二层嵌套对话框,及其相关方法  */
        saveSelectedreferBtm(){
          if(this.referBtmSelectionList.length != 1){
            this.$message.warning("只能选择一条数据!");
            return false;
          }
          //调用子组件并传递当前选中的参数值,实现回显
          this.form.referBtmId = this.referBtmSelectionList[0].id;
          this.form.referBtmName = this.referBtmSelectionList[0].name;
          //清空当前选中的行
          this.referBtmSelectionClear();
          this.isShowSelectReferBtmOption = false;
        },
        referBtmSearchReset() {
          this.referBtmQuery = {};
          this.referBtmOnLoad(this.referBtmDataPage);
        },
        referBtmSearchChange(params, done) {
          this.referBtmQuery = params;
          this.referBtmDataPage.currentPage = 1;
          this.referBtmOnLoad(this.page, params);
          done();
        },
        referBtmSelectionChange(list) {
          //console.log(list);
          this.referBtmSelectionList = list;
        },
        referBtmSelectionClear() {
          this.referBtmSelectionList = [];
          this.$refs.crudReferBtm.toggleSelection();
        },
        referBtmCurrentChange(currentPage){
          this.referBtmDataPage.currentPage = currentPage;
        },
        referBtmSizeChange(pageSize){
          this.referBtmDataPage.pageSize = pageSize;
        },
        refreshReferBtmDataChange() {
          this.referBtmOnLoad(this.referBtmDataPage, this.referBtmQuery);
        },
        //加载中参照引用的业务类型的数据
        referBtmOnLoad(page, params = {}) {
          this.referBtmDialogLoading = true;
          let oid = this.selectionList.length==0 ?  this.form.pkCodeRule:this.selectionList[0].oid;
          Object.assign(params,{pkCodeRule:oid})
          //接口还未提供,待更改
          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
            //console.log(res.data);
            const data = res.data.data;
            this.referBtmDataPage.total = data.total;
            this.referBtmData = data.records;
            this.referBtmDialogLoading = false;
            this.referBtmSelectionClear();
          });
        },
        /** 父分类选择对话框,第二层嵌套对话框,及其相关方法 */ 
        // 保存当前父分类码段的选中行,并进行回显
        saveSelectedParentClassify(){
          //console.log(this.parentClassifySelectionList.length);
          if(this.parentClassifySelectionList.length != 1){
            this.$message.warning("只能选择一条数据!");
          //console.log(this.parentClsfyParams.parentClassifySelectionList.length);
          if(this.parentClsfyParams.parentClassifySelectionList.length != 1){
            this.$message.warning("请选择一条数据!");
            return false;
          }
          //调用子组件并传递当前选中的参数值,实现回显
          this.form.parentClassifySecOid = this.parentClassifySelectionList[0].oid;
          this.form.parentClassifySecText = this.parentClassifySelectionList[0].name;
          //参数值,实现回显
          this.form.parentClassifySecOid = this.parentClsfyParams.parentClassifySelectionList[0].oid;
          this.form.parentClassifySecText = this.parentClsfyParams.parentClassifySelectionList[0].name;
          //清空当前选中的行
          this.parentClassifySelectionClear();
          this.isShowParentClassifyOption = false;
          this.parentClsfyParams.isShowParentClassifySettingBox = false;
        },
        parentClassifySearchReset() {
          this.parentClassifyQuery = {};
          this.parentClassifyOnLoad(this.parentClassifyDataPage);
          this.parentClsfyParams.parentClassifyQuery = {};
          this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage);
        },
        parentClassifySearchChange(params, done) {
          this.parentClassifyQuery = params;
          this.parentClassifyDataPage.currentPage = 1;
          this.parentClsfyParams.parentClassifyQuery = params;
          this.parentClsfyParams.parentClassifyDataPage.currentPage = 1;
          this.parentClassifyOnLoad(this.page, params);
          done();
        },
        parentClassifyRowClick(row){
          this.$refs[this.parentClsfyParams.ref].toggleSelection();
          this.parentClsfyParams.parentClassifySelectionList = row;
          this.$refs[this.parentClsfyParams.ref].setCurrentRow(row);
          this.$refs[this.parentClsfyParams.ref].toggleRowSelection(row); //选中当前行
        },
        parentClassifySelectionChange(list) {
          //console.log(this.parentClassifyCurrentChange);
          this.parentClassifySelectionList = list;
          this.parentClsfyParams.parentClassifySelectionList = list;
          this.$refs[this.parentClsfyParams.ref].setCurrentRow(this.parentClsfyParams.parentClassifySelectionList[list.length-1]);
        },
        parentClassifySelectionClear() {
          this.parentClassifySelectionList = [];
          this.$refs.crudParentClassify.toggleSelection();
          this.parentClsfyParams.parentClassifySelectionList = [];
          this.$refs[this.parentClsfyParams.ref].toggleSelection();
        },
        parentClassifyCurrentChange(currentPage){
          this.parentClassifyDataPage.currentPage = currentPage;
          this.parentClsfyParams.parentClassifyDataPage.currentPage = currentPage;
        },
        parentClassifySizeChange(pageSize){
          this.parentClassifyDataPage.pageSize = pageSize;
          this.parentClsfyParams.parentClassifyDataPage.pageSize = pageSize;
        },
        refreshParentClassifyDataChange() {
          this.parentClassifyOnLoad(this.parentClassifyDataPage, this.parentClassifyQuery);
          this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage, this.parentClsfyParams.parentClassifyQuery);
        },
        // TODO:待修改
        parentClassifyOnLoad(page, params = {}) {
          this.classifyDialogLoading = true;
          let parentClsParam = this.parentClsfyParams;
          parentClsParam.classifyDialogLoading = true;
          let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
          Object.assign(params,{pkCodeRule:oid})
          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
          let conditionMaps = this.paramsToConditionMa({"pkCodeRule":oid});
          refDataGridClassifySec(
            page.currentPage,
            page.pageSize,
            conditionMaps
          ).then(res => {
            //console.log(res.data);
            const data = res.data.data;
            this.parentClassifyDataPage.total = data.total;
            this.parentClassifyData = data.records;
            this.classifyDialogLoading = false;
            parentClsParam.parentClassifyDataPage.total = data.total;
            parentClsParam.parentClassifyData = data.records;
            parentClsParam.classifyDialogLoading = false;
            this.parentClassifySelectionClear();
          });
        },
@@ -1229,45 +1201,61 @@
          this.loadlistClassifyLinkAttr()
        },
        // 加载分类连接属性表格数据
        loadlistClassifyLinkAttr(){
          this.selectAttrOptionLoading = true;
          listClassifyLinkAttr({"page": 1,"limit": -1,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid}).then(res=>{
          //console.log(res.data.data);
          //造假数据
          let dataInfo =[
            {"id":"address","name":"会议室地址","oid":"058D840D-1010-A7DE-7C52-B39C03CE89C1","attrLength":"150","description":"","attributeDataTypeText":"字符串"},
            {"id":"businesslicensetype","name":"营业执照类型","oid":"BDAC6D3E-1827-35A0-F3CA-0E58A43F6A07","attrLength":"255","description":"营业执照类型","attributeDataTypeText":"字符串"},
            {"id":"certificatenumber","name":"保密证编号","oid":"E2BC8332-A721-3713-26C3-C9F6340C2C1D","attrLength":"255","description":"保密证编号","attributeDataTypeText":"字符串"},
          ]
          this.selectattrData = dataInfo;
          this.selectAttrOptionLoading = false;
        loadlistClassifyLinkAttr() {
          let attrParam = this.selectAttrParams;
          //console.log(this.currentSelectTreeData);
          attrParam.selectAttrOptionLoading = true;
          let conditionMaps = {};
          if(attrParam.selectAttrQeury){
            Object.keys(attrParam.selectAttrQeury).forEach(key=>{
              conditionMaps['conditionMap['+key+']'] = attrParam.selectAttrQeury[key];
            });
          }
          conditionMaps['conditionMap[codeClassifyOid]'] = this.currentSelectTreeData.oid;
          conditionMaps['conditionMap[btmTypeOid]'] = this.currentSelectTreeData.btmTypeOid;
          listClassifyLinkAttr(conditionMaps).then(res=>{
            //console.log(res.data.data);
            attrParam.selectAttrData = res.data.data;
            attrParam.selectAttrOptionLoading = false;
            this.$nextTick(() => {
                this.$refs[attrParam.ref].doLayout()
            });
          })
        },
        // 点击搜索后触发该事件
        selectAttrOptionSearchChange(params, done) {
          this.query = params;
          console.log(params);  //这儿需要改
          this.loadlistClassifyLinkAttr({"page":1,"limit":-1 ,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid});
        selectAttrSearchChange(params, done) {
          this.selectAttrParams.selectAttrQeury = params;
          //console.log(params);  //这儿需要改
          this.loadlistClassifyLinkAttr();
          done();
        },
        // 为属性选值界面,单击表格行时触发该事件
        selectionAttrRowClick(row){
          this.$refs[this.selectAttrParams.ref].toggleSelection();
          this.selectAttrParams.selectionChangeAttrList = row;
          this.$refs[this.selectAttrParams.ref].setCurrentRow(row);
          this.$refs[this.selectAttrParams.ref].toggleRowSelection(row); //选中当前行
        },
        // 属性取值当前选中行发生变化时触发
        selectionChangeAttr(list){
          this.selectionChangeAttrList = list;
          this.selectAttrParams.selectionChangeAttrList = list;
          this.$refs[this.selectAttrParams.ref].setCurrentRow(this.selectAttrParams.selectionChangeAttrList[list.length-1]);
        },
        // 重置位属性选取值表格的搜索框之后的回调
        searchAttrReset() {
          this.selectAttrParams.selectAttrQeury = {};
          this.loadlistClassifyLinkAttr()
        },
        // 为属性选取值之后的回显
        selectedListClassifyLinkAttr(){
          if(this.selectionChangeAttrList.length != 1){
            this.$message.warning("只能选择一条数据!");
          if(this.selectAttrParams.selectionChangeAttrList.length != 1){
            this.$message.warning("请选择一条数据!");
            return false;
          }
          //调用子组件并传递当前选中的参数值,实现回显
          this.form = Object.assign({}, this.form, {
            referAttributeId:this.selectionChangeAttrList[0].id,
            referAttributeName:this.selectionChangeAttrList[0].name,
            referAttributeId:this.selectAttrParams.selectionChangeAttrList[0].id,
            referAttributeName:this.selectAttrParams.selectionChangeAttrList[0].name,
            referCodeClassifyOid: this.currentSelectTreeData.key,
            referCodeClassifyOidName: this.currentSelectTreeData.title,
          })
@@ -1330,8 +1318,16 @@
              window.console.log(error);
            });
          }else {
            if(this.codeClassifyForm.id.trim() == ''){
              this.$message.warning("码值不能为空!");
              return;
            }
            if(this.codeClassifyForm.id.trim().length > 4 ){
              this.$message.warning("码值长度不能大于4!");
              return;
            }
            this.codeClassifyForm.codeClassifySecOid = this.codefixedsecOrCodeclassifysecOid;
            console.log(this.codeClassifyForm);
            // console.log(this.codeClassifyForm);
            addSaveCodeClassifyValue(this.codeClassifyForm).then(() => {
              this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid});
              this.clearFixedOrClassifyForm('codeclassifyvaluesec');
@@ -1609,11 +1605,11 @@
        /** 基础码段相关方法 */
        //防止打开过编辑窗口之后表单中存在值,所以需要清空,并初始化form表单属性
        clearBasicAddForm(){
          this.form = this.$options.data().form;;
          this.form = this.$options.data().form;
          // this.changeSectypeFormItems(null);
        },
        // 打开新增窗口
        addBasicCodeSec(){
        openAddBasicCodeSec(){
          if(!this.tipsMessage(this.selectionList)){
            return;
          }
@@ -1624,7 +1620,7 @@
          this.openBasicDialog('add',null);
          this.loadCodeSecType();
        },
        //打开新增或编辑基础码段对话框
        // 打开新增或编辑基础码段对话框
        openBasicDialog(condition,row){
          //console.log(row);
          if(condition == 'add') {
@@ -1659,10 +1655,10 @@
          if(this.form.oid == '' || this.form.oid == null){
            if(this.checkForm()){
              addSave(this.form).then(() => {
              this.$message({
                type: "success",
                message: "操作成功!"
              });
                this.$message({
                  type: "success",
                  message: "操作成功!"
                });
              }, error => {
                window.console.log(error);
              });
@@ -1903,9 +1899,26 @@
          //存储当前关联的编码规则相关信息
          this.currentCodeRuleOid = row.oid;
          this.currentRuleLcStatus = row.lcStatus;
          gridCodeBasicSec(1, -1, {"pkCodeRule":row.oid}).then(res => {
          this.sendGridCodeBasicSec({"pkCodeRule_equal":row.oid},false);
        },
        // 发送加载基础码段的请求
        sendGridCodeBasicSec(condition,isAdancedQuery/** 是否高级查询 */){
          // 如果当前基础码段表中的搜索按钮被隐藏,就需要在此开启
          if(this.selectionList.length>=0 && !this.$refs.crudBasic.option.column[0].search){
            this.hideBasicTable(true);
          }
          let conditionMaps = {};
          if(condition && !isAdancedQuery){
            Object.keys(condition).forEach(key=>{
              conditionMaps['conditionMap[t.'+key+']'] = condition[key];
            });
          }
          if(isAdancedQuery){
            condition['conditionMap[t.pkCodeRule_equal]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == ''
            ? this.selectionList[0].oid:this.currentCodeRuleOid;
          }
          gridCodeBasicSec(1, -1,isAdancedQuery ? condition:conditionMaps).then(res => {
            const data = res.data.data;
            // console.log(data);
            if(this.cloneSettingBox){
              this.cloneData = data.records;
              // console.log(tihs.cloneData);
@@ -1920,7 +1933,23 @@
        // 基础码段选中时触发
        selectionBasicChange(list) {
          this.selectionBasicList = list;
          this.$refs.crudBasic.setCurrentRow(this.selectionBasicList[list.length-1]);
          //console.log(this.selectionBasicList);
        },
        // 基础码段被单击表格行时触发
        codeBasicSecRowClick(row){
          this.$refs.crudBasic.toggleSelection();
          this.selectionBasicList = row;
          this.$refs.crudBasic.setCurrentRow(row);
          this.$refs.crudBasic.toggleRowSelection(row); //选中当前行
        },
        basicSearchChange(params, done){
          //console.log(this.$refs.crudBasic);
          this.sendGridCodeBasicSec(Object.assign(params,{"pkCodeRule_equal":this.selectionList[this.selectionList.length-1].oid}),false);
          done();
        },
        basicSearchReset(){
          this.sendGridCodeBasicSec({"pkCodeRule_equal":this.selectionList[this.selectionList.length-1].oid},false);
        },
        // 上移下移基础码段
        upOrderNum(row){
@@ -1968,13 +1997,95 @@
            });
          })
        },
        //基础码段查询
        // 基础码段刷新时查询
        refreshChangeBasicSec(){
          this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
        },
        // 操作基础码段中搜索清空等按钮的显示/隐藏
        hideBasicTable(hideBoolean){
          this.$refs.crudBasic.option.refreshBtn = hideBoolean;
          this.$refs.crudBasic.option.columnBtn = hideBoolean;
          this.$refs.crudBasic.option.column[0].search = hideBoolean;
          this.$refs.crudBasic.option.column[1].search = hideBoolean;
        },
        /** 编码规则相关方法 */
        // 打开高级查询窗口
        openAdvancedQuery(condition){
          // MasterTable({
          //   codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
          //   functionId: 5,
          // }).then(res=>{
          //   console.log(res.data.tableDefineVO.seniorQueryColumns);
          // })
          if(condition=='codeRule'){
            this.advancedQueryParam.options = [
              {
                data: [],
                title: '编号',
                fieldType: 'text',
                queryField: 'id',
              },{
                data: [],
                title: '名称',
                fieldType: 'text',
                queryField: 'name',
              },{
                data: [],
                title: '描述',
                fieldType: 'text',
                queryField: 'description',
              },{
                data: [
                  // {
                  //   key: '编辑中',
                  //   value: 'Editing',
                  // },
                  // {
                  //   key: '已发布',
                  //   value: 'Released',
                  // },
                  // {
                  //   key: '停用',
                  //   value: 'Disabled',
                  // },
                ],
                title: '状态',
                fieldType: 'combox',
                queryField: 'lcStatus',
                comboxKey: 'codeSearchLCStatus',
              }
            ]
          }else {
            this.advancedQueryParam.options = [
              {
                data: [],
                title: '码段编号',
                fieldType: 'text',
                queryField: 't.id',
              },{
                data: [],
                title: '码段名称',
                fieldType: 'text',
                queryField: 't.name',
              },{
                data: [],
                title: '描述',
                fieldType: 'text',
                queryField: 't.description',
              },{
                data: [],
                title: '码段类型',
                fieldType: 'combox',
                queryField: 't.secType',
                comboxKey: 'codeSecType',
              }
            ]
          }
          this.advancedQueryParam.currentOpen = condition;
          this.advancedQueryParam.advancedQuerySettingBox = true;
        },
        // 查询使用范围
        handleRange(){
          if(!this.tipsMessage(this.selectionList)){
@@ -1983,7 +2094,7 @@
          this.codeRangeSettingBox = true;
          this.getRangeCodeList()
        },
        //加载使用范围列表
        // 加载使用范围列表
        getRangeCodeList(){        
          this.dialogLoading = true;
          if(this.selectionList[0].oid==null){
@@ -1996,17 +2107,20 @@
            this.dialogLoading = false;
          });
        },
        //刷新使用范围列表
        // 刷新使用范围列表
        refreshUseRangeChange(){
          this.getRangeCodeList();
        },
        //单击编码规则实现行选择
        // 单击编码规则实现行选择
        codeRuleRowClick (row) {
          this.$refs.crud.toggleSelection();
          // 这儿应该可以不要,因为toggleRowSelection也会触发行选择时间
          this.selectionList = row;
          this.$refs.crud.toggleSelection();
          this.$refs.crud.setCurrentRow(row);
          this.$refs.crud.toggleRowSelection(row); //选中当前行
          this.loadBasic(row);
          if(row!=''){
            this.loadBasic(row);
          }
        },
        // 启用与停用
        enableOrDeactivatse(oId,update){
@@ -2073,26 +2187,42 @@
          }
          this.cloneOtherCodeRuleSettingBox = true;
        },
        //单击编码规则实现行选择
        codeOtherCloneRuleRowClick (row) {
        // 从其他编码规则中克隆码段对话框-单击编码规则实现行选择
        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.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){
          if(fromDialogPkCodebasic.length <= 0){
            this.$message.warning("请选择码段数据!");
            return;
          }
@@ -2104,13 +2234,13 @@
            return;
          }
          //console.log(res);
          let oidArr = '';
          fromDialogPkCodebasic.forEach((item) =>{
            oidArr = oidArr+","+item.oid;
          })
          let oidArr = [];
          fromDialogPkCodebasic.forEach(ele => {
            oidArr.push(ele.id);
          });
          let data = {
            "pkCodeRule": oid,
            "oidArr": oidArr,
            "oidArr": oidArr.join(","),
          }
          //console.log(data);
          cloneCodeBasic(data).then(() => {
@@ -2136,9 +2266,9 @@
          }
          let currentData = this.selectionList[0];
          this.$confirm("确定要清空码值?如果清空将不能被恢复,请谨慎!", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning"
            })
            .then(() => {
              let ts = new Date(currentData.ts).getTime();
@@ -2152,7 +2282,6 @@
              });
            });
        },
        // 添加
        rowSave(row, done, loading) {
          add(row).then(() => {
@@ -2224,20 +2353,28 @@
          this.onLoad(this.page);
        },
        searchChange(params, done) {
          this.query = params;
          this.page.currentPage = 1;
          this.onLoad(this.page, params);
          // 多个conditionMap这样传参,快速查询默认采用模糊查询
          if(params){
            Object.keys(params).forEach(key=>{
              this.query['conditionMap['+key+'_like]'] = params[key];
            });
          }
          this.onLoad(this.page);
          done();
        }, 
        // 编码规则当前选中行变化的时候触发
        selectionChange(list) {
          this.selectionList = list;
          //console.log("selectionChange====="+list);
          this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
          //当前选中行为空的时候就将码段管理表格数据置空,并禁用相关功能
          if(list == ''){
            this.basicData = [];
            this.hideBasicTable(false);
          }
          if(this.selectionList.length > 0){
            this.currentCodeRuleOid = this.selectionList[list.length-1].oid;
            this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus;
            //console.log(this.currentRuleLcStatus);
            this.loadBasic(this.selectionList[list.length-1]);
          }
        },
@@ -2254,17 +2391,28 @@
        refreshChange() {
          this.onLoad(this.page, this.query);
        },
        onLoad(page, params = {}) {
        onLoad(page,params={}) {
          this.loading = true;
          gridCodeRule(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          gridCodeRule(
            page.currentPage,
            page.pageSize,
            this.query
          ).then(res => {
            //console.log(res.data);
            const data = res.data.data;
            this.page.total = data.total;
            this.data = data.records;
            this.loading = false;
            // 查询的值为空时,要将码段管理相关的内容禁用
            if(data.records.length <= 0) {
              this.hideBasicTable(false);
              this.selectionList = [];
              this.basicData = [];
              return;
            }
            this.loadBasic(this.data[0])
            this.$nextTick(() => {
              //this.$refs.crud.toggleRowSelection(this.data[0]);
              this.$refs.crud.toggleRowSelection(this.data[0]);
              this.$refs.crud.setCurrentRow(this.data[0]);
            })
            this.selectionList = data.records[0];
@@ -2272,22 +2420,65 @@
          });
        },
        /** 第一层对话框相关方法 */
        // 打开二层弹窗方法
        // 打开二层对话框方法
        openAttrSelectOrGetValue(condition){
          if(condition === 'attr'){
            this.isShowSelectAttrOption = true;
          }else if(condition === 'value'){
            //打开公式编辑框,第二层嵌套对话框
            this.$refs.formulaEditor.isShowformulaEdit = true;
            //this.$refs.formulaEditor.isShowformulaEdit = true;
            this.formulaEditorParams.formulaEditorSettingBox = true;
          }else if(condition === 'parentClassifySecOid'){
            this.isShowParentClassifyOption = true;
            this.parentClsfyParams.isShowParentClassifySettingBox = true;
          }else if(condition === 'referBtmId'){
            this.isShowSelectReferBtmOption = true;
            this.referBtmDialogParams.selectReferBtmSettingBox = true;
            // 调用子组件刷新表格数据
            this.$refs[this.referBtmDialogParams.ref].referBtmOnLoad();
          }else if(condition === 'referConfig'){
            //this.$emit('openSelectreferConfig')
            if(func.notEmpty(this.form.referConfig) || func.notEmpty(this.form.referBtmName)){
              this.openReconfigInterFace(this.form);
            }else{
              this.openTipsChooseOrCust();
            }
          }
        },
        // 当前已存在编辑过的参照配置,所以直接打开参照配置界面
        openReconfigInterFace(preReferConfigForm){
          // console.log(preReferConfigForm);
          this.$refs.referConfigFormDialog.isShowReferConfigForm = true;
              let value = {
                referTypeName: preReferConfigForm.referBtmName,
                referType: preReferConfigForm.referBtmId,
                referConfig: preReferConfigForm.referConfig,
              }
              this.$refs.referConfigFormDialog.initPageData(value);
        },
        // 打开自定义参照配置或直接选择参照配置的提示框
        openTipsChooseOrCust(){
          this.$confirm('请选择参照配置的定义方式?','参照配置的方式', {
            distinguishCancelAndClose: true,
            closeOnClickModal: false,
            confirmButtonText: '自定义参照配置',
            cancelButtonText: '直接选择参照配置'
          })
          .then(() => {
            // 打开自定参照配置对话框
            this.$refs.referConfigFormDialog.isShowReferConfigForm = true;
            // 表格错行的问题
            this.$refs.referConfigFormDialog.onloadAttrData();
          })
          .catch(action => {
            if (action === "cancel") {
              // 打开直接选择参照配置对话框
              this.$refs.referConfigCrudDialog.isShowReferConfigCrud = true;
              this.$refs.referConfigCrudDialog.referConfigOnload();
            }
            //console.log(action);
          });
          // 让参照配置输入框失去焦点,否则该提示框无法被关闭
          this.$refs.referConfig.$el.querySelector('input').blur();
        },
        // 点击输入框的×号,清空输入框中的内容
@@ -2303,8 +2494,10 @@
            this.form.parentClassifySecOid = '';
          }else if(condition === 'referBtmId'){
            this.form.referBtmId = '';
            this.form.referBtmName = '';
            this.form.referConfig = '';
          }else if(condition === 'referConfig'){
            this.form.referBtmId = '';
            this.form.referConfig = '';
          }
        },
        // 补位时的字符,实现可输可选
@@ -2316,7 +2509,7 @@
        // 码段类型改变时,增加对应的form表单中的属性
        changeSectypeFormItems(row){     
          //console.log(row);   
          if(this.sectypeList.length==0){
          if(this.enumParam.secTypeList.length==0){
            this.loadCodeSecType();
          }
          if(row != null){
@@ -2370,8 +2563,8 @@
              codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //码段的长度
              serialStart: row!=null&&row.serialStart != '' ? row.serialStart:1,  //流水号起始值
              serialStep: row!=null&&row.serialStep != '' ? row.serialStep:1,   //流水的步长
              codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_right', //编码补位方式
              codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,    //补位时的字符,选中的下拉框的下标
              codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //编码补位方式
              codeFillSeparatorSelect: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparatorSelect:0,    //补位时的字符,选中的下拉框的下标
              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:0,          //补位时的字符
              codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'',              //填充长度
              codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'',               //流水上限
@@ -2428,44 +2621,39 @@
          }
          // console.log(this.form);
        },
        // 第一次请求的枚举数据放缓存
        getLocalStorageEnum(key){
          let enumCach = JSON.parse(localStorage.getItem(key));
          if(enumCach == null) {
            getDictionary({code: key}).then(res=>{
              enumCach = res.data.data;
              localStorage.setItem(key,JSON.stringify(res.data.data));
            })
          }
          return enumCach;
        },
        //枚举和可输可选内容查询
        loadCodeSecType(){
          getDictionary({code: "codeBasicSecType"}).then(res=>{
            this.sectypeList = res.data.data;
          })
          this.enumParam.secTypeList = this.getLocalStorageEnum("codeSecType");
          this.loadCodeSecLength();
          //console.log(this.sectypeList);
        },
        loadCodeSecLength(){
          getDictionary({code: "codeSecLength"}).then(res=>{
            this.codeSecLengthType = res.data.data;
          })
          this.enumParam.codeSecLengthType = this.getLocalStorageEnum("codeSecLength");
        },
        loadCodeFillType(){
          getDictionary({code: "codeFillType"}).then(res=>{
            this.codeFillType = res.data.data;
          })
          this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType");
        },
        loadCodeFillSeparator(){
          getDictionary({code: "codeFillSeparator"}).then(res=>{
            this.codeFillSeparator = res.data.data;
          })
          this.enumParam.codeFillSeparator = this.getLocalStorageEnum("codeFillSeparator");
        },
        loadCodeLevelType(){
          getDictionary({code: "codeLevelType"}).then(res=>{
            this.codeLevelType = res.data.data;
          })
          this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType");
        },
        loadCodeCutType(){
          getDictionary({code: "codeCutType"}).then(res=>{
            this.codeCutType = res.data.data;
          })
          this.enumParam.codeCutType = this.getLocalStorageEnum("codeCutType");
        },
        loadCodeGetValueType(){
          getDictionary({code: "codeGetValueType"}).then(res=>{
            this.codeGetValueType = res.data.data;
            //console.log(this.codeGetValueType);
          })
          this.enumParam.codeGetValueType =  this.getLocalStorageEnum("codeGetValueType");
        },
        
      }
@@ -2473,7 +2661,7 @@
</script>
<style scope>
<style>
  .code-rule-crud > .avue-crud__search ,.code-basic-crud > .avue-crud__search {
    margin-bottom: -15px;
@@ -2483,7 +2671,6 @@
    padding: 14px 0 2px 20px;
  }
  
  .clone-input-textarea > .el-form-item__content {
    width: 495px;
  }
@@ -2515,36 +2702,35 @@
  .basic-container > .el-card  > .el-card__body {
    margin: -10px 0;
  }
  .code-basicsec-container{
    padding: 1px 6px;
  }
  .el-divider--horizontal {
    margin-top: 19px !important;
  .horizontal-line {
    /* margin-top: 19px !important; */
    margin-bottom: -20px !important;
    width: 100%;
    height: 2px;
    margin: 0;
    position: fixed;
    width: 57.5vw;
  }
  .el-card__body > .abox {
    height: 50vh;
  .el-card__body > .treeBox {
    height: 56vh;
  }
  .el-col-5 > .box {
    height: 55vh;
    height: 56vh;
  }
  .operator_,filter, .layui-btn{
    width:60px;
  }
  .el-input-number {
  .left > .el-form-item > .el-form-item__content > .el-input-number {
    width: 120px;
  }
  .el-input-number >.el-input > .el-input__inner {
  .left > .el-form-item > .el-form-item__content > .el-input-number > .el-input > .el-input__inner {
    width:120px;
  } 
  
@@ -2554,34 +2740,52 @@
  }
  /** 新增码段 */
  .total{
    height: 500px;
  .add-basicsec-total {
    width: 100%;
    padding: 20px 0 0 0;
  }
  .total .el-input__inner,.total .el-textarea__inner {
  .add-basicsec-total .el-input__inner,.add-basicsec-total .el-textarea__inner {
    width: 220px;
  }
  .el-divider--vertical {
  .add-basicsec-total > .add-basicsec-form {
    display: flex;
    flex-direction: row;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: space-around;
  }
  .add-basicsec-form > .el-divider--vertical {
    width: 2px;
    height: 72vh;
    margin: 0 5px;
    position: fixed;
    height: 100%;
    margin: 0 auto;
    /* position: fixed; */
  }
 .left {
    float: left;
    width: 49%;
    /* float: left; */
    width: 45%;
    height: 100%;
 }
 .right {
    float: right;
    margin-right: 2.5vw;
    /* width: 40%; */
    /* float: right; */
    margin-right: 2vw;
    height: 100%;
    width: auto;
 }
 .right > .el-form > .el-form-item{
    margin-bottom: 8px;
 }
 /* 对话框底部按钮边框样式 */
 .el-dialog__footer{
    /* width: 100%; */
    border-top: 1px solid #E9E7E7;
    padding: 5px 10px 10px;
 }
</style>