From f6b61a485501f326debe52d77ea65d87fb34b37f Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期三, 05 三月 2025 17:57:09 +0800
Subject: [PATCH] 完善集成日志查询

---
 Source/UBCS-WEB/src/views/code/code.vue | 1517 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 745 insertions(+), 772 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 65295a7..60297f3 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -1,150 +1,147 @@
 <template>
-  <basic-container class="code-total" style="height: 100%">
+  <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-show="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-show="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-show="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-show="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
-            icon="el-icon-delete"
-            plain
-            size="small"
-            type="danger"
-            @click="handleDelete"
-          >
-            鍒� 闄�
-          </el-button>
-          <el-button
-            icon="el-icon-search"
-            plain
-            size="small"
-            type="primary"
-            @click="openAdvancedQuery('codeRule')"
-          >
-            楂樼骇鏌ヨ
-          </el-button>
-          <el-button
-            icon="icon-kelong"
-            plain
-            size="small"
-            @click="openCodeRuleDialog"
-          >
-            鍏� 闅�
-          </el-button>
-          <el-button
-            icon="icon-lianjiekelong"
-            plain
-            size="small"
-            style="font-size: 12px"
-            @click="openOtherCodeRuleDialog"
-          >
-            浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
-          </el-button>
-          <el-button
-            icon="el-icon-s-help"
-            plain
-            size="small"
-            @click="handleRange"
-          >
-            浣跨敤鑼冨洿
-          </el-button>
-          <el-button
-            icon="icon-qingkong"
-            plain
-            size="small"
-            @click="clearAllCodeSec"
-          >
-            娓呯┖鐮佸��
-          </el-button>
-          <el-button
-            icon="el-icon-guide"
-            plain
-            size="small"
-            @click="escapeOwner"
-          >
-            杞Щ鎵�鏈夎��
-          </el-button>
-          <el-button
-            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>
 
     <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
@@ -156,7 +153,7 @@
     >
     </advanced-query>
 
-    <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
+    <!-- 浠ヤ笅鏄紪鐮佽鍒欑浉鍏冲璇濇 -->
     <el-dialog
       :visible.sync="codeRangeSettingBox"
       append-to-body
@@ -177,158 +174,26 @@
     </el-dialog>
 
     <!-- 缂栫爜瑙勫垯,鍏嬮殕瀵硅瘽妗� -->
-    <el-dialog
+    <clone-rule-dialog
+      :ruleData="selectionList[0]"
       :visible.sync="cloneSettingBox"
-      append-to-body
-      class="avue-dialog avue-dialog--top"
-      style="height: 100vh"
-      title="鍏嬮殕缂栫爜瑙勫垯"
-      top="-3%"
-      width="800px"
-    >
-      <div>
-        <el-row>
-          <el-form ref="form" :inline="true" :model="form" label-width="80px">
-            <el-form-item label="缂栧彿" required>
-              <el-input v-model="cloneCodeRuleForm.id"></el-input>
-            </el-form-item>
-            <el-form-item label="鍚嶇О" required>
-              <el-input v-model="cloneCodeRuleForm.name"></el-input>
-            </el-form-item>
-            <el-form-item class="clone-input-textarea" label="鎻忚堪">
-              <el-input
-                v-model="cloneCodeRuleForm.description"
-                :autosize="{ minRows: 3, maxRows: 5 }"
-                type="textarea"
-              ></el-input>
-            </el-form-item>
-          </el-form>
-        </el-row>
-        <el-row>
-          <p
-            style="
-              margin: 0 0px 16px 50%;
-              font-weight: 500;
-              font-size: 20px;
-              color: #000;
-            "
-          >
-            鐮佹绠$悊
-          </p>
-          <avue-crud
-            :data="cloneData"
-            :option="cloneOption"
-            :table-loading="cloneTableLoading"
-            class="clone-avue-crud"
-            @on-load="cloneDataOnLoad"
-          >
-            <template slot="menu" slot-scope="scope">
-              <el-button
-                v-show="scope.row.orderNum > 1"
-                icon="el-icon-arrow-up"
-                plain
-                size="small"
-                type="text"
-                @click="upOrderNum(scope.row)"
-                >涓婄Щ
-              </el-button>
-              <el-button
-                icon="el-icon-arrow-down"
-                plain
-                size="small"
-                type="text"
-                @click="downOrderNum(scope.row)"
-                >涓嬬Щ
-              </el-button>
-            </template>
-          </avue-crud>
-        </el-row>
-      </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="saveCloneCodeRule">淇� 瀛�</el-button>
-        <el-button @click="cloneSettingBox = false">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
+      @refreshRuleTable="onLoad">
+    </clone-rule-dialog>
 
     <!-- 缂栫爜瑙勫垯,浠庡叾浠栬鍒欏厠闅嗗璇濇 -->
-    <el-dialog
+    <clone-other-basic-sec-dialog
+      :quiltCloneCodeRule="selectionList[0]"
       :visible.sync="cloneOtherCodeRuleSettingBox"
