田源
2025-03-05 f6b61a485501f326debe52d77ea65d87fb34b37f
Source/UBCS-WEB/src/views/code/code.vue
@@ -2,144 +2,146 @@
  <basic-container class="code-total" style=" height: 100%">
    <!-- 编码规则信息展示区域 -->
    <basic-container class="code-rule-container">
      <p
        style="
      <div style="height: 49vh;overflow: auto;">
        <p
          style="
          margin-top: -5px;
          margin-bottom: 4px;
          font-weight: 570;
          font-size: 19px;
          color: #0e2d5f;
        "
      >
        编码规则
      </p>
      <avue-crud
        ref="crud"
        v-model="ruleForm"
        :before-open="beforeOpen"
        :data="data"
        :option="optionRule"
        :page.sync="page"
        :permission="permissionList"
        :table-loading="loading"
        class="code-rule-crud"
        @row-click="codeRuleRowClick"
        @row-update="rowUpdate"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @selection-change="selectionChange"
        @current-change="currentChange"
        @size-change="sizeChange"
        @refresh-change="refreshChange"
        @on-load="onLoad"
      >
        <!-- 表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button v-if="permissionList.editBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
            icon="el-icon-edit"
            plain
            size="small"
            type="text"
            @click="openEdit(scope.row)"
        >
          编码规则
        </p>
        <avue-crud
          ref="crud"
          v-model="ruleForm"
          :before-open="beforeOpen"
          :data="data"
          :option="optionRule"
          :page.sync="page"
          :permission="permissionList"
          :table-loading="loading"
          class="code-rule-crud"
          @row-click="codeRuleRowClick"
          @row-update="rowUpdate"
          @row-save="rowSave"
          @search-change="searchChange"
          @search-reset="searchReset"
          @selection-change="selectionChange"
          @current-change="currentChange"
          @size-change="sizeChange"
          @refresh-change="refreshChange"
          @on-load="onLoad"
        >
          <!-- 表格内操作按钮 -->
          <template slot="menu" slot-scope="scope">
            <el-button v-if="permissionList.editBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                       icon="el-icon-edit"
                       plain
                       size="small"
                       type="text"
                       @click="openEdit(scope.row)"
            >编 辑
          </el-button>
          <el-button v-if="permissionList.releaseBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
            :loading="releadDisabled"
            icon="el-icon-position"
            plain
            size="small"
            type="text"
            @click="enableOrDeactivatse(scope.row.oid, 'release')"
            </el-button>
            <el-button v-if="permissionList.releaseBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                       :loading="releadDisabled"
                       icon="el-icon-position"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'release')"
            >发 布
          </el-button>
          <el-button v-if="permissionList.deactivateBtn && (scope.row.lcStatus == 'Released' ? true : false)"
            icon="el-icon-video-pause"
            plain
            size="small"
            type="text"
            @click="enableOrDeactivatse(scope.row.oid, 'disable')"
            </el-button>
            <el-button v-if="permissionList.deactivateBtn && (scope.row.lcStatus == 'Released' ? true : false)"
                       icon="el-icon-video-pause"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'disable')"
            >停 用
          </el-button>
          <el-button v-if="permissionList.enableBtn && (scope.row.lcStatus == 'Disabled' ? true : false)"
            icon="el-icon-video-play"
            plain
            size="small"
            type="text"
            @click="enableOrDeactivatse(scope.row.oid, 'enable')"
            </el-button>
            <el-button v-if="permissionList.enableBtn && (scope.row.lcStatus == 'Disabled' ? true : false)"
                       icon="el-icon-video-play"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'enable')"
            >启 用
          </el-button>
        </template>
        <!-- 表格上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button v-if="permissionList.delBtn"
            icon="el-icon-delete"
            plain
            size="small"
            type="danger"
            @click="handleDelete"
          >
            删 除
          </el-button>
          <el-button v-if="permissionList.advancedQueryBtn"
            icon="el-icon-search"
            plain
            size="small"
            type="primary"
            @click="openAdvancedQuery('codeRule')">
            高级查询
          </el-button>
          <el-button v-if="permissionList.cloneBtn"
            icon="icon-kelong"
            plain
            size="small"
            @click="openCodeRuleDialog"
          >
            克 隆
          </el-button>
          <el-button v-if="permissionList.otherCloneBtn"
            icon="icon-lianjiekelong"
            plain
            size="small"
            style="font-size: 12px"
            @click="openOtherCodeRuleDialog"
          >
            从其他规则中克隆码段
          </el-button>
          <el-button v-if="permissionList.usescopeBtn"
            icon="el-icon-s-help"
            plain
            size="small"
            @click="handleRange"
          >
            使用范围
          </el-button>
          <el-button v-if="permissionList.clearBtn"
            icon="icon-qingkong"
            plain
            size="small"
            @click="clearAllCodeSec"
          >
            清空码值
          </el-button>
          <el-button  v-if="permissionList.escapeOwnerBtn"
            icon="el-icon-guide"
            plain
            size="small"
            @click="escapeOwner"
          >
            转移所有者
          </el-button>
          <el-button  v-if="permissionList.maxSerialnumBtn"
            icon="el-icon-data-analysis"
            plain
            size="small"
            @click="maxSerialNum"
          >
            最大流水号
          </el-button>
        </template>
      </avue-crud>
            </el-button>
          </template>
          <!-- 表格上方按钮区域 -->
          <template slot="menuLeft" slot-scope="scope">
            <el-button v-if="permissionList.rulDelBtn"
                       icon="el-icon-delete"
                       plain
                       size="small"
                       type="danger"
                       @click="handleDelete"
            >
              删 除
            </el-button>
            <el-button v-if="permissionList.advancedQueryBtn"
                       icon="el-icon-search"
                       plain
                       size="small"
                       type="primary"
                       @click="openAdvancedQuery('codeRule')">
              高级查询
            </el-button>
            <el-button v-if="permissionList.cloneBtn"
                       icon="icon-kelong"
                       plain
                       size="small"
                       @click="openCodeRuleDialog"
            >
              克 隆
            </el-button>
            <el-button v-if="permissionList.otherCloneBtn"
                       icon="icon-lianjiekelong"
                       plain
                       size="small"
                       style="font-size: 12px"
                       @click="openOtherCodeRuleDialog"
            >
              从其他规则中克隆码段
            </el-button>
            <el-button v-if="permissionList.usescopeBtn"
                       icon="el-icon-s-help"
                       plain
                       size="small"
                       @click="handleRange"
            >
              使用范围
            </el-button>
            <el-button v-if="permissionList.clearBtn"
                       icon="icon-qingkong"
                       plain
                       size="small"
                       @click="clearAllCodeSec"
            >
              清空码值
            </el-button>
            <el-button v-if="permissionList.escapeOwnerBtn"
                       icon="el-icon-guide"
                       plain
                       size="small"
                       @click="escapeOwner"
            >
              转移所有者
            </el-button>
            <el-button v-if="permissionList.maxSerialnumBtn"
                       icon="el-icon-data-analysis"
                       plain
                       size="small"
                       @click="maxSerialNum"
            >
              最大流水号
            </el-button>
          </template>
        </avue-crud>
      </div>
    </basic-container>
    <!-- 高级查询对话框 -->
