From 0365fc08606d1308b8a81258410c3feb4da0fa7d Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 10 五月 2023 18:33:27 +0800
Subject: [PATCH] 修改属性命令,修改code界面中出现的bug

---
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllCodeDTO.java                   |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java                   |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java        |   51 
 Source/UBCS-WEB/.settings/src/views/code/code.vue                                                                        | 3655 +++++++++++++++++++++++++++++++---------------
 Source/UBCS-WEB/.settings/src/main.js                                                                                    |   25 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java |    5 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java               |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java           |  197 +-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java             |   13 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java                |    2 
 Source/UBCS-WEB/src/views/modeling/Business.vue                                                                          |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java              |  414 -----
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java           |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml                                      |    1 
 Source/UBCS-WEB/src/views/code/code.vue                                                                                  |   51 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java            |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java                 |   82 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java           |   39 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java  |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java                |    4 
 Source/UBCS-WEB/src/const/code/codebasic.js                                                                              |    5 
 Source/UBCS-WEB/src/const/code/mdmrule.js                                                                                |    7 
 /dev/null                                                                                                                |    0 
 Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java                                 |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java                 |   22 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java            |    6 
 26 files changed, 2,694 insertions(+), 1,910 deletions(-)

diff --git a/Source/UBCS-WEB/.settings/src/main.js b/Source/UBCS-WEB/.settings/src/main.js
index 5daa98c..d1f9558 100644
--- a/Source/UBCS-WEB/.settings/src/main.js
+++ b/Source/UBCS-WEB/.settings/src/main.js
@@ -25,7 +25,18 @@
 import crudCommon from '@/mixins/crud';
 // 涓氬姟缁勪欢
 import tenantPackage from './views/system/tenantpackage';
-
+import enupackage from "@/views/modeling/enupackage";
+import Versionpackage from "@/views/modeling/Versionpackage";
+import Businpackage from "@/views/modeling/Businpackage";
+import Relationpackage from "@/views/modeling/Relationpackage"
+import Torelationpackage from "@/views/modeling/Torelationpackage"
+import originalRange from "@/views/modeling/originalRange"
+import originalLink from "@/views/modeling/originalLink"
+import classifyTrees from "@/components/Tree/classifyTrees"
+import classifyTreeform from "@/components/Tree/classifyTreeform"
+import TemplatePro from "@/components/Tree/TemplatePro"
+import formulaEditor from "@/components/code-dialog-page/formulaEditor"
+import businessAdd from "@/views/modeling/BusinessAdd"
 // 娉ㄥ唽鍏ㄥ眬crud椹卞姩
 window.$crudCommon = crudCommon;
 // 鍔犺浇Vue鎷撳睍
@@ -47,6 +58,18 @@
 Vue.component('avueUeditor', avueUeditor);
 Vue.component('flowDesign', flowDesign);
 Vue.component('tenantPackage', tenantPackage);
+Vue.component('enupackage',enupackage)
+Vue.component('Versionpackage',Versionpackage)
+Vue.component('Businpackage',Businpackage)
+Vue.component('Relationpackage',Relationpackage)
+Vue.component('Torelationpackage',Torelationpackage)
+Vue.component('originalRange',originalRange)
+Vue.component('originalLink',originalLink)
+Vue.component('classifyTrees',classifyTrees)
+Vue.component('classifyTreeform',classifyTreeform)
+Vue.component('TemplatePro',TemplatePro)
+Vue.component('formulaEditor',formulaEditor)
+Vue.component('businessAdd',businessAdd)
 // 鍔犺浇鐩稿叧url鍦板潃
 Object.keys(urls).forEach(key => {
   Vue.prototype[key] = urls[key];
diff --git a/Source/UBCS-WEB/.settings/src/views/code/addbasiccode.vue b/Source/UBCS-WEB/.settings/src/views/code/addbasiccode.vue
deleted file mode 100644
index 2a75dd8..0000000
--- a/Source/UBCS-WEB/.settings/src/views/code/addbasiccode.vue
+++ /dev/null
@@ -1,508 +0,0 @@
-<template>
-
-  <div class="total">
-    <span class="left">
-      <el-form :model="form">
-
-          <el-form-item label="鐮佹缂栧彿:" :label-width="leftFormLabelWidth">
-            <el-input v-model="form.id" ></el-input>
-          </el-form-item>
-
-          <el-form-item label="鐮佹鍚嶇О:" :label-width="leftFormLabelWidth">
-            <el-input v-model="form.name"></el-input>
-          </el-form-item>
-
-          <el-form-item label="鐮佹绫诲瀷" :label-width="leftFormLabelWidth" prop="codefixedsec">
-            <el-select v-model="form.sectype" placeholder="璇烽�夋嫨" @change="changeSectypeFormItems">
-              <el-option
-                v-for="item in sectypeList"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="鎻忚堪:" :label-width="leftFormLabelWidth">
-            <el-input type="textarea" v-model="form.description"></el-input>
-          </el-form-item>
-
-          <el-form-item label="鏄惁娴佹按渚濊禆:" :label-width="leftFormLabelWidth"  prop="serialDependFlag">
-            <el-switch v-model="form.serialDependFlag"></el-switch>
-            <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right"></el-input-number>
-          </el-form-item>
-
-          <el-form-item label="鏄惁涓虹┖:" :label-width="leftFormLabelWidth">
-            <el-switch v-model="form.nullableFlag"></el-switch>
-          </el-form-item>
-
-      </el-form>
-    </span>
-    <el-divider direction="vertical"></el-divider>
-    <span class="right">
-
-      <!-- 鍥哄畾鐮佹 -->
-      <el-form v-show="form.sectype==='codefixedsec' ? true:false">
-        <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth">
-            <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
-              <el-option
-              v-for="item in codeSecLengthType"
-              :key="item.dictValue"
-              :label="item.dictValue"
-              :value="item.dictKey">
-            </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-            <el-input v-model="form.codeSecLength"></el-input>
-          </el-form-item>
-      </el-form>
-
-      <!-- 灞炴�х爜娈� -->
-      <el-form v-show="form.sectype==='codeattrsec' ? true:false">
-        <el-form-item label="灞炴��:" :label-width="rightFormLabelWidth">
-          <el-input
-            placeholder="璇烽�夋嫨"
-            suffix-icon="el-icon-search"
-            readonly="true"
-            v-model="form.referAttributeName"
-            @focus="openAttrSelectOrGetValue('attr')">
-            <span slot="suffix">
-              <i class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="margin-right: 5px;cursor: pointer;"></i>
-            </span>
-          </el-input>
-        </el-form-item>
-        <el-form-item label="灞炴�ф墍鍦ㄥ垎绫�:" :label-width="rightFormLabelWidth">
-          <el-input 
-          v-model="form.referCodeClassifyOidName"
-          disabled>
-        </el-input>
-        </el-form-item>
-        <el-form-item label="鍙栧�艰鍒�:" :label-width="rightFormLabelWidth">
-          <el-input
-            placeholder="璇烽�夋嫨"
-            suffix-icon="el-icon-search"
-            readonly="true"
-            v-model="form.getValueClass"
-            @focus="openAttrSelectOrGetValue('value')">
-            <span slot="suffix">
-              <i class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
-            </span>
-          </el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 娴佹按鐮佹 -->
-      <el-form v-show="form.sectype==='codeserialsec' ? true:false">
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按鍙风殑璧峰鍊�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.serialStart"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按鐨勬闀�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.serialStep"></el-input>
-        </el-form-item>
-        <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
-            <el-option label="宸﹁ˉ浣�" value="codeattrsec"
-                v-for="item in codeFillType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillSeparatorSelect" filterable placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeFillSeparator"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="濉厖闀垮害:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeFillLength"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按涓婇檺:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeFillLimit"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按鏄惁琛ョ爜:" :label-width="rightFormLabelWidth">
-          <el-switch v-model="form.codeFillFlag"></el-switch>
-        </el-form-item>
-        <el-form-item label="鑷畾涔夌殑娴佹按绠楁硶:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.customCodeSerialClass"></el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 灞傜骇鐮佹 -->
-      <el-form v-show="form.sectype==='codelevelsec' ? true:false">
-        <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeLevelType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="灞傜骇鐨勫��:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeLevelValue"></el-input>
-        </el-form-item>
-        <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in codeCutType"
-              :key="item.dictValue"
-              :label="item.dictValue"
-              :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in codeGetValueType"
-              :key="item.dictValue"
-              :label="item.dictValue"
-              :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-
-      <!-- 寮曠敤鐮佹 -->
-      <el-form v-show="form.sectype==='coderefersec' ? true:false">
-        <el-form-item label="鍙傜収寮曠敤鐨勪笟鍔$被鍨�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.referBtmId"></el-input>
-        </el-form-item>
-        <el-form-item label="鍙傜収閰嶇疆:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.referConfig"></el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 鏃ユ湡鐮佹 -->
-      <el-form v-show="form.sectype==='codedatesec' ? true:false">
-        <el-form-item label="鏃ユ湡鏍煎紡:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeDateFormatStr"></el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 鍒嗙被鐮佹 -->
-      <el-form v-show="form.sectype==='codeclassifysec' ? true:false">
-        <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeSecLengthType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
-        </el-form-item>
-        <el-form-item label="鏄惁鑷姩鍒嗛厤鍒嗙被鍊�:" :label-width="rightFormLabelWidth">
-          <el-switch v-model="form.matchClassifyValueFlag"></el-switch>
-        </el-form-item>
-        <el-form-item label="鐖跺垎绫荤爜娈�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.parentClassifySecOid"></el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 鍙彉鐮佹 -->
-      <el-form v-show="form.sectype==='codevariablesec' ? true:false">
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
-        </el-form-item>
-        <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeFillType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillSeparatorSelect" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeFillSeparator"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-
-    </span>
-
-  </div>
-
-</template>
-
-<script>
-import { addSave } from "@/api/code/codebasic";
-import { getDictionary } from "@/api/omd/dict";
-export default {
-  name: "addBasicCode",
-  data() {
-    return {
-      form: {
-        id: '', //缂栧彿
-        name: '', //鍚嶇О
-        sectype: 'codefixedsec', //鐮佹绫诲瀷
-        description: '', //鎻忚堪
-        serialDependFlag: false, //鏄惁娴佹按渚濊禆
-        serialDependOrder: '', //娴佹按渚濊禆椤哄簭
-        nullableFlag: false, //鏄惁涓虹┖
-        displayFlag: false, //
-        componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
-        pkCodeRule: '', //鎵�灞炵紪鐮佽鍒�
-      },
-      sectypeList:[],    //鐮佹绫诲瀷
-      codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
-      codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
-      codeFillSeparator:[], //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夊唴瀹�
-      codeLevelType:[],     //灞傜骇绫诲瀷
-      codeCutType:[],       //瀛楃鎴彇绫诲瀷
-      codeGetValueType:[],  //鍙栧�肩被鍨�
-
-      //琛ㄥ崟鍏冪礌鏍囩瀹藉害
-      leftFormLabelWidth: '110px',
-      rightFormLabelWidth: '150px',
-
-    };
-  },
-  computed: {
-
-
-  },
-  methods: {
-
-    //鍏紡鍐呭鍥炶皟鍒板瓙缁勪欢杩涜鍥炴樉
-    saveFormulaContent(data){
-      console.log(data);
-      this.form.getValueClass = data;
-    },
-
-    // 涓哄睘鎬ч�夊彇鍊间箣鍚庣殑鍥炴樉
-    selectedListClassifyLinkAttr(data){
-      //console.log(data);
-      this.form = Object.assign({}, this.form, {
-        referAttributeId:data.referAttributeId,
-        referAttributeName:data.referAttributeName,
-        referCodeClassifyOid: data.referCodeClassifyOid,
-        referCodeClassifyOidName: data.referCodeClassifyOidName,
-      })
-    },
-
-    // 鎵撳紑涓哄睘鎬ч�夊彇鍊兼垨鑰呭彇鍊艰鍒欑獥鍙�
-    openAttrSelectOrGetValue(condition){
-      if(condition === 'attr'){
-        //console.log('attr');
-        //璋冪敤鐖剁粍浠剁殑鏂规硶
-        this.$emit('openAttrSelectOrGetValue')
-      }else if(condition === 'value'){
-        //console.log('value');
-        this.$emit('openformulaEdit')
-      }
-    },
-
-    // 鐐瑰嚮杈撳叆妗嗙殑脳鍙凤紝娓呯┖杈撳叆妗嗕腑鐨勫唴瀹�
-    clearAttrDataByIcon(condition){
-      if(condition === 'attr'){
-        this.form.referAttributeName = '';
-        this.form.referAttributeId = '';
-        this.form.referCodeClassifyOid = '';
-        this.form.referCodeClassifyOidName = '';
-      }else if(condition === 'value'){
-        this.form.getValueClass = '';
-      }
-    },
-
-    addSave(pkCodeRule) {
-      this.form.pkCodeRule = pkCodeRule;
-      console.log(this.form);
-      addSave(this.form).then(() => {
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
-        }, error => {
-          window.console.log(error);
-      });
-    },
-
-    loadCodeSecType(){
-      getDictionary({code: "codeBasicSecType"}).then(res=>{
-        this.sectypeList = res.data.data;
-      })
-      this.loadCodeSecLength();
-      //console.log(this.sectypeList);
-    },
-
-    loadCodeSecLength(){
-      getDictionary({code: "codeSecLength"}).then(res=>{
-        this.codeSecLengthType = res.data.data;
-      })
-    },
-
-    loadCodeFillType(){
-      getDictionary({code: "codeFillType"}).then(res=>{
-        this.codeFillType = res.data.data;
-      })
-    },
-
-    loadCodeFillSeparator(){
-      getDictionary({code: "codeFillSeparator"}).then(res=>{
-        this.codeFillSeparator = res.data.data;
-      })
-    },
-
-    loadCodeLevelType(){
-      getDictionary({code: "codeLevelType"}).then(res=>{
-        this.codeLevelType = res.data.data;
-      })
-    },
-
-    loadCodeCutType(){
-      getDictionary({code: "codeCutType"}).then(res=>{
-        this.codeCutType = res.data.data;
-      })
-    },
-
-    loadCodeGetValueType(){
-      getDictionary({code: "codeGetValueType"}).then(res=>{
-        this.codeGetValueType = res.data.data;
-        console.log(this.codeGetValueType);
-      })
-    },
-
-    // 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��
-    changeSectypeFormItems(){
-      if(this.form.sectype==='codefixedsec'){
-        //鍥哄畾鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeSecLength: '',
-          codeSecLengthType: 'code_sec_length_variable'
-        });
-        this.loadCodeSecLength();
-      }else if(this.form.sectype==='codeattrsec'){
-        //灞炴�х爜娈�
-        this.form = Object.assign({}, this.form, {
-          referCodeClassifyOid: '',     //灞炴�d
-          referCodeClassifyOidName: '', //灞炴�ф墍鍦ㄥ垎绫�
-          referAttributeId: '',    //灞炴�х紪鍙�
-          referAttributeName:'',   //灞炴��
-          getValueClass:''         //鍙栧�艰鍒�
-      });
-      }else if(this.form.sectype==='codeserialsec'){
-        //娴佹按鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeSecLength: '', //鐮佹鐨勯暱搴�
-          serialStart: '1',  //娴佹按鍙疯捣濮嬪��
-          serialStep: '1',   //娴佹按鐨勬闀�
-          codeFillType: 'code_fill_right', //缂栫爜琛ヤ綅鏂瑰紡
-          codeFillSeparatorSelect: '0',    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
-          codeFillSeparator: '0',          //琛ヤ綅鏃剁殑瀛楃
-          codeFillLength: '',              //濉厖闀垮害
-          codeFillLimit: '',               //娴佹按涓婇檺
-          codeFillFlag: 'false',           //娴佹按鏄惁琛ョ爜
-          customCodeSerialClass: '',       //鑷畾涔夋祦姘寸畻娉�
-        });
-        this.loadCodeFillType();
-        this.loadCodeFillSeparator();
-      }else if(this.form.sectype==='codelevelsec'){
-        //灞傜骇鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeLevelType: 'code_level_min',     //灞傜骇绫诲瀷  鏋氫妇鏌ヨ
-          codeLevelValue: '',    //灞傜骇鐨勫��
-          valueCutType: 'code_cut_none',      //瀛楃鎴彇绫诲瀷 鏋氫妇鏌ヨ
-          valueCutLength: '',    //
-          codeGetValueType: 'code_get_value_all_up',  //鍙栧�肩被鍨� 鏋氫妇鏌ヨ
-        });
-        this.loadCodeLevelType();
-        this.loadCodeCutType();
-        this.loadCodeGetValueType();
-      }else if(this.form.sectype==='coderefersec'){
-        //寮曠敤鐮佹
-        this.form = Object.assign({}, this.form,{
-          referBtmId: '',   //鍙傜収寮曠敤鐨勪笟鍔$被鍨嬶紝鐨刬d
-          referBtmName: '', //鍙傜収寮曠敤鐨勪笟鍔$被鍨�
-          referConfig: ''   //鍙傜収閰嶇疆
-        });
-      }else if(this.form.sectype==='codedatesec'){
-        //鏃ユ湡鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeDateFormatStr: '',   //鏃ユ湡鏍煎紡
-        });
-      }else if(this.form.sectype==='codeclassifysec'){
-        //鍒嗙被鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeSecLengthType: 'code_sec_length_variable',    //鐮佹闀垮害绫诲瀷
-          codeSecLength: '',  //鐮佹鐨勯暱搴�
-          matchClassifyValueFlag: 'false',  //鏄惁鑷姩鍖归厤鍊�
-          parentClassifySecOid: '',    //鐖跺垎绫荤爜娈甸�変腑鐨刬d
-          parentClassifySecText: '',  //鐖跺垎绫荤爜娈�
-        });
-        this.loadCodeSecLength();
-      }else if(this.form.sectype==='codevariablesec'){
-        //鍙彉鐮佹
-        this.form = Object.assign({}, this.form,{
-          codeSecLength: '',            //鐮佹鐨勯暱搴�
-          codeFillType: 'code_fill_right',             //缂栫爜閮ㄤ綅鏂瑰紡锛屾灇涓炬煡璇�
-          codeFillSeparatorSelect: '0',  //閫変腑鐨勮ˉ浣嶆椂鐨勫瓧绗︾殑涓嬫爣
-          codeFillSeparator: '',        //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夋煡璇�
-        });
-        this.loadCodeFillType();
-        this.loadCodeFillSeparator();
-      }
-      //console.log(this.form);
-    }
-
-  }
-};
-</script>
-
-<style>
-  .total{
-    height: 420px;
-    width: 100%;
-
-  }
-
-  .total .el-input__inner,.total .el-textarea__inner {
-    width: 220px;
-  }
-
-  .el-divider--vertical {
-      width: 2px;
-      height: 31.5em;
-      margin: 0 5px;
-  }
-
- .left {
-    float: left;
-    width: 49%;
-    /* border-right: 2px rgb(0, 0, 0); */
- }
- .right {
-    float: right;
-    width: 49%;
-    /* border-left: 2px rgb(0, 0, 0); */
- }
- .right > .el-form > .el-form-item{
-    margin-bottom: 8px;
- }
-
- .el-input-number > .el-input > .el-input__inner{
-    width: 180px;
- }
-</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/.settings/src/views/code/clonecode.vue b/Source/UBCS-WEB/.settings/src/views/code/clonecode.vue
deleted file mode 100644
index 9160e00..0000000
--- a/Source/UBCS-WEB/.settings/src/views/code/clonecode.vue
+++ /dev/null
@@ -1,99 +0,0 @@
-<template>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               :permission="permissionList"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
-    </avue-crud>
-    
-</template>
-
-<script>
- import {clone} from "@/api/code/mdmrule";
-export default {
-  name: "cloneCode",
-  data() {
-    return {
-      loading: true,
-      selectionList: [],
-      option: {
-        height: 'auto',
-        calcHeight: 30,
-        tip: false,
-        searchShow: false,
-        searchMenuSpan: 6,
-        border: true,
-        index: true,
-        disablePage:false,
-        viewBtn: false,
-        selection: false,
-        dialogClickModal: false,
-        dialogWidth: 400,
-        column: [
-          {
-            label: "鐮佹缂栧彿",
-            prop: "packageName",
-            span: 24
-          },
-          {
-            label: "鐮佹鍚嶇О",
-            prop: "menuId",
-            span: 24,
-          },
-          {
-            label: "鐮佹鎻忚堪",
-            prop: "menuId",
-            span: 24,
-          },
-          {
-            label: "鐮佹绫诲瀷",
-            prop: "menuId",
-            span: 24,
-          }
-        ]
-      },
-      data: []
-    };
-  },
-  computed: {
-    permissionList() {
-      return {
-        addBtn: false,
-        viewBtn: false,
-        delBtn: false,
-        editBtn: false
-      };
-    },
-    
-  },
-  methods: {
-    initData() {
-          
-    },
-    refreshChange() {
-      this.onLoad();
-    },
-    onLoad() {
-      this.loading = true;
-      let oid = localStorage.getItem("cloneOid");
-      console.log(oid);
-    },
-    save(){
-      clone().then(() => {
-        this.loading = true;
-        this.$message({
-          type: "success",
-          message: "鎿嶄綔鎴愬姛!"
-        });
-      }, error => {
-        window.console.log(error);
-      });
-    },
-      
-  }
-};
-</script>
-
-<style>
-</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/.settings/src/views/code/code.vue b/Source/UBCS-WEB/.settings/src/views/code/code.vue
index ba79473..89dd072 100644
--- a/Source/UBCS-WEB/.settings/src/views/code/code.vue
+++ b/Source/UBCS-WEB/.settings/src/views/code/code.vue
@@ -2,55 +2,56 @@
   <basic-container style="height: 350px;">
 
     <!-- 缂栫爜瑙勫垯淇℃伅灞曠ず鍖哄煙 -->
-    <basic-container>
-      <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">缂栫爜瑙勫垯</p>
-      <avue-crud :option="optionRule"
-                :table-loading="loading"
-                :data="data"
-                :page.sync="page"
-                :permission="permissionList"
-                v-model="form"
-                ref="crud"
-                :before-open="beforeOpen"
-                @cell-click="loadBasic"
-                @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">
+    <basic-container class="code-rule-container">
+      <p style="margin-top: -5px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">缂栫爜瑙勫垯</p>
+      <avue-crud class="code-rule-crud"
+        :option="optionRule"
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        :permission="permissionList"
+        v-model="ruleForm"
+        ref="crud"
+        :before-open="beforeOpen"
+        @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 type="text"
-                    size="small"
-                    icon="el-icon-edit"
-                    v-show="scope.row.lcStatus=='Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">缂� 杈�
+              size="small"
+              icon="el-icon-edit"
+              v-show="scope.row.lcStatus=='Editing' ? true:false"
+              plain
+              @click="openEdit(scope.row)">缂� 杈�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    icon="el-icon-position"
-                    v-show="scope.row.lcStatus=='Editing' ? true:false"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'release')">鍙� 甯�
+            size="small"
+            icon="el-icon-position"
+            v-show="scope.row.lcStatus=='Editing' ? true:false"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'release')">鍙� 甯�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    v-show="scope.row.lcStatus=='Released' ? true:false"
-                    icon="el-icon-video-pause"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'disable')">鍋� 鐢�
+            size="small"
+            v-show="scope.row.lcStatus=='Released' ? true:false"
+            icon="el-icon-video-pause"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'disable')">鍋� 鐢�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    v-show="scope.row.lcStatus=='Disabled' ? true:false"
-                    icon="el-icon-video-play"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'enable')">鍚� 鐢�
+            size="small"
+            v-show="scope.row.lcStatus=='Disabled' ? true:false"
+            icon="el-icon-video-play"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'enable')">鍚� 鐢�
           </el-button>
         </template>
         <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
@@ -64,13 +65,13 @@
           <el-button size="small"
                     icon="icon-kelong"
                     plain
-                    @click="cloneCodeSetting">鍏� 闅�
+                    @click="openCodeRuleDialog">鍏� 闅�
           </el-button>
           <el-button size="small"
                     icon="icon-lianjiekelong"
                     style="font-size: 12px;"
                     plain
-                    @click="handleDelete">浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
+                    @click="openOtherCodeRuleDialog">浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
           </el-button>
           <el-button size="small"
                     icon="el-icon-s-help"
@@ -80,17 +81,18 @@
           <el-button size="small"
                     icon="icon-qingkong"
                     plain
-                    @click="handleDelete">娓呯┖鐮佸��
+                    @click="clearAllCodeSec">娓呯┖鐮佸��
           </el-button>
         </template>
       </avue-crud>
     </basic-container>
 
-    <!-- 瀵硅瘽妗� -->
+    <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
     <el-dialog title="缂栫爜瑙勫垯浣跨敤鑼冨洿"
-        append-to-body
-        :visible.sync="codeRangeSettingBox"
-        width="800px">
+      append-to-body
+      :visible.sync="codeRangeSettingBox"
+      width="800px"
+        style="height: 116vh; margin-top: -10vh;">
       <avue-crud
         :option="dialogeOption" 
         :table-loading="dialogLoading"
@@ -98,1213 +100,2432 @@
         @refresh-change="refreshUseRangeChange">
       </avue-crud>
     </el-dialog>
-    <!-- 鍏嬮殕瀵硅瘽妗� -->
+    <!-- 缂栫爜瑙勫垯,鍏嬮殕瀵硅瘽妗� -->
     <el-dialog title="鍏嬮殕缂栫爜瑙勫垯"
