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 |  837 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 481 insertions(+), 356 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 7621a97..60297f3 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/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)"
-          >缂� 杈�
-          </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.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.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>
+        >
+          缂栫爜瑙勫垯
+        </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.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>
+          </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>
 
     <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
@@ -217,105 +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="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="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
-                     icon="el-icon-edit"
-                     plain
-                     size="small"
-                     type="text"
-                     @click="openBasicDialog('edit', 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="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="basicPermissionList.basicDownBtn"
-                     icon="el-icon-arrow-down"
-                     plain
-                     size="small"
-                     type="text"
-                     @click="downOrderNum(scope.row)"
-          >涓嬬Щ
-          </el-button>
-        </template>
+          鐮佹绠$悊
+        </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="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
+                       icon="el-icon-edit"
+                       plain
+                       size="small"
+                       type="text"
+                       @click="openBasicDialog('edit', 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="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="basicPermissionList.basicDownBtn"
+                       icon="el-icon-arrow-down"
+                       plain
+                       size="small"
+                       type="text"
+                       @click="downOrderNum(scope.row)"
+            >涓嬬Щ
+            </el-button>
+          </template>
 
-        <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
-        <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>
+          <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
+          <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>
 
     <!-- 鐮佹鐮佸�肩鐞嗗璇濇 -->
@@ -379,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>
@@ -399,9 +397,7 @@
                 margin-top: 20px;
                 display: flex;
                 align-items: center;
-                justify-content: center;
-              "
-            >
+                justify-content: center;">
               <el-button
                 class="button"
                 icon="el-icon-circle-plus"
@@ -587,7 +583,7 @@
     >
       <!--  绗竴灞傚璇濇,娣诲姞鐮佹淇℃伅瀵硅瘽妗嗕腑鐨勫唴瀹� -->
       <div class="add-basicsec-total">
-        <el-form :model="form" class="add-basicsec-form" :rules="rules" >
+        <el-form :model="form" :rules="rules" class="add-basicsec-form">
           <span class="left">
             <el-form-item
               :label-width="leftFormLabelWidth"
@@ -637,19 +633,35 @@
             <el-form-item
               :label-width="leftFormLabelWidth"
               label="鍓嶇紑:">
-              <el-input
+              <!-- <el-input
                 v-model="form.prefixCode"
                 :readonly="basicSecOnlyRead"
-              ></el-input>
+              ></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
+              <!-- <el-input
                 v-model="form.suffixCode"
                 :readonly="basicSecOnlyRead">
-              </el-input>
+              </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>
 
             <el-form-item :label-width="leftFormLabelWidth" label="鎻忚堪:">
@@ -669,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="鏄惁涓虹┖:">
@@ -833,13 +845,13 @@
                   :disabled="basicSecOnlyRead"
                   filterable
                   placeholder="璇烽�夋嫨"
-                  @blur="inputSelectBlur"
+                  clearable
                 >
                   <el-option
                     v-for="item in enumParam.codeFillSeparator"
-                    :key="item.dictKey"
-                    :label="item.dictValue"
-                    :value="item.dictValue"
+                    :key="item.lable"
+                    :label="item.lable"
+                    :value="item.value"
                   >
                   </el-option>
                 </el-select>
@@ -878,25 +890,20 @@
               </el-form-item>
               <el-form-item
                 :label-width="rightFormLabelWidth"
-                label="鑷畾涔夌殑娴佹按绠楁硶:"
+                label="鑷畾涔夋祦姘寸畻娉�:"
               >
                   <template>
                       <vciWebRefer
                         ref="refer"
-                        :referConfig="this.referConfig || {}"
+                        :disabled="basicSecOnlyRead"
                         :display="true"
+                        :referConfig="this.referConfig || {}"
+                        :serialType="form.serialType"
+                        :text="form.customCodeSerialClassText"
                         :value="form.customCodeSerialClass"
-                        :text="form.customCodeSerialClass"
                         @setReferValue="setReferValue"
                       ></vciWebRefer>
-<!--                                    <el-input-->
-<!--                                      v-model="form.customCodeSerialClass"-->
-<!--                                      :readonly="basicSecOnlyRead"-->
-<!--                                      @focus="streamFocusHandler"-->
-<!--                                    ></el-input>-->
                   </template>