@@ -173,15 +175,15 @@
    <!-- 编码规则,克隆对话框 -->
    <clone-rule-dialog
      :visible.sync="cloneSettingBox"
      :ruleData="selectionList[0]"
      :visible.sync="cloneSettingBox"
      @refreshRuleTable="onLoad">
    </clone-rule-dialog>
    <!-- 编码规则,从其他规则克隆对话框 -->
    <clone-other-basic-sec-dialog
      :visible.sync="cloneOtherCodeRuleSettingBox"
      :quiltCloneCodeRule="selectionList[0]"
      :visible.sync="cloneOtherCodeRuleSettingBox"
      @refreshRuleTable="onLoad">
    </clone-other-basic-sec-dialog>
@@ -189,9 +191,9 @@
    <el-dialog
      :visible.sync="escapeOwnerVisible"
      append-to-body
      class="avue-dialog avue-dialog--top"
      title="转移所有者"
      width="30%"
      class= "avue-dialog avue-dialog--top"
    >
      <el-select v-model="ruleOwner" class="selects" placeholder="请选择">
        <el-option
@@ -217,104 +219,107 @@
    <!-- 基础码段展示区域 -->
    <basic-container class="code-basicsec-container">
      <p
        style="margin-top: -5px;
      <div style="height: 29.3vh;overflow: auto">
        <p
          style="margin-top: -5px;
          margin-bottom: 4px;
          font-weight: 570;
          font-size: 19px;
          color: #0e2d5f;">
        码段管理
      </p>
      <avue-crud
        ref="crudBasic"
        :data="basicData"
        :option="optionBasic"
        :permission="permissionList"
        :table-loading="loadingBasic"
        class="code-basic-crud"
        @row-click="codeBasicSecRowClick"
        @search-change="basicSearchChange"
        @search-reset="basicSearchReset"
        @selection-change="selectionBasicChange"
        @refresh-change="refreshChangeBasicSec"
      >
        <!-- 基础码段表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button v-if="permissionList.basicViewBtn && (currentRuleLcStatus != 'Editing')"
            icon="el-icon-view"
            plain
            size="small"
            type="text"
            @click="openBasicDialog('view', scope.row)"
          码段管理
        </p>
        <avue-crud
          ref="crudBasic"
          :data="basicData"
          :option="optionBasic"
          :permission="basicPermissionList"
          :table-loading="loadingBasic"
          class="code-basic-crud"
          @row-click="codeBasicSecRowClick"
          @search-change="basicSearchChange"
          @search-reset="basicSearchReset"
          @selection-change="selectionBasicChange"
          @refresh-change="refreshChangeBasicSec"
        >
          <!-- 基础码段表格内操作按钮 -->
          <template slot="menu" slot-scope="scope">
            <el-button v-if="basicPermissionList.viewBtn && currentRuleLcStatus != 'Editing'"
                       icon="el-icon-view"
                       plain
                       size="small"
                       type="text"
                       @click="openBasicDialog('view', scope.row)"
            >查看
          </el-button>
          <el-button v-if="permissionList.basicEditBtn && (currentRuleLcStatus === 'Editing')"
            icon="el-icon-edit"
            plain
            size="small"
            type="text"
            @click="openBasicDialog('edit', scope.row)"
            </el-button>
            <el-button v-if="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
                       icon="el-icon-edit"
                       plain
                       size="small"
                       type="text"
                       @click="openBasicDialog('edit', scope.row)"
            >编辑
          </el-button>
          <el-button v-if="permissionList.basicMgrBtn && (scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec')"
            icon="el-icon-setting"
            plain
            size="small"
            type="text"
            @click="openBasicSecCodeValueMgr(scope.row)"
            </el-button>
            <el-button
              v-if="basicPermissionList.basicMgrBtn && (scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec')"
              icon="el-icon-setting"
              plain
              size="small"
              type="text"
              @click="openBasicSecCodeValueMgr(scope.row)"
            >码值管理
          </el-button>
          <el-button v-if="permissionList.basicMoveupBtn && (scope.row.orderNum > 1)"
            icon="el-icon-arrow-up"
            plain
            size="small"
            type="text"
            @click="upOrderNum(scope.row)"
            </el-button>
            <el-button v-if="basicPermissionList.basicMoveupBtn && scope.row.orderNum > 1"
                       icon="el-icon-arrow-up"
                       plain
                       size="small"
                       type="text"
                       @click="upOrderNum(scope.row)"
            >上移
          </el-button>
          <el-button v-if="permissionList.basicDownBtn"
            icon="el-icon-arrow-down"
            plain
            size="small"
            type="text"
            @click="downOrderNum(scope.row)"
            </el-button>
            <el-button v-if="basicPermissionList.basicDownBtn"
                       icon="el-icon-arrow-down"
                       plain
                       size="small"
                       type="text"
                       @click="downOrderNum(scope.row)"
            >下移
          </el-button>
        </template>
            </el-button>
          </template>
        <!-- 基础码段表格左上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button v-if="permissionList.basicAddBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-plus"
            size="small"
            type="primary"
            @click="openAddBasicCodeSec"
          >
            新 增
          </el-button>
          <el-button v-if="permissionList.basicDeleteBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-delete"
            plain
            size="small"
            type="danger"
            @click="deleteBasicCode(scope.row)"
          >
            删 除
          </el-button>
          <el-button  v-if="permissionList.basicAdvancedQueryBtn"
            :disabled="selectionList.length <= 0"
            icon="el-icon-search"
            plain
            size="small"
            type="primary"
            @click="openAdvancedQuery('codeBasicSec')"
          >
            高级查询
          </el-button>
        </template>
      </avue-crud>
          <!-- 基础码段表格左上方按钮区域 -->
          <template slot="menuLeft" slot-scope="scope">
            <el-button v-if="basicPermissionList.addBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-plus"
                       size="small"
                       type="primary"
                       @click="openAddBasicCodeSec"
            >
              新 增
            </el-button>
            <el-button v-if="basicPermissionList.basicDelBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-delete"
                       plain
                       size="small"
                       type="danger"
                       @click="deleteBasicCode(scope.row)"
            >
              删 除
            </el-button>
            <el-button v-if="basicPermissionList.basicAdvancedQueryBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-search"
                       plain
                       size="small"
                       type="primary"
                       @click="openAdvancedQuery('codeBasicSec')"
            >
              高级查询
            </el-button>
          </template>
        </avue-crud>
      </div>
    </basic-container>
    <!-- 码段码值管理对话框 -->