-        append-to-body
-        :visible.sync="cloneSettingBox"
-        width="800px">
-      <clone-code></clone-code>
+      append-to-body
+      :visible.sync="cloneSettingBox"
+      width="800px"
+      style="height: 120vh; margin-top: -14vh; overflow: hidden;">
+      <div style="overflow-y: auto; height: 78vh">
+        <el-row>
+          <el-form ref="form" :model="form" label-width="80px" :inline="true">
+            <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  label="鎻忚堪" class="clone-input-textarea">
+              <el-input :autosize="{ minRows: 3, maxRows: 5}" type="textarea" v-model="cloneCodeRuleForm.description"></el-input>
+            </el-form-item>
+          </el-form>
+        </el-row>
+        <el-row>
+          <p style="margin: -3vh 0px 16px 50%; font-weight: 500; font-size: 16px; color: #000;">鐮佹绠$悊</p>
+          <avue-crud
+            class="clone-avue-crud"
+            :option="cloneOption"
+            :table-loading="cloneTableLoading"
+            :data="cloneData"
+            @on-load="cloneDataOnLoad">
+            <template slot="menu" slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                icon="el-icon-arrow-up"
+                v-show="scope.row.orderNum > 1"
+                plain
+                @click="upOrderNum(scope.row)">涓婄Щ
+              </el-button>
+              <el-button
+                type="text"
+                size="small"
+                icon="el-icon-arrow-down"
+                plain
+                @click="downOrderNum(scope.row)">涓嬬Щ
+              </el-button>
+            </template>
+          </avue-crud>
+        </el-row>
+      </div>
+      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
+        <el-button @click="cloneSettingBox = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="saveCloneCodeRule">淇� 瀛�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 缂栫爜瑙勫垯,浠庡叾浠栬鍒欏厠闅嗗璇濇 -->
+    <el-dialog title="鍏嬮殕缂栫爜瑙勫垯鐨勫熀纭�淇℃伅"
+      append-to-body
+      :visible.sync="cloneOtherCodeRuleSettingBox"
+      width="800px"
+      style="height: 150vh; margin-top: -14vh;"
+      destroy-on-close>
+      <div>
+        <el-row>
+          <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">缂栫爜瑙勫垯</p>
+          <avue-crud
+            class="other-clone-coderule-crud"
+            :option="cloneCodeRuleOption"
+            @row-click="codeOtherCloneRuleRowClick"
+            :table-loading="loading"
+            :data="data"
+            :page.sync="page"
+            ref="crudCloneCodeRuleOther"
+            @size-change="sizeChange"
+            @selection-change="selectionOtherCloneCodeRuleChange"
+            @on-load="onLoad">
+          </avue-crud>
+        </el-row>
+        <el-row>
+          <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">鐮佹淇℃伅</p>
+          <avue-crud
+            class="other-clone-codebasic-crud"
+            :option="cloneBasicOption"
+            ref="crudCloneCodeBasicOther"
+            :table-loading="loadingBasic"
+            :data="basicData"
+            @selection-change="selectionOtherCloneCodeBasicChange">
+          </avue-crud>
+        </el-row>
+      </div>
+      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
+        <el-button @click="cloneOtherCodeRuleSettingBox = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="saveOtherCodeBasic">淇� 瀛�</el-button>
+      </div>
     </el-dialog>
 
     <!-- 鍩虹鐮佹灞曠ず鍖哄煙 -->
-    <basic-container>
-        <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">鐮佹绠$悊</p>
-        <avue-crud :option="optionBasic"
+    <basic-container class="code-basicsec-container">
+      <p style="margin-top: -5px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">鐮佹绠$悊</p>
+      <avue-crud  class="code-basic-crud"
+        :option="optionBasic"
+        ref="crudBasic"
         :table-loading="loadingBasic"
         :data="basicData"
         :permission="permissionList"
         @selection-change="selectionBasicChange"
         @refresh-change="refreshChangeBasicSec">
 
-        <!-- 鍩虹鐮佹琛ㄦ牸鍐呮搷浣滄寜閽� -->
-        <template slot="menu" slot-scope="scope">
+      <!-- 鍩虹鐮佹琛ㄦ牸鍐呮搷浣滄寜閽� -->
+      <template slot="menu" slot-scope="scope">
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-view"
+          v-show="currentRuleLcStatus != 'Editing'"
+          plain
+          @click="openBasicDialog('view',scope.row)">鏌ョ湅
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-edit"
+          v-show="currentRuleLcStatus === 'Editing'"
+          plain
+          @click="openBasicDialog('edit',scope.row)">缂栬緫
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-setting"
+          v-show="scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec'"
+          plain
+          @click="openBasicSecCodeValueMgr(scope.row)">鐮佸�肩鐞�
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-arrow-up"
+          v-show="scope.row.orderNum > 1"
+          plain
+          @click="upOrderNum(scope.row)">涓婄Щ
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-arrow-down"
+          plain
+          @click="downOrderNum(scope.row)">涓嬬Щ
+        </el-button>
+      </template>
 
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.lcStatus != 'Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">鏌� 鐪�
-          </el-button>
+      <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
+      <template slot="menuLeft" slot-scope="scope">
+        <el-button type="primary"
+                  size="small"
+                  icon="el-icon-plus"
+                  @click="addBasicCodeSec">鏂� 澧�
+        </el-button>
+        <el-button type="danger"
+                  size="small"
+                  icon="el-icon-delete"
+                  plain
+                  @click="deleteBasicCode(scope.row)">鍒� 闄�
+        </el-button>
+      </template>
 
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.lcStatus == 'Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">缂� 杈�
-          </el-button>
-
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.secType == 'codeclassifysec' || scope.row.secType == 'codefixedsec' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">鐮佸�肩鐞�
-          </el-button>
-
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.orderNum > 1 ? true:false"
-                    plain
-                    @click="upOrderNum(scope.row)">涓� 绉�
-          </el-button>
-          
-          <el-button type="text"
-                    size="small"
-                    icon="icon-xiayi"
-                    plain
-                    @click="downOrderNum(scope.row)">涓� 绉�
-          </el-button>
-          
-        </template>
-
-        <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
-        <template slot="menuLeft" slot-scope="scope">
-          <el-button type="primary"
-                    size="small"
-                    icon="el-icon-plus"
-                    @click="addBasicCodeSec">鏂� 澧�
-          </el-button>
-          <el-button type="danger"
-                    size="small"
-                    icon="el-icon-delete"
-                    plain
-                    @click="deleteBasicCode(scope.row)">鍒� 闄�
-          </el-button>
-        </template>
-
-    </avue-crud>
+      </avue-crud>
     </basic-container>
 
-     <!-- 鍩虹缂栫爜瑙勫垯瀵硅瘽妗� -->
-     <el-dialog title="娣诲姞鐮佹淇℃伅"
-        :visible.sync="addBasicCodeSettingBox"
-        width="780px"
-        append-to-body
-        style="margin-top: -8vh;"
-        destroy-on-close>
-
-        <!-- 灞炴�х爜娈碉紝灞炴�ч�夋嫨寮圭獥 -->
-        <el-dialog title="涓篬灞炴�閫夊彇鍊�"
-          append-to-body
-          :visible.sync="isShowSelectAttrOption"
-          width="78%"
-          style="height: 100%; margin-top: -8vh; overflow: hidden">
-          <div style="overflow-y: auto; height: 60vh">
-            <el-row>
-              <!-- 宸︿晶涓婚搴撳垎绫绘爲 -->
-              <el-col :span="5">
-                <div class="box">
-                  <el-scrollbar style="height: auto; border-bottom-right-radius:8px ">
-                    <basic-container>
-                      <div class="abox">
-                        <avue-tree :data="attrClassifyTreeData" :option="treeOption" @node-click="nodeClick"/>
-                      </div>
-                    </basic-container>
-                  </el-scrollbar>
-                </div>
-              </el-col>
-
-              <!-- 鍙充晶琛ㄦ牸鏄剧ず鍖哄煙 -->
-              <el-col span="19">
+    <!-- 鐮佹鐮佸�肩鐞嗗璇濇 -->
+    <el-dialog title="鐮佹鐮佸�肩鐞�"
+      :visible.sync="isShowBasicSecCodeValueMgr"
+      :width="isShowFixedForm ? '68vw':'50vw'"
+      append-to-body
+      style="height: 116vh; margin-top: -10vh;"
+      @close="clearFixedOrClassifyForm('close')"
+      destroy-on-close>
+      <!-- 鍒嗙被鐮佹鐮佸�肩鐞� -->
+      <el-row v-show="!isShowFixedForm">
+        <el-col :span="11">
+          <basic-container>
+            <div class="box classify_value_box" style="height:65vh; margin-bottom:-40px">
+              <el-scrollbar style="border-bottom-right-radius:8px ">
                 <basic-container>
-                  <div class="bbox">
-                  <avue-crud ref="crud"
-                      v-model="form"
-                      :data="selectattrData"
-                      :option="attrOption"
-                      :permission="permissionList"
-                      :table-loading="selectAttrOptionLoading"
-                      @search-change="selectAttrOptionSearchChange"
-                      @search-reset="searchAttrReset"
-                      @selection-change="selectionChangeAttr">
-                  </avue-crud>
+                  <div class="abox" style="height:54vh">
+                    <avue-tree
+                      :data="classifyValueTreeData" 
+                      :option="classisyValueTreeOption" 
+                      @node-click="classisyValueTreeOnodeClick"
+                      style="overflow-y: auto; height: 54vh"/>
                   </div>
                 </basic-container>
-              </el-col>
+              </el-scrollbar>
+            </div>
+            <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+              <el-button size="mini" type="primary" icon="el-icon-arrow-up" class="button" @click="codeClassifyValueOpetion('up')">涓婄Щ</el-button>
+              <el-button size="mini" type="primary" icon="el-icon-arrow-down" class="button" @click="codeClassifyValueOpetion('down')">涓嬬Щ</el-button>
+            </div>
+          </basic-container>
+        </el-col>
+        <el-col :span="13">
+          <basic-container>
+            <div class="box" style="height:65vh; margin-bottom:-40px">
+              <el-form>
+                <el-form-item label="鐮佸��:" :label-width="50" required>
+                  <el-input style="width: 18vw" v-model="codeClassifyForm.id"></el-input>
+                </el-form-item >
+                <el-form-item label="鍚嶇О:" :label-width="50" required>
+                  <el-input style="width: 18vw" v-model="codeClassifyForm.name"></el-input>
+                </el-form-item>
+              </el-form>
+            </div>
+            <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+              <el-button size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codeclassifyvaluesec')">娣诲姞</el-button>
+              <el-button :disabled="selectedFixedOrCodeclassifyValue==''"  size="mini" type="success" plain icon="el-icon-edit-outline" class="button"  @click="editCodeSecValue('codeclassifyvaluesec')">淇敼</el-button>
+              <el-button :disabled="selectedFixedOrCodeclassifyValue==''"  size="mini" type="danger" icon="el-icon-close" class="button" @click="delCodeSecValue('codeclassifyvaluesec')">鍒犻櫎</el-button>
+              <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codeclassifyvaluesec')">鍙栨秷</el-button>
+            </div>
+          </basic-container>
+        </el-col>
+      </el-row>
+      <!-- 鍥哄畾鐮佹鐮佸�肩鐞� -->
+      <el-row v-show="isShowFixedForm">
+        <el-col :span="15">
+          <basic-container>
+            <div class="box fixedbox" style="height:65vh; margin-bottom:-40px">
+              <avue-crud
+                class="fixed-avue-crud"
+                ref="crudFixedValue"
+                :data="fixedValueData"
+                :option="fixedValueOption"
+                :table-loading="fixedValueOptionLoading"
+                @row-click="selectedCodeValueRow">
+                <!-- 琛ㄦ牸鍐呮寜閽厤缃� -->
+                <template slot="menu" slot-scope="scope">
+                  <el-button size="mini" type="text" icon="el-icon-arrow-up" @click="codeFixedValueOpetion('up',scope.row)">涓婄Щ</el-button>
+                  <el-button size="mini" type="text" icon="el-icon-arrow-down" @click="codeFixedValueOpetion('down',scope.row)">涓嬬Щ</el-button>
+                  <el-button size="mini" type="text" icon="el-icon-minus" @click="codeFixedValueOpetion('remove',scope.row)">绉婚櫎</el-button>
+                </template>
+              </avue-crud>
+            </div>
+            <div style="margin-top:20px;">
+              <el-button size="mini" type="primary" icon="el-icon-success" class="button" @click="saveCodeFixedOrClassifyValueOption('fixedValue')">淇濆瓨</el-button>
+            </div>
+          </basic-container>
+        </el-col>
+        <el-col :span="9">
+          <basic-container>
+            <div class="box" style="height: 65vh; margin-bottom:-40px; overflow:hidden;" >
+              <div style="overflow-y:auto;height: 60vh;">
+                <el-form>
+                  <el-form-item label="鐮佸��:" label-width="54px" required>
+                    <el-input style="width: 19.5vw" v-model="codeFixdForm.id"></el-input>
+                  </el-form-item >
+                  <el-form-item label="鎻忚堪:">
+                    <el-input type="textarea" style="width: 20vw;" v-model="codeFixdForm.description"></el-input>
+                  </el-form-item>
+                </el-form>
+              </div>
+            </div>
+            <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+              <el-button :disabled="selectedFixedOrCodeclassifyValue!=''" size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codefixedsec')">娣诲姞</el-button>
+              <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codefixedsec')">淇敼</el-button>
+              <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="danger" icon="el-icon-close" class="button" @click="delCodeSecValue('codefixedsec')">鍒犻櫎</el-button>
+              <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codefixedsec')">鍙栨秷</el-button>
+            </div>
+          </basic-container>
+        </el-col>
+      </el-row>
+    </el-dialog>
 
-            </el-row>
-          </div>
+    <!-- 鍩虹鐮佹鏂板鐩稿叧瀵硅瘽妗� -->
+    <el-dialog :title="basicSecDialogTitle"
+      :visible.sync="addBasicCodeSettingBox"
+      width="60vw"
+      append-to-body
+      style="height: 115vh; margin-top: -13vh; overflow: hidden"
+      destroy-on-close
+      @close="clearBasicAddForm">
 
-          <div slot="footer" class="dialog-footer">
-            <el-button @click="isShowSelectAttrOption = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="savelistClassifyLinkAttr">纭� 瀹�</el-button>
-          </div>
-          
-        </el-dialog>
+      <!--  绗竴灞傚璇濇,娣诲姞鐮佹淇℃伅瀵硅瘽妗嗕腑鐨勫唴瀹� -->
+      <div class="total" style="overflow-y: auto; height: 70vh">
+        <el-form :model="form">
+          <span class="left">
+            <el-form-item label="鐮佹缂栧彿:" :label-width="leftFormLabelWidth" required>
+              <el-input v-model="form.id" :readonly="basicSecOnlyRead" ref="id"></el-input>
+            </el-form-item>
 
-         <!-- 灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗脊绐� -->
-        <el-dialog title="鍏紡缂栬緫妗�"
-          append-to-body
-          :visible.sync="isShowformulaEdit"
-          @close="closeFormulaEdit"
-          width="78%"
-          style="height: 150vh; margin-top: -13vh; overflow: hidden">
+            <el-form-item label="鐮佹鍚嶇О:" :label-width="leftFormLabelWidth" required>
+              <el-input ref="name"  v-model="form.name" :readonly="basicSecOnlyRead"></el-input>
+            </el-form-item>
+            
+            <el-form-item label="鐮佹绫诲瀷" :label-width="leftFormLabelWidth" required>
+              <el-select v-model="form.secType" placeholder="璇烽�夋嫨" @change="changeSectypeFormItems(null)" :disabled="basicSecOnlyRead">
+                <el-option
+                  v-for="item in sectypeList"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+                </el-option>
+              </el-select>
+            </el-form-item>
 
-          <div style="overflow-y: auto; height: 80vh">
-            <el-row>
-              <!-- 宸︿晶鍏紡鍐呭 -->
-              <el-col :span="14" style="overflow: hidden">
-                <el-card class="box-card" style="height: 33vh; overflow-y: auto; overflow-x: auto;">
-                    <div slot="header" class="clearfix">
-                      <span style="font-size: medium;">鍏紡鍐呭</span>
-                      <el-button type="primary" size="mini" style="float: right;" @click="saveFormulaContent">纭畾</el-button>
-                      <el-button type="warning" size="mini" style="margin-right: 10px; float: right;" @click="resetformulaContent">娓呯┖鍐呭</el-button>
+            <el-form-item label="鎻忚堪:" :label-width="leftFormLabelWidth">
+              <el-input type="textarea" v-model="form.description" :readonly="basicSecOnlyRead"></el-input>
+            </el-form-item>
+
+            <el-form-item label="鏄惁娴佹按渚濊禆:" :label-width="leftFormLabelWidth">
+              <el-switch v-model="form.serialDependFlag" :disabled="basicSecOnlyRead"></el-switch>
+              <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right" :readonly="basicSecOnlyRead"></el-input-number>
+            </el-form-item>
+
+            <el-form-item label="鏄惁涓虹┖:" :label-width="leftFormLabelWidth">
+              <el-switch v-model="form.nullableFlag"  :disabled="basicSecOnlyRead"></el-switch>
+            </el-form-item>
+          </span>
+          <el-divider direction="vertical"></el-divider>
+          <span class="right">
+            <!-- 鍥哄畾鐮佹 -->
+            <div v-show="form.secType==='codefixedsec' ? true:false">
+              <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                  v-for="item in codeSecLengthType"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+                </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeSecLength" ref="codeSecLength" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+            </div>
+            <!-- 灞炴�х爜娈� -->
+            <div v-show="form.secType==='codeattrsec' ? true:false">
+              <el-form-item label="灞炴��:" :label-width="rightFormLabelWidth" required>
+                <el-input
+                  placeholder="璇烽�夋嫨"
+                  prefix-icon="el-icon-search"
+                  readonly="true"
+                  ref="referAttributeId"
+                  v-model="form.referAttributeName"
+                  @focus="openAttrSelectOrGetValue('attr')"
+                  :disabled="basicSecOnlyRead">
+                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="cursor: pointer;"></i>
+                </el-input>
+              </el-form-item>
+              <el-form-item label="灞炴�ф墍鍦ㄥ垎绫�:" :label-width="rightFormLabelWidth">
+                <el-input 
+                  v-model="form.referCodeClassifyOidName"
+                  disabled>
+              </el-input>
+              </el-form-item>
+              <el-form-item label="鍙栧�艰鍒�:" :label-width="rightFormLabelWidth">
+                <el-input
+                  placeholder="璇烽�夋嫨"
+                  prefix-icon="el-icon-search"
+                  readonly="true"
+                  v-model="form.getValueClass"
+                  :disabled="basicSecOnlyRead"
+                  @focus="openAttrSelectOrGetValue('value')">
+                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
+                </el-input>
+              </el-form-item>
+            </div>
+            <!-- 娴佹按鐮佹 -->
+            <div v-show="form.secType==='codeserialsec' ? true:false">
+              <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeSecLength" ref="seriaCodeSecLength" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="娴佹按鍙风殑璧峰鍊�:" :label-width="rightFormLabelWidth">
+                <el-input v-model.number="form.serialStart" ref="serialStart"  :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="娴佹按鐨勬闀�:" :label-width="rightFormLabelWidth">
+                <el-input v-model.number="form.serialStep" ref="serialStep"  :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option label="宸﹁ˉ浣�" value="codeattrsec"
+                    v-for="item in codeFillType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
+                <el-select v-model="form.codeFillSeparatorSelect" @blur="inputSelectBlur" filterable placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeFillSeparator"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="濉厖闀垮害:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeFillLength"  ref="codeFillLength" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="娴佹按涓婇檺:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeFillLimit" ref="codeFillLimit" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="娴佹按鏄惁琛ョ爜:" :label-width="rightFormLabelWidth" required>
+                <el-switch v-model="form.codeFillFlag" :disabled="basicSecOnlyRead"></el-switch>
+              </el-form-item>
+              <el-form-item label="鑷畾涔夌殑娴佹按绠楁硶:" :label-width="rightFormLabelWidth">
+                <el-input v-model="form.customCodeSerialClass" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+            </div>
+            <!-- 灞傜骇鐮佹 -->
+            <div v-show="form.secType==='codelevelsec' ? true:false">
+              <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeLevelType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="灞傜骇鐨勫��:" :label-width="rightFormLabelWidth">
+                <el-input v-model.number="form.codeLevelValue" ref="codeLevelValue"  :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeCutType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
+                <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeGetValueType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </div>
+            <!-- 寮曠敤鐮佹 -->
+            <div v-show="form.secType==='coderefersec' ? true:false">
+              <el-form-item label="鍙傜収寮曠敤鐨勪笟鍔$被鍨�:" label-width="152px" required>
+                <el-input
+                  ref="referBtmId" 
+                  placeholder="璇烽�夋嫨"
+                  prefix-icon="el-icon-search"
+                  readonly="true"
+                  v-model="form.referBtmId"
+                  @focus="openAttrSelectOrGetValue('referBtmId')"
+                  :disabled="basicSecOnlyRead">
+                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i>
+                </el-input>
+              </el-form-item>
+              <el-form-item label="鍙傜収閰嶇疆:" label-width="152px" required>
+                <el-input
+                  ref="referConfig" 
+                  placeholder="璇烽�夋嫨"
+                  prefix-icon="el-icon-search"
+                  readonly="true"
+                  v-model="form.referConfig"
+                  @focus="openAttrSelectOrGetValue('referConfig')"
+                  :disabled="basicSecOnlyRead">
+                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referConfig')" style="margin-right: 5px;cursor: pointer;"></i>
+                </el-input>
+              </el-form-item>
+            </div>
+            <!-- 鏃ユ湡鐮佹 -->
+            <div v-show="form.secType==='codedatesec' ? true:false">
+              <el-form-item label="鏃ユ湡鏍煎紡:" :label-width="rightFormLabelWidth" required>
+                <el-input ref="codeDateFormatStr" v-model="form.codeDateFormatStr" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+            </div>
+            <!-- 鍒嗙被鐮佹 -->
+            <div v-show="form.secType==='codeclassifysec' ? true:false">
+              <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeSecLengthType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeSecLength" ref="classCodeSecLength" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="鏄惁鑷姩鍒嗛厤鍒嗙被鍊�:" :label-width="rightFormLabelWidth">
+                <el-switch v-model="form.matchClassifyValueFlag" :disabled="basicSecOnlyRead"></el-switch>
+              </el-form-item>
+              <el-form-item label="鐖跺垎绫荤爜娈�:" :label-width="rightFormLabelWidth">
+                <el-input
+                  placeholder="璇烽�夋嫨"
+                  prefix-icon="el-icon-search"
+                  readonly="true"
+                  v-model="form.parentClassifySecOid"
+                  @focus="openAttrSelectOrGetValue('parentClassifySecOid')"
+                  :disabled="basicSecOnlyRead">
+                  <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i>
+                </el-input>
+              </el-form-item>
+            </div>
+            <!-- 鍙彉鐮佹 -->
+            <div v-show="form.secType==='codevariablesec' ? true:false">
+              <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required>
+                <el-input v-model.number="form.codeSecLength" ref="varCodeSecLength" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required>
+                <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                      v-for="item in codeFillType"
+                      :key="item.dictValue"
+                      :label="item.dictValue"
+                      :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
+                <el-select v-model="form.codeFillSeparatorSelect" filterable @blur="inputSelectBlur" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in codeFillSeparator"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </div>
+          </span>
+        </el-form>
+      </div>
+      <!-- 绗竴灞傚璇濇鐨勬寜閽拰锛岀嚎鏉� -->
+      <el-divider direction="horizontal"></el-divider>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">鍙� 娑�</el-button>
+        <el-button type="primary" @click="saveOrEditBasicCode" v-show="showbtn">淇� 瀛�</el-button>
+      </div>
+
+      <!--  绗簩灞傚璇濇,灞炴�х爜娈碉紝灞炴�ч�夋嫨寮圭獥 -->
+      <el-dialog title="涓恒�愬睘鎬с�戦�夊彇鍊�"
+        append-to-body
+        :visible.sync="isShowSelectAttrOption"
+        width="78%"
+        style="height: 100%; margin-top: -8vh; overflow: hidden">
+        <div style="overflow-y: auto; height: 60vh">
+          <el-row>
+            <!-- 宸︿晶涓婚搴撳垎绫绘爲 -->
+            <el-col :span="5">
+              <div class="box">
+                <el-scrollbar style="height: auto; border-bottom-right-radius:8px ">
+                  <basic-container>
+                    <div class="abox">
+                      <avue-tree :data="attrClassifyTreeData" :option="treeOption" @node-click="nodeClick"/>
                     </div>
-                    <div class="text item">
-                      <el-input type="textarea" :rows="5" style="width: 560px;" v-model="formulaContent"></el-input>
-                    </div>
+                  </basic-container>
+                </el-scrollbar>
+              </div>
+            </el-col>
 
-                </el-card>
-              </el-col>
+            <!-- 鍙充晶琛ㄦ牸鏄剧ず鍖哄煙 -->
+            <el-col span="19">
+              <basic-container>
+                <div class="bbox">
+                <avue-crud
+                  :data="selectattrData"
+                  :option="attrOption"
+                  :table-loading="selectAttrOptionLoading"
+                  @search-change="selectAttrOptionSearchChange"
+                  @search-reset="searchAttrReset"
+                  @selection-change="selectionChangeAttr">
+                </avue-crud>
+                </div>
+              </basic-container>
+            </el-col>
 
-              <!-- 鍙充晶杩愮畻绗� -->
-              <el-col :span="10">
-                <el-card class="box-card" style="height: 33vh;">
-                  <div slot="header" class="clearfix">
-                    <span style="font-size: medium;">杩愮畻绗�</span>
-                  </div>
-                  <div class="text item">
-                    <div class="formula-editor">
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'7'})">7</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'8'})">8</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'9'})">9</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'/'})">/</button><br/>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'4'})">4</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'5'})">5</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'6'})">6</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'*'})">*</button><br/>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'1'})">1</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'2'})">2</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'3'})">3</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>'})">-</button><br/>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'0'})">0</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'00'})">00</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'.'})">.</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'+'})">+</button><br/>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'->'})">-></button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'=='})">==</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'('})">(</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':')'})">)</button><br/>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'<'})">&lt;</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>'})">&gt;</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'<='})">&lt;=</button>
-                        <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>='})">&gt;=</button>
-                    </div>
-                  </div>
-                </el-card>
-              </el-col>
-            </el-row>
-
-            <el-row>
-
-              <!-- 宸︿晶鍏紡閫夋嫨鍖哄煙 -->
-              <el-col :span="14" style="overflow: hidden">
-                <el-card class="box-card" style="height: 40vh; overflow-y: auto; overflow-x: auto;">
-                  <div slot="header" class="clearfix">
-                    <span style="font-size: medium;">鍏紡閫夋嫨</span>
-                  </div>
-                  <div class="text item">
-                    <el-tabs v-model="activeName">
-
-                      <el-tab-pane label="甯哥敤" name="first">
-                        <el-table
-                          :data="commonFormulaTableData"
-                          :show-header="false"
-                          @row-dblclick="dbClickAddContent"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="300">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="300">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-
-                      <el-tab-pane label="璐㈠姟" name="second">
-                        <el-table
-                          :data="financialFormulaTableData"
-                          @row-dblclick="dbClickAddContent"
-                          :show-header="false"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="300">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="300">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-
-                      <el-tab-pane label="鏃ユ湡" name="third">
-                        <el-table
-                          :data="dateFormulaTableData"
-                          :show-header="false"
-                          @row-dblclick="dbClickAddContent"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="300">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="300">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-
-                      <el-tab-pane label="鏁板" name="fourth">
-                        <el-table
-                          :data="mathFormulaTableData"
-                          :show-header="false"
-                          @row-dblclick="dbClickAddContent"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="300">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="300">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-
-                      <el-tab-pane label="鍏朵粬" name="five">
-                        <el-table
-                          :data="otherFormulaTableData"
-                          @row-dblclick="dbClickAddContent"
-                          :show-header="false"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="300">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="300">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-
-                    </el-tabs>
-                    
-                  </div>
-                </el-card>
-              </el-col>
-
-              <!-- 鍙充晶鍙橀噺閫夋嫨鍖哄煙 -->
-              <el-col :span="10" style="overflow: hidden">
-                <el-card class="box-card" style="height: 40vh; overflow-y: auto; overflow-x: auto;">
-                  <div slot="header" class="clearfix">
-                    <span style="font-size: medium;">鍙橀噺</span>
-                  </div>
-                  <div class="text item">
-                    <el-tabs v-model="activeNameAttr">
-                      <el-tab-pane label="鏈満鏅彉閲�" name="first">
-                        <el-table
-                          :data="thisSceneTableData"
-                          @row-dblclick="dbClickAddContent"
-                          :show-header="false"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="40">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="100">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-                      <el-tab-pane label="绯荤粺鍙橀噺" name="second">
-                        <el-table
-                          :data="systemVariableTableData"
-                          @row-dblclick="dbClickAddContent"
-                          :show-header="false"
-                          style="width: 100%">
-                          <el-table-column
-                            prop="formula"
-                            width="150">
-                          </el-table-column>
-                          <el-table-column
-                            prop="desc"
-                            width="150">
-                          </el-table-column>
-                        </el-table>
-                      </el-tab-pane>
-                    </el-tabs>
-                  </div>
-                </el-card>
-              </el-col>
-            </el-row>
-          </div>
-          
-        </el-dialog>
-
-        <!-- 娣诲姞鐮佹淇℃伅鐨勮嚜瀹氫箟缁勪欢 -->
-        <add-basic-code ref='addBasicChild' @openAttrSelectOrGetValue="openAttrSelectOrGetValue" @openformulaEdit="openformulaEdit"></add-basic-code>
-
-        <!-- 绗竴灞傚璇濇鐨勬寜閽拰锛岀嚎鏉� -->
-        <el-divider direction="horizontal"></el-divider>
-        <div slot="footer" class="dialog-footer">
-          <el-button @click="addBasicCodeSettingBox = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="saveBasicCode">淇� 瀛�</el-button>
+          </el-row>
         </div>