-      append-to-body
-      class="avue-dialog avue-dialog--top"
-      destroy-on-close
-      style="height: 100vh"
-      title="鍏嬮殕缂栫爜瑙勫垯鐨勫熀纭�淇℃伅"
-      top="-3%"
-      width="800px"
-    >
-      <div>
-        <el-row>
-          <p
-            style="
-              margin-top: -20px;
-              margin-bottom: 4px;
-              font-weight: 570;
-              font-size: 19px;
-              color: #0e2d5f;
-            "
-          >
-            缂栫爜瑙勫垯
-          </p>
-          <avue-crud
-            ref="crudCloneCodeRuleOther"
-            :data="data"
-            :option="cloneCodeRuleOption"
-            :page.sync="page"
-            :table-loading="loading"
-            class="other-clone-coderule-crud"
-            @row-click="codeOtherCloneRuleRowClick"
-            @size-change="sizeChange"
-            @selection-change="selectionOtherCloneCodeRuleChange"
-            @search-change="searchOtherCloneChange"
-            @search-reset="searchOtherCloneReset"
-            @on-load="onLoad"
-          >
-          </avue-crud>
-        </el-row>
-        <el-row style="margin-top: 10px; border-top: 1px solid #ebeef5">
-          <p
-            style="
-              margin-top: 10px;
-              margin-bottom: 4px;
-              font-weight: 570;
-              font-size: 19px;
-              color: #0e2d5f;
-            "
-          >
-            鐮佹淇℃伅
-          </p>
-          <avue-crud
-            ref="crudCloneCodeBasicOther"
-            :data="basicData"
-            :option="cloneBasicOption"
-            :table-loading="loadingBasic"
-            class="other-clone-codebasic-crud"
-            @row-click="codeOtherCloneBasicRowClick"
-            @selection-change="selectionOtherCloneCodeBasicChange"
-          >
-          </avue-crud>
-        </el-row>
-      </div>
-      <div slot="footer" class="dialog-footer" style="height: 50px">
-        <el-button type="primary" @click="saveOtherCodeBasic">淇� 瀛�</el-button>
-        <el-button @click="cloneOtherCodeRuleSettingBox = false"
-          >鍙� 娑�</el-button
-        >
-      </div>
-    </el-dialog>
+      @refreshRuleTable="onLoad">
+    </clone-other-basic-sec-dialog>
 
     <!-- 缂栫爜瑙勫垯,杞Щ鎵�鏈夎�呭璇濇 -->
     <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
@@ -354,114 +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-show="currentRuleLcStatus != 'Editing'"
-            icon="el-icon-view"
-            plain
-            size="small"
-            type="text"
-            @click="openBasicDialog('view', scope.row)"
+          color: #0e2d5f;">
+          鐮佹绠$悊
+        </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-show="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-show="
-              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-show="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
-            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
-            :disabled="selectionList.length <= 0"
-            icon="el-icon-plus"
-            size="small"
-            type="primary"
-            @click="openAddBasicCodeSec"
-          >
-            鏂� 澧�
-          </el-button>
-          <el-button
-            :disabled="selectionList.length <= 0"
-            icon="el-icon-delete"
-            plain
-            size="small"
-            type="danger"
-            @click="deleteBasicCode(scope.row)"
-          >
-            鍒� 闄�
-          </el-button>
-          <el-button
-            :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>
 
     <!-- 鐮佹鐮佸�肩鐞嗗璇濇 -->
@@ -485,9 +343,8 @@
               style="height: 60vh; margin-bottom: -40px"
             >
               <basic-container>
-                <div class="abox" v-for="item in classifyValueTreeData">
+                <div class="abox">
                   <avue-tree
-                    :node-key="item.oid"
                     :data="classifyValueTreeData"
                     :option="classisyValueTreeOption"
                     style="height: calc(60vh - 100px);"
@@ -510,7 +367,7 @@
                 size="mini"
                 type="primary"
                 @click="codeClassifyValueOpetion('up')"
-                >涓婄Щ
+              >涓婄Щ
               </el-button>
               <el-button
                 class="button"
@@ -518,7 +375,7 @@
                 size="mini"
                 type="primary"
                 @click="codeClassifyValueOpetion('down')"
-                >涓嬬Щ
+              >涓嬬Щ
               </el-button>
             </div>
           </basic-container>
@@ -526,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>
@@ -546,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 == ''"
@@ -565,7 +414,7 @@
                 size="mini"
                 type="success"
                 @click="editCodeSecValue('codeclassifyvaluesec')"
-                >淇敼
+              >淇敼
               </el-button>
               <el-button
                 :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -574,7 +423,7 @@
                 size="mini"
                 type="danger"
                 @click="delCodeSecValue('codeclassifyvaluesec')"
-                >鍒犻櫎
+              >鍒犻櫎
               </el-button>
               <el-button
                 class="button"
@@ -583,7 +432,7 @@
                 size="mini"
                 type="warning"
                 @click="clearFixedOrClassifyForm('codeclassifyvaluesec')"
-                >鍙栨秷
+              >鍙栨秷
               </el-button>
             </div>
           </basic-container>
@@ -612,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>
@@ -638,7 +487,7 @@
                 size="mini"
                 type="primary"
                 @click="saveCodeFixedOrClassifyValueOption('fixedValue')"
-                >淇濆瓨
+              >淇濆瓨
               </el-button>
             </div>
           </basic-container>
@@ -682,7 +531,7 @@
                 size="mini"
                 type="primary"
                 @click="addCodeSecValue('codefixedsec')"
-                >娣诲姞
+              >娣诲姞
               </el-button>
               <el-button
                 :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -692,7 +541,7 @@
                 size="mini"
                 type="success"
                 @click="editCodeSecValue('codefixedsec')"
-                >淇敼
+              >淇敼
               </el-button>
               <el-button
                 :disabled="selectedFixedOrCodeclassifyValue == ''"
@@ -701,7 +550,7 @@
                 size="mini"
                 type="danger"
                 @click="delCodeSecValue('codefixedsec')"
-                >鍒犻櫎
+              >鍒犻櫎
               </el-button>
               <el-button
                 class="button"
@@ -710,7 +559,7 @@
                 size="mini"
                 type="warning"
                 @click="clearFixedOrClassifyForm('codefixedsec')"
-                >鍙栨秷
+              >鍙栨秷
               </el-button>
             </div>
           </basic-container>