-
-
               </el-form-item>
             </div>
             <!-- 灞傜骇鐮佹 -->
@@ -910,6 +917,7 @@
                   v-model="form.codeLevelType"
                   :disabled="basicSecOnlyRead"
                   placeholder="璇烽�夋嫨"
+                  @change="changeLevelType"
                 >
                   <el-option
                     v-for="item in enumParam.codeLevelType"
@@ -928,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
@@ -1027,9 +1036,9 @@
             <!-- 鏃ユ湡鐮佹 -->
             <div v-show="form.secType === 'codedatesec' ? true : false">
               <el-form-item
-                prop="Dateformat"
                 :label-width="rightFormLabelWidth"
                 label="鏃ユ湡鏍煎紡:"
+                prop="Dateformat"
               >
                 <el-input
                   ref="codeDateFormatStr"
@@ -1141,13 +1150,13 @@
                   :disabled="basicSecOnlyRead"
                   filterable
                   placeholder="璇烽�夋嫨"
-                  @blur="inputSelectBlur"
+                  clearable
                 >
                   <el-option
                     v-for="item in enumParam.codeFillSeparator"
-                    :key="item.dictKey"
-                    :label="item.dictValue"
-                    :value="item.dictValue"
+                    :key="item.lable"
+                    :label="item.lable"
+                    :value="item.value"
                   >
                   </el-option>
                 </el-select>
@@ -1289,8 +1298,6 @@
       </refer-config-dialog>
     </el-dialog>
 
-    <!--    鑷畾涔夋祦姘村弬鐓х粍浠�-->
-
 
   </basic-container>
 </template>
@@ -1331,8 +1338,9 @@
   deleteCodeClassifyValue,
   saveCodeClassifyValueOrder,
 } from "@/api/code/codeClassifyValue";
+import { getSelectList, getRegexStr } from "@/api/code/codeCharcter"
 import {getDictionary} from "@/api/omd/enum";
-import {getDictionaryBiz} from "@/api/system/dictbiz";
+// import {getDictionaryBiz} from "@/api/system/dictbiz";
 import optionBasic from "@/const/code/codebasic";
 import optionRule from "@/const/code/mdmrule";
 import attrOption from "@/const/code/selectAttrOptionDialog";