-      
+
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="isShowSelectAttrOption = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="selectedListClassifyLinkAttr">纭� 瀹�</el-button>
+        </div>
+        
       </el-dialog>
+
+      <!-- 绗簩灞傚璇濇,灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗脊绐楃粍浠� -->
+      <formula-editor ref="formulaEditor" 
+        @updateFormulaContent="updateFormulaContent" 
+        :thisSceneTableData="thisSceneTableData"
+        :systemVariableTableData="systemVariableTableData">
+      </formula-editor>
+
+      <!-- 绗簩灞傚璇濇,涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊煎脊绐� -->
+      <el-dialog title="涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊�"
+        append-to-body
+        :visible.sync="isShowParentClassifyOption"
+        width="65%"
+        style="height: 150vh; margin-top: -13vh;"
+        destroy-on-close>
+
+        <avue-crud
+          :page.sync="parentClassifyDataPage"
+          ref="crudParentClassify"
+          :option="parentClassifyParentOption" 
+          :table-loading="classifyDialogLoading"
+          :data="parentClassifyData"
+          @refresh-change="refreshParentClassifyDataChange"
+          @search-change="parentClassifySearchChange"
+          @search-reset="parentClassifySearchReset"
+          @selection-change="parentClassifySelectionChange"
+          @current-change="parentClassifyCurrentChange"
+          @size-change="parentClassifySizeChange"
+          @on-load="parentClassifyOnLoad">
+        </avue-crud>
+
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="isShowParentClassifyOption = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="saveSelectedParentClassify">淇� 瀛�</el-button>
+        </div>
+      </el-dialog>
+
+      <!-- 绗簩灞傚璇濇,涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊煎脊绐� -->
+      <el-dialog title="涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
+        append-to-body
+        :visible.sync="isShowSelectReferBtmOption"
+        width="65%"
+        style="height: 150vh; margin-top: -13vh;"
+        destroy-on-close>
+
+        <avue-crud
+          :page.sync="referBtmDataPage"
+          ref="crudReferBtm"
+          :option="referBtmOption" 
+          :table-loading="referBtmDialogLoading"
+          :data="referBtmData"
+          @refresh-change="referBtmDataChange"
+          @search-change="referBtmSearchChange"
+          @search-reset="referBtmSearchReset"
+          @selection-change="referBtmSelectionChange"
+          @current-change="referBtmCurrentChange"
+          @size-change="referBtmSizeChange"
+          @on-load="referBtmOnLoad">
+        </avue-crud>
+
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="isShowSelectReferBtmOption = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="saveSelectedreferBtm">淇� 瀛�</el-button>
+        </div>
+      </el-dialog>
+
+    </el-dialog>
 
   </basic-container>
  
 </template>
 
 <script>
-  import { gridCodeRule, getDetail, add, update, remove, listUseRange, updateStatus } from "@/api/code/mdmrule";
-  import { gridCodeBasicSec, downOrderNum, upOrderNum, deleteData, editSave, getObjectByOid, listDataByOids, refDataGrid} from "@/api/code/codebasic";
+  import { gridCodeRule, getDetail, add, update, remove, listUseRange, updateStatus,clone,clearAllCode } from "@/api/code/mdmrule";
+  import { 
+    gridCodeBasicSec, 
+    downOrderNum, 
+    upOrderNum, 
+    deleteData, 
+    editSave, 
+    cloneCodeBasic,
+    addSave,
+    refDataGridClassifySec,
+  } from "@/api/code/codebasic";
   import { treeTopCodeClassify, listClassifyLinkAttr } from "@/api/code/codeclassify";
+  import { gridCodeFixedValue,addSaveCodeFixedValue,deleteCodeFixedValue,editCodeFixedValue,saveOrder } from "@/api/code/codeFixedValue";
+  import { treeCodeClassifyValue,addSaveCodeClassifyValue,editCodeClassifyValue,deleteCodeClassifyValue,saveCodeClassifyValueOrder } from "@/api/code/codeClassifyValue";
+  import { getDictionary } from "@/api/omd/dict";
   import optionBasic from "@/const/code/codebasic";
+  import cloneOption from "@/const/code/cloneOption";
+  import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
+  import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption.js";
   import optionRule from "@/const/code/mdmrule";
-  import attrOption from "@/const/code/selectattroption";
-  import treeOption from "@/const/code/classifytreeoption";
+  import attrOption from "@/const/code/selectAttrOptionDialog";
+  import treeOption from "@/const/code/classifyTreeOptionDialog";
+  import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog";
+  import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog";
+  import referBtmOption from "@/const/code/referBtmDialog";
+  import fixedValueOption from "@/const/code/fixedValueMgrDialog";
   import {mapGetters} from "vuex";
 