@@ -724,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"
@@ -762,7 +611,7 @@
 
             <el-form-item
               :label-width="leftFormLabelWidth"
-              label="鐮佹绫诲瀷"
+              label="鐮佹绫诲瀷:"
               required
             >
               <el-select
@@ -777,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>
@@ -798,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="鏄惁涓虹┖:">
@@ -962,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>
@@ -1007,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>
             <!-- 灞傜骇鐮佹 -->
@@ -1026,6 +917,7 @@
                   v-model="form.codeLevelType"
                   :disabled="basicSecOnlyRead"
                   placeholder="璇烽�夋嫨"
+                  @change="changeLevelType"
                 >
                   <el-option
                     v-for="item in enumParam.codeLevelType"
@@ -1044,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
@@ -1145,7 +1038,7 @@
               <el-form-item
                 :label-width="rightFormLabelWidth"
                 label="鏃ユ湡鏍煎紡:"
-                required
+                prop="Dateformat"
               >
                 <el-input
                   ref="codeDateFormatStr"
@@ -1257,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>
@@ -1273,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>
 
@@ -1334,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>
@@ -1378,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>
@@ -1403,6 +1297,8 @@
       >
       </refer-config-dialog>
     </el-dialog>
+
+
   </basic-container>
 </template>
 
@@ -1415,7 +1311,6 @@
   remove,
   listUseRange,
   updateStatus,
-  clone,
   clearAllCode,
   checkLikeCodeRule,
 } from "@/api/code/mdmrule";
@@ -1425,11 +1320,10 @@
   upOrderNum,
   deleteData,
   editSave,
-  cloneCodeBasic,
   addSave,
   refDataGridClassifySec,
 } from "@/api/code/codebasic";
-import { listClassifyLinkAttr } from "@/api/code/codeclassify";
+import {listClassifyLinkAttr} from "@/api/code/codeclassify";
 import {
   gridCodeFixedValue,
   addSaveCodeFixedValue,
@@ -1444,25 +1338,98 @@
   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 cloneOption from "@/const/code/cloneOption";
-import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
-import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
 import optionRule from "@/const/code/mdmrule";
 import attrOption from "@/const/code/selectAttrOptionDialog";
 import treeOption from "@/const/code/classifyTreeOptionDialog";
 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 {
-      nodeKey:'',
+      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,
@@ -1478,24 +1445,11 @@
       data: [],
       currentRuleLcStatus: "",
 
-      /*鍏嬮殕瀵硅瘽妗嗘帶鍒跺彉閲�*/
+      /*鍏嬮殕缂栫爜瑙勫垯瀵硅瘽妗嗘帶鍒跺彉閲�*/
       cloneSettingBox: false,
-      cloneTableLoading: false,
-      cloneOption: cloneOption,
-      cloneData: [],
-      cloneCodeRuleForm: {
-        id: "",
-        name: "",
-        description: "",
-      },
 
       /*浠庡叾浠栬鍒欏厠闅嗙爜娈�*/
       cloneOtherCodeRuleSettingBox: false,
-      cloneBasicOption: cloneBasicOption,
-      cloneCodeRuleOption: cloneCodeRuleOption,
-      selectionOtherCloneCodeBasicList: [], // 姝ょ晫闈㈠唴褰撳墠閫変腑鐨勫熀纭�鐮佹
-      selectionOtherCloneCodeRuleList: [], // 姝ょ晫闈㈠唴褰撳墠閫変腑鐨勭紪鐮佽鍒�
-      otherCloneQuery: {}, // 鏌ヨ鏉′欢瀵硅薄
 
       /** 杞Щ鎵�鏈夎�呭璇濇 */
       escapeOwnerVisible: false,
@@ -1551,7 +1505,7 @@
       loadingBasic: false,
       selectionBasicList: [],
       addBasicCodeSettingBox: false,
-      showbtn: false, //鍩虹鐮佹鏂板鏄惁鏄剧ず鍩虹鐮佹
+      showbtn: false, //鍩虹鐮佹鏂板鎸夐挳鏄惁绂佺敤
       isLoadingSecCodeAddBtn: false,
       basicSecDialogTitle: "", //鍩虹鐮佹绗竴灞傚璇濇鏍囬
       basicSecOnlyRead: false, //鏂板鍩虹鐮佹琛ㄥ崟鏄惁鍙
@@ -1698,8 +1652,10 @@
         secType: "codefixedsec", //鐮佹绫诲瀷
         description: "", //鎻忚堪
         serialDependFlag: false, //鏄惁娴佹按渚濊禆
-        serialDependOrder: "", //娴佹按渚濊禆椤哄簭
+        //serialDependOrder: "", //娴佹按渚濊禆椤哄簭
         nullableFlag: false, //鏄惁涓虹┖
+        prefixCode: "", //鍓嶇紑
+        suffixCode: "", //鍚庣紑
         displayFlag: false, //
         componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
         pkCodeRule: "", //鎵�灞炵紪鐮佽鍒�
@@ -1732,17 +1688,44 @@
       //寮曠敤鐮佹涓弬鐓ч厤缃粍浠剁浉鍏冲弬鏁�
       referConfigOption: {},
       referConfigVisble: false,
+
+      preFixOrSuffixChars: [], //鍓嶅悗缂�瀛楃鍒楄〃
+
     };
   },
   computed: {
     ...mapGetters(["permission"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.codeRule_add, true),
-        viewBtn: this.vaildData(this.permission.codeRule_view, false),
-        delBtn: this.vaildData(this.permission.plCodeRule_delete, false),
-        editBtn: this.vaildData(this.permission.codeRule_edit, true),
+        // 缂栫爜瑙勫垯鐩稿叧鎸夐挳
+        addBtn: this.vaildData(this.permission.code_rule.code_rule_add, false),
+        //viewBtn: this.vaildData(this.permission.code_rule.code_rule_view, false),
+        rulDelBtn: this.vaildData(this.permission.code_rule.code_rule_delete, false),
+        editBtn: this.vaildData(this.permission.code_rule.code_rule_edit, false),
+        deactivateBtn: this.vaildData(this.permission.code_rule.code_rule_deactivate, false),
+        enableBtn: this.vaildData(this.permission.code_rule.code_rule_enable, false),
+        releaseBtn: this.vaildData(this.permission.code_rule.code_rule_release, false),
+        advancedQueryBtn: this.vaildData(this.permission.code_rule.code_rule_advanced_query, false),
+        cloneBtn: this.vaildData(this.permission.code_rule.code_rule_clone, false),
+        otherCloneBtn: this.vaildData(this.permission.code_rule.code_rule_other_clone, false),
+        usescopeBtn: this.vaildData(this.permission.code_rule.code_rule_usescope, false),
+        clearBtn: this.vaildData(this.permission.code_rule.code_rule_clear, false),
+        escapeOwnerBtn: this.vaildData(this.permission.code_rule.code_rule_escape_owner, false),
+        maxSerialnumBtn: this.vaildData(this.permission.code_rule.code_rule_max_serialnum, false),
       };
+    },
+    basicPermissionList() {
+      return {
+        // 鍩虹鐮佹鐩稿叧鎸夐挳
+        addBtn: this.vaildData(this.permission.code_rule.code_basic_add, false),
+        editBtn: this.vaildData(this.permission.code_rule.code_basic_edit, false),
+        viewBtn: this.vaildData(this.permission.code_rule.code_basic_view, false),
+        basicDelBtn: this.vaildData(this.permission.code_rule.code_basic_delete, false),
+        basicAdvancedQueryBtn: this.vaildData(this.permission.code_rule.code_basic_advanced_query, false),
+        basicMgrBtn: this.vaildData(this.permission.code_rule.code_basic_mgr, false),
+        basicMoveupBtn: this.vaildData(this.permission.code_rule.code_basic_moveup, false),
+        basicDownBtn: this.vaildData(this.permission.code_rule.code_basic_down, false),
+      }
     },
   },
   watch: {},