@@ -1347,7 +1355,7 @@
 import vciWebRefer from "../../components/refer/vciWebRefer";
 
 export default {
-  components: { vciWebRefer },
+  components: {vciWebRefer},
   data() {
     return {
       rules: {
@@ -1356,7 +1364,28 @@
             required: true,
             trigger: 'blur',
             validator: (rule, value, callback) => {
-              const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yy-MM', 'yyyy-MM-dd','yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss'];
+              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锛堝苟鍖哄垎澶у皬鍐欙級锛�'));
               }
@@ -1365,17 +1394,19 @@
           }
         ]
       },
-      referConfig:{
+      referConfig: {
         title: '鑷畾涔夋祦姘村弬鐓�',
-        showField: 'customCodeSerialClass',
+        showField: 'customCodeSerialClassText',
         field: 'customCodeSerialClass',
-        fieldMap:  {},
-        placeholder:'璇烽�夋嫨鑷畾涔夋祦姘�',
-        options:   {
+        fieldMap: {
+          serialType: "serialType",
+        },
+        placeholder: '璇烽�夋嫨鑷畾涔夋祦姘�',
+        options: {
           // 璁剧疆榛樿鐨勫睘鎬�
           url: 'api/ubcs-code/codeSerialAlgorithmController/gridCodeSerialAlgorithm',
-          valueField:'classFullName',
-          textField:'classFullName',
+          textField: 'name',
+          valueField: 'classFullName',
           isMuti: false,
           type: "grid",
           method: 'get',
@@ -1388,6 +1419,7 @@
               {title: '绠楁硶缂栧彿', field: 'id', width: 200},
               {title: '绠楁硶鍚嶇О', field: 'name', width: 150},
               {title: '绫诲叏璺緞', field: 'classFullName', width: 300},
+              {title: '绫诲瀷', field: 'serialType', width: 300},
               {title: '鎻忚堪', field: 'description'}
             ],
             queryColumns: [
@@ -1620,7 +1652,7 @@
         secType: "codefixedsec", //鐮佹绫诲瀷
         description: "", //鎻忚堪
         serialDependFlag: false, //鏄惁娴佹按渚濊禆
-        serialDependOrder: "", //娴佹按渚濊禆椤哄簭
+        //serialDependOrder: "", //娴佹按渚濊禆椤哄簭
         nullableFlag: false, //鏄惁涓虹┖
         prefixCode: "", //鍓嶇紑
         suffixCode: "", //鍚庣紑
@@ -1656,6 +1688,9 @@
       //寮曠敤鐮佹涓弬鐓ч厤缃粍浠剁浉鍏冲弬鏁�
       referConfigOption: {},
       referConfigVisble: false,
+
+      preFixOrSuffixChars: [], //鍓嶅悗缂�瀛楃鍒楄〃
+
     };
   },
   computed: {
@@ -1716,8 +1751,15 @@
   },
   methods: {
     //鑷畾涔夋祦姘村け鐒�
-    setReferValue(data){
-      console.log(data)
+    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() {
@@ -1777,7 +1819,7 @@
       //杞崲鎴怞SON瀛楃涓茶繘琛岀埗缁勪欢鍥炴樉
       let submitFormJson = JSON.stringify(content);
       this.form.referConfig = submitFormJson || "";
-      debugger;
+      // debugger;
     },
     /** 寮曠敤鐮佹涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊间箣鍚庣殑鍐呭鍥炴樉鏃惰皟鐢� */
     echoReferBtmType(content) {
@@ -1970,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;
@@ -1994,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 =
@@ -2019,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;
         }
         //浠ュ墠鏄洿鎺ユ妸褰撳墠閫変腑琛岀殑鎵�鏈夋暟鎹兘杩涜鎻愪氦锛屼絾鍏跺疄鍙渶瑕佷紶杈撲竴浜涘繀瑕佸弬鏁板嵆鍙紝杩欏効鍋氫簡淇敼锛岄渶瑕佷紶鍏朵粬鍙傛暟鐨勮鑷娣诲姞
@@ -2081,6 +2107,9 @@
         if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) {
           return;
         }
+        if(!await this.regexCharacter(this.codeClassifyForm.id)){
+          return;
+        }
         this.codeClassifyForm.oid =
           this.selectedFixedOrCodeclassifyValue.attributes.oid;
         // 鍒嗙被鐮佹锛屽瓙鍒嗙被鍜岀埗鍒嗙被涔嬮棿涓嶈兘鐩镐簰鏇存敼
@@ -2108,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) {
@@ -2499,8 +2576,8 @@
     /** 鍙戝竷缂栫爜瑙勫垯 */
     async enableOrDeactivatse(oid, update) {
       if (update === "release") {
-        this.releadDisabled = true;
         // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳
+        this.releadDisabled = true;
         await checkLikeCodeRule(oid)
           .then((res) => {
             //console.log(res)
@@ -2522,8 +2599,7 @@
                 this.releadDisabled = false;
               });
             }
-          })
-          .catch((error) => {
+          }).catch((error) => {
             this.releadDisabled = false;
           });
         this.releadDisabled = false;
@@ -2756,7 +2832,6 @@
     },
     /** 鎵撳紑鏂板鎴栫紪杈戝熀纭�鐮佹瀵硅瘽妗�*/
     openBasicDialog(condition, row) {
-      //console.log(row);
       if (condition == "add") {
         this.basicSecDialogTitle = "娣诲姞鐮佹淇℃伅";
         this.showbtn = true;
@@ -2777,11 +2852,21 @@
       //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 == ""
@@ -2789,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: "鎿嶄綔鎴愬姛!",
-              });
-              // 鍏抽棴瀵硅瘽妗�
-              this.addBasicCodeSettingBox = false;
-              // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
-              this.loadBasic(this.selectionList[0]);
-            },
-            (error) => {
-              window.console.log(error);
-            }
-          );
-        }
+        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 (
@@ -2821,7 +2909,7 @@
           // let referValueInfo = JSON.parse(this.form.referValueInfo);
           // referValueInfo.referType = this.form.referBtmId;
         }