-export default {
-    data() {
-      return {
-        form: {},
-        query: {},
-        loading: true,
-        currentCodeRuleOid: '',
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        selectionList: [],
-        /*缂栫爜瑙勫垯琛ㄦ牸閰嶇疆*/
-        optionRule: optionRule,
-
-        data: [],
-
-        /*鍏嬮殕鎸夐挳瀵硅瘽妗嗘帶鍒�*/
-        cloneSettingBox: false,
-        optionBasic: optionBasic,
-
-        /*鍩虹鐮佹鐩稿叧鏁版嵁*/
-        basicData:[],
-        loadingBasic: true,
-        selectionBasicList: [],
-        addBasicCodeSettingBox: false,
-        /* 涓哄睘鎬ч�夊彇鍊肩獥鍙f樉绀烘墦寮�鎺у埗鍙橀噺 */
-        isShowSelectAttrOption: false,
-        /* 涓哄睘鎬ч�夊�煎乏渚ф爲鏁版嵁 */
-        attrClassifyTreeData: [],
-        treeOption: treeOption,
-        currentSelectTreeData: '', //褰撳墠閫変腑鐨勬爲鑺傜偣
-        /* 涓哄睘鎬ч�夊�煎彸渚ц〃鏍肩浉鍏虫暟鎹� */
-        attrOption: attrOption,
-        selectattrData: [],
-        selectAttrOptionLoading: false,
-        selectionChangeAttrList: [],
-        /*鍏紡缂栬緫妗嗗璇濇*/
-        isShowformulaEdit: false, //鍏紡缂栬緫妗嗗璇濇鏄剧ず鎺у埗
-        formulaContent: '', //鍏紡缂栬緫妗嗗唴瀹�
-        activeName: 'first', //褰撳墠娲诲姩鐨則ab
-        activeNameAttr: 'first', //鍙橀噺涓殑褰撳墠娲诲姩tab
-
-        
-        //甯哥敤鍏紡
-        commonFormulaTableData: [{
-          "formula": 'if(compare,trueResult,falseResult)',
-          "desc": '濡傛灉compare鐨勮〃杈惧紡涓簍rue锛屽垯鎵цtrueResult鐨勮〃杈惧紡锛屽惁鍒欐墽琛宖laseResult.渚嬪if(3>2,2*(3+2),3/(2-4)),鍊肩瓑浜�10',
-        },
-        {
-          "formula": 'sum(douber1,douber2)',
-          "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁版眰鍜�',
-        },
-        {
-          "formula": 'sub(douber1,douber2)',
-          "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1鍑忓幓鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2',
-        },
-        {
-          "formula": 'mul(douber1,douber2)',
-          "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁扮浉涔�',
-        },
-        {
-          "formula": 'div(douber1,douber2)',
-          "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1闄や互鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2.褰揹ouber2绛変簬0鐨勬椂鍊欙紝杩斿洖0;濡傛灉闄や笉灏界殑鏃跺�欎繚鐣�10浣嶅皬鏁�',
-        },
-        {
-          "formula": 'mod(int,int)',
-          "desc": '姹備綑鏁�',
-        },
-        {
-          "formula": 'toInt(string)',
-          "desc": '杞崲涓篿nt鏍煎紡',
-        },
-        {
-          "formula": 'doubleRound(string,count)',
-          "desc": '澶勭悊douber鐨勫皬鏁颁綅鏁帮紝count琛ㄧず灏忔暟浣嶆暟',
-        },
-        {
-          "formula": 'zeroIfNull(value)',
-          "desc": '濡傛灉鍙傛暟鐨勫�间负null鎴栬��"",灏嗚繑鍥�0',
-        },
-        {
-          "formula": 'endsWith(string,str1)',
-          "desc": '瀛楃涓瞫tring鏄笉鏄互str1缁撳熬',
-        },
-        {
-          "formula": 'startsWith(string,str1)',
-          "desc": '瀛楃涓瞫tring鏄惁浠tr1寮�澶�',
-        },
-        {
-          "formula": 'charAt(string,index)',
-          "desc": '鑾峰彇瀛楃涓瞫tring涓index浣嶇疆鐨勫瓧绗︼紝濡傛灉闀垮害灏忎簬index锛屽垯杩斿洖',
-        },
-        {
-          "formula": 'equalsIgnoreCase(str1,str2)',
-          "desc": '瀛楃涓瞫tr1鍜屽瓧绗︿覆str2鏄惁鐩哥瓑',
-        },
-        {
-          "formula": 'indexOf(str1,str2)',
-          "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓娆″嚭鐜扮殑浣嶇疆',
-        },
-        {
-          "formula": 'isEmpty(str1)',
-          "desc": '鍙傛暟str1鏄惁涓虹┖锛屽叾涓璶ull杩欎釜瀛楃涓蹭篃琛ㄧず涓虹┖',
-        },
-        {
-          "formula": 'lastIndexOf(str1,str2)',
-          "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓渶鍚庡嚭鐜扮殑浣嶇疆',
-        },
-        {
-          "formula": 'leftStr(str1,index)',
-          "desc": '鑾峰彇index浣嶇疆宸︿晶鐨勬墍鏈夊瓧绗�',
-        },
-        {
-          "formula": 'rightStr(str1,str2)',
-          "desc": '鑾峰彇index浣嶇疆鍙充晶鐨勬墍鏈夊瓧绗�',
-        },
-        {
-          "formula": 'length(str1)',
-          "desc": '鍙傛暟str1鐨勯暱搴�',
-        },
-        {
-          "formula": 'mid(str1,start,end)',
-          "desc": '鑾峰彇str1鐨勪粠start鍒癳nd鐩存帴鐨勫瓧绗︿覆锛屽嚭鐜板紓甯告椂杩斿洖',
-        },
-        {
-          "formula": 'tolowercase(str1)',
-          "desc": '灏嗗瓧绗︿覆str1杞负灏忓啓',
-        },
-        {
-          "formula": 'touppercase(str1)',
-          "desc": '灏嗗瓧绗︿覆str1杞负澶у啓',
-        },
-        {
-          "formula": 'trimzero(str1)',
-          "desc": '鍘婚櫎瀛楃涓瞫tr1涓殑0',
-        },
-        {
-          "formula": 'MD5(str1)',
-          "desc": '灏嗗瓧绗︿覆杩涜MD5鍔犲瘑',
-        },
-       ],
-       //璐㈠姟鍏紡
-        financialFormulaTableData: [{
-            "formula": 'toChinese(value)',
-            "desc": '灏嗛樋鎷変集鏁板瓧杞负涓烘眽瀛楀ぇ鍐欐柟寮�'
-          },
-          {
-            "formula": 'getChineseCurrency(value)',
-            "desc": '灏嗛樋鎷変集鏁板瓧杞负涓烘眽瀛楅噾棰濆ぇ鍐欐柟寮忥紝涓巘ochiness鐨勫尯鍒槸杩欎釜浼氭樉绀哄厓銆佽銆佸垎'
-          },
-          {
-            "formula": 'setThmark(value)',
-            "desc": '涓哄弬鏁皏alue璁剧疆鍗冨垎浣�'
-          }
-        ],
-        //鏃ユ湡鍏紡
-        dateFormulaTableData: [{
-            "formula": 'compareDate(d1,d2)',
-            "desc": '瀵规瘮鍙傛暟d1,d2鐨勫ぇ灏忋�俤1,d2涓簓yyy-MM-dd鏍煎紡鐨勬棩鏈熷瓧绗︿覆'
-          },
-          {
-            "formula": 'nowDate()',
-            "desc": '鑾峰彇褰撳墠鏃ユ湡'
-          },
-          {
-            "formula": 'chinaDate(d1)',
-            "desc": '灏嗘椂闂磋浆鎹负鍐滃巻锛宒1鏄痽yyy-MM-dd鏍煎紡鐨勬棩鏈熷瓧绗︿覆'
-          },
-          {
-            "formula": 'dateAdd(d1,count)',
-            "desc": '鍦╠1鐨勫熀纭�涓婃坊鍔燾ount澶�,d1涓簓yyy-MM-dd HH:mm:ss鏍煎紡鐨勬椂闂村瓧绗︿覆'
-          },
-          {
-            "formula": 'dateBalanceYear(sourceDate,targetDate,false)',
-            "desc": '璁$畻鐩稿樊鐨勫勾浠斤紝姣斿璁$畻骞撮緞锛宼argetDate涓�""琛ㄧず褰撳墠鏃堕棿锛岀涓変釜鍙傛暟涓簍rue琛ㄧず鏈夊浣欑殑鏈堜唤鎴栬�呭ぉ鏁版椂锛屽氨鍔�1;'
-          },
-          {
-            "formula": 'dateBalanceDay(sourceDate,targetDate)',
-            "desc": '璁$畻鐩稿樊鐨勫ぉ鏁帮紝targetDate涓�""琛ㄧず褰撳墠鏃堕棿'
-          },
-          {
-            "formula": 'dateformat(d1,format)<',
-            "desc": '灏嗗綋鍓嶇殑鏃ユ湡锛堟椂闂达級瀛楃涓茶浆涓烘寚瀹氱殑瀛楃涓诧紝濡傛灉format鐨勫唴瀹规湁绌烘牸锛岃浣跨敤&浠f浛'
-          },
-          {
-            "formula": 'nowDatetime()',
-            "desc": '鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂淬�傛牸寮忎负yyyy-MM-dd HH:mm:ss'
-          },
-          {
-            "formula": 'dayOf(d1)',
-            "desc": '鑾峰彇鏍煎紡涓簓yyy-MM-dd鐨勬棩鏈熺殑澶╂暟'
-          },
-          {
-            "formula": 'nowMon()',
-            "desc": '鑾峰彇褰撳墠鐨勬湀浠斤紝鏍煎紡涓篗M'
-          },
-          {
-            "formula": 'monOf(d1)',
-            "desc": '鑾峰彇鏃ユ湡d1鐨勬湀浠芥暟'
-          },
-          {
-            "formula": 'nowTime()',
-            "desc": '鑾峰彇褰撳墠鏃堕棿锛屾牸寮忎负HH:mm:ss'
-          },
-          {
-            "formula": 'nowYear()',
-            "desc": '鑾峰彇骞翠唤锛屾牸寮忎负yyyy'
-          },
-          {
-            "formula": 'yearOf()',
-            "desc": '鑾峰彇鏃堕棿d1鐨勫勾浠�'
-          }
-        ],
-        //鏁板鍏紡
-        mathFormulaTableData: [{
-            "formula": 'abs(value)',
-            "desc": '姹傚弬鏁皏alue鐨勭粷瀵瑰�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'acos(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弽浣欏鸡锛寁alue蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'asin(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弽姝e鸡锛寁alue蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'atan(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弽姝e垏锛寁alue蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'cbrt(value)',
-            "desc": '姹傚弬鏁皏alue鐨勭珛鏂规牴锛寁alue蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'ceil(value)',
-            "desc": '杩斿洖涓嶅ぇ浜庡弬鏁皏alue鐨勬渶灏忔暣鏁帮紝渚嬪ceil(1.7)灏辩瓑浜�2锛寁alue蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'cos(value)',
-            "desc": '姹傚弬鏁皏alue鐨勪綑寮﹀�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'cosh(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弻鏇蹭綑寮﹀�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'exp(n)',
-            "desc": '娆ф媺鏁� e 鐨刵娆″箓锛宯蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'floor(n)',
-            "desc": '娆ф媺鏁� e 鐨刵娆″箓鍑�1锛宯蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'log(value)',
-            "desc": '杩斿洖涓嶅皬浜庡弬鏁皏alue鐨勬渶澶ф暣鏁帮紝渚嬪floor(1.7)绛変簬1锛宯蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'log10(value)',
-            "desc": '鑷劧瀵规暟,value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'log1p(value)',
-            "desc": '璁$畻搴曟暟涓� 10 鐨勫鏁�,value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'random()',
-            "desc": '杩斿洖鍙傛暟涓� 1 涔嬪拰鐨勮嚜鐒跺鏁帮紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'rint(value)',
-            "desc": '杩斿洖涓�涓吉闅忔満鏁帮紝璇ュ�煎ぇ浜庣瓑浜� 0.0 涓斿皬浜� 1.0'
-          },
-          {
-            "formula": 'round(value)',
-            "desc": '杩斿洖鍏跺�兼渶鎺ヨ繎鍙傛暟骞朵笖鏄暣鏁扮殑 double 鍊笺�傚鏋滀袱涓暣鏁扮殑 double 鍊奸兘鍚屾牱鎺ヨ繎锛岄偅涔堢粨鏋滃彇鍋舵暟銆傜壒娈婃儏鍐垫槸锛氬鏋滃弬鏁板�兼槸鏁存暟锛岄偅涔堢粨鏋滃氨鏄鍙傛暟銆傚鏋滃弬鏁版槸 NaN 鎴栨棤绌峰ぇ鎴栨闆舵垨璐熼浂锛岄偅涔堢粨鏋滀笌鍙傛暟鐩稿悓'
-          },
-          {
-            "formula": 'signum(value)',
-            "desc": '绗﹀彿鍑芥暟锛涘鏋滃弬鏁颁负 0锛屽垯杩斿洖 0锛涘鏋滃弬鏁板ぇ浜� 0锛� 鍒欒繑鍥� 1.0锛涘鏋滃弬鏁板皬浜� 0锛屽垯杩斿洖 -1.0'
-          },
-          {
-            "formula": 'sin(value)',
-            "desc": '姹傚弬鏁皏alue鐨勬寮﹀�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'sinh(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弻鏇叉寮﹀�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'tan(value)',
-            "desc": '姹傚弬鏁皏alue鐨勬鍒囧�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'tanh(value)',
-            "desc": '姹傚弬鏁皏alue鐨勫弻鏇叉鍒囧�硷紝value蹇呴』涓烘暟瀛楁牸寮�'
-          },
-          {
-            "formula": 'max(v1,v2)',
-            "desc": '姹備袱涓暟涓殑杈冨ぇ鐨勫�硷紝v1,v2閮藉繀椤讳负鏁板瓧鏍煎紡锛屼緥濡俶ax(3.2,3)灏辩瓑浜�3.2'
-          },
-          {
-            "formula": 'min(v1,v2)',
-            "desc": '姹備袱涓暟涓殑杈冨皬鐨勫�硷紝v1,v2閮藉繀椤讳负鏁板瓧鏍煎紡锛屼緥濡俶ax(3.2,3)灏辩瓑浜�3'
-          },
-          {
-            "formula": 'sqrt(value)',
-            "desc": '姹傚钩鏂规牴'
-          },
-        ],
-        //鍏朵粬鍏紡
-        otherFormulaTableData: [{
-            "formula": 'getcolvalue(servername,tablename,fieldname,pkField,pkValue)',
-            "desc": '鏌ヨservername涓璽ablename鏁版嵁搴撹〃涓璮ieldname瀛楁鐨勫�硷紝pkfield琛ㄧず涓婚敭鐨勫瓧娈靛悕绉帮紝pkValue琛ㄧず涓婚敭鐨勫�硷紝serverName鐜板湪榛樿涓簂ocalServer'
-          },
-        ],
-        
-        //鏈満鏅彉閲�
-        thisSceneTableData: [{
-            "formula": '${}',
-            "desc": ' '
-          },
-        ],
-        //绯荤粺鍙橀噺
-        systemVariableTableData: [{
-            "formula": '#CURRENTUSER.OID#',
-            "desc": '褰撳墠鐢ㄦ埛鐨勪富閿�'
-          },
-          {
-            "formula": '#CURRENTUSER.ID#',
-            "desc": '褰撳墠鐢ㄦ埛鐨勮处鎴�'
-          },
-          {
-            "formula": '#CURRENTTIME#',
-            "desc": '褰撳墠鏃堕棿'
-          },
-          {
-            "formula": '#CURRENTDATE#',
-            "desc": '褰撳墠鏃ユ湡'
-          },
-          {
-            "formula": '#CURRENTDATETIME#',
-            "desc": '褰撳墠鏃ユ湡鏃堕棿'
-          },
-          {
-            "formula": '#CURRENTUSER_NAME#',
-            "desc": '褰撳墠鐢ㄦ埛鐨勫鍚�'
-          },
-          {
-            "formula": '#CURRENTUSER.SECRETGRADE#',
-            "desc": '褰撳墠鐢ㄦ埛瀵嗙骇'
-          },
-          {
-            "formula": '#CURRENTUSER.IPSECRET#',
-            "desc": '褰撳墠鐢ㄦ埛鐨処P瀵嗙骇'
-          },
-          {
-            "formula": '#CURRENTUSER.BUSINESSUNIT#',
-            "desc": '褰撳墠鐢ㄦ埛鎵�灞炰笟鍔″崟鍏�'
-          },
-          {
-            "formula": '#CURRENTUSER.BUSINESSUNITNAME#',
-            "desc": '褰撳墠鐢ㄦ埛鎵�灞炰笟鍔″崟鍏冨悕绉�'
-          },
-          {
-            "formula": '#CURRENTUSER.GROUPOID#',
-            "desc": '褰撳墠鐢ㄦ埛鐨勯儴闂ㄤ富閿�'
-          },
-          {
-            "formula": '#CURRENTUSER.GROUPNAME#',
-            "desc": '褰撳墠鐢ㄦ埛鎵�灞為儴闂ㄥ悕绉�'
-          },
-          {
-            "formula": '#CURRENTUSER.EMAIL#',
-            "desc": '褰撳墠鐢ㄦ埛閭欢鍦板潃'
-          },
-          {
-            "formula": '#CURRENTUSER.ROLENAME#',
-            "desc": '褰撳墠鐢ㄦ埛鎵�灞炶鑹插悕绉�'
-          }
-        ],
-
-        /*浣跨敤鑼冨洿瀵硅瘽妗嗘樉绀烘帶鍒�*/
-        codeRangeSettingBox: false,
-        useRangeData: [],
-        dialogLoading: true,
-        /*浣跨敤鑼冨洿瀵硅瘽妗嗛厤缃�*/
-        dialogeOption: {
-        height: 'auto',
-        calcHeight: 30,
-        tip: false,
-        searchShow: false,
-        searchMenuSpan: 6,
-        border: true,
-        index: true,
-        disablePage:false,
-        viewBtn: false,
-        addBtn: false,
-        menu: false,
-        selection: false,
-        dialogClickModal: false,
-        align: 'center',
-        dialogWidth: 400,
-        column: [
-          {
-            label: "鍒嗙被缂栧彿",
-            prop: "id",
-            span: 24
-          },
-          {
-            label: "鍒嗙被鍚嶇О",
-            prop: "name",
-            span: 24,
-          }
-        ]
-      },
-      };
-    },
-    computed: {
-      ...mapGetters(["permission"]),
-      permissionList() {
+  export default {
+      data() {
         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)
+          ruleForm: {},
+          query: {},
+          loading: true,
+          currentCodeRuleOid: '',
+          page: {
+            pageSize: 10,
+            currentPage: 1,
+            total: 0
+          },
+          selectionList: [],
+          /*缂栫爜瑙勫垯琛ㄦ牸閰嶇疆*/
+          optionRule: optionRule,
+          data: [],
+          currentRuleLcStatus: '',
+          /*鍏嬮殕瀵硅瘽妗嗘帶鍒跺彉閲�*/
+          cloneSettingBox: false,
+          cloneTableLoading: false,
+          cloneOption: cloneOption,
+          cloneData: [],
+          cloneCodeRuleForm: {
+            id: '',
+            name: '',
+            description: '',
+          },
+          /*浠庡叾浠栬鍒欏厠闅嗙爜娈�*/
+          cloneOtherCodeRuleSettingBox: false,
+          cloneBasicOption: cloneBasicOption,
+          cloneCodeRuleOption: cloneCodeRuleOption,
+          selectionOtherCloneCodeBasicList: [], // 褰撳墠閫変腑鐨勫熀纭�鐮佹
+
+          /*浣跨敤鑼冨洿瀵硅瘽妗嗘樉绀烘帶鍒�*/
+          codeRangeSettingBox: false,
+          useRangeData: [],
+          dialogLoading: true,
+          /*浣跨敤鑼冨洿瀵硅瘽妗嗛厤缃�*/
+          dialogeOption: {
+            height: 'auto',
+            calcHeight: 30,
+            tip: false,
+            searchShow: false,
+            searchMenuSpan: 6,
+            border: true,
+            index: true,
+            disablePage:false,
+            viewBtn: false,
+            addBtn: false,
+            menu: false,
+            selection: false,
+            dialogClickModal: false,
+            align: 'center',
+            dialogWidth: 400,
+            column: [
+              {
+                label: "鍒嗙被缂栧彿",
+                prop: "id",
+                span: 24
+              },
+              {
+                label: "鍒嗙被鍚嶇О",
+                prop: "name",
+                span: 24,
+              }
+            ]
+          },
+
+          /*鍩虹鐮佹鐩稿叧鏁版嵁*/
+          optionBasic: optionBasic,
+          basicData:[],
+          loadingBasic: true,
+          selectionBasicList: [],
+          addBasicCodeSettingBox: false,
+          showbtn: false, //鍩虹鐮佹鏂板鏄惁鏄剧ず鍩虹鐮佹
+          basicSecDialogTitle: '', //鍩虹鐮佹绗竴灞傚璇濇鏍囬
+          basicSecOnlyRead: false, //鏂板鍩虹鐮佹琛ㄥ崟鏄惁鍙
+
+
+          /** 鐮佸�肩鐞嗙浉鍏虫暟鎹� */
+          isShowBasicSecCodeValueMgr: false, //鐮佹鐮佸�肩鐞嗗璇濇
+          codefixedsecOrCodeclassifysecOid: '', //瀛樻斁鍩虹鐮佹鐐瑰嚮鐮佸�肩鐞嗘椂鐨勫綋鍓嶈id锛岀敤浜庝繚瀛樼爜鍊兼椂浣跨敤
+          selectedFixedOrCodeclassifyValue: '', //褰撳墠閫変腑鐨勭爜鍊兼暟鎹�
+          //鍥哄畾鐮佹鐮佸�艰〃鍗�
+          codeFixdForm: {
+            codeFixedSecOid: "",
+            description: "",
+            id: "",
+          }, 
+          isShowFixedForm: true, //true鏄剧ず鍥哄畾鐮佹鐮佸�肩鐞嗙晫闈紝false鏄剧ず鍒嗙被鐮佹鐮佸�肩鐞嗙晫闈�
+          fixedValueData: [], //鍥哄畾鐮佹鐮佸�艰〃鏍兼暟鎹�
+          fixedValueOption: fixedValueOption, //琛ㄦ牸閰嶇疆
+          fixedValueOptionLoading: false,  //鍔犺浇琛ㄦ牸鐨勫姩鎬佹晥鏋�
+          fixedValueSelectList: [],  //鍥哄畾鐮佹鐮佸�煎綋鍓嶉�変腑鐨勮
+
+          //鍒嗙被鐮佹鐮佸�艰〃鍗�
+          codeClassifyForm: {
+            codeClassifySecOid: "",
+            id: "",
+            name: "",
+            oid: "",
+          },
+          classisyValueTreeOption: classisyValueTreeOption, //鍒嗙被鐮佹鏍戠浉鍏抽厤缃」
+          classifyValueTreeData: [],
+          currentSelectTreeData: '', //褰撳墠閫変腑鐨勫垎绫荤爜鍊兼爲鑺傜偣
+
+          /* 涓哄睘鎬ч�夊彇鍊肩獥鍙f樉绀烘墦寮�鎺у埗鍙橀噺 */
+          isShowSelectAttrOption: false,
+          /* 涓哄睘鎬ч�夊�煎乏渚ф爲鏁版嵁 */
+          attrClassifyTreeData: [],
+          treeOption: treeOption,
+          currentSelectTreeData: '', //褰撳墠閫変腑鐨勬爲鑺傜偣
+          /* 涓哄睘鎬ч�夊�煎彸渚ц〃鏍肩浉鍏虫暟鎹� */
+          attrOption: attrOption,
+          selectattrData: [],
+          selectAttrOptionLoading: false,
+          selectionChangeAttrList: [],
+          // 灞炴�х爜娈碉紝鍏紡缂栬緫妗嗙粍浠剁殑鏈満鏅樉绀哄彉閲忋�佷笌绯荤粺鍙橀噺
+          thisSceneTableData: [
+            {
+                formula: "${}",
+                desc: "",
+            }
+          ],
+          systemVariableTableData: [
+            {
+                formula: "#CURRENTUSER.OID#",
+                desc: "褰撳墠鐢ㄦ埛鐨勪富閿�",
+            },
+            {
+                formula: "#CURRENTUSER.ID#",
+                desc: "褰撳墠鐢ㄦ埛鐨勮处鎴�",
+            },
+            {
+                formula: "#CURRENTTIME#",
+                desc: "褰撳墠鏃堕棿",
+            },
+            {
+                formula: "#CURRENTDATE#",
+                desc: "褰撳墠鏃ユ湡",
+            },
+            {
+                formula: "#CURRENTDATETIME#",
+                desc: "褰撳墠鏃ユ湡鏃堕棿",
+            },
+            {
+                formula: "#CURRENTUSER_NAME#",
+                desc: "褰撳墠鐢ㄦ埛鐨勫鍚�",
+            },
+            {
+                formula: "#CURRENTUSER.SECRETGRADE#",
+                desc: "褰撳墠鐢ㄦ埛瀵嗙骇",
+            },
+            {
+                formula: "#CURRENTUSER.IPSECRET#",
+                desc: "褰撳墠鐢ㄦ埛鐨処P瀵嗙骇",
+            },
+            {
+                formula: "#CURRENTUSER.BUSINESSUNIT#",
+                desc: "褰撳墠鐢ㄦ埛鎵�灞炰笟鍔″崟鍏�",
+            },
+            {
+                formula: "#CURRENTUSER.BUSINESSUNITNAME#",
+                desc: "褰撳墠鐢ㄦ埛鎵�灞炰笟鍔″崟鍏冨悕绉�",
+            },
+            {
+                formula: "#CURRENTUSER.GROUPOID#",
+                desc: "褰撳墠鐢ㄦ埛鐨勯儴闂ㄤ富閿�",
+            },
+            {
+                formula: "#CURRENTUSER.GROUPNAME#",
+                desc: "褰撳墠鐢ㄦ埛鎵�灞為儴闂ㄥ悕绉�",
+            },
+            {
+                formula: "#CURRENTUSER.EMAIL#",
+                desc: "褰撳墠鐢ㄦ埛閭欢鍦板潃",
+            },
+            {
+                formula: "#CURRENTUSER.ROLENAME#",
+                desc: "褰撳墠鐢ㄦ埛鎵�灞炶鑹插悕绉�",
+            },
+          ],
+
+          /* 鐖跺垎绫荤爜娈靛璇濇 */
+          isShowParentClassifyOption: false, //鐖跺垎绫荤爜娈靛璇濇鏄剧ず鎺у埗
+          classifyDialogLoading: true, //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+          parentClassifyParentOption: parentClassifyParentOption,  //琛ㄦ牸閰嶇疆
+          parentClassifyData: [], //琛ㄦ牸鏁版嵁
+          //鍒嗛〉鍙傛暟閰嶇疆
+          parentClassifyDataPage: {
+            pageSize: 10,
+            currentPage: 1,
+            total: 0
+          },
+          parentClassifyQuery: {}, //鏌ヨ鏉′欢
+          parentClassifySelectionList: [], //褰撳墠閫変腑琛�
+
+          
+          /** 鍙傜収寮曠敤鐨勪笟鍔$被鍨嬪璇濇鐩稿叧鏁版嵁 */
+          isShowSelectReferBtmOption: false,   //瀵硅瘽妗嗘樉绀烘帶鍒�
+          referBtmDialogLoading: true,   //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+          referBtmDataPage: {
+            pageSize: 10,
+            currentPage: 1,
+            total: 0
+          },
+          referBtmOption: referBtmOption, //琛ㄦ牸閰嶇疆
+          referBtmData: [], //琛ㄦ牸鏁版嵁
+          referBtmQuery: {}, //鏌ヨ鏉′欢
+          referBtmSelectionList: [], //褰撳墠閫変腑琛�
+
+          /** 鍩虹鐮佹鏂板琛ㄥ崟 */
+          form: {
+            id: '', //缂栧彿
+            name: '', //鍚嶇О
+            secType: 'codefixedsec', //鐮佹绫诲瀷
+            description: '', //鎻忚堪
+            serialDependFlag: false, //鏄惁娴佹按渚濊禆
+            serialDependOrder: '', //娴佹按渚濊禆椤哄簭
+            nullableFlag: false, //鏄惁涓虹┖
+            displayFlag: false, //
+            componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
+            pkCodeRule: '', //鎵�灞炵紪鐮佽鍒�
+          },
+          // formRules: {
+          //   id: [
+          //     { required: true, message: '璇疯緭鍏ョ爜娈电紪鍙�', trigger: 'blur' },
+          //   ],
+          //   name: [
+          //     { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
+          //   ],
+          //   secType: [
+          //     { required: true, message: '璇烽�変腑鐮佹绫诲瀷', trigger: 'change' },
+          //   ],
+          //   codeSecLengthType: [
+          //     { required: true, message: '璇烽�夋嫨鐮佹闀垮害绫诲瀷', trigger: 'change' },
+          //   ],
+          //   codeSecLength: [
+          //     { required: true, message: '璇疯緭鍏ョ爜娈电殑闀垮害', trigger: ['blur', 'change']},
+          //     { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
+          //   ],
+          //   referAttributeName: [
+          //     { required: true, message: '璇烽�夋嫨灞炴��', trigger: 'change' },
+          //   ],
+          //   serialStart: [
+          //     { type: 'number', message: '娴佹按鍙风殑璧峰鍊煎繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
+          //   ],
+          //   serialStep: [
+          //     { type: 'number', message: '娴佹按鐨勬闀垮繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
+          //   ],
+          //   codeFillType: [
+          //     { required: true, message: '璇烽�夋嫨缂栫爜琛ヤ綅鏂瑰紡', trigger: ['blur', 'change']},
+          //   ],
+          //   // 璁剧疆琛ヤ綅鏃剁殑瀛楃锛岄渶瑕佽嚜瀹氫箟鏉ュ仛鍒ゆ柇
+          //   codeFillSeparatorSelect: [
+          //     { validator: validateCodeFill, trigger: ['blur', 'change'] },
+          //   ],
+          //   codeFillLength: [
+          //     { required: true, message: '璇疯緭鍏ュ~鍏呴暱搴�', trigger: ['blur', 'change'] },
+          //     { type: 'number', message: '濉厖闀垮害蹇呴』涓烘暟瀛楀��',trigger: ['blur', 'change']}
+          //   ],
+          //   codeFillLimit: [
+          //     { required: true, message: '璇疯緭鍏ユ祦姘翠笂闄�', trigger: ['blur', 'change'] },
+          //     { type: 'number', message: '娴佹按涓婇檺蹇呴』涓烘暟瀛楀��',trigger: ['blur', 'change']}
+          //   ],
+          //   codeLevelType: [
+          //     { required: true, message: '璇烽�夋嫨灞傜骇绫诲瀷', trigger: 'change' },
+          //   ],
+          //   codeLevelValue: [
+          //     { required: false, type: 'number', message: '灞傜骇鐨勫�煎繀椤讳负鏁板瓧鍊�', trigger: 'change'}
+          //   ],
+          //   valueCutType: [
+          //     { required: true, message: '璇烽�夋嫨瀛楃鎴彇绫诲瀷', trigger: 'change' },
+          //   ],
+          //   referBtmId: [
+          //     { required: true, message: '璇烽�夋嫨鍙傜収搴旂敤鐨勪笟鍔$被鍨�', trigger: 'change' },
+          //   ],
+          //   referConfig: [
+          //     { required: true, message: '璇烽�夋嫨鍙傜収閰嶇疆', trigger: 'change' },
+          //   ],
+          //   codeDateFormatStr: [
+          //     { required: true, message: '璇疯緭鍏ユ棩鏈熸牸寮�', trigger: ['blur', 'change'] },
+          //   ],
+
+          // },
+          //鏋氫妇鍜屽彲杈撳彲閫夋煡璇�
+          sectypeList:[],    //鐮佹绫诲瀷
+          codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
+          codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
+          codeFillSeparator:[], //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夊唴瀹�
+          codeLevelType:[],     //灞傜骇绫诲瀷
+          codeCutType:[],       //瀛楃鎴彇绫诲瀷
+          codeGetValueType:[],  //鍙栧�肩被鍨�
+
+          //琛ㄥ崟鍏冪礌鏍囩瀹藉害
+          leftFormLabelWidth: '110px',
+          rightFormLabelWidth: '150px',
+
         };
       },
-    },
-    methods: {
-      
-      // 鎵撳紑鍏紡缂栬緫妗嗭紝绗簩灞傚祵濂楀璇濇
-      openformulaEdit(){
-        this.isShowformulaEdit = true;
+      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)
+          };
+        },
       },
+      methods: {
 
-      //鍙屽嚮娣诲姞鍏紡鍐呭
-      dbClickAddContent(row){
-        //console.log(row.formula);
-        this.formulaContent = this.formulaContent + row.formula;
-      },
-
-      //娓呯┖鍏紡鍐呭
-      resetformulaContent(){
-        this.formulaContent = '';
-      },
-
-      //鍏抽棴鏃舵竻绌轰笂娆″叕寮忓唴瀹�
-      closeFormulaEdit(){
-        this.resetformulaContent();
-      },
-
-      //缂栬緫瀹屾垚鍏紡鍐呭鍥炶皟鍒板瓙缁勪欢杩涜鍥炴樉
-      saveFormulaContent(){
-        console.log(this.formulaContent);
-        if(this.formulaContent.trim == null){
-          this.$message.warning("鍏紡鍐呭涓嶈兘涓虹┖锛�");
-          return;
-        }
-        this.$refs.addBasicChild.saveFormulaContent(this.formulaContent);
-        this.isShowformulaEdit = false;  
-      },
-
-      // 鎵撳紑灞炴�ч�夊彇鍊硷紝绗簩灞傚祵濂楀璇濇
-      openAttrSelectOrGetValue(){
-        //console.log(111);
-        this.isShowSelectAttrOption = true;
-      },
-      
-      // 鑾峰彇褰撳墠琚�変腑鏍戣妭鐐圭殑oid
-      nodeClick(data) {
-        this.currentSelectTreeData = data;
-        this.loadlistClassifyLinkAttr()
-      },
-
-      // 鍔犺浇鍒嗙被杩炴帴灞炴�ц〃鏍兼暟鎹�
-      loadlistClassifyLinkAttr(){
-        this.selectAttrOptionLoading = true;
-        listClassifyLinkAttr({"page": 1,"limit": -1,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid}).then(res=>{
-         //console.log(res.data.data);
-         //閫犲亣鏁版嵁
-         let dataInfo =[ 
-          {"id":"address","name":"浼氳瀹ゅ湴鍧�","oid":"058D840D-1010-A7DE-7C52-B39C03CE89C1","attrLength":"150","description":"","attributeDataTypeText":"瀛楃涓�"},
-          {"id":"businesslicensetype","name":"钀ヤ笟鎵х収绫诲瀷","oid":"BDAC6D3E-1827-35A0-F3CA-0E58A43F6A07","attrLength":"255","description":"钀ヤ笟鎵х収绫诲瀷","attributeDataTypeText":"瀛楃涓�"},
-          {"id":"certificatenumber","name":"淇濆瘑璇佺紪鍙�","oid":"E2BC8332-A721-3713-26C3-C9F6340C2C1D","attrLength":"255","description":"淇濆瘑璇佺紪鍙�","attributeDataTypeText":"瀛楃涓�"},
-        ]
-        this.selectattrData = dataInfo;
-        this.selectAttrOptionLoading = false;
-        })
-      },
-
-      // 鐐瑰嚮鎼滅储鍚庤Е鍙戣浜嬩欢
-      selectAttrOptionSearchChange(params, done) {
-        this.query = params;
-        console.log(params);  //杩欏効闇�瑕佹敼
-        this.loadlistClassifyLinkAttr({"page":1,"limit":-1 ,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid});
-        done();
-      },
-
-      // 灞炴�у彇鍊煎綋鍓嶉�変腑琛屽彂鐢熷彉鍖栨椂瑙﹀彂
-      selectionChangeAttr(list){
-        this.selectionChangeAttrList = list;
-      },
-
-      //閲嶇疆浣嶅睘鎬ч�夊彇鍊艰〃鏍肩殑鎼滅储妗嗕箣鍚庣殑鍥炶皟
-      searchAttrReset() {
-        this.loadlistClassifyLinkAttr()
-      },
-
-      // 灞炴�у彇鍊奸�夊彇鎴愬姛淇濆瓨涔嬪悗瑙﹀彂
-      savelistClassifyLinkAttr(){
-        if(this.selectionChangeAttrList.length != 1){
-          this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
-          return false;
-        }
-        let data = {
-          "referAttributeId":this.selectionChangeAttrList[0].id,
-          "referAttributeName":this.selectionChangeAttrList[0].name,
-          "referCodeClassifyOid": this.currentSelectTreeData.key,
-          "referCodeClassifyOidName": this.currentSelectTreeData.title,
-        }
-        //console.log(data);
-        //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
-        this.$refs.addBasicChild.selectedListClassifyLinkAttr(data);
-        this.isShowSelectAttrOption = false;
-      },
-
-      // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
-      selectionChange(list) {
-        this.selectionList = list;
-        if(this.selectionList.length > 0){
-          this.currentCodeRuleOid = this.selectionList [list.length-1];
-          this.loadBasic(this.selectionList[list.length-1]);
-        }
-      },
-
-      // 鎵撳紑鏂板绐楀彛
-      addBasicCodeSec(){
-        if(!this.tipsMessage(this.selectionList)){
-          return;
-        }
-        if(this.selectionList[0].lcStatus != 'Editing'){
-          this.$message.warning('缂栫爜瑙勫垯鐘舵�佷笉鏄�"缂栬緫涓�"锛屼笉鍏佽缂栬緫鐮佹!');
-          return;
-        }
-        this.addBasicCodeSettingBox = true;
-        this.$nextTick(() => {
-          this.$refs.addBasicChild.loadCodeSecType();
-        })
-      },
-      // 鏂板鍩虹鐮佹
-      saveBasicCode(){
-        if(this.selectionList[0].oid == null){
-          this.$message.warning('缂哄け蹇呰鍙傛暟锛岃閲嶆柊閫夋嫨缂栫爜瑙勫垯鍚庨噸璇�!');
-          return;
-        }
-        this.$refs.addBasicChild.addSave(this.selectionList[0].oid);
-        // 鍏抽棴绐楀彛
-        this.addBasicCodeSettingBox = false
-        // 鐐瑰嚮鏂板鍩虹鐮佹涔嬪悗鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
-        this.loadBasic(this.selectionList[0]);
-      },
-      // 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁
-      tipsMessage(list){
-        if(list.length != 1){
-          this.$message.warning("璇烽�夋嫨涓�鏉$紪鐮佽鍒欐暟鎹�!");
-          return false;
-        }
-        return true;
-      },
-      // 鍩虹鐮佹鍒犻櫎
-      deleteBasicCode(){
-        if(!this.tipsMessage(this.selectionBasicList)){
-          return;
-        }
-        let oid = this.selectionBasicList[0].oid;
-        this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        })
-        .then(() => {
-          let ts = this.selectionBasicList[0].ts;
-          return deleteData({"oid": oid,"ts": ts});
-        })
-        .then(() => {
-          this.loadBasic({"oid":this.currentCodeRuleOid == null ? this.selectionList[0].oid:this.currentCodeRuleOid});
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
-          //this.$refs.crud.toggleSelection();
-        });
-      },
-      // 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅
-      loadBasic(row){
-        this.loadingBasic = true;
-        //console.log(row.oid);
-        this.currentCodeRuleOid = row.oid;
-        gridCodeBasicSec(1, -1, {"pkCodeRule":row.oid}).then(res => {
-          const data = res.data.data;
-          this.basicData = data.records;
-          //console.log(this.basicData);
-          this.loadingBasic = false;
-        });
-      },
-      // 鍩虹鐮佹閫変腑鏃惰Е鍙�
-      selectionBasicChange(list) {
-        this.selectionBasicList = list;
-        //console.log(this.selectionBasicList);
-      },
-      // 涓婄Щ涓嬬Щ鍩虹鐮佹
-      upOrderNum(row){
-        //console.log(row.oid);
-        if(!this.tipsMessage(this.selectionList)){
-          return;
-        }
-        let codeRuleOid = this.selectionList[0].oid;
-        if (this.selectionList[0].lcStatus != 'Editing') {
-          this.$message.warning("鍙湁缂栫爜瑙勫垯鐨勭姸鎬佹槸 [缂栬緫涓璢 鐨勬椂鍊欙紝鎵嶈兘璋冩暣鐮佹椤哄簭!");
-          return; 
-        }
-        if(row.oid==null || row.oid==''){
-          this.$message.warning("鏈幏鍙栧埌蹇呭~鍙傛暟!");
-          return;        
-        }
-        upOrderNum(row.oid).then(() => {
-          this.loadBasic({"oid":codeRuleOid});
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
-        })
-      },
-      downOrderNum(row){
-        //console.log(row.oid);
-        if(!this.tipsMessage(this.selectionList)){
-          return;
-        }
-        let codeRuleOid = this.selectionList[0].oid;
-        //console.log(this.selectionList);
-        if (this.selectionList[0].lcStatus != 'Editing') {
-          this.$message.warning("鍙湁缂栫爜瑙勫垯鐨勭姸鎬佹槸 [缂栬緫涓璢 鐨勬椂鍊欙紝鎵嶈兘璋冩暣鐮佹椤哄簭!");
-          return; 
-        }
-        if(row.oid==null || row.oid==''){
-          this.$message.warning("鏈幏鍙栧埌蹇呭~鍙傛暟!");
-          return;        
-        }
-        downOrderNum(row.oid).then(() => {
-          this.loadBasic({"oid":codeRuleOid});
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
-        })
-      },
-      //鍩虹鐮佹鏌ヨ
-      refreshChangeBasicSec(){
-        this.loadBasic({"oid":this.currentCodeRuleOid == null ? this.selectionList[0].oid:this.currentCodeRuleOid});
-      },
-      // 鏌ヨ浣跨敤鑼冨洿
-      handleRange(){
-        if(!this.tipsMessage(this.selectionList)){
-          return;
-        }
-        this.codeRangeSettingBox = true;
-        this.getRangeCodeList()
-      },
-      getRangeCodeList(){        
-        this.dialogLoading = true;
-        if(this.selectionList[0].oid==null){
-          this.$message.error("鏈幏鍙栧埌鍙傛暟!");
-        }
-
-        listUseRange(this.selectionList[0].oid).then(res => {
-          this.useRangeData = res.data.data;
-          //console.log(this.useRangeData);
-          this.dialogLoading = false;
-        });
-      },
-      refreshUseRangeChange(){
-        this.getRangeCodeList();
-      },
-      // 鍚敤涓庡仠鐢�
-      enableOrDeactivatse(oId,update){
-        updateStatus({"oid":oId,"ts":new Date().getTime,"update":update}).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
-        }, error => {
-          window.console.log(error);
-        });
-      },
-      // 鍏嬮殕
-      cloneCodeSetting() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!");
-          return;
-        }
-        if (this.selectionList.length > 1) {
-          this.$message.warning("姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�!");
-          return;
-        }
-        localStorage.setItem("cloneOid",this.selectionList[0].oid)
-        this.cloneSettingBox = true;
-      },
-      // 娣诲姞
-      rowSave(row, done, loading) {
-        add(row).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
-          });
+        /* 鍏紡缂栬緫妗嗗唴瀹规敼鍙�,瀛愮粍浠剁紪杈戝畬鍏紡涔嬪悗鍐呭鍥炴樉鏃惰皟鐢� */
+        updateFormulaContent(content){
+          this.form.getValueClass = content;
+        },
+        
+        /** 閫変腑鍙傜収寮曠敤鐨勪笟鍔$被鍨嬶紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉�  */
+        saveSelectedreferBtm(){
+          if(this.referBtmSelectionList.length != 1){
+            this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+            return false;
+          }
+          //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+          this.form.referBtmId = this.referBtmSelectionList[0].id;
+          this.form.referBtmName = this.referBtmSelectionList[0].name;
+          //娓呯┖褰撳墠閫変腑鐨勮
+          this.referBtmSelectionClear();
+          this.isShowSelectReferBtmOption = false;
+        },
+        referBtmSearchReset() {
+          this.referBtmQuery = {};
+          this.referBtmOnLoad(this.referBtmDataPage);
+        },
+        referBtmSearchChange(params, done) {
+          this.referBtmQuery = params;
+          this.referBtmDataPage.currentPage = 1;
+          this.referBtmOnLoad(this.page, params);
           done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      openEdit(row){
-        this.$refs.crud.rowEdit(row,row.$index);
-      },
-      // 淇敼
-      rowUpdate(row, index, done, loading) {
-        row.ts = new Date().getTime;
-        update(row).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!"
+        },
+        referBtmSelectionChange(list) {
+          //console.log(list);
+          this.referBtmSelectionList = list;
+        },
+        referBtmSelectionClear() {
+          this.referBtmSelectionList = [];
+          this.$refs.crudReferBtm.toggleSelection();
+        },
+        referBtmCurrentChange(currentPage){
+          this.referBtmDataPage.currentPage = currentPage;
+        },
+        referBtmSizeChange(pageSize){
+          this.referBtmDataPage.pageSize = pageSize;
+        },
+        refreshReferBtmDataChange() {
+          this.referBtmOnLoad(this.referBtmDataPage, this.referBtmQuery);
+        },
+        //鍔犺浇涓弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷鐨勬暟鎹�
+        referBtmOnLoad(page, params = {}) {
+          this.referBtmDialogLoading = true;
+          let oid = this.selectionList.length==0 ?  this.form.pkCodeRule:this.selectionList[0].oid;
+          Object.assign(params,{pkCodeRule:oid})
+          //鎺ュ彛杩樻湭鎻愪緵锛屽緟鏇存敼
+          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
+            //console.log(res.data);
+            const data = res.data.data;
+            this.referBtmDataPage.total = data.total;
+            this.referBtmData = data.records;
+            this.referBtmDialogLoading = false;
+            this.referBtmSelectionClear();
           });