@@ -1756,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) {
@@ -1798,11 +1801,11 @@
       if (JSON.stringify(conditionMaps) != "{}") {
         if (this.advancedQueryParam.currentOpen == "codeRule") {
           this.query = conditionMaps;
+          // console.log(this.query);
           this.onLoad(this.page);
         } else {
           this.sendGridCodeBasicSec(conditionMaps, true);
         }
-        //console.log(conditionMaps);
       }
     },
     /* 鍏紡缂栬緫妗嗗唴瀹规敼鍙�,瀛愮粍浠剁紪杈戝畬鍏紡涔嬪悗鍐呭鍥炴樉鏃惰皟鐢� */
@@ -1811,12 +1814,12 @@
     },
     /* 寮曠敤鐮佹鍙傜収閰嶇疆,瀛愮粍浠跺~瀹屽弬鐓ч厤缃箣鍚庡唴瀹瑰洖鏄炬椂璋冪敤 */
     setReferConfigValue(content) {
-      // console.log(content.referTypeName);
       this.form.referBtmId = content.referType || "";
       this.form.referBtmName = content.referTypeName || content.referType;
       //杞崲鎴怞SON瀛楃涓茶繘琛岀埗缁勪欢鍥炴樉
       let submitFormJson = JSON.stringify(content);
       this.form.referConfig = submitFormJson || "";
+      // debugger;
     },
     /** 寮曠敤鐮佹涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊间箣鍚庣殑鍐呭鍥炴樉鏃惰皟鐢� */
     echoReferBtmType(content) {
@@ -1828,7 +1831,6 @@
     /** 鐖跺垎绫婚�夋嫨瀵硅瘽妗嗭紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */
     /** 淇濆瓨褰撳墠鐖跺垎绫荤爜娈电殑閫変腑琛岋紝骞惰繘琛屽洖鏄� */
     saveSelectedParentClassify() {
-      //console.log(this.parentClsfyParams.parentClassifySelectionList.length);
       if (this.parentClsfyParams.parentClassifySelectionList.length != 1) {
         this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�!");
         return false;
@@ -1896,7 +1898,6 @@
         page.pageSize,
         conditionMaps
       ).then((res) => {
-        //console.log(res.data);
         const data = res.data.data;
         parentClsParam.parentClassifyDataPage.total = data.total;
         parentClsParam.parentClassifyData = data.records;
@@ -1914,7 +1915,6 @@
     /** 鍔犺浇鍒嗙被杩炴帴灞炴�ц〃鏍兼暟鎹� */
     loadlistClassifyLinkAttr() {
       let attrParam = this.selectAttrParams;
-      //console.log(this.currentSelectTreeData);
       this.selectAttrParams.selectAttrOptionLoading = true;
       let conditionMaps = {};
       if (attrParam.selectAttrQeury) {
@@ -1932,7 +1932,6 @@
         this.$nextTick(() => {
           this.$refs[attrParam.ref].doLayout();
         });
-        //console.log(data.data);
         this.selectAttrParams.selectAttrData = data.data;
         this.selectAttrParams.selectAttrOptionLoading = false;
         // 灏嗘悳绱㈡鍐呭缃┖
@@ -2000,34 +1999,36 @@
     /** 鍔犺浇鍥哄畾鐮佹鐮佸�艰〃鏁版嵁*/
     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;
-        //console.log(this.fixedValueData);
         this.fixedValueOptionLoading = false;
       });
     },
     /** 鍗曞嚮鍥哄畾鐮佹鐨勭爜鍊艰〃涓鏃惰Е鍙戠殑浜嬩欢*/
     selectedCodeValueRow(row) {
-      //console.log(row);
       this.selectedFixedOrCodeclassifyValue = row;
       this.codeFixdForm.id = row.id;
       this.codeFixdForm.description = row.description;
       this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid;
     },
     /** 鏂板鐮佸��*/
-    addCodeSecValue(condition) {
+    async addCodeSecValue(condition) {
       if (condition === "codefixedsec") {
         if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) {
           return;
         }
-        this.codeFixdForm.codeFixedSecOid =
-          this.codefixedsecOrCodeclassifysec.oid;
+        if(!await this.regexCharacter(this.codeFixdForm.id)){
+          return;
+        }
+        this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysec.oid;
         addSaveCodeFixedValue(this.codeFixdForm).then(
           () => {
             this.loadFixedValueTableData({
               oid: this.codefixedsecOrCodeclassifysec.oid,
             });
             this.clearFixedOrClassifyForm("codefixedsec");
+            this.$refs.crudFixedValue.refreshTable();
+            this.$refs.crudFixedValue.doLayout();
             this.$message({
               type: "success",
               message: "鎿嶄綔鎴愬姛!",
@@ -2038,12 +2039,18 @@
           }
         );
       } 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 =
           this.codefixedsecOrCodeclassifysec.oid;
-        // console.log(this.codeClassifyForm);
         addSaveCodeClassifyValue(this.codeClassifyForm).then(
           () => {
             this.loadClassifyValueData({
@@ -2064,40 +2071,13 @@
         );
       }
     },
-    /** 娓呯┖鐮佸�艰〃鍗� */
-    clearFixedOrClassifyForm(condition) {
-      //鐐瑰嚮鍙栨秷鏃舵竻绌鸿〃鍗曚笌褰撳墠閫変腑鐨勭爜鍊硷紝骞剁鐢ㄦ寜閽�
-      this.selectedFixedOrCodeclassifyValue = "";
-      //console.log(condition);
-      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;
         }
         //浠ュ墠鏄洿鎺ユ妸褰撳墠閫変腑琛岀殑鎵�鏈夋暟鎹兘杩涜鎻愪氦锛屼絾鍏跺疄鍙渶瑕佷紶杈撲竴浜涘繀瑕佸弬鏁板嵆鍙紝杩欏効鍋氫簡淇敼锛岄渶瑕佷紶鍏朵粬鍙傛暟鐨勮鑷娣诲姞
@@ -2107,7 +2087,7 @@
           description: this.codeFixdForm.description,
           id: this.codeFixdForm.id,
           codeFixedSecOid:
-            this.selectedFixedOrCodeclassifyValue.codefixedsecoid,
+          this.selectedFixedOrCodeclassifyValue.codefixedsecoid,
         };
         editCodeFixedValue(editData).then(
           () => {
@@ -2125,6 +2105,9 @@
         );
       } else {
         if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) {
+          return;
+        }
+        if(!await this.regexCharacter(this.codeClassifyForm.id)){
           return;
         }
         this.codeClassifyForm.oid =
@@ -2154,6 +2137,54 @@
           }
         );
       }
+    },
+    /**
+     * 鍙敤瀛楃闆嗙爜鍊兼鍒欐牎楠�
+     * @return true:婊¤冻闄愬埗锛宖alse锛氫笉婊¤冻闄愬埗
+     */
+    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) {
@@ -2402,7 +2433,6 @@
         "conditionMap[codeclassifysecoid]": row.oid,
       };
       treeCodeClassifyValue(condtionData).then((res) => {
-        // console.log('res',res)
         this.classifyValueTreeData = res.data;
         //console.log(res.data);
       });
@@ -2462,6 +2492,12 @@
             fieldType: "combox",
             queryField: "lcStatus",
             comboxKey: "codeSearchLCStatus",
+          },
+          {
+            data: [],
+            title: "鎵�鏈夎��",
+            fieldType: "text",
+            queryField: "ownerText",
           },
         ];
       } else {
@@ -2523,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);
@@ -2540,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: "缁х画鍙戝竷",
@@ -2563,63 +2599,21 @@
                 this.releadDisabled = false;
               });
             }