@@ -362,7 +367,7 @@
                size="mini"
                type="primary"
                @click="codeClassifyValueOpetion('up')"
                >上移
              >上移
              </el-button>
              <el-button
                class="button"
@@ -370,7 +375,7 @@
                size="mini"
                type="primary"
                @click="codeClassifyValueOpetion('down')"
                >下移
              >下移
              </el-button>
            </div>
          </basic-container>
@@ -378,18 +383,12 @@
        <el-col :span="13">
          <basic-container>
            <div class="box" style="height: 60vh; margin-bottom: -40px">
              <el-form>
                <el-form-item :label-width="50" label="码值:" required>
                  <el-input
                    v-model="codeClassifyForm.id"
                    style="width: 18vw"
                  ></el-input>
              <el-form label-width="55px">
                <el-form-item label="名称:" required>
                  <el-input v-model="codeClassifyForm.name"></el-input>
                </el-form-item>
                <el-form-item :label-width="50" label="名称:" required>
                  <el-input
                    v-model="codeClassifyForm.name"
                    style="width: 18vw"
                  ></el-input>
                <el-form-item  label="码值:">
                  <el-input v-model="codeClassifyForm.id"></el-input>
                </el-form-item>
              </el-form>
            </div>
@@ -398,16 +397,14 @@
                margin-top: 20px;
                display: flex;
                align-items: center;
                justify-content: center;
              "
            >
                justify-content: center;">
              <el-button
                class="button"
                icon="el-icon-circle-plus"
                size="mini"
                type="primary"
                @click="addCodeSecValue('codeclassifyvaluesec')"
                >添加
              >添加
              </el-button>
              <el-button
                :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -417,7 +414,7 @@
                size="mini"
                type="success"
                @click="editCodeSecValue('codeclassifyvaluesec')"
                >修改
              >修改
              </el-button>
              <el-button
                :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -426,7 +423,7 @@
                size="mini"
                type="danger"
                @click="delCodeSecValue('codeclassifyvaluesec')"
                >删除
              >删除
              </el-button>
              <el-button
                class="button"
@@ -435,7 +432,7 @@
                size="mini"
                type="warning"
                @click="clearFixedOrClassifyForm('codeclassifyvaluesec')"
                >取消
              >取消
              </el-button>
            </div>
          </basic-container>
@@ -464,21 +461,21 @@
                    size="mini"
                    type="text"
                    @click="codeFixedValueOpetion('up', scope.row)"
                    >上移
                  >上移
                  </el-button>
                  <el-button
                    icon="el-icon-arrow-down"
                    size="mini"
                    type="text"
                    @click="codeFixedValueOpetion('down', scope.row)"
                    >下移
                  >下移
                  </el-button>
                  <el-button
                    icon="el-icon-minus"
                    size="mini"
                    type="text"
                    @click="codeFixedValueOpetion('remove', scope.row)"
                    >移除
                  >移除
                  </el-button>
                </template>
              </avue-crud>
@@ -490,7 +487,7 @@
                size="mini"
                type="primary"
                @click="saveCodeFixedOrClassifyValueOption('fixedValue')"
                >保存
              >保存
              </el-button>
            </div>
          </basic-container>
@@ -534,7 +531,7 @@
                size="mini"
                type="primary"
                @click="addCodeSecValue('codefixedsec')"
                >添加
              >添加
              </el-button>
              <el-button
                :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -544,7 +541,7 @@
                size="mini"
                type="success"
                @click="editCodeSecValue('codefixedsec')"
                >修改
              >修改
              </el-button>
              <el-button
                :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -553,7 +550,7 @@
                size="mini"
                type="danger"
                @click="delCodeSecValue('codefixedsec')"
                >删除
              >删除
              </el-button>
              <el-button
                class="button"
@@ -562,7 +559,7 @@
                size="mini"
                type="warning"
                @click="clearFixedOrClassifyForm('codefixedsec')"
                >取消
              >取消
              </el-button>
            </div>
          </basic-container>
@@ -576,17 +573,17 @@
      :title="basicSecDialogTitle"
      :visible.sync="addBasicCodeSettingBox"
      append-to-body
      class="avue-dialog avue-dialog--top"
      class="avue-dialog avue-dialog--top add-basicsec-dialog"
      destroy-on-close
      lock-scroll
      style="height: 100vh"
      style="height: 105vh"
      top="-3%"
      width="900px"
      @close="clearBasicAddForm"
    >
      <!--  第一层对话框,添加码段信息对话框中的内容 -->
      <div class="add-basicsec-total" style="overflow-y: auto; height: 58vh">
        <el-form :model="form" class="add-basicsec-form">
      <div class="add-basicsec-total">
        <el-form :model="form" :rules="rules" class="add-basicsec-form">
          <span class="left">
            <el-form-item
              :label-width="leftFormLabelWidth"
@@ -614,7 +611,7 @@
            <el-form-item
              :label-width="leftFormLabelWidth"
              label="码段类型"
              label="码段类型:"
              required
            >
              <el-select