+        },
+
+
+        /** 鐖跺垎绫婚�夋嫨瀵硅瘽妗嗭紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */ 
+        // 淇濆瓨褰撳墠鐖跺垎绫荤爜娈电殑閫変腑琛岋紝骞惰繘琛屽洖鏄�
+        saveSelectedParentClassify(){
+          //console.log(this.parentClassifySelectionList.length);
+          if(this.parentClassifySelectionList.length != 1){
+            this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+            return false;
+          }
+          //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+          this.form.parentClassifySecOid = this.parentClassifySelectionList[0].oid;
+          this.form.parentClassifySecText = this.parentClassifySelectionList[0].name;
+          //娓呯┖褰撳墠閫変腑鐨勮
+          this.parentClassifySelectionClear();
+          this.isShowParentClassifyOption = false;
+        },
+        parentClassifySearchReset() {
+          this.parentClassifyQuery = {};
+          this.parentClassifyOnLoad(this.parentClassifyDataPage);
+        },
+        parentClassifySearchChange(params, done) {
+          this.parentClassifyQuery = params;
+          this.parentClassifyDataPage.currentPage = 1;
+          this.parentClassifyOnLoad(this.page, params);
           done();
-        }, error => {
-          loading();
-          console.log(error);
-        });
-      },
-      // 鍒犻櫎
-      handleDelete() {
-        if(!this.tipsMessage(this.selectionList)){
-          return;
-        }
-        this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        })
-          .then(() => {
-            // 鍙敮鎸佹瘡娆″崟鏉¤褰曞垹闄�
-            let oid = this.selectionList[0].oid;
-            let ts = this.selectionList[0].ts;
-            return remove({oid: oid,ts: ts});
+        },
+        parentClassifySelectionChange(list) {
+          //console.log(this.parentClassifyCurrentChange);
+          this.parentClassifySelectionList = list;
+        },
+        parentClassifySelectionClear() {
+          this.parentClassifySelectionList = [];
+          this.$refs.crudParentClassify.toggleSelection();
+        },
+        parentClassifyCurrentChange(currentPage){
+          this.parentClassifyDataPage.currentPage = currentPage;
+        },
+        parentClassifySizeChange(pageSize){
+          this.parentClassifyDataPage.pageSize = pageSize;
+        },
+        refreshParentClassifyDataChange() {
+          this.parentClassifyOnLoad(this.parentClassifyDataPage, this.parentClassifyQuery);
+        },
+        parentClassifyOnLoad(page, params = {}) {
+          this.classifyDialogLoading = true;
+          let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
+          Object.assign(params,{pkCodeRule:oid})
+          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
+            //console.log(res.data);
+            const data = res.data.data;
+            this.parentClassifyDataPage.total = data.total;
+            this.parentClassifyData = data.records;
+            this.classifyDialogLoading = false;
+            this.parentClassifySelectionClear();
+          });
+        },
+        
+
+        /** 鎵撳紑灞炴�ч�夊彇鍊硷紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */ 
+        // 鑾峰彇褰撳墠琚�変腑鏍戣妭鐐圭殑oid
+        nodeClick(data) {
+          this.currentSelectTreeData = data;
+          this.loadlistClassifyLinkAttr()
+        },
+        // 鍔犺浇鍒嗙被杩炴帴灞炴�ц〃鏍兼暟鎹�
+        loadlistClassifyLinkAttr(){
+          this.selectAttrOptionLoading = true;
+          listClassifyLinkAttr({"page": 1,"limit": -1,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid}).then(res=>{
+          //console.log(res.data.data);
+          //閫犲亣鏁版嵁
+          let dataInfo =[ 
+            {"id":"address","name":"浼氳瀹ゅ湴鍧�","oid":"058D840D-1010-A7DE-7C52-B39C03CE89C1","attrLength":"150","description":"","attributeDataTypeText":"瀛楃涓�"},
+            {"id":"businesslicensetype","name":"钀ヤ笟鎵х収绫诲瀷","oid":"BDAC6D3E-1827-35A0-F3CA-0E58A43F6A07","attrLength":"255","description":"钀ヤ笟鎵х収绫诲瀷","attributeDataTypeText":"瀛楃涓�"},
+            {"id":"certificatenumber","name":"淇濆瘑璇佺紪鍙�","oid":"E2BC8332-A721-3713-26C3-C9F6340C2C1D","attrLength":"255","description":"淇濆瘑璇佺紪鍙�","attributeDataTypeText":"瀛楃涓�"},
+          ]
+          this.selectattrData = dataInfo;
+          this.selectAttrOptionLoading = false;
+          })
+        },
+        // 鐐瑰嚮鎼滅储鍚庤Е鍙戣浜嬩欢
+        selectAttrOptionSearchChange(params, done) {
+          this.query = params;
+          console.log(params);  //杩欏効闇�瑕佹敼
+          this.loadlistClassifyLinkAttr({"page":1,"limit":-1 ,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid});
+          done();
+        },
+        // 灞炴�у彇鍊煎綋鍓嶉�変腑琛屽彂鐢熷彉鍖栨椂瑙﹀彂
+        selectionChangeAttr(list){
+          this.selectionChangeAttrList = list;
+        },
+        // 閲嶇疆浣嶅睘鎬ч�夊彇鍊艰〃鏍肩殑鎼滅储妗嗕箣鍚庣殑鍥炶皟
+        searchAttrReset() {
+          this.loadlistClassifyLinkAttr()
+        },
+        // 涓哄睘鎬ч�夊彇鍊间箣鍚庣殑鍥炴樉
+        selectedListClassifyLinkAttr(){
+          if(this.selectionChangeAttrList.length != 1){
+            this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+            return false;
+          }
+          //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+          this.form = Object.assign({}, this.form, {
+            referAttributeId:this.selectionChangeAttrList[0].id,
+            referAttributeName:this.selectionChangeAttrList[0].name,
+            referCodeClassifyOid: this.currentSelectTreeData.key,
+            referCodeClassifyOidName: this.currentSelectTreeData.title,
+          })
+          this.isShowSelectAttrOption = false;
+        },
+        
+
+        /** 鍩虹鐮佹琛ㄤ腑鐨勭爜鍊肩鐞嗙殑鐩稿叧鏂规硶 */
+        // 鐮佸�肩鐞嗗脊绐楁帶鍒�
+        openBasicSecCodeValueMgr(row){
+          //褰撳墠涓哄浐瀹氱爜娈电爜鍊肩鐞嗙爜鍊肩鐞�
+          if(row.secType === "codefixedsec"){
+            this.isShowFixedForm = true;
+            this.loadFixedValueTableData(row);
+          }else{
+            //鍒嗙被鐮佹
+            this.isShowFixedForm = false;
+            this.loadClassifyValueData(row);
+          }
+          this.codefixedsecOrCodeclassifysecOid = row.oid;
+          this.isShowBasicSecCodeValueMgr = true;
+        },
+        //鍔犺浇鍥哄畾鐮佹鐮佸�艰〃鏁版嵁
+        loadFixedValueTableData(row){
+          this.fixedValueOptionLoading = true;
+          gridCodeFixedValue(1, -1, {"codeFixedSecOid":row.oid}).then(res=>{
+            this.fixedValueData = res.data.data.records;
+            //console.log(this.fixedValueData);
+            this.fixedValueOptionLoading = false;
+          })
+        },
+        //鍗曞嚮鍥哄畾鐮佹鐨勭爜鍊艰〃涓鏃惰Е鍙戠殑浜嬩欢
+        selectedCodeValueRow(row){
+          //console.log(row);
+          this.selectedFixedOrCodeclassifyValue = row;
+          this.codeFixdForm.id = row.id;
+          this.codeFixdForm.description = row.description;
+          this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid;
+        },
+        //鏂板鐮佸��
+        addCodeSecValue(condition){
+          if(condition === "codefixedsec"){
+            if(this.codeFixdForm.id.trim() == ''){
+              this.$message.warning("鐮佸�间笉鑳戒负绌猴紒");
+              return;
+            }
+            if(this.codeFixdForm.id.trim().length >= 12 ){
+              this.$message.warning("鐮佸�奸暱搴︿笉鑳藉ぇ浜�12锛�");
+              return;
+            }
+            this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysecOid;
+            addSaveCodeFixedValue(this.codeFixdForm).then(() => {
+              this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid});
+              this.clearFixedOrClassifyForm('codefixedsec');
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            }, error => {
+              window.console.log(error);
+            });
+          }else {
+            this.codeClassifyForm.codeClassifySecOid = this.codefixedsecOrCodeclassifysecOid;
+            console.log(this.codeClassifyForm);
+            addSaveCodeClassifyValue(this.codeClassifyForm).then(() => {
+              this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid});
+              this.clearFixedOrClassifyForm('codeclassifyvaluesec');
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            }, error => {
+              this.$confirm(error, {
+                confirmButtonText: "纭畾",
+                type: "error",
+              })
+            });
+          }
+        },
+        //娓呯┖鐮佸�艰〃鍗�
+        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;
+          }
+        },
+        //淇敼鐮佸��
+        editCodeSecValue(condition){
+          if(condition=='codefixedsec'){
+            //浠ュ墠鏄洿鎺ユ妸褰撳墠閫変腑琛岀殑鎵�鏈夋暟鎹兘杩涜鎻愪氦锛屼絾鍏跺疄鍙渶瑕佷紶杈撲竴浜涙瘮瑕佸弬鏁板嵆鍙紝杩欏効鍋氫簡淇敼锛岄渶瑕佺┛鍏朵粬鍙傛暟鐨勮鑷娣诲姞
+            let editData = {
+            "oid": this.selectedFixedOrCodeclassifyValue.oid,
+            "ts": new Date().getTime(),
+            "description": this.codeFixdForm.description,
+            "id": this.codeFixdForm.id,
+            "codeFixedSecOid":  this.selectedFixedOrCodeclassifyValue.codefixedsecoid
+            }
+            editCodeFixedValue(editData).then(() => {
+                this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid})
+                this.$message({
+                  type: "success",
+                  message: "鎿嶄綔鎴愬姛!"
+                });
+              }, error => {
+                window.console.log(error);
+            });
+          }else {
+            this.codeClassifyForm.oid = this.selectedFixedOrCodeclassifyValue.attributes.oid;
+            editCodeClassifyValue(this.codeClassifyForm).then(() => {
+                this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid})
+                this.$message({
+                  type: "success",
+                  message: "鎿嶄綔鎴愬姛!"
+                });
+              }, error => {
+                window.console.log(error);
+            });
+          }
+            
+        },
+        //鍒犻櫎鐮佸��
+        delCodeSecValue(condition){ 
+          //鍥哄畾鐮佹鐮佸�煎垹闄�
+          if(condition == 'codefixedsec'){
+            //console.log(this.selectedFixedOrCodeclassifyValue.oid);
+            this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning"
+            })
+            .then(() => {
+              let ts = new Date(this.selectedFixedOrCodeclassifyValue.ts).getTime();
+              return deleteCodeFixedValue({"oid": this.selectedFixedOrCodeclassifyValue.oid,"ts": ts});
+            })
+            .then(() => {
+              this.selectedFixedOrCodeclassifyValue = '';
+              this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid})
+              this.clearFixedOrClassifyForm('codefixedsec');
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            });
+          }else{
+            //鍒嗙被鐮佹鐮佸�煎垹闄�
+            this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
+              confirmButtonText: "纭畾",
+              cancelButtonText: "鍙栨秷",
+              type: "warning"
+            })
+            .then(() => {
+              let ts = new Date(this.selectedFixedOrCodeclassifyValue.ts).getTime();
+              return deleteCodeClassifyValue({"oid": this.selectedFixedOrCodeclassifyValue.oid,"ts": ts});
+            })
+            .then(() => {
+              this.selectedFixedOrCodeclassifyValue = '';
+              this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid})
+              this.clearFixedOrClassifyForm('codeclassifyvalue');
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            });
+          }            
+          
+        },
+        //瀵瑰浐瀹氱爜鍊艰〃杩涜锛氫笂绉汇�佷笅绉汇�佺Щ闄ゆ搷浣�
+        codeFixedValueOpetion(condition,row){
+          //console.log(this.fixedValueData[row.$index].orderNum);
+          const index = row.$index;
+          if(condition == 'up'){
+            //瀵筼rdeNum鎺掑簭瀛楁杩涜璋冩暣
+            this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum-1
+            this.fixedValueData[index-1].orderNum = this.fixedValueData[index].orderNum+1
+            //褰撲笅鏍囧噺鍘�1灏忎簬0鎴栬�卭rderNum瀛楁鍑忓幓1灏忎簬0鐨勬椂鍊欎笉鎵ц涓婄Щ鎿嶄綔
+            if(index-1<0 || this.fixedValueData[row.$index].orderNum-1<0){
+              return;
+            }
+            //璋冩暣鏁扮粍鍊奸『搴�
+            let tempOption = this.fixedValueData[index-1];
+            this.$set(this.fixedValueData, index - 1, this.fixedValueData[index])
+            this.$set(this.fixedValueData, index , tempOption)
+
+            //console.log(this.fixedValueData);
+          }else if(condition == 'down'){
+            //瀵筼rdeNum鎺掑簭瀛楁杩涜璋冩暣
+            this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum+1
+            this.fixedValueData[index+1].orderNum = this.fixedValueData[index].orderNum-1
+            //璋冩暣鏁扮粍鍊奸『搴�
+            let tempOption = this.fixedValueData[index+1];
+            this.$set(this.fixedValueData, index + 1, this.fixedValueData[index]);
+            this.$set(this.fixedValueData, index, tempOption)
+          }else {
+            for(let i=index+1; i<this.fixedValueData.length-1; i++){
+              //console.log(this.fixedValueData[i].orderNum);
+              this.fixedValueData[i].orderNum = this.fixedValueData[i].orderNum-1;
+              //console.log(this.fixedValueData[i].orderNum);
+            }
+            this.$delete(this.fixedValueData, index);
+          }
+          //console.log(this.fixedValueData);
+        },
+        //瀵瑰垎绫荤爜鍊艰〃杩涜锛氫笂绉汇�佷笅绉汇�佺Щ闄ゆ搷浣�
+        codeClassifyValueOpetion(condition){
+          //姝ゅ娑夊強鍒版繁娴呮嫹璐濋棶棰橈紝浣嗘槸鎵ц涓婁笅绉讳繚瀛樻搷浣滀箣鍚庝細閲嶆柊鍔犺浇treedata锛屾墍浠ュ奖鍝嶄笉澶�
+          let currentTreeList = this.getCodeClassifyValueTreeData();
+          let saveData = [];
+          console.log(currentTreeList.treeList);
+          if(condition == 'up'){
+            if(currentTreeList.index-1>=0){
+              // 璋冩暣椤哄簭
+              saveData[0] = currentTreeList.treeList[currentTreeList.index].attributes;
+              saveData[1] = currentTreeList.treeList[currentTreeList.index-1].attributes;
+              saveData[0].orderNum = parseInt(saveData[0].orderNum)-1;
+              saveData[1].orderNum = parseInt(saveData[1].orderNum)+1;
+              this.saveCodeFixedOrClassifyValueOption('classifyValue',saveData);
+            }
+          }else{
+            if(currentTreeList.index+1<currentTreeList.treeList.length){
+              // 璋冩暣椤哄簭
+              saveData[0] = currentTreeList.treeList[currentTreeList.index].attributes;
+              saveData[1] = currentTreeList.treeList[currentTreeList.index+1].attributes;
+              saveData[0].orderNum = parseInt(saveData[0].orderNum)+1;
+              saveData[1].orderNum = parseInt(saveData[1].orderNum)-1;
+              this.saveCodeFixedOrClassifyValueOption('classifyValue',saveData);
+            } 
+          }
+          console.log(saveData);
+          console.log(this.classifyValueTreeData);
+        },
+        //閫変腑琚皟鏁撮『搴忕殑涓や釜鏍戠殑鑺傜偣
+        getCodeClassifyValueTreeData(){
+          const currentNodeTreeData = this.selectedFixedOrCodeclassifyValue;
+          /**鑰冭檻鍑犵鎯呭喌锛岀涓�绉嶅綋鍓嶄笂绉粅涓嬬Щ鎿嶄綔宸茬粡鏄竟鐣岋紝
+            涓嶉渶瑕佽鍋氬鐞嗭紝绗簩绉嶅綋鍓嶄负鏍戞牴鑺傜偣锛岀涓夌褰撳墠涓哄彾瀛愯妭鐐�
+          */
+          //璇存槑鏄牴鑺傜偣锛岀洿鎺ユ壘鍐嶅垽鏂槸鍚︽槸杈圭晫鍊�
+          if(currentNodeTreeData.parentId.trim() == ''){
+            return this.findTreeIndex(this.classifyValueTreeData,currentNodeTreeData.oid,true);   
+          }else{
+            //璇存槑涓嶆槸鏍硅妭鐐�,鍏堟壘鍒扮埗鑺傜偣鍐嶆壘鍒板瓙鑺傜偣,鍒ゆ柇鏄惁鏄竟鐣屽��
+            return this.findTreeIndex(this.classifyValueTreeData,currentNodeTreeData.parentId,false); 
+          }
+        },
+        /**
+         * 鎵惧墠涓�涓拰鍚庝竴涓厓绱�
+         * @treeList 鏌ユ壘鐨勬暟缁�
+         * @conditionOid 鐢ㄦ潵鏌ユ壘鍒ゆ柇鐨勬潯浠�
+         * @isTreeRoot 鏄惁鐖惰妭鐐�
+         * @rreturn 杩斿洖鐩搁偦鐨勮妭鐐�
+         */
+        findTreeIndex(treeList,conditionOid,isTreeRoot){
+          for(let index=0;index<treeList.length;index++){
+            if(treeList[index].oid==conditionOid){
+              if(isTreeRoot){
+                let resData = {
+                  "index":index,
+                  "treeList":treeList,
+                }
+                return resData;
+              }else{
+                return this.findTreeIndex(this.classifyValueTreeData[index].children,this.selectedFixedOrCodeclassifyValue.oid,true);
+              }
+            }
+          }
+        },
+        //涓婄Щ涓嬬Щ绛夋搷浣滅殑淇濆瓨
+        saveCodeFixedOrClassifyValueOption(condition,editOrderNumdata){
+          //淇濆瓨瀵瑰浐瀹氱爜娈电爜鍊肩殑涓婄Щ涓嬬Щ绉诲嚭绛夋搷浣�
+          if(condition == "fixedValue"){
+            let data = {
+            "codeFixedSecOid": this.codefixedsecOrCodeclassifysecOid,
+            "dtoList": JSON.stringify(this.fixedValueData),
+            }
+            saveOrder(data).then(() => {
+              //鎵ц瀹屼繚瀛樹箣鍚庡皢褰撳墠閫変腑鐨勫璞℃竻绌�
+              this.selectedFixedOrCodeclassifyValue = '';
+              this.$message({
+                type: "success",
+                message: "淇濆瓨鎴愬姛!"
+              });
+              }, error => {
+                window.console.log(error);
+            });
+          }else {
+            //淇濆瓨瀵瑰垎绫荤爜鍊肩爜娈电爜鍊肩殑涓婄Щ涓嬬Щ绉诲嚭绛夋搷浣�
+            saveCodeClassifyValueOrder({
+              "codeClassifySecOid": this.codefixedsecOrCodeclassifysecOid,
+              "dtoList": JSON.stringify(editOrderNumdata),
+            }).then(() => {
+              this.$message({
+                type: "success",
+                message: "淇濆瓨鎴愬姛!"
+              });
+              }, error => {
+                window.console.log(error);
+            });
+            this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid});
+          }
+          
+        },
+        //鍒嗙被鐮佸�兼爲data鍔犺浇
+        loadClassifyValueData(row){
+          //console.log(row);
+          let condtionData = {
+            "queryAllLevel": true,
+            "loadType": "all",
+            "multipleSelect": false,
+            "isMuti": false,
+            "isQueryAllColumn": true,
+            'conditionMap[codeclassifysecoid]':row.oid,
+          };
+          treeCodeClassifyValue(condtionData).then( res=> {
+            this.classifyValueTreeData = res.data;
+            //console.log(res.data);
+          });
+        },
+        //鍒嗙被鐮佸�兼爲鍗曞嚮鏃惰Е鍙戠殑浜嬩欢
+        classisyValueTreeOnodeClick(node){
+          //console.log(node);
+          this.selectedFixedOrCodeclassifyValue = node;
+          this.codeClassifyForm.codeClassifySecOid = node.attributes.codeClassifySecOid;
+          this.codeClassifyForm.id = node.attributes.id;
+          this.codeClassifyForm.name = node.attributes.name;
+          this.codeClassifyForm.parentClassifyValueOid = node.attributes.oid;
+          //console.log(this.codeClassifyForm);
+        },
+
+
+        /** 鍩虹鐮佹鐩稿叧鏂规硶 */
+        //闃叉鎵撳紑杩囩紪杈戠獥鍙d箣鍚庤〃鍗曚腑瀛樺湪鍊硷紝鎵�浠ラ渶瑕佹竻绌�,骞跺垵濮嬪寲form琛ㄥ崟灞炴��
+        clearBasicAddForm(){
+          this.form = this.$options.data().form;;
+          // this.changeSectypeFormItems(null);
+        },
+        // 鎵撳紑鏂板绐楀彛
+        addBasicCodeSec(){
+          if(!this.tipsMessage(this.selectionList)){
+            return;
+          }
+          if(this.selectionList[0].lcStatus != 'Editing'){
+            this.$message.warning('缂栫爜瑙勫垯鐘舵�佷笉鏄�"缂栬緫涓�"锛屼笉鍏佽缂栬緫鐮佹!');
+            return;
+          }
+          this.openBasicDialog('add',null);
+          this.loadCodeSecType();
+        },
+        //鎵撳紑鏂板鎴栫紪杈戝熀纭�鐮佹瀵硅瘽妗�
+        openBasicDialog(condition,row){
+          //console.log(row);
+          if(condition == 'add') {
+            this.basicSecDialogTitle = '娣诲姞鐮佹淇℃伅';
+            this.showbtn = true;
+            this.basicSecOnlyRead = false;
+          }else if(condition == 'edit'){
+            if(this.selectionList.length!=1){
+              this.$message.warning('璇烽�夋嫨涓�鏉$紪鐮佽鍒欐暟鎹�!');
+              return;
+            }
+            this.basicSecDialogTitle = '淇敼鐮佹淇℃伅';
+            this.showbtn = true;
+            this.basicSecOnlyRead = false;
+            //涓篺orm缁戝畾鍊�
+          }else{
+            this.basicSecDialogTitle = '鏌ョ湅鐮佹淇℃伅';
+            this.showbtn = false;
+            this.basicSecOnlyRead = true;
+          }
+          //console.log(this.form);
+          this.changeSectypeFormItems(condition == 'add' ? null:row);
+          this.addBasicCodeSettingBox = true;
+        },
+        // 鏂板鍩虹鐮佹
+        saveOrEditBasicCode(){
+          if(this.selectionList[0].oid == null ||  this.selectionList[0].oid == ''){
+            this.$message.warning('缂哄け蹇呰鍙傛暟锛岃閲嶆柊閫夋嫨缂栫爜瑙勫垯鍚庡啀璇�!');
+            return;
+          }        
+          this.form.pkCodeRule = this.selectionList[0].oid;
+          if(this.form.oid == '' || this.form.oid == null){
+            if(this.checkForm()){
+              addSave(this.form).then(() => {
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+              }, error => {
+                window.console.log(error);
+              });
+              // 鍏抽棴瀵硅瘽妗�
+              this.addBasicCodeSettingBox = false
+            }
+            
+          }else{
+            editSave(this.form).then(() => {
+               // 鍏抽棴瀵硅瘽妗�
+              this.addBasicCodeSettingBox = false
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+              }, error => {
+                window.console.log(error);
+            });
+          }
+          // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
+          this.loadBasic(this.selectionList[0]);
+        },
+        // 鍥犱负elementui鐨勮〃鍗曟牎楠岃缃笉涓婃墍浠ラ噰鐢ㄥ垽鏂殑鏂瑰紡鏉ュ仛琛ㄥ崟妫�楠屾柟寮�
+        checkForm(){
+          let form = this.form;
+          //console.log(form);
+          const regNumber = /^[0-9]+\.{0,1}[0-9]*$/; //鏁板瓧鎴栧皬鏁版鍒欐牎楠�
+          const tipsMsg = "蹇呭~椤逛笉鑳戒负绌�";
+          if(form.id == ''){
+            this.$message.warning("(鐮佹缂栧彿)"+tipsMsg);
+            this.$refs.id.$el.querySelector('input').focus();
+            return false;
+          }
+          if(form.name == ''){
+            this.$message.warning("(鐮佹鍚嶇О)"+tipsMsg);
+            this.$refs.name.$el.querySelector('input').focus();
+            return false;
+          }
+          if(form.secType == ''){
+            this.$message.warning("(鐮佹绫诲瀷)"+tipsMsg);
+            this.$refs.secType.$el.querySelector('select').focus();
+            return false;
+          }
+          if(form.secType==='codefixedsec'){
+            //鍥哄畾鐮佹
+            if(form.codeSecLengthType == ''){
+              this.$message.warning("(鐮佹闀垮害绫诲瀷)"+tipsMsg);
+              this.$refs.codeSecLengthType.$el.querySelector('select').focus();
+              return false;
+            }
+            if(form.codeSecLength == ''){
+              this.$message.warning("(鐮佹闀垮害)"+tipsMsg);
+              this.$refs.codeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeSecLength)){
+              this.$message.warning("鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�");
+              this.$refs.codeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codeattrsec'){
+            //灞炴�х爜娈�
+            if(form.referAttributeId == ''){
+              this.$message.warning('(灞炴��)'+tipsMsg);
+              this.$refs.referAttributeId.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codeserialsec'){
+            console.log(form.codeFillType);
+            //娴佹按鐮佹
+            if(form.codeSecLength == ''){
+              this.$message.warning('(鐮佹鐨勯暱搴�)'+tipsMsg);
+              this.$refs.seriaCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeSecLength)){
+              this.$message.warning('鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�');
+              this.$refs.seriaCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.serialStart)){
+              this.$message.warning('娴佹按鍙风殑璧峰鍊煎繀椤讳负鏁板瓧鍊�');
+              this.$refs.serialStart.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.serialStep)){
+              this.$message.warning('娴佹按鐨勬闀垮繀椤讳负鏁板瓧鍊�');
+              this.$refs.serialStep.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.codeFillType == ''){
+              this.$message.warning('(缂栫爜琛ヤ綅鏂瑰紡)'+tipsMsg);
+              return false;
+            }
+            if(form.codeFillType != '涓嶈ˉ浣�' && form.codeFillSeparatorSelect == ''){
+              this.$message.warning('褰撹ˉ浣嶆柟寮忎负宸﹁ˉ浣嶆垨鑰呭彸琛ヤ綅鐨勬椂鍊欙紝琛ヤ綅瀛楃涓嶈兘涓虹┖');
+              return false;
+            }
+            if(form.codeFillLength == ''){
+              this.$message.warning('濉厖闀垮害涓嶈兘涓虹┖');
+              this.$refs.codeFillLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeFillLength)){
+              this.$message.warning('濉厖闀垮害蹇呴』涓烘暟瀛楀��');
+              this.$refs.codeFillLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.codeFillLimit == ''){
+              this.$message.warning('(娴佹按涓婇檺)'+tipsMsg);
+              this.$refs.codeFillLimit.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeFillLimit)){
+              this.$message.warning('娴佹按涓婇檺蹇呴』涓烘暟瀛楀��');
+              this.$refs.codeFillLimit.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.codeFillFlag == ''){
+              this.$message.warning('(娴佹按鏄惁琛ョ爜)'+tipsMsg);
+              this.$refs.switch.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codelevelsec'){
+            //灞傜骇鐮佹
+            if(form.codeLevelType == ''){
+              this.$message.warning('(灞傜骇绫诲瀷)'+tipsMsg);
+              return false;
+            }
+            if(!regNumber.test(form.codeLevelValue)){
+              this.$message.warning('灞傜骇鐨勫��)鍙兘濉啓鏁板瓧');
+              this.$refs.codeLevelValue.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.valueCutType == ''){
+              this.$message.warning('(瀛楃鎴彇绫诲瀷)'+tipsMsg);
+              this.$refs.valueCutType.$el.querySelector('select').focus();
+              return false;
+            }
+          }else if(this.form.secType==='coderefersec'){
+            //寮曠敤鐮佹
+            if(form.referBtmId == ''){
+              this.$message.warning('(鍙傜収寮曠敤鐨勪笟鍔$被鍨�)'+tipsMsg);
+              this.$refs.referBtmId.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.referConfig == ''){
+              this.$message.warning('(鍙傜収閰嶇疆)'+tipsMsg);
+              this.$refs.referConfig.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codedatesec'){
+            //鏃ユ湡鐮佹
+            if(form.codeDateFormatStr == ''){
+              this.$message.warning('(鏃ユ湡鏍煎紡)'+tipsMsg);
+              this.$refs.codeDateFormatStr.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codeclassifysec'){
+            //鍒嗙被鐮佹
+            if(form.codeSecLengthType == ''){
+              this.$message.warning('(鐮佹闀垮害绫诲瀷)'+tipsMsg);
+              return false;
+            }
+            if(form.codeSecLength == ''){
+              this.$message.warning('(鐮佹闀垮害)'+tipsMsg);
+              this.$refs.classCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeSecLength)){
+              this.$message.warning('鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�');
+              this.$refs.classCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+          }else if(this.form.secType==='codevariablesec'){
+            //鍙彉鐮佹
+            if(form.codeSecLength == ''){
+              this.$message.warning('(鐮佹闀垮害)'+tipsMsg);
+              this.$refs.varCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(!regNumber.test(form.codeSecLength)){
+              this.$message.warning('鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�');
+              this.$refs.classCodeSecLength.$el.querySelector('input').focus();
+              return false;
+            }
+            if(form.codeFillType == ''){
+              this.$message.warning('(缂栫爜琛ヤ綅鏂瑰紡)'+tipsMsg);
+              return false;
+            }
+            if(form.codeFillType != '涓嶈ˉ浣�' && form.codeFillSeparatorSelect == ''){
+              this.$message.warning('褰撹ˉ浣嶆柟寮忎负宸﹁ˉ浣嶆垨鑰呭彸琛ヤ綅鐨勬椂鍊欙紝琛ヤ綅瀛楃涓嶈兘涓虹┖');
+              return false;
+            }
+          }
+          return true;
+        },
+        // 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁
+        tipsMessage(list){
+          if(list.length != 1){
+            this.$message.warning("璇烽�夋嫨涓�鏉$紪鐮佽鍒欐暟鎹�!");
+            return false;
+          }
+          return true;
+        },
+        // 鍩虹鐮佹鍒犻櫎
+        deleteBasicCode(){
+          if(!this.tipsMessage(this.selectionBasicList)){
+            return;
+          }
+          let oid = this.selectionBasicList[0].oid;
+          this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning"
           })
           .then(() => {
+            let ts = new Date(this.selectionBasicList[0].ts).getTime();
+            return deleteData({"oid": oid,"ts": ts});
+          })
+          .then(() => {
+            this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            this.$refs.crudBasic.toggleSelection();
+          });
+        },
+        // 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅
+        loadBasic(row){
+          if(this.cloneSettingBox){
+            this.cloneTableLoading = true;
+          }else{
+            this.loadingBasic = true;
+          }
+          // console.log(row.oid);
+          //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
+          this.currentCodeRuleOid = row.oid;
+          this.currentRuleLcStatus = row.lcStatus;
+          gridCodeBasicSec(1, -1, {"pkCodeRule":row.oid}).then(res => {
+            const data = res.data.data;
+            // console.log(data);
+            if(this.cloneSettingBox){
+              this.cloneData = data.records;
+              // console.log(tihs.cloneData);
+              this.cloneTableLoading = false;
+            }else {
+              this.basicData = data.records;
+              // console.log(this.basicData);
+              this.loadingBasic = false;
+            }
+          });
+        },
+        // 鍩虹鐮佹閫変腑鏃惰Е鍙�
+        selectionBasicChange(list) {
+          this.selectionBasicList = list;
+          //console.log(this.selectionBasicList);
+        },
+        // 涓婄Щ涓嬬Щ鍩虹鐮佹
+        upOrderNum(row){
+          //console.log(row.oid);
+          if(!this.tipsMessage(this.selectionList)){
+            return;
+          }
+          let codeRuleOid = this.selectionList[0].oid;
+          if (this.selectionList[0].lcStatus != 'Editing') {
+            this.$message.warning("鍙湁缂栫爜瑙勫垯鐨勭姸鎬佹槸 [缂栬緫涓璢 鐨勬椂鍊欙紝鎵嶈兘璋冩暣鐮佹椤哄簭!");
+            return; 
+          }
+          if(row.oid==null || row.oid==''){
+            this.$message.warning("鏈幏鍙栧埌蹇呭~鍙傛暟!");
+            return;        
+          }
+          upOrderNum(row.oid).then(() => {
+            this.loadBasic({"oid":codeRuleOid});
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+          })
+        },
+        downOrderNum(row){
+          //console.log(row.oid);
+          if(!this.tipsMessage(this.selectionList)){
+            return;
+          }
+          let codeRuleOid = this.selectionList[0].oid;
+          //console.log(this.selectionList);
+          if (this.selectionList[0].lcStatus != 'Editing') {
+            this.$message.warning("鍙湁缂栫爜瑙勫垯鐨勭姸鎬佹槸 [缂栬緫涓璢 鐨勬椂鍊欙紝鎵嶈兘璋冩暣鐮佹椤哄簭!");
+            return; 
+          }
+          if(row.oid==null || row.oid==''){
+            this.$message.warning("鏈幏鍙栧埌蹇呭~鍙傛暟!");
+            return;        
+          }
+          downOrderNum(row.oid).then(() => {
+            this.loadBasic({"oid":codeRuleOid});
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+          })
+        },
+        //鍩虹鐮佹鏌ヨ
+        refreshChangeBasicSec(){
+          this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
+        },
+
+  
+        /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
+        // 鏌ヨ浣跨敤鑼冨洿
+        handleRange(){
+          if(!this.tipsMessage(this.selectionList)){
+            return;
+          }
+          this.codeRangeSettingBox = true;
+          this.getRangeCodeList()
+        },
+        //鍔犺浇浣跨敤鑼冨洿鍒楄〃
+        getRangeCodeList(){        
+          this.dialogLoading = true;
+          if(this.selectionList[0].oid==null){
+            this.$message.error("鏈幏鍙栧埌鍙傛暟!");
+          }
+
+          listUseRange(this.selectionList[0].oid).then(res => {
+            this.useRangeData = res.data.data;
+            //console.log(this.useRangeData);
+            this.dialogLoading = false;
+          });
+        },
+        //鍒锋柊浣跨敤鑼冨洿鍒楄〃
+        refreshUseRangeChange(){
+          this.getRangeCodeList();
+        },
+        //鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨
+        codeRuleRowClick (row) {
+          this.$refs.crud.toggleSelection();
+          this.selectionList = row;
+          this.$refs.crud.setCurrentRow(row);
+          this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+          this.loadBasic(row);
+        },
+        // 鍚敤涓庡仠鐢�
+        enableOrDeactivatse(oId,update){
+          updateStatus({"oid":oId,"ts":new Date().getTime,"update":update}).then(() => {
             this.onLoad(this.page);
             this.$message({
               type: "success",
               message: "鎿嶄綔鎴愬姛!"
             });
-            this.$refs.crud.toggleSelection();
+          }, error => {
+            window.console.log(error);
           });
-      },
-      // 鎵撳紑淇敼
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetail(this.form.oid).then(res => {
-            this.form = res.data.data;
+        },
+        // 鎵撳紑缂栫爜瑙勫垯鍏嬮殕瀵硅瘽妗�
+        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);
           });