-          })
-          .catch((error) => {
+          }).catch((error) => {
             this.releadDisabled = false;
           });
+        this.releadDisabled = false;
       } else {
         this.updateStatus(oid, update);
       }
     },
-
     /** 鎵撳紑缂栫爜瑙勫垯鍏嬮殕瀵硅瘽妗�*/
     openCodeRuleDialog() {
       if (!this.tipsMessage(this.selectionList)) {
         return;
       }
       this.cloneSettingBox = true;
-      this.cloneCodeRuleForm.id = this.selectionList[0].id;
-      this.cloneCodeRuleForm.name = this.selectionList[0].name;
-      this.cloneCodeRuleForm.description = this.selectionList[0].description;
-      this.loadBasic({ oid: this.selectionList[0].oid });
     },
-    /** 鍏嬮殕缂栫爜瑙勫垯淇濆瓨鍔熻兘*/
-    saveCloneCodeRule() {
-      let form = this.cloneCodeRuleForm;
-      if (form.id.trim() == "") {
-        this.$message.warning("缂栧彿涓嶈兘涓虹┖!");
-        return;
-      }
-      if (form.name.trim() == "") {
-        this.$message.warning("鐮佸�间笉鑳戒负绌�!");
-        return;
-      }
-      this.selectionList[0].oid = "";
-      this.selectionList[0].id = form.id;
-      this.selectionList[0].name = form.name;
-      this.selectionList[0].description = form.description;
-      this.selectionList[0].createTime = new Date().getTime();
-      this.selectionList[0].ts = new Date(this.selectionList[0].ts).getTime();
-      this.selectionList[0].lcStatus = "Editing";
-      let data = Object.assign({}, this.selectionList[0], {
-        elements: this.cloneData,
-      });
-      clone(data).then(
-        () => {
-          this.cloneSettingBox = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!",
-          });
-        },
-        (error) => {
-          window.console.log(error);
-        }
-      );
-      //console.log(data);
-    },
-
     /** 鎵撳紑浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�*/
     openOtherCodeRuleDialog() {
       if (!this.tipsMessage(this.selectionList)) {
@@ -2630,99 +2624,6 @@
         return;
       }
       this.cloneOtherCodeRuleSettingBox = true;
-    },
-    /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨*/
-    codeOtherCloneRuleRowClick(row) {
-      this.$refs.crudCloneCodeRuleOther.toggleSelection();
-      this.selectionOtherCloneCodeRuleList = row;
-      this.$refs.crudCloneCodeRuleOther.setCurrentRow(row);
-      this.$refs.crudCloneCodeRuleOther.toggleRowSelection(row); //閫変腑褰撳墠琛�
-      this.loadBasic(row);
-    },
-    /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮鍩虹鐮佹瀹炵幇琛岄�夋嫨*/
-    codeOtherCloneBasicRowClick(row) {
-      this.$refs.crudCloneCodeBasicOther.toggleSelection();
-      this.selectionOtherCloneCodeBasicList = row;
-      this.$refs.crudCloneCodeBasicOther.setCurrentRow(row);
-      this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //閫変腑褰撳墠琛�
-    },
-    /** 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈腑缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/
-    selectionOtherCloneCodeRuleChange(list) {
-      //console.log(list);
-      this.selectionOtherCloneCodeRuleList = list;
-      this.$refs.crudBasic.setCurrentRow(
-        this.selectionBasicList[list.length - 1]
-      );
-      if (list == "") {
-        this.basicData = [];
-      }
-      if (this.selectionOtherCloneCodeRuleList.length > 0) {
-        this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length - 1]);
-      }
-    },
-    selectionOtherCloneCodeBasicChange(list) {
-      this.selectionOtherCloneCodeBasicList = list;
-      this.$refs.crudCloneCodeBasicOther.setCurrentRow(
-        this.selectionOtherCloneCodeBasicList[list.length - 1]
-      );
-    },
-    /** 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈㈤噸缃悳绱㈠姛鑳� */
-    searchOtherCloneReset() {
-      this.otherCloneQuery = {};
-      this.onLoad(this.page);
-    },
-    /** 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈㈡悳绱㈠姛鑳�*/
-    searchOtherCloneChange(params, done) {
-      this.page.currentPage = 1;
-      // 澶氫釜conditionMap杩欐牱浼犲弬锛屽揩閫熸煡璇㈤粯璁ら噰鐢ㄦā绯婃煡璇�
-      let requestData = {};
-      if (params) {
-        Object.keys(params).forEach((key) => {
-          requestData["conditionMap" + "[" + key + "_like]"] =
-            params[key].trim();
-        });
-      }
-      this.otherCloneQuery = requestData;
-      this.onLoad(this.page,requestData);
-      done();
-    },
-    /** 淇濆瓨浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅*/
-    saveOtherCodeBasic() {
-      let oid = this.selectionList[0].oid;
-      let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
-      if (fromDialogPkCodebasic.length <= 0) {
-        this.$message.warning("璇烽�夋嫨鐮佹鏁版嵁!");
-        return;
-      }
-      let res = fromDialogPkCodebasic.filter((item) => {
-        return item.pkCodeRule == oid;
-      });
-      if (res != "") {
-        this.$message.warning("闇�瑕佸厠闅嗙殑缂栫爜瑙勫垯涓庤鍏嬮殕鐨勭紪鐮佽鍒欑浉鍚�!");
-        return;
-      }
-      let oidArr = [];
-      fromDialogPkCodebasic.forEach((ele) => {
-        oidArr.push(ele.oid);
-      });
-      let data = {
-        pkCodeRule: oid,
-        oidArr: oidArr.join(","),
-      };
-      //console.log(data);
-      cloneCodeBasic(data).then(
-        () => {
-          this.cloneOtherCodeRuleSettingBox = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!",
-          });
-        },
-        (error) => {
-          window.console.log(error);
-        }
-      );
     },
 
     /** 娓呯┖鐮佸��*/