@@ -629,6 +626,40 @@
                  :label="item.itemName"
                  :value="item.itemValue"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              :label-width="leftFormLabelWidth"
              label="前缀:">
              <!-- <el-input
                v-model="form.prefixCode"
                :readonly="basicSecOnlyRead"
              ></el-input> -->
              <el-select v-model="form.prefixCode" :disabled="basicSecOnlyRead" clearable>
                <el-option
                  v-for="(option, index) in preFixOrSuffixChars"
                  :key="index"
                  :label="option.label"
                  :value="option.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              :label-width="leftFormLabelWidth"
              label="后缀:">
              <!-- <el-input
                v-model="form.suffixCode"
                :readonly="basicSecOnlyRead">
              </el-input> -->
              <el-select v-model="form.suffixCode" :disabled="basicSecOnlyRead" clearable>
                <el-option
                  v-for="(option, index) in preFixOrSuffixChars"
                  :key="index"
                  :label="option.label"
                  :value="option.value">
                </el-option>
              </el-select>
            </el-form-item>
@@ -650,12 +681,12 @@
                :disabled="basicSecOnlyRead"
                style="margin-right: 20px"
              ></el-switch>
              <el-input-number
              <!-- <el-input-number
                v-show="form.serialDependFlag"
                v-model="form.serialDependOrder"
                :readonly="basicSecOnlyRead"
                controls-position="right"
              ></el-input-number>
              ></el-input-number> -->
            </el-form-item>
            <el-form-item :label-width="leftFormLabelWidth" label="是否为空:">
@@ -814,13 +845,13 @@
                  :disabled="basicSecOnlyRead"
                  filterable
                  placeholder="请选择"
                  @blur="inputSelectBlur"
                  clearable
                >
                  <el-option
                    v-for="item in enumParam.codeFillSeparator"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue"
                    :key="item.lable"
                    :label="item.lable"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
@@ -859,12 +890,20 @@
              </el-form-item>
              <el-form-item
                :label-width="rightFormLabelWidth"
                label="自定义的流水算法:"
                label="自定义流水算法:"
              >
                <el-input
                  v-model="form.customCodeSerialClass"
                  :readonly="basicSecOnlyRead"
                ></el-input>
                  <template>
                      <vciWebRefer
                        ref="refer"
                        :disabled="basicSecOnlyRead"
                        :display="true"
                        :referConfig="this.referConfig || {}"
                        :serialType="form.serialType"
                        :text="form.customCodeSerialClassText"
                        :value="form.customCodeSerialClass"
                        @setReferValue="setReferValue"
                      ></vciWebRefer>
                  </template>
              </el-form-item>
            </div>
            <!-- 层级码段 -->
@@ -878,6 +917,7 @@
                  v-model="form.codeLevelType"
                  :disabled="basicSecOnlyRead"
                  placeholder="请选择"
                  @change="changeLevelType"
                >
                  <el-option
                    v-for="item in enumParam.codeLevelType"
@@ -896,6 +936,7 @@
                  ref="codeLevelValue"
                  v-model.number="form.codeLevelValue"
                  :readonly="basicSecOnlyRead"
                  :disabled="form.codeLevelType != 'code_level_special'"
                ></el-input>
              </el-form-item>
              <el-form-item
@@ -997,7 +1038,7 @@
              <el-form-item
                :label-width="rightFormLabelWidth"
                label="日期格式:"
                required
                prop="Dateformat"
              >
                <el-input
                  ref="codeDateFormatStr"
@@ -1109,13 +1150,13 @@
                  :disabled="basicSecOnlyRead"
                  filterable
                  placeholder="请选择"
                  @blur="inputSelectBlur"
                  clearable
                >
                  <el-option
                    v-for="item in enumParam.codeFillSeparator"
                    :key="item.itemValue"
                    :label="item.itemName"
                    :value="item.itemValue"
                    :key="item.lable"
                    :label="item.lable"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
@@ -1125,13 +1166,14 @@
        </el-form>
      </div>
      <!-- 第一层对话框的按钮和分隔线条 -->
      <el-divider class="horizontal-line" direction="horizontal"></el-divider>
      <!-- <el-divider class="horizontal-line" direction="horizontal"></el-divider> -->
      <div slot="footer" class="dialog-footer">
        <el-button
          :disabled="!showbtn"
          type="primary"
          :loading="isLoadingSecCodeAddBtn"
          @click="saveOrEditBasicCode">保 存</el-button>
          type="primary"
          @click="saveOrEditBasicCode">保 存
        </el-button>
        <el-button @click="addBasicCodeSettingBox = false">取 消</el-button>
      </div>
@@ -1186,9 +1228,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>
@@ -1230,11 +1270,13 @@
        </avue-crud>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="saveSelectedParentClassify"
            >保 存</el-button
          >保 存
          </el-button
          >
          <el-button
            @click="parentClsfyParams.isShowParentClassifySettingBox = false"
            >取 消</el-button
          >取 消
          </el-button
          >
        </div>
      </el-dialog>
@@ -1255,6 +1297,8 @@
      >
      </refer-config-dialog>
    </el-dialog>
  </basic-container>