-        }
-        done();
-      },
-      searchReset() {
-        this.query = {};
-        this.onLoad(this.page);
-      },
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-        if(this.selectionList.length > 0){
-          this.currentCodeRuleOid = this.selectionList [list.length-1];
-          this.loadBasic(this.selectionList[list.length-1]);
-        }
-      },
-      selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
-      },
-      currentChange(currentPage){
-        this.page.currentPage = currentPage;
-      },
-      sizeChange(pageSize){
-        this.page.pageSize = pageSize;
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query);
-      },
-      onLoad(page, params = {}) {
-        this.loading = true;
-        gridCodeRule(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          //console.log(data); 
+        },
+        // 鎵撳紑浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�
+        openOtherCodeRuleDialog(){
+          if (!this.tipsMessage(this.selectionList)) {
+            return;
+          }
+          if(this.selectionList[0].lcStatus != 'Editing'){
+            this.$message.warning("缂栫爜瑙勫垯宸茶寮曠敤锛屼笉鍏佽缂栬緫鎴栧垹闄�!");
+            return; 
+          }
+          this.cloneOtherCodeRuleSettingBox = true;
+        },
+        //鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨
+        codeOtherCloneRuleRowClick (row) {
+          this.loadBasic(row);
+        },
+        // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
+        selectionOtherCloneCodeRuleChange(list) {
+          //console.log(list);
+          this.selectionOtherCloneCodeRuleList = list;
+          if(this.selectionOtherCloneCodeRuleList.length > 0){
+            this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length-1]);
+          }
+        },
+        selectionOtherCloneCodeBasicChange(list){
+          this.selectionOtherCloneCodeBasicList = list; 
+        },
+         // 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅
+        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;
+          }
           //console.log(res);
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-          this.loadBasic(data.records[0])
-          this.selectionClear();
-        });
+          let oidArr = '';
+          fromDialogPkCodebasic.forEach((item) =>{
+            oidArr = oidArr+","+item.oid;
+          })
+          let data = {
+            "pkCodeRule": oid,
+            "oidArr": oidArr,
+          }
+          //console.log(data);
+          cloneCodeBasic(data).then(() => {
+            this.cloneOtherCodeRuleSettingBox = false;
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+          }, error => {
+            window.console.log(error);
+          });
+        },
+        // 娓呯┖鐮佸��
+        clearAllCodeSec(){
+          if(this.selectionList.length == 0){
+            this.$message.warning("娌℃湁閫夋嫨鏁版嵁!");
+            return;
+          }
+          if(this.selectionList.length != 1){
+            this.$message.warning("姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+            return;
+          }
+          let currentData = this.selectionList[0];
+          this.$confirm("纭畾瑕佹竻绌虹爜鍊硷紵濡傛灉娓呯┖灏嗕笉鑳借鎭㈠锛岃璋ㄦ厧锛�", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning"
+            })
+            .then(() => {
+              let ts = new Date(currentData.ts).getTime();
+              return clearAllCode({"oid": currentData.oid,"ts": ts});
+            })
+            .then(() => {
+              this. this.onLoad(this.page);
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            });
+        },
+
+        // 娣诲姞
+        rowSave(row, done, loading) {
+          add(row).then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            done();
+          }, error => {
+            loading();
+            window.console.log(error);
+          });
+        },
+        openEdit(row){
+          this.$refs.crud.rowEdit(row,row.$index);
+        },
+        // 淇敼
+        rowUpdate(row, index, done, loading) {
+          row.ts = new Date().getTime;
+          update(row).then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            done();
+          }, error => {
+            loading();
+            console.log(error);
+          });
+        },
+        // 鍒犻櫎
+        handleDelete() {
+          if(!this.tipsMessage(this.selectionList)){
+            return;
+          }
+          this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning"
+          })
+            .then(() => {
+              // 鍙敮鎸佹瘡娆″崟鏉¤褰曞垹闄�
+              let oid = this.selectionList[0].oid;
+              let ts = new Date(this.selectionList[0].ts).getTime();
+              return remove({oid: oid,ts: ts});
+            })
+            .then(() => {
+              this.onLoad(this.page);
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+              this.$refs.crud.toggleSelection();
+            });
+        },
+        // 鎵撳紑淇敼
+        beforeOpen(done, type) {
+          if (["edit", "view"].includes(type)) {
+            getDetail(this.ruleForm.oid).then(res => {
+              this.ruleForm = res.data.data;
+            });
+          }
+          done();
+        },
+        searchReset() {
+          this.query = {};
+          this.onLoad(this.page);
+        },
+        searchChange(params, done) {
+          this.query = params;
+          this.page.currentPage = 1;
+          this.onLoad(this.page, params);
+          done();
+        }, 
+        // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
+        selectionChange(list) {
+          this.selectionList = list;
+          //console.log("selectionChange====="+list);
+          this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
+          if(this.selectionList.length > 0){
+            this.currentCodeRuleOid = this.selectionList[list.length-1].oid;
+            this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus;
+            //console.log(this.currentRuleLcStatus);
+            this.loadBasic(this.selectionList[list.length-1]);
+          }
+        },
+        selectionClear() {
+          this.selectionList = [];
+          this.$refs.crud.toggleSelection();
+        },
+        currentChange(currentPage){
+          this.page.currentPage = currentPage;
+        },
+        sizeChange(pageSize){
+          this.page.pageSize = pageSize;
+        },
+        refreshChange() {
+          this.onLoad(this.page, this.query);
+        },
+        onLoad(page, params = {}) {
+          this.loading = true;
+          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;
+            this.data = data.records;
+            this.loading = false;
+            this.loadBasic(this.data[0])
+            this.$nextTick(() => {
+              //this.$refs.crud.toggleRowSelection(this.data[0]);
+              this.$refs.crud.setCurrentRow(this.data[0]);
+            })
+            this.selectionList = data.records[0];
+            //this.selectionClear();
+          });
+        },
+
+
+        /** 绗竴灞傚璇濇鐩稿叧鏂规硶 */
+        // 鎵撳紑浜屽眰寮圭獥鏂规硶
+        openAttrSelectOrGetValue(condition){
+          if(condition === 'attr'){
+            this.isShowSelectAttrOption = true;
+          }else if(condition === 'value'){
+            //鎵撳紑鍏紡缂栬緫妗嗭紝绗簩灞傚祵濂楀璇濇
+            this.$refs.formulaEditor.isShowformulaEdit = true;
+          }else if(condition === 'parentClassifySecOid'){
+            this.isShowParentClassifyOption = true;
+          }else if(condition === 'referBtmId'){
+            this.isShowSelectReferBtmOption = true;
+          }else if(condition === 'referConfig'){
+            //this.$emit('openSelectreferConfig')
+          }
+        },
+
+        // 鐐瑰嚮杈撳叆妗嗙殑脳鍙凤紝娓呯┖杈撳叆妗嗕腑鐨勫唴瀹�
+        clearAttrDataByIcon(condition){
+          if(condition === 'attr'){
+            this.form.referAttributeName = '';
+            this.form.referAttributeId = '';
+            this.form.referCodeClassifyOid = '';
+            this.form.referCodeClassifyOidName = '';
+          }else if(condition === 'value'){
+            this.form.getValueClass = '';
+          }else if(condition === 'parentClassifySecOid'){
+            this.form.parentClassifySecOid = '';
+          }else if(condition === 'referBtmId'){
+            this.form.referBtmId = '';
+          }else if(condition === 'referConfig'){
+            this.form.referBtmId = '';
+          }
+        },
+        // 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫�
+        inputSelectBlur(e){
+          if (e.target.value) {  
+            this.form.codeFillSeparatorSelect = e.target.value;
+          }
+        },
+        // 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��
+        changeSectypeFormItems(row){     
+          //console.log(row);   
+          if(this.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);
+          }
+          if(this.form.secType==='codefixedsec'){
+            //鍥哄畾鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',
+              codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable'
+            });
+            this.loadCodeSecLength();
+          }else if(this.form.secType==='codeattrsec'){
+            //灞炴�х爜娈�
+            this.form = Object.assign({}, this.form, {
+              referCodeClassifyOid: row!=null&&row.referCodeClassifyOid != '' ? row.referCodeClassifyOid:'',     //灞炴�d
+              referCodeClassifyOidName: row!=null&&row.referCodeClassifyOidName != '' ? row.referCodeClassifyOidName:'', //灞炴�ф墍鍦ㄥ垎绫�
+              referAttributeId: row!=null&&row.referAttributeId != '' ? row.referAttributeId:'',    //灞炴�х紪鍙�
+              referAttributeName: row!=null&&row.referAttributeName != '' ? row.referAttributeName:'',   //灞炴��
+              getValueClass: row!=null&&row.getValueClass != '' ? row.getValueClass:''         //鍙栧�艰鍒�
+            });
+          }else if(this.form.secType==='codeserialsec'){
+            //娴佹按鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //鐮佹鐨勯暱搴�
+              serialStart: row!=null&&row.serialStart != '' ? row.serialStart:1,  //娴佹按鍙疯捣濮嬪��
+              serialStep: row!=null&&row.serialStep != '' ? row.serialStep:1,   //娴佹按鐨勬闀�
+              codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_right', //缂栫爜琛ヤ綅鏂瑰紡
+              codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
+              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:0,          //琛ヤ綅鏃剁殑瀛楃
+              codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'',              //濉厖闀垮害
+              codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'',               //娴佹按涓婇檺
+              codeFillFlag: row!=null&&row.codeFillFlag != '' ? row.codeFillFlag=='true' ?  true:false :false,      //娴佹按鏄惁琛ョ爜
+              customCodeSerialClass: row!=null&&row.customCodeSerialClass != '' ? row.customCodeSerialClass:'',     //鑷畾涔夋祦姘寸畻娉�
+            });
+            this.loadCodeFillType();
+            this.loadCodeFillSeparator();
+          }else if(this.form.secType==='codelevelsec'){
+            //灞傜骇鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeLevelType: row!=null&&row.codeLevelType != '' ? row.codeLevelType:'code_level_min',     //灞傜骇绫诲瀷  鏋氫妇鏌ヨ
+              codeLevelValue: row!=null&&row.codeLevelValue != '' ? row.codeLevelValue:'',    //灞傜骇鐨勫��
+              valueCutType: row!=null&&row.valueCutType != '' ? row.valueCutType:'code_cut_none',      //瀛楃鎴彇绫诲瀷 鏋氫妇鏌ヨ
+              valueCutLength: row!=null&&row.valueCutLength != '' ? row.valueCutLength:'',    //
+              codeGetValueType: row!=null&&row.codeGetValueType != '' ? row.codeGetValueType:'code_get_value_all_up',  //鍙栧�肩被鍨� 鏋氫妇鏌ヨ
+            });
+            this.loadCodeLevelType();
+            this.loadCodeCutType();
+            this.loadCodeGetValueType();
+          }else if(this.form.secType==='coderefersec'){
+            //寮曠敤鐮佹
+            this.form = Object.assign({}, this.form,{
+              referBtmId: row!=null&&row.referBtmId != '' ? row.referBtmId:'',   //鍙傜収寮曠敤鐨勪笟鍔$被鍨嬶紝鐨刬d
+              referBtmName: row!=null&&row.referBtmName != '' ? row.referBtmName:'', //鍙傜収寮曠敤鐨勪笟鍔$被鍨�
+              referConfig: row!=null&&row.referConfig != '' ? row.referConfig:'',  //鍙傜収閰嶇疆
+            });
+          }else if(this.form.secType==='codedatesec'){
+            //鏃ユ湡鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeDateFormatStr:  row!=null&&row.codeDateFormatStr != '' ? row.codeDateFormatStr:'',   //鏃ユ湡鏍煎紡
+            });
+          }else if(this.form.secType==='codeclassifysec'){
+            //console.log(this.form);
+            //鍒嗙被鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable',    //鐮佹闀垮害绫诲瀷
+              codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',  //鐮佹鐨勯暱搴�
+              matchClassifyValueFlag: row!=null&&row.matchClassifyValueFlag != '' ? row.matchClassifyValueFlag=='true' ?  true:false :false,  //鏄惁鑷姩鍖归厤鍊�
+              parentClassifySecOid: row!=null&&row.parentClassifySecOid != '' ? row.parentClassifySecOid:'',    //鐖跺垎绫荤爜娈甸�変腑鐨刬d
+              parentClassifySecText: row!=null&&row.parentClassifySecText != '' ? row.parentClassifySecText:'',  //鐖跺垎绫荤爜娈�
+            });
+            this.loadCodeSecLength();
+          }else if(this.form.secType==='codevariablesec'){
+            //鍙彉鐮佹
+            this.form = Object.assign({}, this.form,{
+              codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',             //鐮佹鐨勯暱搴�
+              codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_right', //缂栫爜閮ㄤ綅鏂瑰紡锛屾灇涓炬煡璇�
+              codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,  //閫変腑鐨勮ˉ浣嶆椂鐨勫瓧绗︾殑涓嬫爣
+              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'', //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夋煡璇�
+            });
+            this.loadCodeFillType();
+            this.loadCodeFillSeparator();
+          }
+          // console.log(this.form);
+        },
+        //鏋氫妇鍜屽彲杈撳彲閫夊唴瀹规煡璇�
+        loadCodeSecType(){
+          getDictionary({code: "codeBasicSecType"}).then(res=>{
+            this.sectypeList = res.data.data;
+          })
+          this.loadCodeSecLength();
+          //console.log(this.sectypeList);
+        },
+        loadCodeSecLength(){
+          getDictionary({code: "codeSecLength"}).then(res=>{
+            this.codeSecLengthType = res.data.data;
+          })
+        },
+        loadCodeFillType(){
+          getDictionary({code: "codeFillType"}).then(res=>{
+            this.codeFillType = res.data.data;
+          })
+        },
+        loadCodeFillSeparator(){
+          getDictionary({code: "codeFillSeparator"}).then(res=>{
+            this.codeFillSeparator = res.data.data;
+          })
+        },
+        loadCodeLevelType(){
+          getDictionary({code: "codeLevelType"}).then(res=>{
+            this.codeLevelType = res.data.data;
+          })
+        },
+        loadCodeCutType(){
+          getDictionary({code: "codeCutType"}).then(res=>{
+            this.codeCutType = res.data.data;
+          })
+        },
+        loadCodeGetValueType(){
+          getDictionary({code: "codeGetValueType"}).then(res=>{
+            this.codeGetValueType = res.data.data;
+            //console.log(this.codeGetValueType);
+          })
+        },
+        
       }
-    }
-};
+  };
+
 </script>
 
-<style>
+<style scope>
+
+  .code-rule-crud > .avue-crud__search ,.code-basic-crud > .avue-crud__search {
+    margin-bottom: -15px;
+  }
+
+  .code-rule-crud > .avue-crud__pagination {
+    padding: 14px 0 2px 20px;
+  }
+  
+
+  .clone-input-textarea > .el-form-item__content {
+    width: 495px;
+  }
+
+  .clone-avue-crud > .el-card > .el-card__body > .avue-crud__menu {
+    display: none!important;
+  }
+
+  .fixed-avue-crud > .el-card> .el-card__body > .avue-crud__menu {
+    display: none!important;
+  }
+
+  .other-clone-codebasic-crud > .el-card> .el-card__body > .avue-crud__menu {
+    display: none!important;
+  }
+
+  .other-clone-coderule-crud > .el-card> .el-card__body > .avue-crud__menu {
+    display: none!important;
+  }
+  
+  .el-table--small .el-table__cell {
+    padding: 3px 0;
+  }
+
+  .classify_value_box > .el-scrollbar {
+    height: 95%;
+  }
+
+  .basic-container > .el-card  > .el-card__body {
+    margin: -10px 0;
+  }
+  .code-basicsec-container{
+    padding: 1px 6px;
+  }
+
   .el-divider--horizontal {
-      margin-top: 19px !important;
-      margin-bottom: -20px !important;
-      height: 2px;
-      margin: 0;
+    margin-top: 19px !important;
+    margin-bottom: -20px !important;
+    height: 2px;
+    margin: 0;
+    position: fixed;
+    width: 57.5vw;
   }
 
   .el-card__body > .abox {
@@ -1319,8 +2540,48 @@
     width:60px;
   }
 
-  .formula-editor{
-    
+  .el-input-number {
+    width: 120px;
   }
 
+  .el-input-number >.el-input > .el-input__inner {
+    width:120px;
+  } 
+  
+  .el-col>.el-card > .el-card__header {
+    background: rgb(213 231 239);
+    border-radius: inherit;
+  }
+
+  /** 鏂板鐮佹 */
+  .total{
+    height: 500px;
+    width: 100%;
+  }
+
+  .total .el-input__inner,.total .el-textarea__inner {
+    width: 220px;
+  }
+
+  .el-divider--vertical {
+    width: 2px;
+    height: 72vh;
+    margin: 0 5px;
+    position: fixed;
+  }
+
+ .left {
+    float: left;
+    width: 49%;
+ }
+ .right {
+    float: right;
+    margin-right: 2.5vw;
+    /* width: 40%; */
+ }
+ .right > .el-form > .el-form-item{
+    margin-bottom: 8px;
+ }
+
+
 </style>
\ No newline at end of file
diff --git "a/Source/UBCS-WEB/UBCS-WEB - \345\277\253\346\215\267\346\226\271\345\274\217.lnk" "b/Source/UBCS-WEB/UBCS-WEB - \345\277\253\346\215\267\346\226\271\345\274\217.lnk"
deleted file mode 100644
index 36c8c44..0000000
--- "a/Source/UBCS-WEB/UBCS-WEB - \345\277\253\346\215\267\346\226\271\345\274\217.lnk"
+++ /dev/null
Binary files differ
diff --git a/Source/UBCS-WEB/src/const/code/codebasic.js b/Source/UBCS-WEB/src/const/code/codebasic.js
index a67ccaa..753dac8 100644
--- a/Source/UBCS-WEB/src/const/code/codebasic.js
+++ b/Source/UBCS-WEB/src/const/code/codebasic.js
@@ -13,6 +13,7 @@
     selection: true,
     menuWidth:260,
     dialogClickModal: false,
+    searchShowBtn: false,
     highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜�
     column: [
       {
@@ -20,14 +21,14 @@
         prop: "id",
         search: true,
         searchLabelWidth: 80,
-        searchSpan: 5,
+        searchSpan: 6,
       },
       {
         label: "鐮佹鍚嶇О",
         prop: "name",
         search: true,
         searchLabelWidth: 80,
-        searchSpan: 5,
+        searchSpan: 6,
       },
       {
         label: "鐮佹鎻忚堪",
diff --git a/Source/UBCS-WEB/src/const/code/mdmrule.js b/Source/UBCS-WEB/src/const/code/mdmrule.js
index 2a27f96..518b503 100644
--- a/Source/UBCS-WEB/src/const/code/mdmrule.js
+++ b/Source/UBCS-WEB/src/const/code/mdmrule.js
@@ -57,6 +57,13 @@
       search: true,
       searchLabelWidth: 45,
       searchSpan: 5,
+      type: 'select',
+      //鐢变簬杩欎釜鎺ュ彛杩樺湪璋冭瘯鎵�浠ヨ绛夎皟濂戒簡鎵嶈兘璋冪敤
+      dicUrl: "/api/ubcs-omd/dict/dictionary?code=user_type",
+      props: {
+        label: "dictValue",
+        value: "dictKey"
+      },
       display: false,
     },
   ]
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 89dd072..759e0ee 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -202,6 +202,9 @@
         ref="crudBasic"
         :table-loading="loadingBasic"
         :data="basicData"
+        @row-click="codeBasicSecRowClick"
+        @search-change="basicSearchChange"
+        @search-reset="basicSearchReset"
         :permission="permissionList"
         @selection-change="selectionBasicChange"
         @refresh-change="refreshChangeBasicSec">
@@ -600,7 +603,7 @@
                   placeholder="璇烽�夋嫨"
                   prefix-icon="el-icon-search"
                   readonly="true"
-                  v-model="form.parentClassifySecOid"
+                  v-model="form.parentClassifySecText"
                   @focus="openAttrSelectOrGetValue('parentClassifySecOid')"
                   :disabled="basicSecOnlyRead">
                   <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i>
@@ -894,7 +897,7 @@
           },
           classisyValueTreeOption: classisyValueTreeOption, //鍒嗙被鐮佹鏍戠浉鍏抽厤缃」
           classifyValueTreeData: [],