@@ -2743,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);
@@ -2755,7 +2656,6 @@
     },
     /** 娣诲姞*/
     rowSave(row, done, loading) {
-      console.log(row);
       add(row).then(
         () => {
           this.onLoad(this.page);
@@ -2806,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);
@@ -2831,7 +2731,7 @@
       this.query = {};
       this.onLoad(this.page);
     },
-    // 缂栫爜瑙勫垯蹇�熸煡璇�
+    // 缂栫爜瑙勫垯蹇�熸煡璇earchChange
     searchChange(params, done) {
       this.page.currentPage = 1;
       // 澶氫釜conditionMap杩欐牱浼犲弬锛屽揩閫熸煡璇㈤粯璁ら噰鐢ㄦā绯婃煡璇�
@@ -2844,6 +2744,11 @@
       }
       this.query = requestData;
       this.onLoad(this.page, this.query);
+      // console.log(  this.findObject(this.optionRule.column,'id'))
+      // console.log(this.crudOption.column[0])
+      // this.crudOption.column && this.crudOption.column.length > 0
+      //   ? (this.crudOption.column[0].value = '')
+      //   : null;
       done();
     },
     /** 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/
@@ -2881,7 +2786,11 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      gridCodeRule(page.currentPage, page.pageSize, params).then((res) => {
+      gridCodeRule(
+        page.currentPage,
+        page.pageSize,
+        Object.assign({}, params, this.query),
+      ).then((res) => {
         //console.log(res.data);
         const data = res.data.data;
         this.page.total = data.total;
@@ -2923,7 +2832,6 @@
     },
     /** 鎵撳紑鏂板鎴栫紪杈戝熀纭�鐮佹瀵硅瘽妗�*/
     openBasicDialog(condition, row) {
-      //console.log(row);
       if (condition == "add") {
         this.basicSecDialogTitle = "娣诲姞鐮佹淇℃伅";
         this.showbtn = true;
@@ -2936,19 +2844,29 @@
         this.basicSecDialogTitle = "淇敼鐮佹淇℃伅";
         this.showbtn = true;
         this.basicSecOnlyRead = false;
-        //涓篺orm缁戝畾鍊�
       } else {
         this.basicSecDialogTitle = "鏌ョ湅鐮佹淇℃伅";
         this.showbtn = false;
         this.basicSecOnlyRead = true;
       }
       //console.log(this.form);
+      //涓篺orm缁戝畾鍊�
       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 == ""
@@ -2956,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鐨刯son杩涜鏀瑰彉
         if (
@@ -2988,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鐨勮〃鍗曟牎楠岃缃笉涓婃墍浠ラ噰鐢ㄥ垽鏂殑鏂瑰紡鏉ュ仛琛ㄥ崟妫�楠屾柟寮�*/
@@ -3154,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 == "") {
@@ -3199,6 +3163,12 @@
       }
       return true;
     },