</template>
@@ -1279,7 +1323,7 @@
  addSave,
  refDataGridClassifySec,
} from "@/api/code/codebasic";
import { listClassifyLinkAttr } from "@/api/code/codeclassify";
import {listClassifyLinkAttr} from "@/api/code/codeclassify";
import {
  gridCodeFixedValue,
  addSaveCodeFixedValue,
@@ -1294,7 +1338,9 @@
  deleteCodeClassifyValue,
  saveCodeClassifyValueOrder,
} from "@/api/code/codeClassifyValue";
import { getDictionary } from "@/api/omd/enum";
import { getSelectList, getRegexStr } from "@/api/code/codeCharcter"
import {getDictionary} from "@/api/omd/enum";
// import {getDictionaryBiz} from "@/api/system/dictbiz";
import optionBasic from "@/const/code/codebasic";
import optionRule from "@/const/code/mdmrule";
import attrOption from "@/const/code/selectAttrOptionDialog";
@@ -1302,14 +1348,88 @@
import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog";
import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog";
import fixedValueOption from "@/const/code/fixedValueMgrDialog";
import { mapGetters } from "vuex";
import { getByRoleUserList } from "@/api/system/user";
import {mapGetters} from "vuex";
import {getByRoleUserList} from "@/api/system/user";
import func from "@/util/func";
import secTypeEnum from '@/enumpack/CodeSecTypeEnum';
import vciWebRefer from "../../components/refer/vciWebRefer";
export default {
  components: {vciWebRefer},
  data() {
    return {
      crudOption:{...optionRule},
      rules: {
        Dateformat: [
          {
            required: true,
            trigger: 'blur',
            validator: (rule, value, callback) => {
              const Formats = [
                'yy',
                'yyyy',
                'yy-MM',
                'yyMM',
                'yyyy-MM',
                'yyyyMM',
                'yy-MM-dd',
                'yyMMdd',
                'yyyy-MM-dd',
                'yyyyMMdd',
                'yyyy-MM-dd HH:mm:ss',
                'yy-MM-dd HH:mm:ss',
                'HH:mm:ss',
                'yyyyMMdd HH:mm:ss',
                'yyMMdd HH:mm:ss',
                'yyyy-MM-dd HHmmss',
                'yy-MM-dd HHmmss',
                'yyyyMMdd HHmmss',
                'yyMMdd HHmmss',
                'HHmmss'
              ];
              if (!Formats.includes(this.form.codeDateFormatStr)) {
                return callback(new Error('请输入正确日期格式,例如yyyy-MM-dd(并区分大小写)!'));
              }
              callback();
            }
          }
        ]
      },
      referConfig: {
        title: '自定义流水参照',
        showField: 'customCodeSerialClassText',
        field: 'customCodeSerialClass',
        fieldMap: {
          serialType: "serialType",
        },
        placeholder: '请选择自定义流水',
        options: {
          // 设置默认的属性
          url: 'api/ubcs-code/codeSerialAlgorithmController/gridCodeSerialAlgorithm',
          textField: 'name',
          valueField: 'classFullName',
          isMuti: false,
          type: "grid",
          method: 'get',
          tableConfig: {
            page: {
              limit: 15,
              page: 1
            },
            cols: [
              {title: '算法编号', field: 'id', width: 200},
              {title: '算法名称', field: 'name', width: 150},
              {title: '类全路径', field: 'classFullName', width: 300},
              {title: '类型', field: 'serialType', width: 300},
              {title: '描述', field: 'description'}
            ],
            queryColumns: [
              // {field: 'id', title: '算法编号'},
              // {field: 'name', title: '算法名称'}
            ]
          }
        }
      },
      crudOption: {...optionRule},
      ruleForm: {},
      query: {},
      loading: true,
@@ -1532,8 +1652,10 @@
        secType: "codefixedsec", //码段类型
        description: "", //描述
        serialDependFlag: false, //是否流水依赖
        serialDependOrder: "", //流水依赖顺序
        //serialDependOrder: "", //流水依赖顺序
        nullableFlag: false, //是否为空
        prefixCode: "", //前缀
        suffixCode: "", //后缀
        displayFlag: false, //
        componentCodeFlag: false, //是否参与编码
        pkCodeRule: "", //所属编码规则
@@ -1566,6 +1688,9 @@
      //引用码段中参照配置组件相关参数
      referConfigOption: {},
      referConfigVisble: false,
      preFixOrSuffixChars: [], //前后缀字符列表
    };
  },
  computed: {
@@ -1574,12 +1699,12 @@
      return {
        // 编码规则相关按钮
        addBtn: this.vaildData(this.permission.code_rule.code_rule_add, false),
        viewBtn: this.vaildData(this.permission.code_rule.code_rule_view, false),
        delBtn: this.vaildData(this.permission.code_rule.code_rule_delete, 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),
        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),
@@ -1587,16 +1712,20 @@
        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 {
        // 基础码段相关按钮
        basicAddBtn: this.vaildData(this.permission.code_rule.code_basic_add, false),
        basicDeleteBtn: this.vaildData(this.permission.code_rule.code_basic_delete, false),
        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),
        basicEditBtn: this.vaildData(this.permission.code_rule.code_basic_edit, false),
        basicViewBtn: this.vaildData(this.permission.code_rule.   code_basic_view, false),
        basicMoveupBtn: this.vaildData(this.permission.code_rule.code_basic_moveup, false),
        basicDownBtn: this.vaildData(this.permission.code_rule.code_basic_down, false),
      };
      }
    },
  },
  watch: {},