-          currentSelectTreeData: '', //褰撳墠閫変腑鐨勫垎绫荤爜鍊兼爲鑺傜偣
+          //currentSelectClsValueTreeData: '', //褰撳墠閫変腑鐨勫垎绫荤爜鍊兼爲鑺傜偣
 
           /* 涓哄睘鎬ч�夊彇鍊肩獥鍙f樉绀烘墦寮�鎺у埗鍙橀噺 */
           isShowSelectAttrOption: false,
@@ -1170,10 +1173,10 @@
         saveSelectedParentClassify(){
           //console.log(this.parentClassifySelectionList.length);
           if(this.parentClassifySelectionList.length != 1){
-            this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+            this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�!");
             return false;
           }
-          //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+          //鍙傛暟鍊硷紝瀹炵幇鍥炴樉
           this.form.parentClassifySecOid = this.parentClassifySelectionList[0].oid;
           this.form.parentClassifySecText = this.parentClassifySelectionList[0].name;
           //娓呯┖褰撳墠閫変腑鐨勮
@@ -1609,7 +1612,7 @@
         /** 鍩虹鐮佹鐩稿叧鏂规硶 */
         //闃叉鎵撳紑杩囩紪杈戠獥鍙d箣鍚庤〃鍗曚腑瀛樺湪鍊硷紝鎵�浠ラ渶瑕佹竻绌�,骞跺垵濮嬪寲form琛ㄥ崟灞炴��
         clearBasicAddForm(){
-          this.form = this.$options.data().form;;
+          this.form = this.$options.data().form;
           // this.changeSectypeFormItems(null);
         },
         // 鎵撳紑鏂板绐楀彛
@@ -1903,9 +1906,12 @@
           //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
           this.currentCodeRuleOid = row.oid;
           this.currentRuleLcStatus = row.lcStatus;
-          gridCodeBasicSec(1, -1, {"pkCodeRule":row.oid}).then(res => {
+          this.sendGridCodeBasicSec({"pkCodeRule":row.oid});
+        },
+        // 鍙戦�佸姞杞藉熀纭�鐮佹鐨勮姹�
+        sendGridCodeBasicSec(condition){
+          gridCodeBasicSec(1, -1, condition).then(res => {
             const data = res.data.data;
-            // console.log(data);
             if(this.cloneSettingBox){
               this.cloneData = data.records;
               // console.log(tihs.cloneData);
@@ -1920,7 +1926,23 @@
         // 鍩虹鐮佹閫変腑鏃惰Е鍙�
         selectionBasicChange(list) {
           this.selectionBasicList = list;
+          this.$refs.crudBasic.setCurrentRow(this.selectionBasicList[list.length-1]);
           //console.log(this.selectionBasicList);
+        },
+        // 鍩虹鐮佹琚崟鍑昏〃鏍艰鏃惰Е鍙�
+        codeBasicSecRowClick(row){
+          this.$refs.crudBasic.toggleSelection();
+          this.selectionBasicList = row;
+          this.$refs.crudBasic.setCurrentRow(row);
+          this.$refs.crudBasic.toggleRowSelection(row); //閫変腑褰撳墠琛�
+        },
+        basicSearchChange(params, done){
+          //this.$refs.crudBasic.tableOption.searchShow = false;
+          this.sendGridCodeBasicSec(Object.assign(params,{"pkCodeRule":this.selectionList[this.selectionList.length-1].oid}));
+          done();
+        },
+        basicSearchReset(){
+          this.sendGridCodeBasicSec({"pkCodeRule":this.selectionList[this.selectionList.length-1].oid});
         },
         // 涓婄Щ涓嬬Щ鍩虹鐮佹
         upOrderNum(row){
@@ -1973,7 +1995,7 @@
           this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
         },
 
-  
+
         /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
         // 鏌ヨ浣跨敤鑼冨洿
         handleRange(){
@@ -2077,7 +2099,7 @@
         codeOtherCloneRuleRowClick (row) {
           this.loadBasic(row);
         },
-        // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
+        // 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈腑缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
         selectionOtherCloneCodeRuleChange(list) {
           //console.log(list);
           this.selectionOtherCloneCodeRuleList = list;
@@ -2152,7 +2174,6 @@
               });
             });
         },
-
         // 娣诲姞
         rowSave(row, done, loading) {
           add(row).then(() => {
@@ -2232,8 +2253,13 @@
         // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
         selectionChange(list) {
           this.selectionList = list;
-          //console.log("selectionChange====="+list);
+          // console.log("selectionChange====="+list);
           this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
+          //褰撳墠閫変腑琛屼负绌虹殑鏃跺�欏氨灏嗙爜娈电鐞嗚〃鏍兼暟鎹疆绌�
+          if(list==''){
+            this.basicData = '';
+            console.log(this.$refs.crudBasic);
+          }
           if(this.selectionList.length > 0){
             this.currentCodeRuleOid = this.selectionList[list.length-1].oid;
             this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus;
@@ -2264,7 +2290,7 @@
             this.loading = false;
             this.loadBasic(this.data[0])
             this.$nextTick(() => {
-              //this.$refs.crud.toggleRowSelection(this.data[0]);
+              this.$refs.crud.toggleRowSelection(this.data[0]);
               this.$refs.crud.setCurrentRow(this.data[0]);
             })
             this.selectionList = data.records[0];
@@ -2289,7 +2315,6 @@
             //this.$emit('openSelectreferConfig')
           }
         },
-
         // 鐐瑰嚮杈撳叆妗嗙殑脳鍙凤紝娓呯┖杈撳叆妗嗕腑鐨勫唴瀹�
         clearAttrDataByIcon(condition){
           if(condition === 'attr'){
diff --git a/Source/UBCS-WEB/src/views/modeling/Business.vue b/Source/UBCS-WEB/src/views/modeling/Business.vue
index ce72565..40ccabe 100644
--- a/Source/UBCS-WEB/src/views/modeling/Business.vue
+++ b/Source/UBCS-WEB/src/views/modeling/Business.vue
@@ -359,4 +359,5 @@
 .businessCrud > .el-card > .el-card__body > .avue-crud_menu{
   display: none!important;
 }
+
 </style>
diff --git a/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java b/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
index 27ee11f..cbb2ec6 100644
--- a/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
+++ b/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -40,8 +40,8 @@
 	/**
 	 * nacos dev 鍦板潃
 	 */
-	String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
-	//String NACOS_DEV_ADDR = "192.168.93.190:38848";
+	//String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
+	String NACOS_DEV_ADDR = "192.168.93.190:38848";
 
 	/**
 	 * nacos prod 鍦板潃
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java
index 9d106fd..10d7fdb 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java
@@ -2,24 +2,26 @@
 
 
 import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
+import lombok.Data;
 
 /**
  * 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
  *
- * @author weidy
- * @date 2022-01-24
+ * @author ludc
+ * @date 2022-04-24
  */
+@Data
 public class CodeClassifyValueDTO extends BaseModelVO {
 
 	/**
-     * 绂佹淇敼杩欎釜鍊�
-     */
+	 * 绂佹淇敼杩欎釜鍊�
+	 */
 	private static final long serialVersionUID = 4615707117098778726L;
 
 	/**
 	 * 鍒嗙被鐮佹涓婚敭
 	 */
-	private String codeclassifysecoid;
+	private String codeClassifySecOid;
 
 	/**
 	 * 鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
@@ -28,77 +30,11 @@
 	/**
 	 * 鐮佸�煎簭鍙�
 	 */
-	private Integer ordernum;
+	private Integer orderNum;
 
 	/**
 	 * 涓婄骇鍒嗙被鐮佸�间富閿�
 	 */
-	private String parentclassifyvalueoid;
+	private String parentClassifyValueOid;
 
-
-	/**
-	 * 鑾峰彇 鍒嗙被鐮佹涓婚敭
-	 */
-	public String getCodeclassifysecoid (){
-		return codeclassifysecoid;
-	}
-
-	/**
-	 * 璁剧疆 鍒嗙被鐮佹涓婚敭
-	 */
-	public void setCodeclassifysecoid (String codeclassifysecoid){
-		this.codeclassifysecoid = codeclassifysecoid;
-	}
-
-	/**
-	 * 鑾峰彇鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
-	 */
-	public String getCodeclassifysecoidName (){
-		return codeclassifysecoidName;
-	}
-
-	/**
-	 * 璁剧疆鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
-	 */
-	public void setCodeclassifysecoidName (String codeclassifysecoidName){
-		this.codeclassifysecoidName = codeclassifysecoidName;
-	}
-	/**
-	 * 鑾峰彇 鐮佸�煎簭鍙�
-	 */
-	public Integer getOrdernum (){
-		return ordernum;
-	}
-
-	/**
-	 * 璁剧疆 鐮佸�煎簭鍙�
-	 */
-	public void setOrdernum (Integer ordernum){
-		this.ordernum = ordernum;
-	}
-
-	/**
-	 * 鑾峰彇 涓婄骇鍒嗙被鐮佸�间富閿�
-	 */
-	public String getParentclassifyvalueoid (){
-		return parentclassifyvalueoid;
-	}
-
-	/**
-	 * 璁剧疆 涓婄骇鍒嗙被鐮佸�间富閿�
-	 */
-	public void setParentclassifyvalueoid (String parentclassifyvalueoid){
-		this.parentclassifyvalueoid = parentclassifyvalueoid;
-	}
-
-
-	@Override
-	public String toString() {
-		return "CodeClassifyValueDTO{" +
-		"codeclassifysecoid='" + codeclassifysecoid +"',"+
-		"codeclassifysecoidName='" + codeclassifysecoidName +"'," +
-		"ordernum='" + ordernum +"',"+
-		"parentclassifyvalueoid='" + parentclassifyvalueoid +"',"+
-		"}" + super.toString();
-	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllcodeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllCodeDTO.java
similarity index 95%
rename from Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllcodeDTO.java
rename to Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllCodeDTO.java
index 4a775a4..3b79504 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllcodeDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllCodeDTO.java
@@ -28,7 +28,7 @@
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class CodeCodeAllcodeDTO extends CodeAllCode {
+public class CodeCodeAllCodeDTO extends CodeAllCode {
 	private static final long serialVersionUID = 1L;
 
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
index 43e837a..2a91389 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
@@ -1,15 +1,17 @@
 package com.vci.ubcs.code.vo.pagemodel;
 
 import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
+import lombok.Data;
 
 import java.util.List;
 
 /**
  * 鐮佹鍩虹淇℃伅鏄剧ず瀵硅薄
  *
- * @author weidy
- * @date 2022-01-24
+ * @author ludc
+ * @date 2023-04-24
  */
+@Data
 public class CodeBasicSecVO extends BaseModelVO {
 
 	/**
@@ -21,7 +23,6 @@
 	* 鐮佹绫诲瀷
 	*/
 	private String secType;
-
 
 	/**
 	* 鐮佹绫诲瀷鏄剧ず鏂囨湰
@@ -241,411 +242,4 @@
 	 */
 	private List<CodeFixedValueVO> fixedValueVOList;
 
-	public String getReferCodeClassifyOidName() {
-		return referCodeClassifyOidName;
-	}
-
-	public void setReferCodeClassifyOidName(String referCodeClassifyOidName) {
-		this.referCodeClassifyOidName = referCodeClassifyOidName;
-	}
-
-	public String getReferAttributeId() {
-		return referAttributeId;
-	}
-
-	public void setReferAttributeId(String referAttributeId) {
-		this.referAttributeId = referAttributeId;
-	}
-
-	//鍒嗙被鐨勫唴瀹逛笉鑳界洿鎺ユ斁锛屽洜涓哄彲鑳藉緢澶�
-
-	public String getPkCodeRule() {
-		return pkCodeRule;
-	}
-
-	public void setPkCodeRule(String pkCodeRule) {
-		this.pkCodeRule = pkCodeRule;
-	}
-
-	public Integer getOrderNum() {
-		return orderNum;
-	}
-
-	public void setOrderNum(Integer orderNum) {
-		this.orderNum = orderNum;
-	}
-
-	public String getCodeSecLengthTypeText() {
-		return codeSecLengthTypeText;
-	}
-
-	public void setCodeSecLengthTypeText(String codeSecLengthTypeText) {
-		this.codeSecLengthTypeText = codeSecLengthTypeText;
-	}
-
-	public String getMatchClassifyValueFlag() {
-		return matchClassifyValueFlag;
-	}
-
-	public void setMatchClassifyValueFlag(String matchClassifyValueFlag) {
-		this.matchClassifyValueFlag = matchClassifyValueFlag;
-	}
-
-	public String getParentClassifySecOid() {
-		return parentClassifySecOid;
-	}
-
-	public void setParentClassifySecOid(String parentClassifySecOid) {
-		this.parentClassifySecOid = parentClassifySecOid;
-	}
-
-	public String getParentClassifySecText() {
-		return parentClassifySecText;
-	}
-
-	public void setParentClassifySecText(String parentClassifySecText) {
-		this.parentClassifySecText = parentClassifySecText;
-	}
-
-	public String getNullableFlag() {
-		return nullableFlag;
-	}
-
-	public void setNullableFlag(String nullableFlag) {
-		this.nullableFlag = nullableFlag;
-	}
-
-	public String getComponentCodeFlag() {
-		return componentCodeFlag;
-	}
-
-	public void setComponentCodeFlag(String componentCodeFlag) {
-		this.componentCodeFlag = componentCodeFlag;
-	}
-
-	public String getSerialDependFlag() {
-		return serialDependFlag;
-	}
-
-	public void setSerialDependFlag(String serialDependFlag) {
-		this.serialDependFlag = serialDependFlag;
-	}
-
-	public String getDisplayFlag() {
-		return displayFlag;
-	}
-
-	public void setDisplayFlag(String displayFlag) {
-		this.displayFlag = displayFlag;
-	}
-
-	public Integer getSerialDependOrder() {
-		return serialDependOrder;
-	}
-
-	public void setSerialDependOrder(Integer serialDependOrder) {
-		this.serialDependOrder = serialDependOrder;
-	}
-
-	/**
-	* 璁剧疆 鐮佹绫诲瀷
-	*/
-	public void setSecType (String secType){
-		this.secType = secType;
-	}
-
-	public String getSecTypeText() {
-		return secTypeText;
-	}
-
-	public void setSecTypeText(String secTypeText) {
-		this.secTypeText = secTypeText;
-	}
-
-	public String getSecType() {
-		return secType;
-	}
-
-	public String getCodeSecLengthType() {
-		return codeSecLengthType;
-	}
-
-	public void setCodeSecLengthType(String codeSecLengthType) {
-		this.codeSecLengthType = codeSecLengthType;
-	}
-
-	public String getCodeSecLength() {
-		return codeSecLength;
-	}
-
-	public void setCodeSecLength(String codeSecLength) {
-		this.codeSecLength = codeSecLength;
-	}
-
-	public String getGetValueClass() {
-		return getValueClass;
-	}
-
-	public void setGetValueClass(String getValueClass) {
-		this.getValueClass = getValueClass;
-	}
-
-	public String getCodeDateFormatStr() {
-		return codeDateFormatStr;
-	}
-
-	public void setCodeDateFormatStr(String codeDateFormatStr) {
-		this.codeDateFormatStr = codeDateFormatStr;
-	}
-
-	public String getCodeLevelType() {
-		return codeLevelType;
-	}
-
-	public void setCodeLevelType(String codeLevelType) {
-		this.codeLevelType = codeLevelType;
-	}
-
-	public String getCodeLevelTypeText() {
-		return codeLevelTypeText;
-	}
-
-	public void setCodeLevelTypeText(String codeLevelTypeText) {
-		this.codeLevelTypeText = codeLevelTypeText;
-	}
-
-	public Integer getCodeLevelValue() {
-		return codeLevelValue;
-	}
-
-	public void setCodeLevelValue(Integer codeLevelValue) {
-		this.codeLevelValue = codeLevelValue;
-	}
-
-	public Integer getValueCutLength() {
-		return valueCutLength;
-	}
-
-	public void setValueCutLength(Integer valueCutLength) {
-		this.valueCutLength = valueCutLength;
-	}
-
-	public String getValueCutType() {
-		return valueCutType;
-	}
-
-	public void setValueCutType(String valueCutType) {
-		this.valueCutType = valueCutType;
-	}
-
-	public String getValueCutTypeText() {
-		return valueCutTypeText;
-	}
-
-	public void setValueCutTypeText(String valueCutTypeText) {
-		this.valueCutTypeText = valueCutTypeText;
-	}
-
-	public String getCodeGetValueType() {
-		return codeGetValueType;
-	}
-
-	public void setCodeGetValueType(String codeGetValueType) {
-		this.codeGetValueType = codeGetValueType;
-	}
-
-	public String getCodeGetValueTypeText() {
-		return codeGetValueTypeText;
-	}
-
-	public void setCodeGetValueTypeText(String codeGetValueTypeText) {
-		this.codeGetValueTypeText = codeGetValueTypeText;
-	}
-
-	public String getReferCodeClassifyOid() {
-		return referCodeClassifyOid;
-	}
-
-	public void setReferCodeClassifyOid(String referCodeClassifyOid) {
-		this.referCodeClassifyOid = referCodeClassifyOid;
-	}
-
-	public String getReferConfig() {
-		return referConfig;
-	}
-
-	public void setReferConfig(String referConfig) {
-		this.referConfig = referConfig;
-	}
-
-	public String getReferValueInfo() {
-		return referValueInfo;
-	}
-
-	public void setReferValueInfo(String referValueInfo) {
-		this.referValueInfo = referValueInfo;
-	}
-
-	public String getFilterSql() {
-		return filterSql;
-	}
-
-	public void setFilterSql(String filterSql) {
-		this.filterSql = filterSql;
-	}
-
-	public String getSerialStart() {
-		return serialStart;
-	}
-
-	public void setSerialStart(String serialStart) {
-		this.serialStart = serialStart;
-	}
-
-	public Integer getSerialStep() {
-		return serialStep;
-	}
-
-	public void setSerialStep(Integer serialStep) {
-		this.serialStep = serialStep;
-	}
-
-	public String getCodeFillType() {
-		return codeFillType;
-	}
-
-	public void setCodeFillType(String codeFillType) {
-		this.codeFillType = codeFillType;
-	}
-
-	public String getCodeFillTypeText() {
-		return codeFillTypeText;
-	}
-
-	public void setCodeFillTypeText(String codeFillTypeText) {
-		this.codeFillTypeText = codeFillTypeText;
-	}
-
-	public String getCodeFillSeparator() {
-		return codeFillSeparator;
-	}
-
-	public void setCodeFillSeparator(String codeFillSeparator) {
-		this.codeFillSeparator = codeFillSeparator;
-	}
-
-	public String getCodeFillLength() {
-		return codeFillLength;
-	}
-
-	public void setCodeFillLength(String codeFillLength) {
-		this.codeFillLength = codeFillLength;
-	}
-
-	public Integer getCodeFillLimit() {
-		return codeFillLimit;
-	}
-
-	public void setCodeFillLimit(Integer codeFillLimit) {
-		this.codeFillLimit = codeFillLimit;
-	}
-
-	public String getCodeFillFlag() {
-		return codeFillFlag;
-	}
-
-	public void setCodeFillFlag(String codeFillFlag) {
-		this.codeFillFlag = codeFillFlag;
-	}
-
-	public String getCustomCodeSerialClass() {
-		return customCodeSerialClass;
-	}
-
-	public void setCustomCodeSerialClass(String customCodeSerialClass) {
-		this.customCodeSerialClass = customCodeSerialClass;
-	}
-
-
-	public List<CodeFixedValueVO> getFixedValueVOList() {
-		return fixedValueVOList;
-	}
-
-	public void setFixedValueVOList(List<CodeFixedValueVO> fixedValueVOList) {
-		this.fixedValueVOList = fixedValueVOList;
-	}
-
-	public String getReferAttributeName() {
-		return referAttributeName;
-	}
-
-	public void setReferAttributeName(String referAttributeName) {
-		this.referAttributeName = referAttributeName;
-	}
-
-	public String getReferBtmId() {
-		return referBtmId;
-	}
-
-	public void setReferBtmId(String referBtmId) {
-		this.referBtmId = referBtmId;
-	}
-
-	public String getReferBtmName() {
-		return referBtmName;
-	}
-
-	public void setReferBtmName(String referBtmName) {
-		this.referBtmName = referBtmName;
-	}
-
-	@Override
-	public String toString() {
-		return "CodeBasicSecVO{" +
-				"secType='" + secType + '\'' +
-				", secTypeText='" + secTypeText + '\'' +
-				", pkCodeRule='" + pkCodeRule + '\'' +
-				", orderNum=" + orderNum +
-				", codeSecLengthType='" + codeSecLengthType + '\'' +
-				", codeSecLengthTypeText='" + codeSecLengthTypeText + '\'' +
-				", codeSecLength='" + codeSecLength + '\'' +
-				", referAttributeName='" + referAttributeName + '\'' +
-				", referAttributeId='" + referAttributeId + '\'' +
-				", getValueClass='" + getValueClass + '\'' +
-				", codeDateFormatStr='" + codeDateFormatStr + '\'' +
-				", codeLevelType='" + codeLevelType + '\'' +
-				", codeLevelTypeText='" + codeLevelTypeText + '\'' +
-				", codeLevelValue=" + codeLevelValue +
-				", valueCutLength=" + valueCutLength +
-				", valueCutType='" + valueCutType + '\'' +
-				", valueCutTypeText='" + valueCutTypeText + '\'' +
-				", codeGetValueType='" + codeGetValueType + '\'' +
-				", codeGetValueTypeText='" + codeGetValueTypeText + '\'' +
-				", referCodeClassifyOid='" + referCodeClassifyOid + '\'' +
-				", referCodeClassifyOidName='" + referCodeClassifyOidName + '\'' +
-				", referBtmId='" + referBtmId + '\'' +
-				", referBtmName='" + referBtmName + '\'' +
-				", referConfig='" + referConfig + '\'' +
-				", referValueInfo='" + referValueInfo + '\'' +
-				", filterSql='" + filterSql + '\'' +
-				", serialStart='" + serialStart + '\'' +
-				", serialStep=" + serialStep +
-				", codeFillType='" + codeFillType + '\'' +
-				", codeFillTypeText='" + codeFillTypeText + '\'' +
-				", codeFillSeparator='" + codeFillSeparator + '\'' +
-				", codeFillLength='" + codeFillLength + '\'' +
-				", codeFillLimit=" + codeFillLimit +
-				", codeFillFlag='" + codeFillFlag + '\'' +
-				", customCodeSerialClass='" + customCodeSerialClass + '\'' +
-				", matchClassifyValueFlag='" + matchClassifyValueFlag + '\'' +
-				", parentClassifySecOid='" + parentClassifySecOid + '\'' +
-				", parentClassifySecText='" + parentClassifySecText + '\'' +
-				", nullableFlag='" + nullableFlag + '\'' +
-				", componentCodeFlag='" + componentCodeFlag + '\'' +
-				", serialDependFlag='" + serialDependFlag + '\'' +
-				", displayFlag='" + displayFlag + '\'' +
-				", serialDependOrder=" + serialDependOrder +
-				", fixedValueVOList=" + fixedValueVOList +
-				"} " + super.toString();
-	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
index 182d4eb..251eb48 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -36,6 +36,7 @@
 			baseModel.setNameOid(VciBaseUtil.getPk());
 			baseModel.setLastModifyTime(new Date());
 			baseModel.setTs(new Date());
+			baseModel.setRevisionOid(VciBaseUtil.getPk());
 			//鐢ㄦ埛id
 			String userId = AuthUtil.getUserId().toString();
 			baseModel.setBtmname(btmName);
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
index e70d868..39210fc 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
@@ -60,7 +60,7 @@
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "鍒嗛〉 鐮佹鍩虹淇℃伅鍒楄〃", notes = "浼犲叆codeRuleVO")
     public R<IPage<CodeBasicSecVO>> gridCodeBasicSec(CodeBasicSecVO codeBasicSecVO, Query query){
-		IPage<CodeBasicSecVO> codeRuleVOIPage = codeBasicSecService.gridCodeBasicSec(Condition.getPage(query.setAscs("ordernum")),codeBasicSecVO);
+		IPage<CodeBasicSecVO> codeRuleVOIPage = codeBasicSecService.gridCodeBasicSec(Condition.getPage(query.setAscs("ORDERNUM")),codeBasicSecVO);
 		return R.data(codeRuleVOIPage);
     }
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
index 6cbe735..6bb7e17 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
@@ -14,7 +14,6 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -30,113 +29,113 @@
 @RestController
 @RequestMapping("/codeClassifyValueController")
 public class CodeClassifyValueController {
-    /**
-    * 鍒嗙被鐮佹鐨勭爜鍊� 鏈嶅姟
-    */
-    @Autowired
-    private ICodeClassifyValueService codeClassifyValueService;
+	/**
+	 * 鍒嗙被鐮佹鐨勭爜鍊� 鏈嶅姟
+	 */
+	@Autowired
+	private ICodeClassifyValueService codeClassifyValueService;
 
-    /**
-     * 鍒嗙被鐮佹鐨勭爜鍊兼爲
-     * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
-     * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
-     */
-    @GetMapping("/treeCodeClassifyValue")
-    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject)  {
-        return  codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
-    }
+	/**
+	 * 鍒嗙被鐮佹鐨勭爜鍊兼爲
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
+	 */
+	@GetMapping("/treeCodeClassifyValue")
+	public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject)  {
+		return codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
+	}
 
-    /**
-     * 澧炲姞 鍒嗙被鐮佹鐨勭爜鍊�
-     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
-     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
-     */
-    @PostMapping( "/addSave")
-    public R<CodeClassifyValueVO> addSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
+	/**
+	 * 澧炲姞 鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+	 */
+	@PostMapping( "/addSave")
+	public R<CodeClassifyValueVO> addSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
 		return R.status(codeClassifyValueService.addSave(codeClassifyValueDTO));
-    }
+	}
 
-    /**
-     * 淇敼 鍒嗙被鐮佹鐨勭爜鍊�
-     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
-     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
-     */
-    @PutMapping("/editSave")
-    public R<CodeClassifyValueVO> editSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
-        return R.status(codeClassifyValueService.editSave(codeClassifyValueDTO));
-    }
+	/**
+	 * 淇敼 鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+	 */
+	@PutMapping("/editSave")
+	public R<CodeClassifyValueVO> editSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
+		return R.status(codeClassifyValueService.editSave(codeClassifyValueDTO));
+	}
 
-    /**
-    * 妫�鏌� 鍒嗙被鐮佹鐨勭爜鍊兼槸鍚﹀垹闄�
-    * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
-    * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
-    */
-    @PostMapping( "/checkIsCanDelete")
-    public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
-        return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
-    }
+	/**
+	 * 妫�鏌� 鍒嗙被鐮佹鐨勭爜鍊兼槸鍚﹀垹闄�
+	 * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
+	 * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+	 */
+	@PostMapping( "/checkIsCanDelete")
+	public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
+		return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
+	}
 
-    /**
-     * 鍒犻櫎鍒嗙被鐮佹鐨勭爜鍊�
-     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
-     * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
-     */
-    @DeleteMapping( "/deleteData")
-    public R delCodeClassifyValue(@Valid @RequestBody CodeClassifyValueDTO codeClassifyValueDTO) {
-        return codeClassifyValueService.deleteCodeClassifyValue(codeClassifyValueDTO);
-    }
+	/**
+	 * 鍒犻櫎鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+	 */
+	@DeleteMapping( "/deleteData")
+	public R delCodeClassifyValue(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO) {
+		return codeClassifyValueService.deleteCodeClassifyValue(codeClassifyValueDTO);
+	}
 
-    /**
-    * 涓婚敭鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
-    * @param oid 涓婚敭
-    * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
-    */
-    @GetMapping("/getObjectByOid")
-    public R<CodeClassifyValueVO> getObjectByOid(String oid){
-        CodeClassifyValueVO codeClassifyValueVO = codeClassifyValueService.getObjectByOid(oid);
-        return R.data(codeClassifyValueVO);
-    }
+	/**
+	 * 涓婚敭鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param oid 涓婚敭
+	 * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 */
+	@GetMapping("/getObjectByOid")
+	public R<CodeClassifyValueVO> getObjectByOid(String oid){
+		CodeClassifyValueVO codeClassifyValueVO = codeClassifyValueService.getObjectByOid(oid);
+		return R.data(codeClassifyValueVO);
+	}
 
-    /**
-     * 涓婚敭鎵归噺鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
-     * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
-     * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
-     */
-    @GetMapping("/listDataByOids")
-    public R<Collection<CodeClassifyValueVO>> listCodeClassifyValueByOids(String oids){
-        Collection<CodeClassifyValueVO> voCollection =  codeClassifyValueService.listCodeClassifyValueByOids(VciBaseUtil.str2List(oids));
-        return R.data(voCollection);
-    }
+	/**
+	 * 涓婚敭鎵归噺鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+	 * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 */
+	@GetMapping("/listDataByOids")
+	public R<Collection<CodeClassifyValueVO>> listCodeClassifyValueByOids(String oids){
+		Collection<CodeClassifyValueVO> voCollection =  codeClassifyValueService.listCodeClassifyValueByOids(VciBaseUtil.str2List(oids));
+		return R.data(voCollection);
+	}
 
-    /**
-    * 鍙傜収鏍� 鍒嗙被鐮佹鐨勭爜鍊�
-    * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
-    * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
-    */
-    @GetMapping("/referTree")
-        public List<Tree> referTree(TreeQueryObject treeQueryObject)  {
-        return codeClassifyValueService.referTree(treeQueryObject);
-    }
+	/**
+	 * 鍙傜収鏍� 鍒嗙被鐮佹鐨勭爜鍊�
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
+	 */
+	@GetMapping("/referTree")
+	public List<Tree> referTree(TreeQueryObject treeQueryObject)  {
+		return codeClassifyValueService.referTree(treeQueryObject);
+	}
 
-    /**
-     * 淇濆瓨椤甸潰涓婄殑鍒嗙被鐮佹鐮佸�硷紝涓昏鏄繚瀛樺簭鍙风敤浜庢帓搴忋�傚鏋滄暟鎹簱涓瓨鍦ㄩ〉闈紶杈撳璞¢泦鍚堜腑涓嶅瓨鍦ㄧ殑鍊硷紝鍒欏垹闄ゃ��
-     * @param param 鍙傛暟锛屽寘鎷琩toList 椤甸潰浼犺緭瀵硅薄闆嗗悎 鍜宑odeclassifysecoid 鍒嗙被鐮佹涓婚敭
-     * @return 鎵ц缁撴灉
-     */
-    @PostMapping("/saveOrder")
-    public R saveOrder(@RequestBody Map<String,Object> param){
-        JSONArray json = JSONArray.parseArray(String.valueOf(param.get("dtoList")));
-        List<CodeClassifyValueDTO> dtoList = new ArrayList<>();
-        for (int i = 0; i < json.size(); i++) {
-            CodeClassifyValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeClassifyValueDTO.class);
-            dtoList.add(codeFixedValueDTO);
-        }
-        String codeclassifysecoid = (String) param.get("codeclassifysecoid");
-        VciBaseUtil.alertNotNull(dtoList,"鐮佸�奸泦鍚�");
-        if (CollectionUtils.isEmpty(dtoList)){
-            return R.success("");
-        }
-        return codeClassifyValueService.batchSave4Order(dtoList,codeclassifysecoid);
-    }
+	/**
+	 * 淇濆瓨椤甸潰涓婄殑鍒嗙被鐮佹鐮佸�硷紝涓昏鏄繚瀛樺簭鍙风敤浜庢帓搴忋�傚鏋滄暟鎹簱涓瓨鍦ㄩ〉闈紶杈撳璞¢泦鍚堜腑涓嶅瓨鍦ㄧ殑鍊硷紝鍒欏垹闄ゃ��
+	 * @param param 鍙傛暟锛屽寘鎷琩toList 椤甸潰浼犺緭瀵硅薄闆嗗悎 鍜宑odeclassifysecoid 鍒嗙被鐮佹涓婚敭
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/saveOrder")
+	public R saveOrder(@RequestBody Map<String,Object> param){
+		JSONArray json = JSONArray.parseArray(String.valueOf(param.get("dtoList")));
+		List<CodeClassifyValueDTO> dtoList = new ArrayList<>();
+		for (int i = 0; i < json.size(); i++) {
+			CodeClassifyValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeClassifyValueDTO.class);
+			dtoList.add(codeFixedValueDTO);
+		}
+		String codeclassifysecoid = (String) param.get("codeClassifySecOid");
+		VciBaseUtil.alertNotNull(dtoList,"鐮佸�奸泦鍚�");
+		if (CollectionUtils.isEmpty(dtoList)){
+			return R.success("");
+		}
+		return codeClassifyValueService.batchSave4Order(dtoList,codeclassifysecoid);
+	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
index 35148e8..6350c98 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
@@ -5,20 +5,16 @@
 
 import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
-import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
 
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
-import com.vci.ubcs.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.starter.web.pagemodel.PageHelper;
 import com.vci.ubcs.starter.web.pagemodel.Tree;
 import org.springblade.core.tool.api.R;
 
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 鍒嗙被鐮佹鐨勭爜鍊兼湇鍔℃帴鍙�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
index 8b8a3b9..9dae445 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
@@ -17,7 +17,7 @@
  * 鍥哄畾鐮佹鐨勭爜鍊兼湇鍔℃帴鍙�
  *
  * @author ludc
- * @date 2022-01-24
+ * @date 2023-04-24
  */
 public interface ICodeFixedValueService extends IService<CodeFixedValue> {
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
index fef2e76..ed02a92 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -26,6 +26,7 @@
 import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.enumpck.OsCodeFillTypeEnum;
 import com.vci.ubcs.starter.web.pagemodel.KeyValue;
 import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO;
@@ -210,7 +211,6 @@
 		if (! "success".equals(attrKv.getKey())){
 			throw new VciBaseException(attrKv.getValue() + "涓嶈兘涓虹┖");
 		}
-
 		//灏咲TO杞崲涓篋O
 		CodeBasicSec codeBasicSecDO = new CodeBasicSec();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDTO, codeBasicSecDO);
@@ -221,15 +221,7 @@
 		codeBasicSecDO.setValueCutTypeText(CodeCutTypeEnum.getValueByText(codeBasicSecDTO.getValueCutType()));
 		codeBasicSecDO.setCodeGetValueTypeText(CodeGetValueTypeEnum.getValueByText(codeBasicSecDTO.getCodeGetValueType()));
 		//濉厖涓�浜涢粯璁ゅ��
-		codeBasicSecDO.setOid(VciBaseUtil.getPk());
-		codeBasicSecDO.setRevisionOid(VciBaseUtil.getPk());
-		codeBasicSecDO.setNameOid(VciBaseUtil.getPk());
-		codeBasicSecDO.setBtmname(MdmBtmTypeConstant.CODE_BASIC_SEC);
-		codeBasicSecDO.setTs(new Date());
-		codeBasicSecDO.setCreateTime(new Date());
-		codeBasicSecDO.setCreator(AuthUtil.getUserId().toString());
-		codeBasicSecDO.setLastModifier(AuthUtil.getUserId().toString());
-		codeBasicSecDO.setLastModifyTime(new Date());
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeBasicSecDO,MdmBtmTypeConstant.CODE_BASIC_SEC);
 		//鎺掑簭鍙凤紝榛樿绛変簬褰撳墠宸叉湁鐨勬暟閲忓姞1
 		Long total = codeBasicSecMapper.selectCount(Wrappers.<CodeBasicSec>query()
 			.lambda()
@@ -287,6 +279,7 @@
 		}
 		//灏咲TO杞崲涓篋O
 		CodeBasicSec codeBasicSecDO = selectByOid(codeBasicSecDTO.getOid());
+		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeBasicSecDO);
 		boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeBasicSecDO.getPkCodeRule()).getLcStatus());
 		boolean resBoolean;
 		if (!status){
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java
index b77a7fc..338c9f6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java
@@ -30,6 +30,7 @@
 import com.vci.ubcs.code.mapper.CodeButtonMapper;
 import com.vci.ubcs.code.service.ICodeButtonService;
 import com.vci.ubcs.code.vo.pagemodel.CodeButtonVO;
+import com.vci.ubcs.code.wrapper.CodeButtonWrapper;
 import com.vci.ubcs.common.utils.PageDO2PageVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
@@ -92,15 +93,14 @@
 			query.setSize(pageHelper.getLimit());
 			query.setCurrent(pageHelper.getPage());
 		}
-		query.setDescs("createTime");
+		query.setDescs("CREATETIME");
 		CodeButton codeButton = new CodeButton();
 		BeanMap beanMap = BeanMap.create(codeButton);
 		beanMap.putAll(conditionMap);
 		IPage<CodeButton> doList = codeButtonMapper.selectPage(Condition.getPage(query),Condition.getQueryWrapper(codeButton));
 		IPage<CodeButtonVO> voList = new Page<>();
 		if (!CollectionUtils.isEmpty(doList.getRecords())) {
-			voList.setRecords(codeButtonDO2VOs(doList.getRecords()));
-			PageDO2PageVO.pageDO2PageVO(doList,voList);
+			voList = CodeButtonWrapper.build().pageVO(doList);
 		}
 		return voList;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java
index 1a3647e..a0469b6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java
@@ -83,12 +83,10 @@
 		BeanMap beanMap = BeanMap.create(codeClassifyProcessTemp);
 		beanMap.putAll(conditionMap);
 		IPage<CodeClassifyProcessTemp> doList = codeClassifyProcessTempMapper.selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeClassifyProcessTemp));