+    /** 灞傜骇鐮佹閫夋嫨涓烘渶灏忓眰绾ф椂娓呯┖灞傜骇鐨勫�� */
+    changeLevelType(){
+      if(this.form.codeLevelType === 'code_level_min'){
+        this.form.codeLevelValue = '';
+      }
+    },
     /** 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁*/
     tipsMessage(list) {
       if (list.length != 1) {
@@ -3212,6 +3182,10 @@
       if (!this.tipsMessage(this.selectionBasicList)) {
         return;
       }
+      if (this.selectionList.slice(-1)[0].lcStatus != "Editing") {
+        this.$message.warning('缂栫爜瑙勫垯鐘舵�佷笉鏄�"缂栬緫涓�"锛屼笉鍏佽鍒犻櫎鐮佹!');
+        return;
+      }
       let oid = this.selectionBasicList[0].oid;
       this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
         confirmButtonText: "纭畾",
@@ -3220,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({
@@ -3238,17 +3212,13 @@
     },
     /** 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅*/
     loadBasic(row) {
-      if (this.cloneSettingBox) {
-        this.cloneTableLoading = true;
-      } else {
-        this.loadingBasic = true;
-      }
+      this.loadingBasic = true;
       // console.log(row.oid);
       if (row != "" || row != null) {
         //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
         this.currentCodeRuleOid = row.oid;
         this.currentRuleLcStatus = row.lcStatus;
-        this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false);
+        this.sendGridCodeBasicSec({pkCodeRule: row.oid}, false);
       }
     },
     /** 鍙戦�佸姞杞藉熀纭�鐮佹鐨勮姹�*/
@@ -3275,14 +3245,8 @@
       gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then(
         (res) => {
           const data = res.data.data;
-          if (this.cloneSettingBox) {
-            this.cloneData = data.records;
-            this.cloneTableLoading = false;
-          } else {
-            this.basicData = data.records;
-            // console.log(this.basicData);
-            this.loadingBasic = false;
-          }
+          this.basicData = data.records;
+          this.loadingBasic = false;
         }
       );
     },
@@ -3311,7 +3275,7 @@
     },
     basicSearchReset() {
       this.sendGridCodeBasicSec(
-        { pkCodeRule: this.selectionList[this.selectionList.length - 1].oid },
+        {pkCodeRule: this.selectionList[this.selectionList.length - 1].oid},
         false
       );
     },