-        let oldBasicSec = this.selectionBasicList.at(-1);
+        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) {
@@ -3004,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 == "") {
@@ -3049,6 +3163,12 @@
       }
       return true;
     },
+    /** 灞傜骇鐮佹閫夋嫨涓烘渶灏忓眰绾ф椂娓呯┖灞傜骇鐨勫�� */
+    changeLevelType(){
+      if(this.form.codeLevelType === 'code_level_min'){
+        this.form.codeLevelValue = '';
+      }
+    },
     /** 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁*/
     tipsMessage(list) {
       if (list.length != 1) {
@@ -3062,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;
       }
@@ -3208,7 +3328,7 @@
     },
     /** 鍩虹鐮佹鍒锋柊鏃舵煡璇�*/
     refreshChangeBasicSec() {
-      this.loadBasic(this.selectionList.at(-1));
+      this.loadBasic(this.selectionList.slice(-1)[0]);
     },
     /** 鎿嶄綔鍩虹鐮佹涓悳绱㈡竻绌虹瓑鎸夐挳鐨勬樉绀�/闅愯棌*/
     hideBasicTable(hideBoolean) {
@@ -3276,14 +3396,15 @@
         this.form.referConfig = "";
       }
     },
-    /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫�*/
-    inputSelectBlur(e) {
+    /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫� TODO:鍥犱负澧炲姞浜嗗彲鐢ㄥ瓧绗﹂泦鎺у埗锛屾墍浠ヨ繖鍎垮純鐢ㄤ簡鍙敤瀛楃闆嗙殑鏁堟灉*/
+    /*inputSelectBlur(e) {
       if (e.target.value) {
         this.form.codeFillSeparator = e.target.value;
       }
-    },
+    },*/
     /** 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��*/
     changeSectypeFormItems(row) {
+      //console.log(row)
       if (
         func.isEmpty(this.enumParam.secTypeList) ||
         this.enumParam.secTypeList.length == 0
@@ -3297,13 +3418,14 @@
         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, //娴佹按渚濊禆椤哄簭
+        //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") {
         //鍥哄畾鐮佹
@@ -3368,6 +3490,14 @@
             row != null && row.customCodeSerialClass != ""
               ? row.customCodeSerialClass
               : "", //鑷畾涔夋祦姘寸畻娉�
+          customCodeSerialClassText:
+            row != null && row.customCodeSerialClassText != ""
+              ? row.customCodeSerialClassText
+              : "", //鑷畾涔夋祦姘寸畻娉曟樉绀哄��
+              customCodeSerialType:
+            row != null && row.customCodeSerialType != ""
+              ? row.customCodeSerialType
+              : "", //鑷畾涔夋祦姘寸畻娉曠被鍨�
         });
         this.loadCodeFillType();
         this.loadCodeFillSeparator();
@@ -3472,7 +3602,7 @@
       if (enumCach == null) {
         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;
@@ -3482,7 +3612,7 @@
       this.loadCodeSecType();
       this.loadCodeSecLength();
       this.loadCodeFillType();
-      this.loadCodeFillSeparator();
+      // this.loadCodeFillSeparator();
       this.loadCodeLevelType();
       this.loadCodeCutType();
       this.loadCodeGetValueType();
@@ -3501,15 +3631,14 @@
     loadCodeFillSeparator() {
       //let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator"));
       //if (enumCach == null) {
-      getDictionaryBiz({code: "codeFillSeparator"}).then((res) => {
+      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)
-        );
+        // localStorage.setItem(
+        //   "codeFillSeparator",
+        //   JSON.stringify(res.data.data)
+        // );
       });
-      //}
     },
     loadCodeLevelType() {
       this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType") || [];
@@ -3542,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;
@@ -3664,7 +3789,7 @@
 
 .right {
   /* float: right; */
-  margin-right: 2vw;
+  /* margin-right: 1vw; */
   height: 100%;
   width: auto;
 }

--
Gitblit v1.9.3