-		IPage<CodeClassifyProcessTempVO> voList = new Page<CodeClassifyProcessTempVO>();
+		IPage<CodeClassifyProcessTempVO> voList = new Page<>();
 		//DataGrid<CodeClassifyProcessTempVO> dataGrid=new DataGrid<>();
 		if (!CollectionUtils.isEmpty(doList.getRecords())) {
-			voList.setRecords(CodeClassifyProcessTempWrapper.build().listVO(doList.getRecords()));
-			//鍒嗛〉鍙傛暟杞埌pageVO瀵硅薄
-			voList = PageDO2PageVO.pageDO2PageVO(doList,voList);
+			voList = CodeClassifyProcessTempWrapper.build().pageVO(doList);
 		}
 		return voList;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
index 157a9c3..61722bd 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -65,13 +65,12 @@
 			query.setSize(pageHelper.getLimit());
 		}
 		//pageHelper.addDefaultAsc("ordernum");
-		query.setAscs("ordernum");
+		query.setAscs("ORDERNUM");
 		//杩欏効鏄釜杩炶〃鏌ヨ
 		IPage<CodeClassifyTemplateAttr> doList = codeClassifyTemplateAttrMapper.selectPage(Condition.getPage(query), mpjLambdaWrapper);
 		IPage<CodeClassifyTemplateAttrVO> voList = new Page<>();
 		if (!CollectionUtils.isEmpty(doList.getRecords())) {
-			voList.setRecords(CodeClstempattrWrapper.build().listVO(doList.getRecords()));
-			PageDO2PageVO.pageDO2PageVO(doList,voList);
+			voList = CodeClstempattrWrapper.build().pageVO(doList);
 		}
 		return voList;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
index d3f6040..08bbbf8 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -4,9 +4,11 @@
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
+import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
-import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
+import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.service.ICodeClassifyValueService;
@@ -16,9 +18,11 @@
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.pagemodel.Tree;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -30,7 +34,8 @@
 import java.util.stream.Collectors;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.LC_STATUS;
-import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_CASCADE_LINKED_NOT_DELETE;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
 
 @Service
 public class CodeClassifyValueServiceImpl  extends ServiceImpl<CodeClassifyValueMapper, CodeClassifyValue> implements ICodeClassifyValueService {
@@ -48,7 +53,7 @@
 	/**
 	 * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
 	 */
-	private static  final String PARENT_FIELD_NAME = "parentClassifyValueOid";
+	private static final String PARENT_FIELD_NAME = "parentClassifyValueOid";
 
 	/**
 	 * 鏌ヨ鍒嗙被鐮佹鐨勭爜鍊� 鏍�
@@ -59,7 +64,7 @@
 	@Override
 	public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException {
 		// List<CodeClassifyValueDO> doList =selectCodeClassifyValueDOByTree(treeQueryObject);
-		List<CodeClassifyValue> doList =selectCodeClassifyValueDO4Tree(treeQueryObject);
+		List<CodeClassifyValue> doList = selectCodeClassifyValueDO4Tree(treeQueryObject);
 		List<CodeClassifyValueVO> voList = CodeClassifyValueWrapper.build().listVO(doList);
 		TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
 		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -77,12 +82,13 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		//娣诲姞瀵圭爜鍊煎瓙鐖剁骇鐨勫垽鏂�
-		if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentclassifyvalueoid())){
-			String parentclassifyvalueoid = codeClassifyValueDTO.getParentclassifyvalueoid();
-			String codeclassifysecoid = codeClassifyValueDTO.getCodeclassifysecoid();
+		if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentClassifyValueOid())){
+			String parentclassifyvalueoid = codeClassifyValueDTO.getParentClassifyValueOid();
+			String codeclassifysecoid = codeClassifyValueDTO.getCodeClassifySecOid();
 			CodeClassifyValue parentDO = codeClassifyValueMapper.selectById(parentclassifyvalueoid);
 			if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
 				throw new VciBaseException("涓嶅厑璁稿湪鐖剁爜鍊间腑鐩存帴娣诲姞瀛愮爜鍊�");
@@ -91,6 +97,8 @@
 		//灏咲TO杞崲涓篋O
 		CodeClassifyValue codeClassifyValueDO = new CodeClassifyValue();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyValueDO,MdmBtmTypeConstant.CODE_CLASSIFY_VALUE);
 		//鏌ヨ
 		List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
 			.lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid())
@@ -108,11 +116,14 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean editSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁瀵硅薄",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊间富閿�");
 		//灏咲TO杞崲涓篋O
 		CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
 		revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeClassifyValueDO);
 		boolean resBoolean = codeClassifyValueMapper.updateById(codeClassifyValueDO) > 0;
 		return resBoolean;
 	}
@@ -137,9 +148,7 @@
 	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
 	 */
 	private R checkIsCanDeleteForDO(CodeClassifyValueDTO codeClassifyValueDTO, CodeClassifyValue codeClassifyValueDO) {
-		if (!checkTs(codeClassifyValueDTO,codeClassifyValueDO)) {
-			return R.fail(TS_NOT_PROCESS);
-		}
+		//boService.checkTs(codeClassifyValueDTO);
 		//鏍¢獙涓嬬骇鏄惁鏈夊紩鐢�
 		if(checkChildIsLinked(codeClassifyValueDO.getOid())){
 			return R.fail(DATA_CASCADE_LINKED_NOT_DELETE);
@@ -204,7 +213,7 @@
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鍒嗙被鐮佹鐨勭爜鍊兼暟鎹璞�",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊肩殑涓婚敭");
 		CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
 		R baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
-		if(baseResult.isSuccess()) {
+		if(!baseResult.isSuccess()) {
 			//鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊橰
 			List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
 			if (!CollectionUtils.isEmpty(childrenOids)) {
@@ -281,12 +290,12 @@
 
 		List<CodeClassifyValue> updateList = new ArrayList<>();
 		dtoList.forEach(dto -> {
-			if( StringUtils.isNotBlank( dto.getOid() )){
+			if(StringUtils.isNotBlank(dto.getOid())){
 				List<CodeClassifyValue> collect = valueDOList.stream().filter(value -> {
 					return dto.getOid().equals(value.getOid());
 				}).collect(Collectors.toList());
 				collect.forEach(ccv -> {
-					ccv.setOrderNum(dto.getOrdernum());
+					ccv.setOrderNum(dto.getOrderNum());
 					ccv.setId(dto.getId());
 					ccv.setName(dto.getName());
 					updateList.add(ccv);
@@ -336,22 +345,8 @@
 		List<String> oids = codeBasicSecService.getOidByCodeclassifysecOid(conditionMap.get("codeclassifysecoid"));
 		LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
 			.lambda().in(CodeClassifyValue::getCodeClassifySecOid,oids)
-			.orderByDesc(CodeClassifyValue::getOrderNum);
+			.orderByAsc(CodeClassifyValue::getOrderNum);
 		return codeClassifyValueMapper.selectList(wrapper);
-	}
-
-	/**
-	 * 妫�鏌s
-	 * @param tempDO
-	 * @return
-	 */
-	private boolean checkTs(CodeClassifyValueDTO tempDO,CodeClassifyValue codeClassifyValueDO){
-		Date dbTs = codeClassifyValueDO.getTs();
-		Date currentTs = tempDO.getTs();
-		if(currentTs == null ?  dbTs == null:currentTs.compareTo(dbTs)==0){
-			return true;
-		}
-		return false;
 	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
index e9e329e..0edf541 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
@@ -1,13 +1,11 @@
 package com.vci.ubcs.code.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeFixedValueDTO;
-import com.vci.ubcs.code.entity.CodeClassifyProcessTemp;
 import com.vci.ubcs.code.entity.CodeFixedValue;
 import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
 import com.vci.ubcs.code.service.ICodeFixedValueService;
@@ -15,6 +13,7 @@
 import com.vci.ubcs.code.wrapper.CodeFixedValueWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.slf4j.Logger;
@@ -33,7 +32,8 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_LINKED_NOT_DELETE;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
 
 /**
  * 鍥哄畾鐮佹鐨勭爜鍊兼湇鍔�
@@ -85,15 +85,7 @@
 		CodeFixedValue codeFixedValueDO = new CodeFixedValue();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDTO,codeFixedValueDO);
 		//濉厖涓�浜涢粯璁ゅ��
-		codeFixedValueDO.setOid(VciBaseUtil.getPk());
-		codeFixedValueDO.setRevisionOid(VciBaseUtil.getPk());
-		codeFixedValueDO.setNameOid(VciBaseUtil.getPk());
-		codeFixedValueDO.setBtmname(MdmBtmTypeConstant.CODE_FIXED_VALUE);
-		codeFixedValueDO.setCreateTime(new Date());
-		codeFixedValueDO.setCreator(AuthUtil.getUserId().toString());
-		codeFixedValueDO.setLastModifier(AuthUtil.getUserId().toString());
-		codeFixedValueDO.setLastModifyTime(new Date());
-		codeFixedValueDO.setTs(new Date());
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeFixedValueDO,MdmBtmTypeConstant.CODE_FIXED_VALUE);
 		Long count = this.codeFixedValueMapper.selectCount(Wrappers.<CodeFixedValue>query()
 			.lambda().eq(CodeFixedValue::getCodeFixedSecOid, codeFixedValueDO.getCodeFixedSecOid())
 		)+1L;
@@ -116,9 +108,7 @@
 		CodeFixedValue codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid());
 		revisionModelUtil.copyFromDTOIgnore(codeFixedValueDTO,codeFixedValueDO);
 		//濉厖涓�浜涢粯璁ゅ��
-		codeFixedValueDO.setLastModifier(AuthUtil.getUserId().toString());
-		codeFixedValueDO.setLastModifyTime(new Date());
-		codeFixedValueDO.setTs(new Date());
+		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeFixedValueDO);
 		boolean resBoolean = codeFixedValueMapper.updateById(codeFixedValueDO) > 0;
 		return resBoolean;
 	}
@@ -130,28 +120,12 @@
 	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
 	 */
 	private R checkIsCanDeleteForDO(CodeFixedValueDTO codeFixedValueDTO, CodeFixedValue codeFixedValueDO) {
-		if(!checkTs(codeFixedValueDTO,codeFixedValueDO)) {
-			return R.fail(TS_NOT_PROCESS);
-		}
+		//boService.checkTs(codeFixedValueDTO);
 		if(!checkIsLinked(codeFixedValueDO.getOid())) {
 			return R.status(true);
 		}else{
 			return R.fail(DATA_LINKED_NOT_DELETE);
 		}
-	}
-
-	/**
-	 * 妫�鏌s
-	 * @param tempDO
-	 * @return
-	 */
-	private boolean checkTs(CodeFixedValueDTO tempDO,CodeFixedValue codeFixedValueDO){
-		Date dbTs = codeFixedValueDO.getTs();
-		Date currentTs = tempDO.getTs();
-		if(currentTs == null ?  dbTs == null:currentTs.compareTo(dbTs)==0){
-			return true;
-		}
-		return false;
 	}
 
 	/**
@@ -340,6 +314,5 @@
 		boolean resBoolean = codeFixedValueMapper.deleteBatchIds(doList.stream().map(CodeFixedValue::getOid).collect(Collectors.toList())) > 0;
 		return resBoolean;
 	}
-
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
index 31d235c..a990d5f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
 import com.vci.ubcs.code.dto.CodeRuleDTO;
 import com.vci.ubcs.code.entity.*;
@@ -38,6 +39,7 @@
 import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.pagemodel.KeyValue;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -118,26 +120,9 @@
 		//灏咲TO杞崲涓篋O
 		CodeRule codeRule = Objects.requireNonNull(BeanUtil.copy(codeRuleDTO, CodeRule.class));
 		String userId = AuthUtil.getUserId().toString();
-		codeRule.setOid(VciBaseUtil.getPk());
-
-		codeRule.setRevisionOid(VciBaseUtil.getPk());
-		codeRule.setNameOid(VciBaseUtil.getPk());
-		codeRule.setBtmname("coderule");
-		codeRule.setLastR("1");
-		codeRule.setLastV("1");
-		codeRule.setFirstR("1");
-		codeRule.setFirstV("1");
-		codeRule.setCreator(userId);
-		codeRule.setCreateTime(new Date());
-		codeRule.setLastModifier("1");
-		codeRule.setLastModifyTime(new Date());
-		codeRule.setVersionRule("0");
-		codeRule.setVersionSeq(1);
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeRule, MdmBtmTypeConstant.CODE_RULE);
 		codeRule.setLctid(CODE_RULE_LC);
 		codeRule.setLcStatus(FRAMEWORK_RELEASE_EDITING);
-		codeRule.setOwner("1");
-		codeRule.setCreator(userId);
-		codeRule.setLastModifier(userId);
 		return codeRuleMapper.insert(codeRule)>0;
 	}
 
@@ -171,6 +156,7 @@
 		//灏咲TO杞崲涓篋O
 		CodeRule codeRule = selectByOid(codeRuleDTO.getOid());
 		revisionModelUtil.copyFromDTOIgnore(codeRuleDTO, codeRule);
+		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeRule);
 		return codeRuleMapper.updateById(codeRule)>0;
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java
index 034e69e..afe45ba 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java
@@ -114,8 +114,7 @@
 		IPage<CodeClassifyTemplateButton> doList = codeClassifyTemplateButtonMapper.selectPage(Condition.getPage(query),getMPJLambdaWrapper(conditionMap));
 		IPage<CodeClassifyTemplateButtonVO> voList = new Page<>();
 		if (!CollectionUtils.isEmpty(doList.getRecords())) {
-			voList.setRecords(codeClassifyTemplateButtonDO2VOs(doList.getRecords()));
-			voList = PageDO2PageVO.pageDO2PageVO(doList,voList);
+			voList = CodeTempbuttonWrapper.build().pageVO(doList);
 		}
 		return voList;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java
index e453456..c5cd59e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java
@@ -107,16 +107,14 @@
 			query.setSize(pageHelper.getLimit());
 			query.setCurrent(pageHelper.getPage());
 		}
-		query.setDescs("createTime");
+		query.setDescs("CREATETIME");
 		CodeTemplatePhase codeTemplatePhase = new CodeTemplatePhase();
 		BeanMap beanMap = BeanMap.create(codeTemplatePhase);
 		beanMap.putAll(conditionMap);
 		IPage<CodeTemplatePhase> doList = codeTemplatePhaseMapper.selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeTemplatePhase));
 		IPage<CodeTemplatePhaseVO> voList = new Page<>();
 		if (!CollectionUtils.isEmpty(doList.getRecords())) {
-			voList.setRecords(CodeTemplatePhaseWapper.build().listVO(doList.getRecords()));
-			//鍒嗛〉鍙傛暟杞埌pageVO瀵硅薄
-			voList = PageDO2PageVO.pageDO2PageVO(doList,voList);
+			CodeTemplatePhaseWapper.build().pageVO(doList);
 		}
 		return voList;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
index 6955fe4..e375966 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
@@ -148,7 +148,6 @@
                 and PL_CODE_BASICSEC.TS = #{codeBasicSec.ts}
             </if>
             <if test="codeBasicSec.id != null and codeBasicSec.id != ''">
-
                 and PL_CODE_BASICSEC.ID like CONCAT(CONCAT('%', #{codeBasicSec.id}), '%')
             </if>
             <if test="codeBasicSec.name != null and codeBasicSec.name != ''">

--
Gitblit v1.9.3