@@ -3355,7 +3319,7 @@
         return;
       }
       downOrderNum(row.oid).then(() => {
-        this.loadBasic({ oid: codeRuleOid });
+        this.loadBasic({oid: codeRuleOid});
         this.$message({
           type: "success",
           message: "鎿嶄綔鎴愬姛!",
@@ -3364,7 +3328,7 @@
     },
     /** 鍩虹鐮佹鍒锋柊鏃舵煡璇�*/
     refreshChangeBasicSec() {
-      this.loadBasic(this.selectionList.at(-1));
+      this.loadBasic(this.selectionList.slice(-1)[0]);
     },
     /** 鎿嶄綔鍩虹鐮佹涓悳绱㈡竻绌虹瓑鎸夐挳鐨勬樉绀�/闅愯棌*/
     hideBasicTable(hideBoolean) {
@@ -3432,50 +3396,37 @@
         this.form.referConfig = "";
       }
     },
-    /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫�*/
-    inputSelectBlur(e) {
+    /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫� TODO:鍥犱负澧炲姞浜嗗彲鐢ㄥ瓧绗﹂泦鎺у埗锛屾墍浠ヨ繖鍎垮純鐢ㄤ簡鍙敤瀛楃闆嗙殑鏁堟灉*/
+    /*inputSelectBlur(e) {
       if (e.target.value) {
         this.form.codeFillSeparator = e.target.value;
       }
-    },
+    },*/
     /** 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��*/
     changeSectypeFormItems(row) {
-      //console.log(row);
+      //console.log(row)
       if (
         func.isEmpty(this.enumParam.secTypeList) ||
         this.enumParam.secTypeList.length == 0
       ) {
         this.loadCodeSecType();
       }
-      if (row != null) {
-        this.form = {
-          oid: row.oid,
-          id: row.id, //缂栧彿,
-          name: row.name, //鍚嶇О
-          secType: row.secType, //鐮佹绫诲瀷
-          description: row.description, //鎻忚堪
-          serialDependFlag: row.serialDependFlag == "true" ? true : false, //鏄惁娴佹按渚濊禆
-          serialDependOrder: row.serialDependOrder, //娴佹按渚濊禆椤哄簭
-          nullableFlag: row.nullableFlag == "true" ? true : false, //鏄惁涓虹┖
-          displayFlag: row.displayFlag == "true" ? true : false,
-          componentCodeFlag: row.componentCodeFlag == "true" ? true : false, //鏄惁鍙備笌缂栫爜
-          pkCodeRule: row.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
-        };
-      } else {
-        this.form = {
-          id: this.form.id, //缂栧彿
-          name: this.form.name, //鍚嶇О
-          secType: this.form.secType, //鐮佹绫诲瀷
-          description: this.form.description, //鎻忚堪
-          serialDependFlag: this.form.serialDependFlag, //鏄惁娴佹按渚濊禆
-          serialDependOrder: this.form.serialDependOrder, //娴佹按渚濊禆椤哄簭
-          nullableFlag: this.form.nullableFlag, //鏄惁涓虹┖
-          displayFlag: this.form.displayFlag, //
-          componentCodeFlag: this.form.componentCodeFlag, //鏄惁鍙備笌缂栫爜
-          pkCodeRule: this.form.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
-        };
-        //console.log(this.form);
-      }
+      this.form = {
+        oid: row != null ? row.oid : this.form.oid,
+        id: row != null ? row.id : this.form.id, //缂栧彿,
+        name: row != null ? row.name : this.form.name, //鍚嶇О
+        secType: row != null ? row.secType : this.form.secType, //鐮佹绫诲瀷
+        description: row != null ? row.description : this.form.description, //鎻忚堪
+        serialDependFlag: this.isNullJsonBoolean(row, this.form, 'serialDependFlag'), //鏄惁娴佹按渚濊禆
+        //serialDependOrder: row != null ? row.serialDependOrder : this.form.serialDependOrder, //娴佹按渚濊禆椤哄簭
+        nullableFlag: this.isNullJsonBoolean(row, this.form, 'nullableFlag'), //鏄惁涓虹┖
+        displayFlag: this.isNullJsonBoolean(row, this.form, 'displayFlag'),
+        componentCodeFlag: this.isNullJsonBoolean(row, this.form, 'componentCodeFlag'), //鏄惁鍙備笌缂栫爜
+        pkCodeRule: row != null ? row.pkCodeRule : this.form.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
+        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, {
@@ -3518,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 != ""
@@ -3532,16 +3483,22 @@
           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
+              : "", //鑷畾涔夋祦姘寸畻娉曠被鍨�
         });
-        console.log(this.form);
-        console.log(this.enumParam.codeFillType);
         this.loadCodeFillType();
         this.loadCodeFillSeparator();
       } else if (this.form.secType === "codelevelsec") {
@@ -3587,7 +3544,6 @@
               : "", //鏃ユ湡鏍煎紡
         });
       } else if (this.form.secType === "codeclassifysec") {
-        //console.log(this.form);
         //鍒嗙被鐮佹
         this.form = Object.assign({}, this.form, {
           codeSecLengthType:
@@ -3599,8 +3555,8 @@
           matchClassifyValueFlag:
             row != null && row.matchClassifyValueFlag != ""
               ? row.matchClassifyValueFlag == "true"
-                ? true
-                : false
+              ? true
+              : false
               : false, //鏄惁鑷姩鍖归厤鍊�
           parentClassifySecOid:
             row != null && row.parentClassifySecOid != ""
@@ -3630,15 +3586,23 @@
         this.loadCodeFillType();
         this.loadCodeFillSeparator();
       }
-      // console.log(this.form);
+    },
+    // 鍒ゆ柇Boolean鍊兼槸鍚︿负绌猴紝骞朵笖瀵箂tr绫诲瀷甯冨皵鍊艰繘琛岃浆鎹�
+    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;
@@ -3648,7 +3612,7 @@
       this.loadCodeSecType();
       this.loadCodeSecLength();
       this.loadCodeFillType();
-      this.loadCodeFillSeparator();
+      // this.loadCodeFillSeparator();
       this.loadCodeLevelType();
       this.loadCodeCutType();
       this.loadCodeGetValueType();
@@ -3665,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") || [];
@@ -3687,9 +3651,12 @@
     },
     // 鏈�澶ф祦姘村彿
     maxSerialNum() {
-      console.log(this.selectionList);
-      if (this.selectionList.length === 0) {
+      if (this.selectionList.length <= 0) {
         this.$message.warning("璇烽�夋嫨涓�鏉$紪鐮佽鍒欙紒");
+        return;
+      }
+      if (this.selectionList.length > 1) {
+        this.$message.warning("鍙兘閫夋嫨涓�鏉$紪鐮佽鍒欙紒");
         return;
       }
       this.maxSerial.visible = true;
@@ -3704,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;
@@ -3771,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;
 }
 
@@ -3785,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,
@@ -3805,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 {
@@ -3818,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;
 }
 
 /* 瀵硅瘽妗嗗簳閮ㄦ寜閽竟妗嗘牱寮� */
@@ -3841,4 +3813,5 @@
 /* .code-total > .basic-container__card {
     height: 100%;
   } */
+
 </style>

--
Gitblit v1.9.3