@@ -1610,8 +1739,28 @@
      this.$refs.crudBasic.doLayout();
    });
  },
  // 生命钩子函数
  beforeDestroy() {
    // 清除指定缓存
    localStorage.removeItem('codeSecType');
    localStorage.removeItem('codeSecLength');
    localStorage.removeItem('codeFillType');
    localStorage.removeItem('codeLevelType');
    localStorage.removeItem('codeCutType');
    localStorage.removeItem('codeGetValueType');
  },
  methods: {
    //自定义流水失焦
    setReferValue(data) {
      if (data.field) {
        // this.form[data.field] = data.value || "";
        this.form.customCodeSerialClass = data.rawData[0].id || "";
        console.log(this.form.customCodeSerialClass);
        this.form[data.showField] = data.text || "";
        this.form.serialType = data.rawData[0].serialType || "";
        this.form.customCodeSerialType = data.rawData[0].serialType || "";
      }
    },
    /** 转移规则所有者对话框 */
    escapeOwner() {
      if (this.selectionList.length === 0) {
@@ -1670,7 +1819,7 @@
      //转换成JSON字符串进行父组件回显
      let submitFormJson = JSON.stringify(content);
      this.form.referConfig = submitFormJson || "";
      debugger;
      // debugger;
    },
    /** 引用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */
    echoReferBtmType(content) {
@@ -1850,7 +1999,7 @@
    /** 加载固定码段码值表数据*/
    loadFixedValueTableData(row) {
      this.fixedValueOptionLoading = true;
      gridCodeFixedValue(1, -1, { codeFixedSecOid: row.oid }).then((res) => {
      gridCodeFixedValue(1, -1, {codeFixedSecOid: row.oid}).then((res) => {
        this.fixedValueData = res.data.data.records;
        this.fixedValueOptionLoading = false;
      });
@@ -1863,9 +2012,12 @@
      this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid;
    },
    /** 新增码值*/
    addCodeSecValue(condition) {
    async addCodeSecValue(condition) {
      if (condition === "codefixedsec") {
        if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) {
          return;
        }
        if(!await this.regexCharacter(this.codeFixdForm.id)){
          return;
        }
        this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysec.oid;
@@ -1887,7 +2039,14 @@
          }
        );
      } else {
        if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) {
        // if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) {
        //   return;
        // }
        if(!this.codeClassifyForm.name){
          this.$message.error('请输入名称');
          return;
        }
        if(!await this.regexCharacter(this.codeClassifyForm.id)){
          return;
        }
        this.codeClassifyForm.codeClassifySecOid =
@@ -1912,39 +2071,13 @@
        );
      }
    },
    /** 清空码值表单 */
    clearFixedOrClassifyForm(condition) {
      //点击取消时清空表单与当前选中的码值,并禁用按钮
      this.selectedFixedOrCodeclassifyValue = "";
      if (condition === "close") {
        this.codeFixdForm = this.$options.data().codeFixdForm;
        this.codeClassifyForm = this.$options.data().codeClassifyForm;
      }
      if (condition === "codefixedsec") {
        this.codeFixdForm.description = "";
        this.codeFixdForm.codeFixedSecOid = "";
      } else {
        this.codeClassifyForm = this.$options.data().codeClassifyForm;
      }
    },
    /** 添加或修改码值之前对码值长度根据规则进行校验 */
    tipsCodeSecValueMessage(id) {
      if (id.trim() == "") {
        this.$message.warning("码值不能为空!");
        return false;
      }
      if (id.trim().length > this.codefixedsecOrCodeclassifysec.codeSecLength) {
        this.$message.warning(
          "码值长度不能大于" + this.codefixedsecOrCodeclassifysec.codeSecLength
        );
        return false;
      }
      return true;
    },
    /** 修改码值 */
    editCodeSecValue(condition) {
    async editCodeSecValue(condition) {
      if (condition == "codefixedsec") {
        if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) {
          return;
        }
        if(!await this.regexCharacter(this.codeFixdForm.id)){
          return;
        }
        //以前是直接把当前选中行的所有数据都进行提交,但其实只需要传输一些必要参数即可,这儿做了修改,需要传其他参数的请自行添加
@@ -1954,7 +2087,7 @@
          description: this.codeFixdForm.description,
          id: this.codeFixdForm.id,
          codeFixedSecOid:
            this.selectedFixedOrCodeclassifyValue.codefixedsecoid,
          this.selectedFixedOrCodeclassifyValue.codefixedsecoid,
        };
        editCodeFixedValue(editData).then(
          () => {
@@ -1972,6 +2105,9 @@
        );
      } else {
        if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) {
          return;
        }
        if(!await this.regexCharacter(this.codeClassifyForm.id)){
          return;
        }
        this.codeClassifyForm.oid =
@@ -2001,6 +2137,54 @@
          }
        );
      }
    },
    /**
     * 可用字符集码值正则校验
     * @return true:满足限制,false:不满足限制
     */
    async regexCharacter(str){
      var regex = null;
      // 获取到配置好的可用字符正则
      await getRegexStr({codeRuleId: this.selectionList[0].oid,chartType: "charset"}).then(res=>{
        // console.log(res.data.data);
        regex = new RegExp(res.data.data);
      });
      // console.log(regex);
      // console.log(regex.test(str));
      if(regex != "" && !regex.test(str)){
        this.$message.warning("添加的码值未在可用字符集中配置!");
        return false;
      }
      return true;
    },
    /** 清空码值表单 */
    clearFixedOrClassifyForm(condition) {
      //点击取消时清空表单与当前选中的码值,并禁用按钮
      this.selectedFixedOrCodeclassifyValue = "";
      if (condition === "close") {
        this.codeFixdForm = this.$options.data().codeFixdForm;
        this.codeClassifyForm = this.$options.data().codeClassifyForm;
      }
      if (condition === "codefixedsec") {
        this.codeFixdForm.description = "";
        this.codeFixdForm.codeFixedSecOid = "";
      } else {
        this.codeClassifyForm = this.$options.data().codeClassifyForm;
      }
    },
    /** 添加或修改码值之前对码值长度根据规则进行校验 */
    tipsCodeSecValueMessage(id) {
      if (id.trim() == "") {
        this.$message.warning("码值不能为空!");
        return false;
      }
      if (id.trim().length > this.codefixedsecOrCodeclassifysec.codeSecLength) {
        this.$message.warning(
          "码值长度不能大于" + this.codefixedsecOrCodeclassifysec.codeSecLength
        );
        return false;
      }
      return true;
    },
    /** 删除码值 */
    delCodeSecValue(condition) {
@@ -2375,7 +2559,7 @@
    },
    /** 修改规则状态:启用、停用、发布 */
    updateStatus(oid, update) {
      updateStatus({ oid: oid, ts: new Date().getTime, update: update }).then(
      updateStatus({oid: oid, ts: new Date().getTime, update: update}).then(
        () => {
          this.releadDisabled = false;
          this.onLoad(this.page);
@@ -2392,14 +2576,14 @@
    /** 发布编码规则 */
    async enableOrDeactivatse(oid, update) {
      if (update === "release") {
        this.releadDisabled = true;
        // 避免用户重复点击按钮
        this.releadDisabled = true;
        await checkLikeCodeRule(oid)
          .then((res) => {
            //console.log(res)
            if (res.data.data.success) {
              this.updateStatus(oid, update);
            }else {
            } else {
              this.$confirm(res.data.data.msg, "提示", {
                distinguishCancelAndClose: true,
                confirmButtonText: "继续发布",
@@ -2415,15 +2599,14 @@
                this.releadDisabled = false;
              });
            }
          })
          .catch((error) => {
          }).catch((error) => {
            this.releadDisabled = false;
          });
        this.releadDisabled = false;
      } else {
        this.updateStatus(oid, update);
      }
    },
    /** 打开编码规则克隆对话框*/
    openCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
@@ -2431,7 +2614,6 @@
      }
      this.cloneSettingBox = true;
    },
    /** 打开从其他编码规则中克隆码段对话框*/
    openOtherCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
@@ -2462,7 +2644,7 @@
      })
        .then(() => {
          let ts = new Date(currentData.ts).getTime();
          return clearAllCode({ oid: currentData.oid, ts: ts });
          return clearAllCode({oid: currentData.oid, ts: ts});
        })
        .then(() => {
          this.this.onLoad(this.page);
@@ -2524,7 +2706,7 @@
          // 只支持每次单条记录删除
          let oid = this.selectionList[0].oid;
          let ts = new Date(this.selectionList[0].ts).getTime();
          return remove({ oid: oid, ts: ts });
          return remove({oid: oid, ts: ts});
        })
        .then(() => {
          this.onLoad(this.page);
@@ -2607,7 +2789,7 @@
      gridCodeRule(
        page.currentPage,
        page.pageSize,
        Object.assign({},params,this.query),
        Object.assign({}, params, this.query),
      ).then((res) => {
        //console.log(res.data);
        const data = res.data.data;
@@ -2650,7 +2832,6 @@
    },
    /** 打开新增或编辑基础码段对话框*/
    openBasicDialog(condition, row) {
      //console.log(row);
      if (condition == "add") {
        this.basicSecDialogTitle = "添加码段信息";
        this.showbtn = true;
@@ -2663,19 +2844,29 @@
        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.loadPreOrSuffixChars();
      // 补位时字符
      // this.loadCodeFillSeparator();
      this.addBasicCodeSettingBox = true;
    },
    /** 获取前后缀字符 */
    loadPreOrSuffixChars(){
      getSelectList({codeRuleId: this.selectionList[0].oid,chartType: "prefix"}).then(res=>{
        this.preFixOrSuffixChars = res.data.data;
        // console.log(this.preFixOrSuffixChars);
      })
    },
    /** 新增基础码段*/
    async saveOrEditBasicCode() {
      this.isLoadingSecCodeAddBtn = true;
      if (
        this.selectionList[0].oid == null ||
        this.selectionList[0].oid == ""
@@ -2683,25 +2874,28 @@
        this.$message.warning("缺失必要参数,请重新选择编码规则后再试!");
        return;
      }
      if (!this.checkForm()) {
        return;
      }
      this.isLoadingSecCodeAddBtn = true;
      this.form.pkCodeRule = this.selectionList[0].oid;
      if (this.form.oid == "" || this.form.oid == null) {
        if (this.checkForm()) {
          await addSave(this.form).then(
            () => {
              this.$message({
                type: "success",
                message: "操作成功!",
              });
            },
            (error) => {
              window.console.log(error);
            }
          );
          // 关闭对话框
          this.addBasicCodeSettingBox = false;
        }
        // 点击新增基础码段,关闭窗口之后触发重新加载
        this.loadBasic(this.selectionList[0]);
        await addSave(this.form).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            // console.log(this.form)
            // 关闭对话框
            this.addBasicCodeSettingBox = false;
            // 点击新增基础码段,关闭窗口之后触发重新加载
            this.loadBasic(this.selectionList[0]);
          },
          (error) => {
            window.console.log(error);
          }
        );
      } else {
        // 可能参照引用的业务类型会发生改变所以这儿直接对referConfig的json进行改变
        if (
@@ -2715,21 +2909,38 @@
          // let referValueInfo = JSON.parse(this.form.referValueInfo);
          // referValueInfo.referType = this.form.referBtmId;
        }
        editSave(this.form).then(
        let oldBasicSec = this.selectionBasicList.slice(-1)[0];
        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的表单校验设置不上所以采用判断的方式来做表单检验方式*/
@@ -2881,6 +3092,32 @@
          this.$refs.codeDateFormatStr.$el.querySelector("input").focus();
          return false;
        }
        const Formats = [
          'yy',
          'yyyy',
          'yy-MM',
          'yyMM',
          'yyyy-MM',
          'yyyyMM',
          'yy-MM-dd',
          'yyMMdd',
          'yyyy-MM-dd',
          'yyyyMMdd',
          'yyyy-MM-dd HH:mm:ss',
          'yy-MM-dd HH:mm:ss',
          'HH:mm:ss',
          'yyyyMMdd HH:mm:ss',
          'yyMMdd HH:mm:ss',
          'yyyy-MM-dd HHmmss',
          'yy-MM-dd HHmmss',
          'yyyyMMdd HHmmss',
          'yyMMdd HHmmss',
          'HHmmss'
        ];
        if (!Formats.includes(this.form.codeDateFormatStr)) {
          this.$message.warning('请检查日期格式!');
          return;
        }
      } else if (this.form.secType === "codeclassifysec") {
        //分类码段
        if (form.codeSecLengthType == "") {
@@ -2926,6 +3163,12 @@
      }
      return true;
    },
    /** 层级码段选择为最小层级时清空层级的值 */
    changeLevelType(){
      if(this.form.codeLevelType === 'code_level_min'){
        this.form.codeLevelValue = '';
      }
    },
    /** 判断数据是否选择以及只能选择单条数据*/
    tipsMessage(list) {
      if (list.length != 1) {
@@ -2939,7 +3182,7 @@
      if (!this.tipsMessage(this.selectionBasicList)) {
        return;
      }
      if (this.selectionList.at(-1).lcStatus != "Editing") {
      if (this.selectionList.slice(-1)[0].lcStatus != "Editing") {
        this.$message.warning('编码规则状态不是"编辑中",不允许删除码段!');
        return;
      }
@@ -2951,7 +3194,7 @@
      })
        .then(() => {
          let ts = new Date(this.selectionBasicList[0].ts).getTime();
          return deleteData({ oid: oid, ts: ts });
          return deleteData({oid: oid, ts: ts});
        })
        .then(() => {
          this.loadBasic({
@@ -2975,7 +3218,7 @@
        //存储当前关联的编码规则相关信息
        this.currentCodeRuleOid = row.oid;
        this.currentRuleLcStatus = row.lcStatus;
        this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false);
        this.sendGridCodeBasicSec({pkCodeRule: row.oid}, false);
      }
    },
    /** 发送加载基础码段的请求*/
@@ -3032,7 +3275,7 @@
    },
    basicSearchReset() {
      this.sendGridCodeBasicSec(
        { pkCodeRule: this.selectionList[this.selectionList.length - 1].oid },
        {pkCodeRule: this.selectionList[this.selectionList.length - 1].oid},
        false
      );
    },
@@ -3076,7 +3319,7 @@
        return;
      }
      downOrderNum(row.oid).then(() => {
        this.loadBasic({ oid: codeRuleOid });
        this.loadBasic({oid: codeRuleOid});
        this.$message({
          type: "success",
          message: "操作成功!",
@@ -3085,7 +3328,7 @@
    },
    /** 基础码段刷新时查询*/
    refreshChangeBasicSec() {
      this.loadBasic(this.selectionList.at(-1));
      this.loadBasic(this.selectionList.slice(-1)[0]);
    },
    /** 操作基础码段中搜索清空等按钮的显示/隐藏*/
    hideBasicTable(hideBoolean) {
@@ -3153,48 +3396,37 @@
        this.form.referConfig = "";
      }
    },
    /** 补位时的字符,实现可输可选*/
    inputSelectBlur(e) {
    /** 补位时的字符,实现可输可选 TODO:因为增加了可用字符集控制,所以这儿弃用了可用字符集的效果*/
    /*inputSelectBlur(e) {
      if (e.target.value) {
        this.form.codeFillSeparator = e.target.value;
      }
    },
    },*/
    /** 码段类型改变时,增加对应的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, //所属编码规则
        };
      }
      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, //所属编码规则
        prefixCode: row != null ? row.prefixCode : this.form.prefixCode, //前缀
        suffixCode: row != null ? row.suffixCode : this.form.suffixCode, //后缀
        // customCodeSerialClass: row != null ? row.customCodeSerialClass : this.form.customCodeSerialClass
      };
      if (this.form.secType === "codefixedsec") {
        //固定码段
        this.form = Object.assign({}, this.form, {
@@ -3237,8 +3469,8 @@
            row != null && row.serialStart != "" ? row.serialStart : 1, //流水号起始值
          serialStep: row != null && row.serialStep != "" ? row.serialStep : 1, //流水的步长
          codeFillType: row != null && row.codeFillType != ""
              ? row.codeFillType
              : "code_fill_left", //编码补位方式
            ? row.codeFillType
            : "code_fill_left", //编码补位方式
          // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,    //补位时的字符,选中的下拉框的下标
          codeFillSeparator:
            row != null && row.codeFillSeparator != ""
@@ -3251,13 +3483,21 @@
          codeFillFlag:
            row != null && row.codeFillFlag != ""
              ? row.codeFillFlag == "true"
                ? true
                : false
              ? true
              : false
              : false, //流水是否补码
          customCodeSerialClass:
            row != null && row.customCodeSerialClass != ""
              ? row.customCodeSerialClass
              : "", //自定义流水算法
          customCodeSerialClassText:
            row != null && row.customCodeSerialClassText != ""
              ? row.customCodeSerialClassText
              : "", //自定义流水算法显示值
              customCodeSerialType:
            row != null && row.customCodeSerialType != ""
              ? row.customCodeSerialType
              : "", //自定义流水算法类型
        });
        this.loadCodeFillType();
        this.loadCodeFillSeparator();
@@ -3315,8 +3555,8 @@
          matchClassifyValueFlag:
            row != null && row.matchClassifyValueFlag != ""
              ? row.matchClassifyValueFlag == "true"
                ? true
                : false
              ? true
              : false
              : false, //是否自动匹配值
          parentClassifySecOid:
            row != null && row.parentClassifySecOid != ""
@@ -3347,13 +3587,22 @@
        this.loadCodeFillSeparator();
      }
    },
    // 判断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) {
      let enumCach = JSON.parse(localStorage.getItem(enumKey));
      if (enumCach == null) {
        getDictionary({ code: enumKey }).then((res) => {
        getDictionary({code: enumKey}).then((res) => {
          enumCach = res.data.data;
          localStorage.setItem(enumKey, JSON.stringify(res.data.data));
          localStorage.setItem(enumKey, JSON.stringify(enumCach));
        });
      }
      return enumCach;
@@ -3363,7 +3612,7 @@
      this.loadCodeSecType();
      this.loadCodeSecLength();
      this.loadCodeFillType();
      this.loadCodeFillSeparator();
      // this.loadCodeFillSeparator();
      this.loadCodeLevelType();
      this.loadCodeCutType();
      this.loadCodeGetValueType();
@@ -3380,16 +3629,16 @@
      this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType") || [];
    },
    loadCodeFillSeparator() {
      let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator"));
      if (enumCach == null) {
        getDictionary("codeFillSeparator").then((res) => {
          this.enumParam.codeFillSeparator = res.data.data;
          localStorage.setItem(
            "codeFillSeparator",
            JSON.stringify(res.data.data)
          );
        });
      }
      //let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator"));
      //if (enumCach == null) {
      getSelectList({codeRuleId: this.selectionList[0].oid,chartType: "fillerChar"}).then((res) => {
        this.enumParam.codeFillSeparator = res.data.data;
        //console.log(this.enumParam.codeFillSeparator);
        // localStorage.setItem(
        //   "codeFillSeparator",
        //   JSON.stringify(res.data.data)
        // );
      });
    },
    loadCodeLevelType() {
      this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType") || [];
@@ -3406,7 +3655,7 @@
        this.$message.warning("请选择一条编码规则!");
        return;
      }
      if(this.selectionList.length> 1){
      if (this.selectionList.length > 1) {
        this.$message.warning("只能选择一条编码规则!");
        return;
      }
@@ -3422,10 +3671,6 @@
  font-size: 12px !important;
}
.code-rule-crud > .avue-crud__search,
.code-basic-crud > .avue-crud__search {
  margin-bottom: -15px;
}
.clone-input-textarea > .el-form-item__content {
  width: 495px;
@@ -3489,11 +3734,11 @@
}
.left
  > .el-form-item
  > .el-form-item__content
  > .el-input-number
  > .el-input
  > .el-input__inner {
> .el-form-item
> .el-form-item__content
> .el-input-number
> .el-input
> .el-input__inner {
  width: 120px;
}
@@ -3503,8 +3748,14 @@
}
/** 新增码段 */
.add-basicsec-dialog > .el-dialog > .el-dialog__body {
  padding: 20px 20px 4px;
  margin-bottom: 30px;
}
.add-basicsec-total {
  width: 100%;
  height: 500px;
}
.add-basicsec-total .el-input__inner,
@@ -3523,9 +3774,11 @@
.add-basicsec-form > .el-divider--vertical {
  width: 2px;
  height: 100%;
  margin: 0 auto;
  /* position: fixed; */
  height: 78%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.left {
@@ -3536,13 +3789,14 @@
.right {
  /* float: right; */
  margin-right: 2vw;
  /* margin-right: 1vw; */
  height: 100%;
  width: auto;
}
.right > .el-form > .el-form-item {
  margin-bottom: 8px;
.add-basicsec-form > .left > .el-form-item,
.add-basicsec-form > .right > div > .el-form-item {
  margin-bottom: 12px;
}
/* 对话框底部按钮边框样式 */
@@ -3559,4 +3813,5 @@
/* .code-total > .basic-container__card {
    height: 100%;
  } */
</style>