From 73dbe864eb18a1a4df4f41caed1dd128faf1b2ec Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 02 六月 2023 19:11:27 +0800
Subject: [PATCH] 引用码段关于业务类型接口的联调,重复使用的界面抽离成单独组件

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java                          |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java |   42 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java                       |    1 
 Source/UBCS-WEB/src/const/code/referBtmDialog.js                                                                         |    6 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java                                |    6 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java              |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java    |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java           |    2 
 Source/UBCS-WEB/src/api/code/referBtmType.js                                                                             |   24 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeReferBtmTypeService.java                 |   38 
 Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue                                                          |  180 ++
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java                     |    3 
 Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue                                                | 1248 ++++++++++----------
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java                      |    8 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java                |    6 
 Source/UBCS-WEB/src/views/code/code.vue                                                                                  |  717 +++++-----
 Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue                                               |  162 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java         |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferBtmTypeServiceImpl.java         |  116 +
 Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue                                                |  606 +--------
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java          |    2 
 Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js                                                                 |   11 
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                                      |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java             |   86 
 Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue                                             |  186 +++
 /dev/null                                                                                                                |   38 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java                |   57 
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java                       |    5 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferBtmTypeController.java            |   61 
 Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue                                                        |   17 
 Source/UBCS-WEB/src/main.js                                                                                              |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java                     |   10 
 Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js                                                               |    1 
 33 files changed, 2,000 insertions(+), 1,666 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/code/referBtmType.js b/Source/UBCS-WEB/src/api/code/referBtmType.js
new file mode 100644
index 0000000..50b2ad8
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/code/referBtmType.js
@@ -0,0 +1,24 @@
+import request from '@/router/axios';
+
+export const referDataGrid = (page, limit, params) => {
+  return request({
+    url: '/api/ubcs-code/referBtmTypeController/referDataGrid',
+    method: 'get',
+    params: {
+      ...params,
+      page,
+      limit,
+    }
+  })
+}
+export const gridAttributesByBtmId = (page, limit, params) => {
+  return request({
+    url: '/api/ubcs-code/referBtmTypeController/gridAttributesByBtmId',
+    method: 'get',
+    params: {
+      ...params,
+      page,
+      limit,
+    }
+  })
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/advanced-query/advanced-query.vue b/Source/UBCS-WEB/src/components/advanced-query/advanced-query.vue
deleted file mode 100644
index 17bcab3..0000000
--- a/Source/UBCS-WEB/src/components/advanced-query/advanced-query.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-<template>
-  
-</template>
-
-<script>
-export default {
-
-}
-</script>
-
-<style>
-
-</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue b/Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue
new file mode 100644
index 0000000..517c823
--- /dev/null
+++ b/Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue
@@ -0,0 +1,180 @@
+<template>
+    <el-dialog 
+        title="楂樼骇鏌ヨ"
+        append-to-body
+        width="55vw"
+        style="height: 115vh; overflow: hidden"
+        :visible.sync="isShowDialog"
+        @close="recoverPage"
+        destroy-on-close>
+        <div class="search-total">
+            <el-row>
+                <div class="grid-content"> 
+                    <el-button 
+                        type="primary"  
+                        size="small"
+                        icon="el-icon-search"
+                        @click="searchSubmit">
+                        鏌ヨ
+                    </el-button>
+                    <el-button 
+                        type="warning"
+                        size="small"
+                        icon="el-icon-refresh"
+                        @click="resetInput">
+                        閲嶇疆
+                    </el-button>
+                </div>
+            </el-row>
+            <el-row  
+                v-for="(item,index) in initOptions.column"
+                :key="item.value" 
+                class="search-content"
+                :span="24">
+                <el-col :span="4">
+                    <div class="grid-content">
+                        <el-select placeholder="璇烽�夋嫨">
+                            <el-option
+                                v-for="feildName in item.searchfeildName"
+                                :key="feildName.value"
+                                :label="feildName.label"
+                                :value="feildName.value">
+                                </el-option>
+                        </el-select>
+                    </div>
+                </el-col>
+                <el-col :span="4">
+                    <div class="grid-content">
+                        <el-select placeholder="璇烽�夋嫨">
+                            <el-option
+                            v-for="condition in item.searchCondition"
+                            :key="condition.value"
+                            :label="condition.label"
+                            :value="condition.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </el-col>
+                <el-col :span="13">
+                    <div class="grid-content">
+                        <div class="el-input">
+                            <input type="text" placeholder="璇疯緭鍏�" autocomplete="off" class="el-input__inner" :value="value">
+                        </div>
+                    </div>
+                </el-col>
+                <el-col :span="2">
+                    <div class="grid-content">
+                        <i class="el-icon-close" @click="removeInput(index)"></i>
+                    </div>
+                </el-col>
+            </el-row>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    name: "advancedQuery",
+    props: {
+        // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒�
+        visible: {
+            type: "Boolean",
+            default: false,
+        },
+        // 椤甸潰鏄剧ず閰嶇疆
+        options: {
+            type: "Object",
+            default: {},
+        },
+        // 椤甸潰鏁版嵁娓叉煋閰嶇疆
+        searchForm: {
+            type: "Object",
+            default: {},
+        },
+        value:{
+            type: "String",
+        }
+    },
+    data() {
+        return {
+            // 瀵硅瘽妗嗘樉绀烘帶鍒�
+            isShowDialog: this.visible,
+            initOptions: {},
+            searchForm: {},
+        }
+    },
+    watch: {
+        // 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
+        visible (){
+            this.isShowDialog = this.visible;
+        }
+    },
+    created () {
+        // 灏唎ptions閰嶇疆璧嬪�煎埌data涓殑option涓紝閬垮厤娣辨祬鎷疯礉鐨勯棶棰樻墍浠ラ渶瑕佽浆json涔嬪悗鍐嶈祴鍊�
+        const data = JSON.stringify(this.options);
+        this.initOptions = JSON.parse(data);
+        console.log(this.searchForm);
+    },
+    methods: {
+        // 绉婚櫎鎼滅储妗�
+        removeInput(index){
+            //console.log(this.options.column);
+            this.$delete(this.initOptions.column,index);
+        },
+        // 閲嶇疆褰撳墠鐣岄潰鐨勮緭鍏ユ
+        resetInput(){
+            const data = JSON.stringify(this.options);
+            this.initOptions = JSON.parse(data);
+        },
+        // 鎭㈠椤甸潰
+        recoverPage(){
+            this.resetInput();
+            this.$emit('update:visible', false);
+        },
+        // 鎻愪氦褰撳墠椤甸潰鐨勮緭鍏�
+        searchSubmit(){
+            console.log(11);
+        },
+    }
+}
+</script>
+
+<style lang="scss">
+
+    .search-total {
+        border-radius: 4px;
+        min-height: 36px;
+        // margin-left: 35px;
+        margin-top: -20px;
+    }
+    .search-total > .el-row{
+        margin-bottom: 10px;
+        &:last-child {
+            margin-bottom: 0;
+        }
+    }
+    .search-total > .el-col {
+        border-radius: 4px;
+    }
+    .search-total > .el-col > .grid-content {
+        border-radius: 4px;
+        min-height: 36px;
+    }
+    .search-content > .el-col {
+        margin-right: 6px;
+        &:last-child {
+            margin-right: 0;
+        }
+    }
+    .grid-content > .el-icon-close {
+        font-size: 35px;
+        cursor: pointer;
+        color: rgb(222, 130, 105);
+    }
+    .grid-content > .el-icon-close:hover{
+        font-size: 38px;
+        color: rgb(219, 52, 6);
+    }
+
+
+</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue b/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
index 6488379..dc5648d 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
@@ -343,6 +343,11 @@
 export default {
   name: "formulaEditor",
   props: {
+     // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒�
+    visible: {
+        type: "Boolean",
+        default: false,
+    },
     //鏈満鏅彉閲�
     thisSceneTableData: {
       type: Array,
@@ -354,7 +359,7 @@
   },
   data() {
     return {
-      isShowformulaEdit: false, //鍏紡缂栬緫妗嗗璇濇鏄剧ず鎺у埗
+      isShowformulaEdit: this.visible, //鍏紡缂栬緫妗嗗璇濇鏄剧ず鎺у埗
       formulaContent: '', //鍏紡缂栬緫妗嗗唴瀹�,鏂逛究鍊肩殑鍥炰紶
       activeName: 'first', //褰撳墠娲诲姩鐨則ab
       activeNameAttr: 'first', //鍙橀噺涓殑褰撳墠娲诲姩tab
@@ -639,6 +644,12 @@
       ],
     };
   },
+  watch: {
+      // 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
+      visible (){
+          this.isShowformulaEdit = this.visible;
+      }
+  },
   methods: {
 
     //鍙屽嚮娣诲姞鍏紡鍐呭
@@ -653,6 +664,7 @@
     //鍏抽棴鏃舵竻绌轰笂娆″叕寮忓唴瀹�
     closeFormulaEdit(){
       this.resetFormulaContent();
+      this.$emit('update:visible',false);
     },
     //缂栬緫瀹屾垚鍏紡鍐呭鍥炴樉骞跺叧闂璇濇
     saveFormulaContent(){
@@ -662,7 +674,8 @@
           return;
       }
       //鍏紡鍐呭鍥炴樉
-      this.$emit('updateFormulaContent', this.formulaContent) // 瑙﹀彂update:data灏嗗瓙缁勪欢鍊间紶閫掔粰鐖剁粍浠�
+      // 瑙﹀彂update:data灏嗗瓙缁勪欢鍊间紶閫掔粰鐖剁粍浠�
+      this.$emit('updateFormulaContent', this.formulaContent) 
       this.isShowformulaEdit = false;  
     },
 
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue
new file mode 100644
index 0000000..10f966c
--- /dev/null
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue
@@ -0,0 +1,162 @@
+<template>
+    <el-dialog 
+        title="涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
+        append-to-body
+        :visible.sync="referBtmDialogParams.isShowDialog"
+        @close="recoverPage"
+        width="65%"
+        style="height: 150vh; margin-top: -13vh;">
+        <avue-crud
+            :page.sync="referBtmDialogParams.referBtmDataPage"
+            :ref="referBtmDialogParams.ref"
+            :option="referBtmDialogParams.referBtmOption" 
+            :table-loading="referBtmDialogParams.referBtmDialogLoading"
+            :data="referBtmDialogParams.referBtmData"
+            @refresh-change="referBtmDataChange"
+            @search-change="referBtmSearchChange"
+            @search-reset="referBtmSearchReset"
+            @selection-change="referBtmSelectionChange"
+            @current-change="referBtmCurrentChange"
+            @size-change="referBtmSizeChange"
+            @on-load="referBtmOnLoad"
+            @row-click="referBtmRowClick">
+        </avue-crud>
+        <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="saveSelectedReferBtm">淇� 瀛�</el-button>
+            <el-button @click="referBtmDialogParams.isShowDialog = false">鍙� 娑�</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+import referBtmOption from "@/const/code/referBtmDialog";
+import {referDataGrid} from "@/api/code/referBtmType";
+export default {
+    name: "referBtmTypeCrudDialog",
+    props: {
+        // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒�
+        visible: {
+            type: "Boolean",
+            default: false,
+        },
+    },
+    watch: {
+        // 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
+        visible (){
+            this.referBtmDialogParams.isShowDialog = this.visible;
+        }
+    },
+    data() {
+        return{
+            /** 鍙傜収寮曠敤鐨勪笟鍔$被鍨嬪璇濇鐩稿叧鏁版嵁 */
+            referBtmDialogParams: {
+                ref: 'crudReferBtm',
+                isShowDialog: this.visible,   //瀵硅瘽妗嗘樉绀烘帶鍒�
+                referBtmDialogLoading: true,   //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+                referBtmDataPage: {
+                    pageSize: 10,
+                    currentPage: 1,
+                    total: 0
+                },
+                referBtmOption: referBtmOption, //琛ㄦ牸閰嶇疆
+                referBtmData: [], //琛ㄦ牸鏁版嵁
+                referBtmQuery: {}, //鏌ヨ鏉′欢
+                referBtmSelectionList: [], //褰撳墠閫変腑琛�
+            },
+        }
+    },
+    methods: {
+
+        // 鎭㈠椤甸潰
+        recoverPage(){
+            this.referBtmSelectionClear();
+            this.$emit('update:visible', false);
+        },
+        /** 涓哄弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷閫夊彇鍊硷紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉�  */
+        // 琛ㄦ牸鏁版嵁鍒锋柊鎸夐挳
+        referBtmDataChange() {
+            this.referBtmOnLoad(this.referBtmDialogParams.referBtmDataPage, this.referBtmDialogParams.referBtmQuery);
+        },
+        saveSelectedReferBtm() {
+            if(this.referBtmDialogParams.referBtmSelectionList.length != 1){
+                this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�!");
+                return false;
+            }
+            // 璋冪敤鐖剁粍浠剁殑鏂规硶骞朵紶閫掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+            this.$emit('echoReferBtmType', this.referBtmDialogParams.referBtmSelectionList[0]) 
+            //娓呯┖褰撳墠閫変腑鐨勮
+            this.referBtmSelectionClear();
+            this.referBtmDialogParams.isShowDialog = false;
+        },
+        referBtmSearchReset() {
+            this.referBtmDialogParams.referBtmQuery = {};
+            this.referBtmOnLoad();
+        },
+        referBtmSearchChange(params, done) {
+            this.referBtmDialogParams.referBtmQuery = params;
+            this.referBtmDialogParams.referBtmDataPage.currentPage = 1;
+            this.referBtmOnLoad();
+            done();
+        },
+         // 鍗曞嚮閫変腑琛ㄦ牸琛屾椂瑙﹀彂
+        referBtmRowClick(row){
+            this.$refs[this.referBtmDialogParams.ref].toggleSelection();
+            this.referBtmDialogParams.referBtmSelectionList = row;
+            this.$refs[this.referBtmDialogParams.ref].setCurrentRow(row);
+            this.$refs[this.referBtmDialogParams.ref].toggleRowSelection(row); //閫変腑褰撳墠琛�
+        },
+        referBtmSelectionChange(list) {
+            this.referBtmDialogParams.referBtmSelectionList = list;
+            this.$refs[this.referBtmDialogParams.ref].setCurrentRow(this.referBtmDialogParams.referBtmSelectionList[list.length-1]);
+        },
+        referBtmSelectionClear() {
+            this.referBtmDialogParams.referBtmSelectionList = [];
+            this.$nextTick(() => {
+                this.$refs[this.referBtmDialogParams.ref].toggleSelection();
+            });
+        },
+        referBtmCurrentChange(currentPage){
+            this.referBtmDialogParams.referBtmDataPage.currentPage = currentPage;
+        },
+        referBtmSizeChange(pageSize){
+            this.referBtmDialogParams.referBtmDataPage.pageSize = pageSize;
+        },
+        refreshReferBtmDataChange() {
+             this.referBtmOnLoad(this.referBtmDialogParams.referBtmDataPage, this.referBtmDialogParams.referBtmQuery);
+        },
+        //鍔犺浇涓弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷鐨勬暟鎹�
+        referBtmOnLoad() {
+            let referBtmParams = this.referBtmDialogParams;
+            this.referBtmDialogParams.referBtmDialogLoading = true;
+            let param = {};
+            // 澶氫釜conditionMap杩欐牱浼犲弬
+            if(referBtmParams.referBtmQuery){
+                Object.keys(referBtmParams.referBtmQuery).forEach(key=>{
+                    param['conditionMap['+key+']'] = referBtmParams.referBtmQuery[key];
+                });
+            }
+            referDataGrid(
+                referBtmParams.referBtmDataPage.currentPage, 
+                referBtmParams.referBtmDataPage.pageSize,
+                param
+            ).then(res => {
+                //console.log(res.data);
+                const data = res.data.data;
+                this.referBtmDialogParams.referBtmDataPage.total = data.total;
+                this.referBtmDialogParams.referBtmData = data.records;
+                this.referBtmDialogParams.referBtmDialogLoading = false;
+                //this.referBtmSelectionClear();
+                //琛ㄦ牸琛岄敊浣嶉棶棰�
+                this.$nextTick(() => {
+                    this.$refs[this.referBtmDialogParams.ref].doLayout();
+                })
+            });
+        },
+
+    },
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
index a992916..e755f1a 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
@@ -78,645 +78,645 @@
 import { getReferConfigPage } from "@/api/code/codeReferConfig";
 export default {
     name: "referConfigDialog",
-        props: {
-        },
-        data() {
-            return{
-                isShowReferConfigCrud:false,
-                referConfigCrudOption: {
-                    border: true,
-                    height: '45vh',
-                    tip: false,
-                    searchShow: true,
-                    searchMenuSpan: 6,
-                    index: true,
-                    selection: false,
-                    menu: false,
-                    addBtn: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    column: [
-                        {
-                            label: '-',
-                            prop: 'radio',
-                            width: 60,
-                            hide: false
-                        },{
-                            label: '鍙傜収閰嶇疆缂栧彿',
-                            width: 120,
-                            search: true,
-                            searchSpan: 9,
-                            searchLabelWidth: 100,
-                            prop: 'id'
-                        },{
-                            label: '鍙傜収閰嶇疆鍚嶇О',
-                            search: true,
-                            searchSpan: 9,
-                            searchLabelWidth: 100,
-                            prop: 'name'
-                        },{
-                            label: '鍙傜収鐨勪笟鍔$被鍨�',
-                            search: false,
-                            prop: 'referTypeName'
-                        },{
-                            label: '鏄剧ず鐨勫睘鎬�',
-                            search: false,
-                            prop: 'textField' 
-                        },{
-                            label: '瀛樺偍鍊肩殑灞炴��',
-                            search: false,
-                            prop: 'valueField' 
-                        },{
-                            label: '鍙傜収绐楀彛绫诲瀷',
-                            search: false,
-                            prop: 'typeText',
-                        }
-                    ],
-                },
-                referConfigParams: {
-                    ref: "referConfigCrud",
-                    referConfigLoading: false,
-                    referConfigData: [],
-                    referConfigPage: {
-                        pageSize: 10,
-                        currentPage: 1,
-                        total: 0
-                    },
-                    referConfigQuery: {},
-                    referConfigSelectedRowData: '',
-                    // 褰撳墠閫変腑琛�
-                    referConfigSelectedRow: '',
-                },
-                formOption: {
-                    submitBtn: false,
-                    emptyBtn: false,
-                    labelWidth: '150', //榛樿鏍囩瀹藉害
-                    // 榛樿閰嶇疆灏变负鏍戝舰绫诲瀷锛屾敼浜嗕細鍑虹幇闂
-                    column: [
-                        {
-                            label: '鏍戝舰鐨勪笂绾у睘鎬�',
-                            prop: 'parentFieldName',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                        },{
-                            label: '涓婄骇灞炴�у�煎搴斿睘鎬�',
-                            prop: 'parentUsedField',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                        },{
-                            label: '鏍硅妭鐐圭殑鍊�',
-                            prop: 'parentValue',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                        },{
-                            label: '鏍戝姞杞芥柟寮�',
-                            prop: 'loadType',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                            dicData: [{
-                                label: '鍏ㄩ儴', value: 'all'
-                            }, {
-                                label: '閫愮骇鍔犺浇', value: 'node'
-                            }],
-                        },{
-                            label: '鏄惁鍙兘閫夋嫨鍙跺瓙鑺傜偣',
-                            prop: 'onlyLeaf',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                        },{
-                            label: '鎺掑簭瀛楁',
-                            prop: 'sortField',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                        },{
-                            label: '鎺掑簭绫诲瀷',
-                            prop: 'sortType',
-                            span: 24,
-                            disabled: true,
-                            row: true,
-                            placeholder: ' ',
-                            dicData: [{
-                                label: '鍗囧簭', value: 'asc'
-                            }, {
-                                label: '闄嶅簭', value: 'desc'
-                            }],
-                        },
-                    ],
-                },
-                referConfigForm:{},
-                // 鎺掑簭绫诲瀷鐨勮〃鍗曢厤缃�
-                sortColumn:[{            
-                    label: '姣忛〉鏄剧ず鏉℃暟',
-                    prop: 'limit',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '鎺掑簭瀛楁',
-                    prop: 'sortField',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '鎺掑簭绫诲瀷',
-                    prop: 'sortType',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                    dicData: [{
-                        label: '鍗囧簭', value: 'asc'
-                    }, {
-                        label: '闄嶅簭', value: 'desc'
-                    }],
-                }],
-                // 鏍戝舰绫诲瀷鐨勮〃鍗曢厤缃�
-                treeColumn:[{
-                    label: '鏍戝舰鐨勪笂绾у睘鎬�',
-                    prop: 'parentFieldName',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '涓婄骇灞炴�у�煎搴斿睘鎬�',
-                    prop: 'parentUsedField',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '鏍硅妭鐐圭殑鍊�',
-                    prop: 'parentValue',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },
-                {
-                    label: '鏍戝姞杞芥柟寮�',
-                    prop: 'loadType',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                    dicData: [{
-                        label: '鍏ㄩ儴', value: 'all'
-                    }, {
-                        label: '閫愮骇鍔犺浇', value: 'node'
-                    }],
-                },{
-                    label: '鏄惁鍙兘閫夋嫨鍙跺瓙鑺傜偣',
-                    prop: 'onlyLeaf',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '鎺掑簭瀛楁',
-                    prop: 'sortField',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                },{
-                    label: '鎺掑簭绫诲瀷',
-                    prop: 'sortType',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
-                    dicData: [{
-                        label: '鍗囧簭', value: 'asc'
-                    }, {
-                        label: '闄嶅簭', value: 'desc'
-                    }],
-                },
+    props: {
+    },
+    data() {
+        return{
+            isShowReferConfigCrud:false,
+            referConfigCrudOption: {
+                border: true,
+                height: '45vh',
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                index: true,
+                selection: false,
+                menu: false,
+                addBtn: false,
+                refreshBtn: false,
+                searchShowBtn: false,
+                columnBtn: false,
+                dialogClickModal: false,
+                highlightCurrentRow: true,
+                align: 'center',
+                menuAlign: 'center',
+                column: [
+                    {
+                        label: '-',
+                        prop: 'radio',
+                        width: 60,
+                        hide: false
+                    },{
+                        label: '鍙傜収閰嶇疆缂栧彿',
+                        width: 120,
+                        search: true,
+                        searchSpan: 9,
+                        searchLabelWidth: 100,
+                        prop: 'id'
+                    },{
+                        label: '鍙傜収閰嶇疆鍚嶇О',
+                        search: true,
+                        searchSpan: 9,
+                        searchLabelWidth: 100,
+                        prop: 'name'
+                    },{
+                        label: '鍙傜収鐨勪笟鍔$被鍨�',
+                        search: false,
+                        prop: 'referTypeName'
+                    },{
+                        label: '鏄剧ず鐨勫睘鎬�',
+                        search: false,
+                        prop: 'textField' 
+                    },{
+                        label: '瀛樺偍鍊肩殑灞炴��',
+                        search: false,
+                        prop: 'valueField' 
+                    },{
+                        label: '鍙傜収绐楀彛绫诲瀷',
+                        search: false,
+                        prop: 'typeText',
+                    }
                 ],
-                // 骞冲彴绫诲瀷鐨勮〃鍗曢厤缃�
-                standColumn:[{
-                    label: '鍙傝�冪殑UI涓婁笅鏂�',
-                    prop: 'referContent',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
+            },
+            referConfigParams: {
+                ref: "referConfigCrud",
+                referConfigLoading: false,
+                referConfigData: [],
+                referConfigPage: {
+                    pageSize: 10,
+                    currentPage: 1,
+                    total: 0
                 },
-                {
-                    label: '骞冲彴鐨勮〃鏍肩紪鍙�',
-                    prop: 'displayTable',
-                    span: 24,
-                    disabled: true,
-                    row: true,
-                    placeholder: ' ',
+                referConfigQuery: {},
+                referConfigSelectedRowData: '',
+                // 褰撳墠閫変腑琛�
+                referConfigSelectedRow: '',
+            },
+            formOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                labelWidth: '150', //榛樿鏍囩瀹藉害
+                // 榛樿閰嶇疆灏变负鏍戝舰绫诲瀷锛屾敼浜嗕細鍑虹幇闂
+                column: [
+                    {
+                        label: '鏍戝舰鐨勪笂绾у睘鎬�',
+                        prop: 'parentFieldName',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                    },{
+                        label: '涓婄骇灞炴�у�煎搴斿睘鎬�',
+                        prop: 'parentUsedField',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                    },{
+                        label: '鏍硅妭鐐圭殑鍊�',
+                        prop: 'parentValue',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                    },{
+                        label: '鏍戝姞杞芥柟寮�',
+                        prop: 'loadType',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                        dicData: [{
+                            label: '鍏ㄩ儴', value: 'all'
+                        }, {
+                            label: '閫愮骇鍔犺浇', value: 'node'
+                        }],
+                    },{
+                        label: '鏄惁鍙兘閫夋嫨鍙跺瓙鑺傜偣',
+                        prop: 'onlyLeaf',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                    },{
+                        label: '鎺掑簭瀛楁',
+                        prop: 'sortField',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                    },{
+                        label: '鎺掑簭绫诲瀷',
+                        prop: 'sortType',
+                        span: 24,
+                        disabled: true,
+                        row: true,
+                        placeholder: ' ',
+                        dicData: [{
+                            label: '鍗囧簭', value: 'asc'
+                        }, {
+                            label: '闄嶅簭', value: 'desc'
+                        }],
+                    },
+                ],
+            },
+            referConfigForm:{},
+            // 鎺掑簭绫诲瀷鐨勮〃鍗曢厤缃�
+            sortColumn:[{            
+                label: '姣忛〉鏄剧ず鏉℃暟',
+                prop: 'limit',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '鎺掑簭瀛楁',
+                prop: 'sortField',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '鎺掑簭绫诲瀷',
+                prop: 'sortType',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+                dicData: [{
+                    label: '鍗囧簭', value: 'asc'
+                }, {
+                    label: '闄嶅簭', value: 'desc'
                 }],
+            }],
+            // 鏍戝舰绫诲瀷鐨勮〃鍗曢厤缃�
+            treeColumn:[{
+                label: '鏍戝舰鐨勪笂绾у睘鎬�',
+                prop: 'parentFieldName',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '涓婄骇灞炴�у�煎搴斿睘鎬�',
+                prop: 'parentUsedField',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '鏍硅妭鐐圭殑鍊�',
+                prop: 'parentValue',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },
+            {
+                label: '鏍戝姞杞芥柟寮�',
+                prop: 'loadType',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+                dicData: [{
+                    label: '鍏ㄩ儴', value: 'all'
+                }, {
+                    label: '閫愮骇鍔犺浇', value: 'node'
+                }],
+            },{
+                label: '鏄惁鍙兘閫夋嫨鍙跺瓙鑺傜偣',
+                prop: 'onlyLeaf',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '鎺掑簭瀛楁',
+                prop: 'sortField',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },{
+                label: '鎺掑簭绫诲瀷',
+                prop: 'sortType',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+                dicData: [{
+                    label: '鍗囧簭', value: 'asc'
+                }, {
+                    label: '闄嶅簭', value: 'desc'
+                }],
+            },
+            ],
+            // 骞冲彴绫诲瀷鐨勮〃鍗曢厤缃�
+            standColumn:[{
+                label: '鍙傝�冪殑UI涓婁笅鏂�',
+                prop: 'referContent',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            },
+            {
+                label: '骞冲彴鐨勮〃鏍肩紪鍙�',
+                prop: 'displayTable',
+                span: 24,
+                disabled: true,
+                row: true,
+                placeholder: ' ',
+            }],
 
-                // 鏌ヨ鏉′欢琛ㄦ牸鍖哄煙
-                srchCondOption: {
-                    border: true,
-                    height: '40vh',
-                    tip: false,
-                    searchShow: false,
-                    searchMenuSpan: 6,
-                    index: true,
-                    selection: false,
-                    menu: false,
-                    addBtn: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    column: [
-                        {
-                            label: '鏌ヨ鏉′欢',
-                            children: [
-                                {
-                                    label: '绛涢�夊瓧娈�',
-                                    prop: 'filterField',
-                                },{
-                                    label: '绛涢�夌被鍨�',
-                                    prop: 'filterType',
-                                },{
-                                    label: '绛涢�夌殑鍊�',
-                                    prop: 'filterValue',
-                                }
-                            ],
-                        }, 
-                    ],
-                },
-                srchCondParams: {
-                    ref: "srchCondCrud",
-                    srchCondLoading: false,
-                    srchCondData: [],
-                    isShow: true,
-                },
-                toggleSrchCrudWidth: {
-                    width: '40%',
-                    height: '100%',
-                },
+            // 鏌ヨ鏉′欢琛ㄦ牸鍖哄煙
+            srchCondOption: {
+                border: true,
+                height: '40vh',
+                tip: false,
+                searchShow: false,
+                searchMenuSpan: 6,
+                index: true,
+                selection: false,
+                menu: false,
+                addBtn: false,
+                refreshBtn: false,
+                searchShowBtn: false,
+                columnBtn: false,
+                dialogClickModal: false,
+                highlightCurrentRow: true,
+                align: 'center',
+                menuAlign: 'center',
+                column: [
+                    {
+                        label: '鏌ヨ鏉′欢',
+                        children: [
+                            {
+                                label: '绛涢�夊瓧娈�',
+                                prop: 'filterField',
+                            },{
+                                label: '绛涢�夌被鍨�',
+                                prop: 'filterType',
+                            },{
+                                label: '绛涢�夌殑鍊�',
+                                prop: 'filterValue',
+                            }
+                        ],
+                    }, 
+                ],
+            },
+            srchCondParams: {
+                ref: "srchCondCrud",
+                srchCondLoading: false,
+                srchCondData: [],
+                isShow: true,
+            },
+            toggleSrchCrudWidth: {
+                width: '40%',
+                height: '100%',
+            },
 
-                //鏄剧ず鐨勫睘鎬ц〃鏍奸厤缃尯鍩�
-                showAttrOption: {
-                    border: true,
-                    height: '40vh',
-                    tip: false,
-                    searchShow: false,
-                    searchMenuSpan: 6,
-                    index: true,
-                    selection: false,
-                    menu: false,
-                    addBtn: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    column: [
-                        {
-                            label: '鏄剧ず鐨勫睘鎬�',
-                            children: [
-                                {
-                                    label: '鍒楀瓧娈�',
-                                    // width: 120,
-                                    prop: 'field',
-                                     //type: 'select',
-                                    // props: {
-                                    //     label: 'name',
-                                    //     value: 'code'
-                                    // },
-                                    // dicUrl: 'https://cli.avuejs.com/api/area/getProvince'
-                                },{
-                                    label: '鍒楀悕',
-                                    prop: 'title'
-                                },{
-                                    label: '瀛楁绫诲瀷',
-                                    prop: 'fieldTypeText'
-                                },{
-                                    label: '鍒楄〃鍙帓搴�',
-                                    prop: 'sort' 
-                                },{
-                                    label: '鎺掑簭瀛楁',
-                                    prop: 'attrSortField' 
-                                },{
-                                    label: '瀛楁瀹藉害',
-                                    prop: 'width' 
-                                },{
-                                    label: '鍒楀浐瀹氫綅缃�',
-                                    prop: 'fixedPositionText' 
-                                },{
-                                    label: 'js鏄剧ず浠g爜',
-                                    prop: 'templet' 
-                                },{
-                                    label: '鏄惁蹇�熸煡璇�',
-                                    prop: 'isQuery' 
-                                }
-                            ]
-                        }, 
-                    ],
-                },
-                showAttrParams: {
-                    ref: "showAttrCrud",
-                    showAttrLoading: false,
-                    showAttrData: [],
-                    isShow: true,
-                },
+            //鏄剧ず鐨勫睘鎬ц〃鏍奸厤缃尯鍩�
+            showAttrOption: {
+                border: true,
+                height: '40vh',
+                tip: false,
+                searchShow: false,
+                searchMenuSpan: 6,
+                index: true,
+                selection: false,
+                menu: false,
+                addBtn: false,
+                refreshBtn: false,
+                searchShowBtn: false,
+                columnBtn: false,
+                dialogClickModal: false,
+                highlightCurrentRow: true,
+                align: 'center',
+                menuAlign: 'center',
+                column: [
+                    {
+                        label: '鏄剧ず鐨勫睘鎬�',
+                        children: [
+                            {
+                                label: '鍒楀瓧娈�',
+                                // width: 120,
+                                prop: 'field',
+                                    //type: 'select',
+                                // props: {
+                                //     label: 'name',
+                                //     value: 'code'
+                                // },
+                                // dicUrl: 'https://cli.avuejs.com/api/area/getProvince'
+                            },{
+                                label: '鍒楀悕',
+                                prop: 'title'
+                            },{
+                                label: '瀛楁绫诲瀷',
+                                prop: 'fieldTypeText'
+                            },{
+                                label: '鍒楄〃鍙帓搴�',
+                                prop: 'sort' 
+                            },{
+                                label: '鎺掑簭瀛楁',
+                                prop: 'attrSortField' 
+                            },{
+                                label: '瀛楁瀹藉害',
+                                prop: 'width' 
+                            },{
+                                label: '鍒楀浐瀹氫綅缃�',
+                                prop: 'fixedPositionText' 
+                            },{
+                                label: 'js鏄剧ず浠g爜',
+                                prop: 'templet' 
+                            },{
+                                label: '鏄惁蹇�熸煡璇�',
+                                prop: 'isQuery' 
+                            }
+                        ]
+                    }, 
+                ],
+            },
+            showAttrParams: {
+                ref: "showAttrCrud",
+                showAttrLoading: false,
+                showAttrData: [],
+                isShow: true,
+            },
 
-                // 鏄惁鏄剧ず鍙樺姩鐨勮〃鍗曞尯鍩�
-                isShowForm: true,
-                toggleBasicCrudWidth: {
-                    height: '100%',
-                    width: '70%',
-                },
-                
-                // 鏄惁鏄剧ず灞炴�ц〃鏍�
-                isShowAttrCrud: true,
-                
-                defaultOrGridForm: ['limit','sortField','sortType'],
-                standForm: ['referContent','displayTable'],
-                treeForm: [
-                    'parentFieldName',
+            // 鏄惁鏄剧ず鍙樺姩鐨勮〃鍗曞尯鍩�
+            isShowForm: true,
+            toggleBasicCrudWidth: {
+                height: '100%',
+                width: '70%',
+            },
+            
+            // 鏄惁鏄剧ず灞炴�ц〃鏍�
+            isShowAttrCrud: true,
+            
+            defaultOrGridForm: ['limit','sortField','sortType'],
+            standForm: ['referContent','displayTable'],
+            treeForm: [
+                'parentFieldName',
+                'parentUsedField',
+                'parentValue',
+                'loadType',
+                'onlyLeaf',
+                'sortField',
+                'sortType'
+            ],
+        }
+    },
+    methods: {
+
+        // 涓嬩竴姝ヨ杩涜鐨勬搷浣滈�夋嫨骞朵繚瀛樻垨閫夋嫨骞朵慨鏀�
+        selectedreferConfig(condition) {
+            // 褰撳墠閫変腑鐨勫弬鐓ч厤缃
+            let currentSeletedRow = this.referConfigParams.referConfigSelectedRowData;
+            if(!currentSeletedRow){
+                this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹紒");
+                return;
+            }
+            let filterForm = this.filterForm(currentSeletedRow);
+            if(condition == "selectedSave"){
+                // 鐩存帴淇濆瓨,鎵�浠ョ洿鎺ヨ皟鐢╟ode鐣岄潰鐨勭晫闈㈠洖鏄� 
+                this.$emit('echoReferConfig',filterForm);
+                // console.log(filterForm);
+            }else {
+                // 閫夋嫨骞朵慨鏀�,鎵цcode鏈嶅姟涓殑鎵撳紑鐣岄潰锛屾墍浠ヨ鍏堟瀯閫犲嚭鎵�闇�鐨勬暟鎹�
+                let submitForm = {
+                    referBtmName: filterForm.referType,
+                    referBtmId: filterForm.referTypeName,
+                    referConfig:  JSON.stringify(filterForm),
+                }
+                this.$emit('openReconfigInterFace',submitForm);
+            }
+            this.isShowReferConfigCrud = false;
+        },
+        // 杩囨护鍑哄綋鍓嶇被鍨嬫墍闇�瑕佺殑灞炴��
+        filterForm(currentRow){
+            // 闇�瑕佷繚鐣欑殑鍩虹灞炴��
+            let submittDefaultForm = [
+                'referTypeName',
+                'referType',
+                'textField',
+                'valueField',
+                'type', //鍙傜収绐楀彛绫诲瀷
+                'url',
+                'backPath',
+                'method',
+                'height',
+                'useFormKey',
+                'paramForFormKey',
+                'isMuti',
+                'mapFields', 
+                'isOpenGlobal', //鏄惁寮�鍚叏灞�
+                'isPersistence',
+                'id',
+                'name',
+            ];
+            // 闇�瑕佹牴鎹被鍨嬫坊鍔犵殑灞炴��
+            let addArray = [];
+            let newForm ={};
+            // 鏍规嵁涓嶅悓绫诲瀷杩囨护鍑轰笉鍚岀殑鐨勮〃鍗曞睘鎬�
+            if(currentRow.type == 'stand'){
+                addArray = ['referContent', 'displayTable'];
+            } else if(currentRow.type == 'default' || currentRow.type == 'grid'){
+                addArray = ['limit', 'sortField', 'sortType'];
+            } else if(currentRow.type == 'tree'){
+                addArray = [
+                    "parentFieldName", 
                     'parentUsedField',
-                    'parentValue',
+                    'parentValue', 
                     'loadType',
                     'onlyLeaf',
                     'sortField',
                     'sortType'
-                ],
-            }
-        },
-        methods: {
-
-            // 涓嬩竴姝ヨ杩涜鐨勬搷浣滈�夋嫨骞朵繚瀛樻垨閫夋嫨骞朵慨鏀�
-            selectedreferConfig(condition) {
-                // 褰撳墠閫変腑鐨勫弬鐓ч厤缃
-                let currentSeletedRow = this.referConfigParams.referConfigSelectedRowData;
-                if(!currentSeletedRow){
-                    this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹紒");
-                    return;
-                }
-                let filterForm = this.filterForm(currentSeletedRow);
-                if(condition == "selectedSave"){
-                    // 鐩存帴淇濆瓨,鎵�浠ョ洿鎺ヨ皟鐢╟ode鐣岄潰鐨勭晫闈㈠洖鏄� 
-                    this.$emit('echoReferConfig',filterForm);
-                    // console.log(filterForm);
-                }else {
-                    // 閫夋嫨骞朵慨鏀�,鎵цcode鏈嶅姟涓殑鎵撳紑鐣岄潰锛屾墍浠ヨ鍏堟瀯閫犲嚭鎵�闇�鐨勬暟鎹�
-                    let submitForm = {
-                        referBtmName: filterForm.referType,
-                        referBtmId: filterForm.referTypeName,
-                        referConfig:  JSON.stringify(filterForm),
-                    }
-                    this.$emit('openReconfigInterFace',submitForm);
-                }
-                this.isShowReferConfigCrud = false;
-            },
-            // 杩囨护鍑哄綋鍓嶇被鍨嬫墍闇�瑕佺殑灞炴��
-            filterForm(currentRow){
-                // 闇�瑕佷繚鐣欑殑鍩虹灞炴��
-                let submittDefaultForm = [
-                    'referTypeName',
-                    'referType',
-                    'textField',
-                    'valueField',
-                    'type', //鍙傜収绐楀彛绫诲瀷
-                    'url',
-                    'backPath',
-                    'method',
-                    'height',
-                    'useFormKey',
-                    'paramForFormKey',
-                    'isMuti',
-                    'mapFields', 
-                    'isOpenGlobal', //鏄惁寮�鍚叏灞�
-                    'isPersistence',
-                    'id',
-                    'name',
                 ];
-                // 闇�瑕佹牴鎹被鍨嬫坊鍔犵殑灞炴��
-                let addArray = [];
-                let newForm ={};
-                // 鏍规嵁涓嶅悓绫诲瀷杩囨护鍑轰笉鍚岀殑鐨勮〃鍗曞睘鎬�
-                if(currentRow.type == 'stand'){
-                    addArray = ['referContent', 'displayTable'];
-                } else if(currentRow.type == 'default' || currentRow.type == 'grid'){
-                    addArray = ['limit', 'sortField', 'sortType'];
-                } else if(currentRow.type == 'tree'){
-                    addArray = [
-                        "parentFieldName", 
-                        'parentUsedField',
-                        'parentValue', 
-                        'loadType',
-                        'onlyLeaf',
-                        'sortField',
-                        'sortType'
-                    ];
+            }
+            // 鎷兼帴涓や釜鏁扮粍
+            submittDefaultForm = submittDefaultForm.concat(addArray);
+            if(currentRow.codeSrchCondConfigVOS.length > 0){
+                //console.log(currentRow.codeSrchCondConfigVOS);
+                newForm = {
+                    codeSrchCondConfigVOS: currentRow.codeSrchCondConfigVOS,
                 }
-                // 鎷兼帴涓や釜鏁扮粍
-                submittDefaultForm = submittDefaultForm.concat(addArray);
-                if(currentRow.codeSrchCondConfigVOS.length > 0){
-                    //console.log(currentRow.codeSrchCondConfigVOS);
-                    newForm = {
-                        codeSrchCondConfigVOS: currentRow.codeSrchCondConfigVOS,
-                    }
+            }
+            if((currentRow.type == 'default' || currentRow.type  == 'grid') && currentRow.codeShowFieldConfigVOS.length >= 0){
+                newForm = Object.assign(newForm,{codeShowFieldConfigVOS: currentRow.codeShowFieldConfigVOS});
+            }
+            // 杩囨护鍑虹┖鍊煎睘鎬у拰涓嶉渶瑕佺殑灞炴��
+            submittDefaultForm.forEach(item=>{
+                // console.log(!this.checkStringIsEmpty(currentRow[item]) || !this.checkArrayIsUndefined(currentRow[item]));
+                if((item == 'isMuti' || item == 'onlyLeaf') || (!this.checkStringIsEmpty(currentRow[item]) || !this.checkArrayIsUndefined(currentRow[item]))){
+                    //console.log(item,currentRow[item]);
+                    newForm = Object.assign(newForm,{[item]:currentRow[item]});  
                 }
-                if((currentRow.type == 'default' || currentRow.type  == 'grid') && currentRow.codeShowFieldConfigVOS.length >= 0){
-                    newForm = Object.assign(newForm,{codeShowFieldConfigVOS: currentRow.codeShowFieldConfigVOS});
-                }
-                // 杩囨护鍑虹┖鍊煎睘鎬у拰涓嶉渶瑕佺殑灞炴��
-                submittDefaultForm.forEach(item=>{
-                    // console.log(!this.checkStringIsEmpty(currentRow[item]) || !this.checkArrayIsUndefined(currentRow[item]));
-                    if((item == 'isMuti' || item == 'onlyLeaf') || (!this.checkStringIsEmpty(currentRow[item]) || !this.checkArrayIsUndefined(currentRow[item]))){
-                        //console.log(item,currentRow[item]);
-                        newForm = Object.assign(newForm,{[item]:currentRow[item]});  
-                    }
-                });
-                // console.log(newForm);
-                return newForm;
-            },
-             /**
-             * 涓虹┖
-             * @param val
-             * @returns {boolean}
-            */
-            checkStringIsEmpty(val){
-                if (
-                    val === null ||
-                    typeof val === 'undefined' ||
-                    (typeof val === 'string' && val === "" && val !== 'undefined')
-                ) {
-                    return true;
-                }
-                    return false;
-            },
-             /**
-             * 鏄惁涓哄畾涔�
-             * @param val
-             * @returns {boolean}
-             */
-            checkArrayIsUndefined(val){
-                return typeof val === 'array' && (val.length === 0 || val === null || typeof val === 'undefined' || val === []);
-            },
-            referConfigOnload(){
-                let refer = this.referConfigParams;
-                refer.referConfigLoading = true;
-                let param = {};
-                // 澶氫釜conditionMap杩欐牱浼犲弬
-                if(refer.referConfigQuery){
-                    Object.keys(refer.referConfigQuery).forEach(key=>{
-                        param['conditionMap['+key+']'] = refer.referConfigQuery[key];
-                    });
-                }
-                getReferConfigPage(
-                    refer.referConfigPage.currentPage, 
-                    refer.referConfigPage.pageSize,
-                    param
-                ).then(res=>{
-                    const data = res.data.data;
-                    this.referConfigParams.referConfigPage.total = data.total;
-                    this.referConfigParams.referConfigData = data.records;
-                    this.referConfigParams.referConfigLoading = false;
-                    //console.log(this.referConfigParams.referConfigData.length > 0); 
-                    // 娓叉煋鍏朵粬鍖哄煙鏁版嵁    
-                    if(this.referConfigParams.referConfigData.length > 0) {      
-                        this.$nextTick(() => {
-                            // 琛ㄦ牸閿欒闂
-                            this.$refs[this.referConfigParams.ref].doLayout()
-                            // 榛樿閫変腑绗竴琛�
-                            this.referConfigParams.referConfigSelectedRow = 0;
-                            this.$refs[this.referConfigParams.ref].setCurrentRow(this.referConfigParams.referConfigData[0]);
-                            this.referConfigParams.referConfigSelectedRowData = this.referConfigParams.referConfigData[0];
-                            this.attrAndSrchCondOnload(this.referConfigParams.referConfigData[0]);
-                            this.loadDefaultOrGridOrStandOrTreeForm(this.referConfigParams.referConfigData[0]);
-                        }) 
-                    }
-                });
-            },
-            referBtmTypeSizeChange(pageSize){
-                this.referConfigParams.referConfigPage.pageSize = pageSize;
-            },
-            referBtmTypeCurrentChange(currentPage){
-                this.referConfigParams.referConfigPage.currentPage = currentPage;
-            },
-            referConfigRowClick(row){
-                // 瀵瑰綋鍓嶉�変腑琛岃繘琛岃褰�
-                this.referConfigParams.referConfigSelectedRowData = row;
-                // 鍗曢�夋閫変腑
-                this.referConfigParams.referConfigSelectedRow = row.$index
-                this.attrAndSrchCondOnload(row);
-                this.loadDefaultOrGridOrStandOrTreeForm(row);
-            },
-            referConfigSearchChange(params, done){
-                this.referConfigParams.referConfigQuery = params;
-                this.referConfigParams.referConfigPage.currentPage = 1;
-                this.referConfigOnload();
-                done();
-            },
-            referConfigSearchReset(){
-                this.referConfigParams.referConfigQuery = {};
-                this.referConfigOnload(this.referConfigParams.referConfigPage);
-            },
-            referConfigCurrentChange(currentPage){
-                this.referConfigParams.referConfigPage.currentPage = currentPage;               
-            },
-            referConfigSizeChange(pageSize){
-                this.referConfigParams.referConfigPage.pageSize = pageSize;
-            },
-            // 鍔犺浇琛ㄥ崟鏄剧ず鍐呭
-            loadDefaultOrGridOrStandOrTreeForm(currentFormData){
-                if(currentFormData.type != 'tree' & 
-                   currentFormData.type != 'stand' &
-                   currentFormData.type != 'default'&
-                   currentFormData.type != 'grid') {
-                    //鎺у埗鍙傜収閰嶇疆琛ㄦ牸鍜岃〃鍗曟樉绀烘瘮渚�
-                    this.isShowForm = false;
-                    this.toggleBasicCrudWidth.width = '100%';
-                }else {
-                    this.isShowForm = true;
-                    this.toggleBasicCrudWidth.width = '70%';
-                    this.toggleFormOption(currentFormData);
-                }
-                this.toggleCurdWidth(currentFormData);
-                //console.log(this.isShowForm);
-                //console.log(this.toggleBasicCrudWidth.width);
-            },
-
-            // 鏍规嵁type鐨勫彉鍔ㄥ垏鎹㈣〃鍗曠殑閰嶇疆option
-            toggleFormOption(data){
-                //console.log(data);
-                let currentForm = '';
-                if(data.type=='default' || data.type=='grid'){
-                    this.formOption.column = this.sortColumn;
-                    currentForm = 'defaultOrGridForm';
-                }else if(data.type == 'stand'){
-                    this.formOption.column = this.standColumn;
-                    currentForm = 'standForm';
-                }else if(data.type == 'tree'){
-                    this.formOption.column = this.treeColumn;
-                    currentForm = 'treeForm'
-                }
-                this.referConfigForm = {},
-                //console.log( this.formOption);
-                this[currentForm].forEach(item=>{
-                    Vue.set(this.referConfigForm, item, data[item])
-                    //this.referConfigForm = Object.assign(this.referConfigForm,{[item]:data[item]})
-                })
-                // console.log(this.referConfigForm);
-            },
-            // 鏍规嵁type鐨勫彉鍔ㄥ垏鎹ttr琛ㄦ牸鐨勬樉绀洪殣钘忥紝璋冩暣鏌ヨ鏉′欢琛ㄦ牸鐨勫搴�
-            toggleCurdWidth(data) {
-                if(data.type=='default' || data.type=='grid'){
-                    this.showAttrParams.isShow = true;
-                    // 涓嶉渶瑕佹樉绀哄睘鎬ц〃鏍兼墍鏈夐渶瑕佸皢鏌ヨ璋冧环琛ㄦ牸缂╁皬涓�100%
-                    this.toggleSrchCrudWidth.width = '40%';
-                }else {
-                    this.showAttrParams.isShow = false;
-                    // 涓嶉渶瑕佹樉绀哄睘鎬ц〃鏍兼墍鏈夐渶瑕佸皢鏌ヨ璋冧环琛ㄦ牸缂╁皬涓�100%
-                    this.toggleSrchCrudWidth.width = '100%';
-                }
-                // console.log(this.toggleSrchCrudWidth);
-                // console.log(this.showAttrParams.isShow);
-            },
-
-            // 鏄剧ず鐨勫睘鎬у拰鏌ヨ鏉′欢鐩稿叧鏂规硶
-            attrAndSrchCondOnload(row){
-                this.srchCondParams.srchCondLoading = true;
-                this.showAttrParams.showAttrLoading = true;
-                this.$nextTick(() => {
-                    this.$refs[this.srchCondParams.ref].doLayout()
-                    this.$refs[this.showAttrParams.ref].doLayout()
-                });
-                this.srchCondParams.srchCondData = row.codeSrchCondConfigVOS
-                this.showAttrParams.showAttrData = row.codeShowFieldConfigVOS
-                //console.log(this.showAttrParams.showAttrData);
-                this.srchCondParams.srchCondLoading = false;
-                this.showAttrParams.showAttrLoading = false;
-            },
-
+            });
+            // console.log(newForm);
+            return newForm;
         },
+            /**
+         * 涓虹┖
+         * @param val
+         * @returns {boolean}
+        */
+        checkStringIsEmpty(val){
+            if (
+                val === null ||
+                typeof val === 'undefined' ||
+                (typeof val === 'string' && val === "" && val !== 'undefined')
+            ) {
+                return true;
+            }
+                return false;
+        },
+            /**
+         * 鏄惁涓哄畾涔�
+         * @param val
+         * @returns {boolean}
+         */
+        checkArrayIsUndefined(val){
+            return typeof val === 'array' && (val.length === 0 || val === null || typeof val === 'undefined' || val === []);
+        },
+        referConfigOnload(){
+            let refer = this.referConfigParams;
+            refer.referConfigLoading = true;
+            let param = {};
+            // 澶氫釜conditionMap杩欐牱浼犲弬
+            if(refer.referConfigQuery){
+                Object.keys(refer.referConfigQuery).forEach(key=>{
+                    param['conditionMap['+key+']'] = refer.referConfigQuery[key];
+                });
+            }
+            getReferConfigPage(
+                refer.referConfigPage.currentPage, 
+                refer.referConfigPage.pageSize,
+                param
+            ).then(res=>{
+                const data = res.data.data;
+                this.referConfigParams.referConfigPage.total = data.total;
+                this.referConfigParams.referConfigData = data.records;
+                this.referConfigParams.referConfigLoading = false;
+                //console.log(this.referConfigParams.referConfigData.length > 0); 
+                // 娓叉煋鍏朵粬鍖哄煙鏁版嵁    
+                if(this.referConfigParams.referConfigData.length > 0) {      
+                    this.$nextTick(() => {
+                        // 琛ㄦ牸閿欒闂
+                        this.$refs[this.referConfigParams.ref].doLayout()
+                        // 榛樿閫変腑绗竴琛�
+                        this.referConfigParams.referConfigSelectedRow = 0;
+                        this.$refs[this.referConfigParams.ref].setCurrentRow(this.referConfigParams.referConfigData[0]);
+                        this.referConfigParams.referConfigSelectedRowData = this.referConfigParams.referConfigData[0];
+                        this.attrAndSrchCondOnload(this.referConfigParams.referConfigData[0]);
+                        this.loadDefaultOrGridOrStandOrTreeForm(this.referConfigParams.referConfigData[0]);
+                    }) 
+                }
+            });
+        },
+        referBtmTypeSizeChange(pageSize){
+            this.referConfigParams.referConfigPage.pageSize = pageSize;
+        },
+        referBtmTypeCurrentChange(currentPage){
+            this.referConfigParams.referConfigPage.currentPage = currentPage;
+        },
+        referConfigRowClick(row){
+            // 瀵瑰綋鍓嶉�変腑琛岃繘琛岃褰�
+            this.referConfigParams.referConfigSelectedRowData = row;
+            // 鍗曢�夋閫変腑
+            this.referConfigParams.referConfigSelectedRow = row.$index
+            this.attrAndSrchCondOnload(row);
+            this.loadDefaultOrGridOrStandOrTreeForm(row);
+        },
+        referConfigSearchChange(params, done){
+            this.referConfigParams.referConfigQuery = params;
+            this.referConfigParams.referConfigPage.currentPage = 1;
+            this.referConfigOnload();
+            done();
+        },
+        referConfigSearchReset(){
+            this.referConfigParams.referConfigQuery = {};
+            this.referConfigOnload(this.referConfigParams.referConfigPage);
+        },
+        referConfigCurrentChange(currentPage){
+            this.referConfigParams.referConfigPage.currentPage = currentPage;               
+        },
+        referConfigSizeChange(pageSize){
+            this.referConfigParams.referConfigPage.pageSize = pageSize;
+        },
+        // 鍔犺浇琛ㄥ崟鏄剧ず鍐呭
+        loadDefaultOrGridOrStandOrTreeForm(currentFormData){
+            if(currentFormData.type != 'tree' & 
+                currentFormData.type != 'stand' &
+                currentFormData.type != 'default'&
+                currentFormData.type != 'grid') {
+                //鎺у埗鍙傜収閰嶇疆琛ㄦ牸鍜岃〃鍗曟樉绀烘瘮渚�
+                this.isShowForm = false;
+                this.toggleBasicCrudWidth.width = '100%';
+            }else {
+                this.isShowForm = true;
+                this.toggleBasicCrudWidth.width = '70%';
+                this.toggleFormOption(currentFormData);
+            }
+            this.toggleCurdWidth(currentFormData);
+            //console.log(this.isShowForm);
+            //console.log(this.toggleBasicCrudWidth.width);
+        },
+
+        // 鏍规嵁type鐨勫彉鍔ㄥ垏鎹㈣〃鍗曠殑閰嶇疆option
+        toggleFormOption(data){
+            //console.log(data);
+            let currentForm = '';
+            if(data.type=='default' || data.type=='grid'){
+                this.formOption.column = this.sortColumn;
+                currentForm = 'defaultOrGridForm';
+            }else if(data.type == 'stand'){
+                this.formOption.column = this.standColumn;
+                currentForm = 'standForm';
+            }else if(data.type == 'tree'){
+                this.formOption.column = this.treeColumn;
+                currentForm = 'treeForm'
+            }
+            this.referConfigForm = {},
+            //console.log( this.formOption);
+            this[currentForm].forEach(item=>{
+                Vue.set(this.referConfigForm, item, data[item])
+                //this.referConfigForm = Object.assign(this.referConfigForm,{[item]:data[item]})
+            })
+            // console.log(this.referConfigForm);
+        },
+        // 鏍规嵁type鐨勫彉鍔ㄥ垏鎹ttr琛ㄦ牸鐨勬樉绀洪殣钘忥紝璋冩暣鏌ヨ鏉′欢琛ㄦ牸鐨勫搴�
+        toggleCurdWidth(data) {
+            if(data.type=='default' || data.type=='grid'){
+                this.showAttrParams.isShow = true;
+                // 涓嶉渶瑕佹樉绀哄睘鎬ц〃鏍兼墍鏈夐渶瑕佸皢鏌ヨ璋冧环琛ㄦ牸缂╁皬涓�100%
+                this.toggleSrchCrudWidth.width = '40%';
+            }else {
+                this.showAttrParams.isShow = false;
+                // 涓嶉渶瑕佹樉绀哄睘鎬ц〃鏍兼墍鏈夐渶瑕佸皢鏌ヨ璋冧环琛ㄦ牸缂╁皬涓�100%
+                this.toggleSrchCrudWidth.width = '100%';
+            }
+            // console.log(this.toggleSrchCrudWidth);
+            // console.log(this.showAttrParams.isShow);
+        },
+
+        // 鏄剧ず鐨勫睘鎬у拰鏌ヨ鏉′欢鐩稿叧鏂规硶
+        attrAndSrchCondOnload(row){
+            this.srchCondParams.srchCondLoading = true;
+            this.showAttrParams.showAttrLoading = true;
+            this.$nextTick(() => {
+                this.$refs[this.srchCondParams.ref].doLayout()
+                this.$refs[this.showAttrParams.ref].doLayout()
+            });
+            this.srchCondParams.srchCondData = row.codeSrchCondConfigVOS
+            this.showAttrParams.showAttrData = row.codeShowFieldConfigVOS
+            //console.log(this.showAttrParams.showAttrData);
+            this.srchCondParams.srchCondLoading = false;
+            this.showAttrParams.showAttrLoading = false;
+        },
+
+    },
 }
 </script>
 
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
index 24293a2..6a91563 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
@@ -141,38 +141,14 @@
             <el-button @click="isShowReferConfigForm = false">鍙� 娑�</el-button>
         </div>
 
-        <el-dialog title="涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
-            append-to-body
-            :visible.sync="isShowReferBtmType"
-            width="70%"
-            destroy-on-close
-            @close="clearTableRowSelection('referType')"
-            style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
-            <avue-crud :option="selectionReferBtmTypeOption"
-                :table-loading="selectReferBtmTypeLoading"
-                :data="selectReferBtmTypeData"
-                :page.sync="selectReferBtmTypePage"
-                ref="selectReferBtmTypeCrud"
-                class="referBtmType-crud"
-                @row-click="referBtmTypeRowClick"
-                @search-change="referBtmTypeSearchChange"
-                @search-reset="referBtmTypeSearchReset"
-                @current-change="referBtmTypeCurrentChange"
-                @size-change="referBtmTypeSizeChange">
-                <template #radio="{row}">
-                    <el-radio v-model="referBtmTypeSelectRow"
-                        :label="row.$index">
-                        &nbsp;
-                    </el-radio>
-                </template>
-            </avue-crud>
-            <div slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="selectedReferBtmType">纭� 瀹�</el-button>
-                <el-button @click="isShowReferBtmType = false">鍙� 娑�</el-button>
-            </div>
-        </el-dialog>
+        <!-- 瀵硅瘽妗�,涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊煎璇濇 -->
+        <refer-btm-type-crud-dialog
+            :visible.sync="referBtmDialogParams.selectReferBtmSettingBox"
+            :ref="referBtmDialogParams.ref"
+            @echoReferBtmType="echoReferBtmType">
+        </refer-btm-type-crud-dialog>
 
-        <el-dialog title="涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�"
+        <!-- <el-dialog title="涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�"
             append-to-body
             :visible.sync="isShowSortField"
             width="70%"
@@ -200,7 +176,14 @@
                 <el-button type="primary" @click="selectedSortField">纭� 瀹�</el-button>
                 <el-button @click="isShowSortField = false">鍙� 娑�</el-button>
             </div>
-        </el-dialog>
+        </el-dialog> -->
+
+        <refer-select-btm-attr-dialog
+            title="涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�"
+            :visible.sync="selectedBtmTypeAttrParams.selectedBtmTypeAttrSettingBox"
+            :ref="selectedBtmTypeAttrParams.ref"
+            @echoSelectedAttr="echoSelectedAttr">
+        </refer-select-btm-attr-dialog>
 
         <el-dialog title="閫夋嫨鏄剧ず瀛楁"
             append-to-body
@@ -461,212 +444,21 @@
                 activeName: 'first', //褰撳墠娲诲姩鐨則abs
 
 
-                //涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊煎璇濇
-                selectionReferBtmTypeOption: {
-                    border: true,
-                    height: '260',
-                    tip: false,
-                    //searchShow: false,
-                    index: true,
-                    selection: false,
-                    menu: false,
-                    addBtn: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    column: [{
-                        label: '-',
-                        prop: 'radio',
-                        width: 60,
-                        hide: false
-                    },{
-                        label: '涓氬姟绫诲瀷缂栧彿',
-                        width: 120,
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'id'
-                    },{
-                        label: '涓氬姟绫诲瀷鍚嶇О',
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'name'
-                    },{
-                        label: '鎻忚堪',
-                        search: false,
-                        prop: 'description'
-                    }],
+                /** 鍙傜収寮曠敤鐨勪笟鍔$被鍨嬪璇濇鐩稿叧鍙傛暟 */
+                referBtmDialogParams: {
+                    ref: 'crudReferBtm',
+                    selectReferBtmSettingBox: false,
                 },
-                selectReferBtmTypeLoading: false,
-                selectReferBtmTypeData: [],
-                selectReferBtmTypePage: {
-                    pageSize: 10,
-                    currentPage: 1,
-                    total: 0
+                /** 閫夋嫨鍏宠仈鐨勪笟鍔$被鍨嬪睘鎬х浉鍏崇殑瀵硅瘽妗嗙浉鍏冲弬鏁� */
+                selectedBtmTypeAttrParams: {
+                    ref: 'selectedBtmTypeAttrCrud',
+                    selectedBtmTypeAttrSettingBox: false,
                 },
-                referBtmTypeQuery: {},
-                isShowReferBtmType: false,
-                referBtmTypeSelectRowData: '',
-                referBtmTypeSelectRow: '',
-
-
-                // 涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊煎璇濇
-                isShowSortField: false,
-                selectionSortFieldOption: {
-                    border: true,
-                    height: '220px',
-                    tip: false,
-                    //searchShow: false,
-                    index: true,
-                    selection: false,
-                    addBtn: false,
-                    menu: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    border: true,
-                    column: [{
-                        label: '-',
-                        prop: 'radio',
-                        width: 60,
-                        hide: false
-                    },{
-                        label: '灞炴�ц嫳鏂囩紪鍙�',
-                        width: 120,
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'id'
-                    },{
-                        label: '灞炴�т腑鏂囧悕绉�',
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'name'
-                    },{
-                        label: '灞炴�ч暱搴�',
-                        search: false,
-                        prop: 'attrLength'
-                    },{
-                        label: '灞炴�х被鍨�',
-                        search: false,
-                        prop: 'attrType'
-                    }],
+                seletedBtmTypeAttrOptions: {
+                    title: '', //瀵硅瘽妗嗘樉绀虹殑鏍囬
+                    condition: '',  //褰撳墠鎵撳紑瀵硅瘽妗嗙殑绫诲瀷
+                    btmTypeId: '', //鏌ヨ鏉′欢锛屼笟鍔$被鍨媔d
                 },
-                selectSortFieldLoading: false,
-                selectSortFieldData: [],
-                selectSortFieldPage: {
-                    pageSize: 10,
-                    currentPage: 1,
-                    total: 0
-                },
-                sortFieldQuery: {},
-                sortFieldSelectRow: '',
-                sortFieldSelectRowData: '',
-
-
-                //閫夋嫨鏄剧ず瀛楁
-                isShowShowField: false,
-                selectionShowFieldOption:  {
-                    border: true,
-                    height: '220px',
-                    tip: false,
-                    //searchShow: false,
-                    index: true,
-                    selection: true,
-                    addBtn: false,
-                    menu: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    border: true,
-                    column: [{
-                        label: '灞炴�ц嫳鏂囩紪鍙�',
-                        width: 120,
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'id'
-                    },{
-                        label: '灞炴�т腑鏂囧悕绉�',
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'name'
-                    },{
-                        label: '灞炴�ч暱搴�',
-                        search: false,
-                        prop: 'attrLength'
-                    },{
-                        label: '灞炴�х被鍨�',
-                        search: false,
-                        prop: 'attrType'
-                    }],
-                },
-                showFieldQuery: {},
-                selectShowFieldLoading: false,
-                selectShowFieldData: [],
-                showFieldSelectList: [],
-
-                //娣诲姞鏌ヨ鏉′欢
-                isShowSearchCondition: false,
-                selectionSearchConditionOption: {
-                    border: true,
-                    height: '220px',
-                    tip: false,
-                    //searchShow: false,
-                    index: true,
-                    selection: true,
-                    addBtn: false,
-                    menu: false,
-                    refreshBtn: false,
-                    searchShowBtn: false,
-                    columnBtn: false,
-                    dialogClickModal: false,
-                    highlightCurrentRow: true,
-                    align: 'center',
-                    menuAlign: 'center',
-                    border: true,
-                    column: [{
-                        label: '灞炴�ц嫳鏂囩紪鍙�',
-                        width: 120,
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'id'
-                    },{
-                        label: '灞炴�т腑鏂囧悕绉�',
-                        search: true,
-                        searchSpan: 8,
-                        searchLabelWidth: 100,
-                        prop: 'name'
-                    },{
-                        label: '灞炴�ч暱搴�',
-                        search: false,
-                        prop: 'attrLength'
-                    },{
-                        label: '灞炴�х被鍨�',
-                        search: false,
-                        prop: 'attrType'
-                    }],
-                },
-                selectSearchConditionLoading: false,
-                selectSearchConditionData: [],
-                searchConditionQuery: {},
-                searchConditionSelectList: [],
 
                 //涓婁竴娆$偣鍑荤殑琛岀紪杈戞暟鎹�
                 preClickAttrRow: '',
@@ -1340,28 +1132,7 @@
             checkArrayIsUndefined(val){
                 return typeof val === 'array' && (val.length === 0 ||val === null || typeof val === 'undefined');
             },
-            // 鎵撳紑琛ㄦ牸閫夋嫨妗�
-            openSelectionTable(condition){
-                if (condition == 'referType'){
-                    this.isShowReferBtmType = true;
-                    this.referBtmTypeOnLoad();
-                }else if (condition == 'sortField'){
-                    this.isShowSortField = true;
-                    this.sortFieldOnLoad();
-                }else {
-                    if(this.form.referType == '' || this.form.referType == null){
-                        this.$message.warning("璇疯緭鍏ュ弬鐓х殑涓氬姟绫诲瀷")
-                        return;
-                    }
-                    if(condition == 'addSearchCondition'){
-                        this.isShowSearchCondition = true;
-                        this.selectSearchConditionDataOnload();
-                    }else {
-                        this.isShowShowField = true;
-                        this.selectShowFieldDataOnload();
-                    }
-                }
-            },
+
             // 娓呯┖琛ㄦ牸閫夋嫨妗�
             clearSelectionTable(condition){
                 if(condition == 'referType'){
@@ -1371,257 +1142,84 @@
                     this.form.sortField = '';
                 }
             },
-            // 鍏抽棴瀵硅瘽妗嗘椂瀵归�変腑鍐呭杩涜娓呯┖锛屽苟瑙g粦鍏ㄥ眬鐩戝惉浜嬩欢
-            clearTableRowSelection(condition){
+            // 鎵撳紑琛ㄦ牸閫夋嫨妗�
+            openSelectionTable(condition){
+                // 鎵撳紑閫夋嫨鍙傜収寮曠敤瀵硅瘽妗�
+                if (condition == 'referType'){
+                    this.referBtmDialogParams.selectReferBtmSettingBox = true;
+                    // console.log(this.referBtmDialogParams.ref);
+                    // 璋冪敤瀛愮粍浠跺埛鏂拌〃鏍兼暟鎹�
+                    this.$refs[this.referBtmDialogParams.ref].referBtmOnLoad();
+                    return;
+                }
+                // 鎻愮ず
+                if(this.form.referType == '' || this.form.referType == null){
+                    this.$message.warning("璇疯緭鍏ュ弬鐓х殑涓氬姟绫诲瀷")
+                    return;
+                }
+                let params = this.seletedBtmTypeAttrOptions;
+                params.btmTypeId = this.form.referType
+                // 閫夋嫨鎺掑簭瀛楁
                 if(condition == 'sortField'){
-                    this.sortFieldSelectRow = ''; 
-                    this.sortFieldSelectRowData = '';
-                }else if(condition == 'referType'){
-                    this.referBtmTypeSelectRow='';
-                    this.referBtmTypeSelectRowData = '';
+                    params.title = '涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊煎璇濇';
+                    params.condition = 'sortField';
+                }else if(condition == 'addSearchCondition'){
+                    // 閫夋嫨鏌ヨ鏉′欢
+                    params.title = '閫夋嫨鏌ヨ鏉′欢';
+                    params.condition = 'addSearchCondition';
+                }else{
+                    // 閫夋嫨灞炴��
+                    params.title = '閫夋嫨鏄剧ず瀛楁';
+                    params.condition = 'selectAttr';
                 }
-                
+                this.$refs[this.selectedBtmTypeAttrParams.ref].selectedBtmTypeAttrOnLoad(params);
+                this.selectedBtmTypeAttrParams.selectedBtmTypeAttrSettingBox = true;
+            },
+            
+            /** 涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊间箣鍚庣殑鍐呭鍥炴樉鏃惰皟鐢� */
+            echoReferBtmType(content){
+                // 瀹炵幇鍥炴樉
+                this.form.referTypeName = content.name;
+                this.form.referType = content.id;
+            },
+            /** 鎺掑簭瀛楁銆佹樉绀虹殑灞炴�с�佹煡璇㈡潯浠剁殑琛ㄦ牸琛岄�夋嫨涔嬪悗鍥炴樉 */
+            echoSelectedAttr(data){
+                console.log(data);
+                // 涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�
+                if(data.condition === 'sortField'){
+                    this.form.sortField = data.selectedArrary[0].id;
+                }else if(data.condition === 'addSearchCondition') {
+                    data.selectedArrary.forEach(item => {
+                        this.form.codeSrchCondConfigVOS.push(
+                            {
+                                filterField: item.id,
+                                filterType: '=',
+                                filterTypeText: item.name, 
+                                filterValue: '',
+                                $cellEdit: false
+                            }
+                        )
+                    })
+                }else{
+                    // 閫夋嫨鏄剧ず瀛楁
+                    data.selectedArrary.forEach(item => {
+                        this.codeShowFieldConfigVOS.push(
+                            {
+                                field: item.id,
+                                title: item.id,
+                                fieldType: item.attrType,
+                                fieldTypeText: item.attrTypeText,
+                                sort: false,
+                                attrSortField: item.id,
+                                width: item.attrLength,
+                                isquery: false,
+                                $cellEdit: false
+                            }
+                        )
+                    })
+                }
             },
 
-            // 涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊�
-            referBtmTypeOnLoad(page, params = {}){
-                this.selectReferBtmTypeLoading = true;
-                // 璋冪敤api璇锋眰
-                const data = {
-                    total: 2,
-                    data: [{
-                        id: 't2',
-                        name: 'test2',
-                        description: 'test2',
-                    }, {
-                        id: 't3',
-                        name: 'test3',
-                        description: 'test3',
-                    }]
-                }
-                this.selectReferBtmTypeData = data.data;
-                this.selectReferBtmTypePage.total = data.total;
-                this.selectReferBtmTypeLoading = false;
-            },
-            referBtmTypeSizeChange(pageSize){
-                this.selectReferBtmTypePage.pageSize = pageSize;
-            },
-            referBtmTypeSearchChange(params, done){
-                this.referBtmTypeQuery = params;
-                this.selectReferBtmTypePage.currentPage = 1;
-                this.referBtmTypeOnLoad(this.page, params);
-                done();
-            },
-            referBtmTypeSearchReset(){
-                this.referBtmTypeQuery = {};
-                this.referBtmTypeOnLoad(this.selectReferBtmTypePage);
-            },
-            referBtmTypeRowClick(row){
-                this.referBtmTypeSelectRowData = row;
-                this.referBtmTypeSelectRow = row.$index
-                //console.log( this.referBtmTypeSelectRowData);
-            },
-            referBtmTypeCurrentChange(currentPage){
-                this.selectReferBtmTypePage.currentPage = currentPage;
-            },
-            selectedReferBtmType(){
-                if(!this.referBtmTypeSelectRowData) {
-                    this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-                    return;
-                }
-                this.form.referTypeName = this.referBtmTypeSelectRowData.name;
-                this.form.referType = this.referBtmTypeSelectRowData.id;
-                this.isShowReferBtmType = false;
-            },
-
-            // 涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�
-            sortFieldOnLoad(page, params = {}){
-                this.selectSortFieldLoading = true;
-                // 璋冪敤api璇锋眰
-                const data = {
-                    total: 2,
-                    data: [{
-                        id: 'test',
-                        name: '娴嬭瘯',
-                        attrLength: 11,
-                        attrType: '瀛楃涓�'
-                    }, {
-                        id: 'test1',
-                        name: '娴嬭瘯1',
-                        attrLength: 12,
-                        attrType: '鏁板瓧'
-                    }]
-                }
-                this.selectSortFieldData = data.data;
-                this.selectSortFieldPage.total = data.total;
-                this.selectSortFieldLoading = false;
-            },
-            sortFieldSizeChange(pageSize){
-                this.selectSortFieldPage.pageSize = pageSize;
-            },
-            sortFieldSearchChange(params, done){
-                this.sortFieldQuery = params;
-                this.selectSortFieldPage.currentPage = 1;
-                this.sortFieldOnLoad(this.page, params);
-                done();
-            },
-            sortFieldSearchReset(){
-                this.sortFieldQuery = {};
-                this.sortFieldOnLoad(this.selectSortFieldPage);
-            },
-            sortFieldRowClick(row){
-                this.sortFieldSelectRowData = row;
-                this.sortFieldSelectRow = row.$index
-                //console.log( this.sortFieldSelectRowData);
-            },
-            sortFieldCurrentChange(currentPage){
-                this.selectReferBtmTypePage.currentPage = currentPage;
-            },
-            selectedSortField(){
-                if(!this.sortFieldSelectRowData) {
-                    this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-                    return;
-                }
-                this.form.sortField = this.sortFieldSelectRowData.id;
-                this.isShowSortField = false;
-            },
-
-            // 閫夋嫨鏄剧ず瀛楁
-            selectShowFieldDataOnload(params = {}){
-                this.selectShowFieldLoading = true;
-                // 璋冪敤api璇锋眰
-                const data = {
-                    total: 2,
-                    data: [{
-                        id: 'test',
-                        name: '娴嬭瘯',
-                        attrLength: 11,
-                        attrType: 'text',
-                        attrTypeText: '鏂囨湰妗�'
-                    }, {
-                        id: 'test1',
-                        name: '娴嬭瘯1',
-                        attrLength: 12,
-                        attrType: 'number',
-                        attrTypeText: '鏁板瓧'
-                    }, {
-                        id: 'test2',
-                        name: '娴嬭瘯2',
-                        attrLength: 13,
-                        attrType: 'date',
-                        attrTypeText: '鏃ユ湡'
-                    }]
-                }
-                this.selectShowFieldData = data.data;
-                this.selectShowFieldLoading = false;
-            },
-            selectionShowFieldDataChange(list){
-                this.showFieldSelectList = list;
-                this.$refs.selectShowFieldCrud.setCurrentRow(this.showFieldSelectList[list.length-1]);
-            },
-            showFieldRowClick(row){
-                //this.showFieldSelectList.push(row);
-                this.$refs.selectShowFieldCrud.setCurrentRow(row);
-                this.$refs.selectShowFieldCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-            },
-            showFieldSearchChange(params, done){
-                this.showFieldQuery = params;
-                this.selectShowFieldDataOnload(params);
-                done();
-            },
-            showFieldSearchReset(){
-                this.showFieldQuery = {};
-                this.sortFieldOnLoad();
-            },
-            selectedShowField(){
-                //console.log(this.showFieldSelectList);
-                if(this.showFieldSelectList.length <= 0) {
-                    this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�");
-                    return;
-                }
-                //this.showFieldSelectList;
-                this.showFieldSelectList.forEach(item => {
-                    this.codeShowFieldConfigVOS.push(
-                        {
-                            field: item.id,
-                            title: item.id,
-                            fieldType: item.attrType,
-                            fieldTypeText: item.attrTypeText,
-                            sort: false,
-                            attrSortField: item.id,
-                            width: item.attrLength,
-                            isquery: false,
-                            $cellEdit: false
-                        }
-                    )
-                    
-                })
-                this.isShowShowField = false;
-            },
-
-
-            // 閫夋嫨鏌ヨ鏉′欢
-            selectSearchConditionDataOnload(params = {}){
-                this.selectSearchConditionLoading = true;
-                // 璋冪敤api璇锋眰
-                this.selectSearchConditionData = [{
-                        id: 'test',
-                        name: '娴嬭瘯',
-                        attrLength: 11,
-                        attrType: '瀛楃涓�',
-                        $cellEdit: false,
-                    }, {
-                        id: 'test1',
-                        name: '娴嬭瘯1',
-                        attrLength: 12,
-                        attrType: '鏁板瓧',
-                        $cellEdit: false,
-                    }, {
-                        id: 'test2',
-                        name: '娴嬭瘯2',
-                        attrLength: 13,
-                        attrType: '鏃ユ湡',
-                        $cellEdit: false,
-                }];
-                this.selectSearchConditionLoading = false;
-            },
-            searchConditionRowClick(row){
-                this.$refs.selectSearchConditionCrud.setCurrentRow(row);
-                this.$refs.selectSearchConditionCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-            },
-            searchConditionDataChange(list){
-                this.searchConditionSelectList = list;
-                this.$refs.selectSearchConditionCrud.setCurrentRow(this.searchConditionSelectList[list.length-1]);
-            },
-            searchConditionSearchChange(params, done){
-                this.searchConditionQuery = params;
-                this.selectSearchConditionDataOnload(params);
-                done();
-            },
-            searchConditionSearchReset(){
-                this.searchConditionQuery = {};
-                this.sortFieldOnLoad();
-            },
-            selectedSearchCondition(){
-                // console.log(this.searchConditionSelectList);
-                if(this.searchConditionSelectList.length <= 0) {
-                    this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�");
-                    return;
-                }
-                this.searchConditionSelectList.forEach(item => {
-                    this.form.codeSrchCondConfigVOS.push(
-                        {
-                            filterField: item.id,
-                            filterType: '=',
-                            filterTypeText: item.name, 
-                            filterValue: '',
-                            $cellEdit: false
-                        }
-                    )
-                    
-                })
-                this.isShowSearchCondition = false;
-            },
 
         }
     };
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue
new file mode 100644
index 0000000..eafc974
--- /dev/null
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue
@@ -0,0 +1,186 @@
+<template>
+     <el-dialog 
+        :title="options.title"
+        append-to-body
+        :visible.sync="crudParams.isShowDialog"
+        width="65%"
+        destroy-on-close
+        @close="clearTableRowSelection"
+        style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
+        <avue-crud :option="crudParams.crudOption"
+            :table-loading="crudParams.crudLoading"
+            :data="crudParams.crudData"
+            :ref="crudParams.ref"
+            @row-click="selectedBtmTypeAttrRowClick"
+            @selection-change="selectionBtmTypeAttrChange"
+            @search-change="selectedBtmTypeAttrSrchChange"
+            @search-reset="selectedBtmTypeAttrSrchReset">
+        </avue-crud>
+        <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="selectedBtmTypeAttr">纭� 瀹�</el-button>
+            <el-button @click="crudParams.isShowDialog = false">鍙� 娑�</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+import { gridAttributesByBtmId } from "@/api/code/referBtmType";
+export default {
+    name: "referSelectBtmAttrDialog",
+    props: {
+        // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒�
+        visible: {
+            type: "Boolean",
+            default: false,
+        },
+        
+
+    },
+    watch: {
+        // 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
+        visible (){
+            this.crudParams.isShowDialog = this.visible;
+        }
+    },
+    data() {
+        return {
+            
+            // 琛ㄦ牸鐩稿叧鍙傛暟
+            crudParams: {
+                ref: "selectedAttrCrud",
+                isShowDialog: this.visible,   //瀵硅瘽妗嗘樉绀烘帶鍒�
+                crudLoading: false,
+                crudOption: {
+                    border: true,
+                    height: '250px',
+                    tip: false,
+                    //searchShow: false,
+                    index: true,
+                    selection: true,
+                    addBtn: false,
+                    menu: false,
+                    // refreshBtn: false,
+                    searchShowBtn: false,
+                    columnBtn: false,
+                    dialogClickModal: false,
+                    highlightCurrentRow: true,
+                    searchMenuSpan: 5,
+                    align: 'center',
+                    menuAlign: 'center',
+                    border: true,
+                    column: [{
+                        label: '灞炴�ц嫳鏂囩紪鍙�',
+                        width: 120,
+                        search: true,
+                        searchSpan: 8,
+                        searchLabelWidth: 100,
+                        prop: 'id'
+                    },{
+                        label: '灞炴�т腑鏂囧悕绉�',
+                        search: true,
+                        searchSpan: 8,
+                        searchLabelWidth: 100,
+                        prop: 'name'
+                    },{
+                        label: '灞炴�ч暱搴�',
+                        search: false,
+                        prop: 'attrLength'
+                    },{
+                        label: '灞炴�х被鍨�',
+                        search: false,
+                        prop: 'attrType'
+                    }],
+                },
+                crudData: [],
+                crudQuery: {},
+                crudSelectedRowData: [],
+            },   
+            // 璋冪敤鏂逛紶杩囨潵鐨勭浉鍏冲弬鏁�    
+            options: {},
+
+        }
+    },
+    methods: {
+
+        // 娓呯┖閫変腑
+        clearTableRowSelection(){
+            this.crudParams.crudSelectedRow='';
+            this.crudParams.crudSelectedRowData = '';
+            this.$emit('update:visible', false);
+        },
+
+        // crud鐩稿叧鏂规硶
+        selectedBtmTypeAttrOnLoad(params){
+            this.options = params;
+            this.crudParams.crudLoading = true;
+            // 璋冪敤api璇锋眰
+            const data = {
+                total: 2,
+                data: [{
+                    id: 'test',
+                    name: '娴嬭瘯',
+                    attrLength: 11,
+                    attrType: '瀛楃涓�'
+                }, {
+                    id: 'test1',
+                    name: '娴嬭瘯1',
+                    attrLength: 12,
+                    attrType: '鏁板瓧'
+                }]
+            }
+            let param = {};
+            // 澶氫釜conditionMap杩欐牱浼犲弬
+            if(crudParams.crudQuery){
+                Object.keys(crudParams.crudQuery).forEach(key=>{
+                    param['conditionMap['+key+']'] = crudParams.crudQuery[key];
+                });
+            }
+            gridAttributesByBtmId(1,-1,param).then(res=>{
+                console.log(res);
+            })
+            this.crudParams.crudData = data.data;
+            this.crudParams.crudLoading = false;
+        },
+        selectedBtmTypeAttrSrchChange(params, done){
+            this.crudParams.crudQuery = params;
+            this.selectedBtmTypeAttrOnLoad(this.options);
+            done();
+        },
+        selectedBtmTypeAttrSrchReset(){
+            this.crudParams.crudQuery = {};
+            this.selectedBtmTypeAttrOnLoad(this.options);
+        },
+        selectedBtmTypeAttrRowClick(row){
+            this.crudParams.crudSelectedRowData = row;
+            this.$refs[this.crudParams.ref].toggleSelection();
+            this.$refs[this.crudParams.ref].setCurrentRow(row);
+            this.$refs[this.crudParams.ref].toggleRowSelection(row); //閫変腑褰撳墠琛�
+        },
+        selectionBtmTypeAttrChange(list){
+            this.crudParams.crudSelectedRowData = list;
+            this.$refs[this.crudParams.ref].setCurrentRow(this.crudParams.crudSelectedRowData[list.length-1]);
+            //褰撳墠閫変腑琛屼负绌虹殑鏃跺�欏氨灏嗙爜娈电鐞嗚〃鏍兼暟鎹疆绌�
+        },
+        // 閫変腑灞炴�т箣鍚�
+        selectedBtmTypeAttr(){
+            if(this.crudParams.crudSelectedRowData.length<=0 || (this.options.condition == 'sortField' && this.crudParams.crudSelectedRowData.length!=1)) {
+                this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+                return;
+            }
+            // 鏋勯�犲洖鏄剧埗缁勪欢闇�瑕佷紶閫掔殑鐩稿叧鍙傛暟
+            let data = {
+                selectedArrary: this.crudParams.crudSelectedRowData,
+                condition: this.options.condition
+            };
+            this.$emit('echoSelectedAttr',data);
+            this.crudParams.isShowDialog = false;
+        },
+
+    },
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js b/Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
index c812387..bce29b0 100644
--- a/Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
+++ b/Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
@@ -15,6 +15,7 @@
             "parentId": 0,
             "title": classifyitem.text,
             "value": classifyitem.oid,
+            "btmTypeOid": classifyitem.attributes.btmTypeOid,
           }
           return {
             ...item,
diff --git a/Source/UBCS-WEB/src/const/code/classifytreeoption.js b/Source/UBCS-WEB/src/const/code/classifytreeoption.js
deleted file mode 100644
index 8ae347a..0000000
--- a/Source/UBCS-WEB/src/const/code/classifytreeoption.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import { treeTopCodeClassify } from "@/api/code/codeclassify";
-
-export default {
-    nodeKey: 'oid',
-    border: true,
-    lazy: true,
-    treeLoad: function (node, resolve) {
-      // const parentId = (node.level === 0) ? 0 : node.data.id;
-      treeTopCodeClassify({"queryAllLevel": true,"loadType": "all","multipleSelect": false,}).then( res=> {
-        resolve(res.data.map(classifyitem => {
-          let item = {
-            "hasChildren": false,
-            "oid": classifyitem.oid,
-            "key": classifyitem.oid,
-            "parentId": 0,
-            "title": classifyitem.text,
-            "value": classifyitem.oid,
-          }
-          return {
-            ...item,
-            leaf: !item.hasChildren
-          }
-        }))
-      });
-    },
-    addBtn: false,
-    menu: false,
-    size: 'small',
-    props: {
-      labelText: '鏍囬',
-      label: 'title',
-      value: 'value',
-      children: 'children'
-    }
-}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/referBtmDialog.js b/Source/UBCS-WEB/src/const/code/referBtmDialog.js
index 9533435..edc7c65 100644
--- a/Source/UBCS-WEB/src/const/code/referBtmDialog.js
+++ b/Source/UBCS-WEB/src/const/code/referBtmDialog.js
@@ -12,6 +12,8 @@
     viewBtn: false,
     selection: true,
     menu: false,
+    columnBtn: false,
+    searchShowBtn: false, //	琛ㄦ牸鎼滅储鏄鹃殣鎸夐挳
     dialogClickModal: false,
     highlightCurrentRow: true,
     column: [
@@ -20,14 +22,14 @@
         prop: "id",
         search: true,
         searchLabelWidth: 100,
-        searchSpan: 7,
+        searchSpan: 8,
       },
       {
         label: "涓氬姟绫诲瀷鍚嶇О",
         prop: "name",
         search: true,
         searchLabelWidth: 100,
-        searchSpan: 7,
+        searchSpan: 8,
       },
       {
         label: "鎻忚堪",
diff --git a/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js b/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
index c03a7aa..056cc99 100644
--- a/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
+++ b/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
@@ -1,10 +1,11 @@
 export default {
+    height: '41vh',
     calcHeight: 30,
     tip: false,
     editBtn: false,
     addBtn: false,
     searchShow: true,
-    searchMenuSpan: 5,
+    searchMenuSpan: 6,
     disablePage: false,
     border: true,
     index: true,
@@ -21,23 +22,23 @@
         prop: "id",
         search: true,
         searchLabelWidth: 100,
-        searchSpan: 7,
+        searchSpan: 9,
       },
       {
         label: "灞炴�т腑鏂囧悕绉�",
         prop: "name",
         search: true,
         searchLabelWidth: 100,
-        searchSpan: 7,
+        searchSpan: 9,
       },
       {
         label: "灞炴�ч暱搴�",
-        prop: "attrlength",
+        prop: "attributeLength",
         search: false,
       },
       {
         label: "灞炴�х被鍨�",
-        prop: "attributedatatypetext",
+        prop: "attrDataTypeText",
         search: false,
       }
     ]
diff --git a/Source/UBCS-WEB/src/main.js b/Source/UBCS-WEB/src/main.js
index 3cf0e47..918b5db 100644
--- a/Source/UBCS-WEB/src/main.js
+++ b/Source/UBCS-WEB/src/main.js
@@ -39,6 +39,9 @@
 import formulaEditor from "@/components/code-dialog-page/formulaEditor"
 import referConfigCrudDialog from "@/components/code-dialog-page/referConfigCrudDialog"
 import referConfigFormDialog from "@/components/code-dialog-page/referConfigFormDialog"
+import referBtmTypeCrudDialog from "@/components/code-dialog-page/referBtmTypeCrudDialog"
+import referSelectBtmAttrDialog from "@/components/code-dialog-page/referSelectBtmAttrDialog"
+import advancedQuery from "@/components/advanced-query/advancedQuery"
 import businessAdd from "@/views/modeling/BusinessAdd"
 import TableCrud from "@/components/Crud/Crud"
 import originalAdd from "@/views/modeling/originalAdd"
@@ -81,11 +84,13 @@
 Vue.component('formulaEditor',formulaEditor)
 Vue.component('referConfigCrudDialog',referConfigCrudDialog)
 Vue.component('referConfigFormDialog',referConfigFormDialog)
+Vue.component('advancedQuery',advancedQuery)
 Vue.component('businessAdd',businessAdd)
 Vue.component('attrCrud',attrCrud)
 Vue.component('TableCrud',TableCrud)
 Vue.component('originalAdd',originalAdd)
-
+Vue.component('referBtmTypeCrudDialog',referBtmTypeCrudDialog)
+Vue.component('referSelectBtmAttrDialog',referSelectBtmAttrDialog)
 
 // 鍔犺浇鐩稿叧url鍦板潃
 Object.keys(urls).forEach(key => {
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 7ca7a33..9d36936 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -54,45 +54,62 @@
             @click="enableOrDeactivatse(scope.row.oid,'enable')">鍚� 鐢�
           </el-button>
         </template>
-        <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
+        <!-- 琛ㄦ牸涓婃柟鎸夐挳鍖哄煙 -->
         <template slot="menuLeft" slot-scope="scope">
           <el-button type="danger"
-                    size="small"
-                    icon="el-icon-delete"
-                    plain
-                    @click="handleDelete">鍒� 闄�
+            size="small"
+            icon="el-icon-delete"
+            plain
+            @click="handleDelete">
+            鍒� 闄�
           </el-button>
           <el-button size="small"
-                    icon="icon-kelong"
-                    plain
-                    @click="openCodeRuleDialog">鍏� 闅�
+            icon="icon-kelong"
+            plain
+            @click="openCodeRuleDialog">
+            鍏� 闅�
           </el-button>
           <el-button size="small"
-                    icon="icon-lianjiekelong"
-                    style="font-size: 12px;"
-                    plain
-                    @click="openOtherCodeRuleDialog">浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
+            icon="icon-lianjiekelong"
+            style="font-size: 12px;"
+            plain
+            @click="openOtherCodeRuleDialog">
+            浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
           </el-button>
           <el-button size="small"
-                    icon="el-icon-s-help"
-                    plain
-                    @click="handleRange">浣跨敤鑼冨洿
+            icon="el-icon-s-help"
+            plain
+            @click="handleRange">
+            浣跨敤鑼冨洿
           </el-button>
           <el-button size="small"
-                    icon="icon-qingkong"
-                    plain
-                    @click="clearAllCodeSec">娓呯┖鐮佸��
+              icon="icon-qingkong"
+              plain
+              @click="clearAllCodeSec">
+              娓呯┖鐮佸��
           </el-button>
+          <el-button size="small"
+            icon="el-icon-search"
+            plain
+            @click="openAdvancedQuery">
+            楂樼骇鏌ヨ
+        </el-button>
         </template>
       </avue-crud>
     </basic-container>
-
+    <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
+    <advanced-query
+      ref="advancedQuery"
+      :options="advancedQueryParam.options"
+      :visible.sync="advancedQueryParam.advancedQuerySettingBox"
+      v-model="value">
+    </advanced-query>
     <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
     <el-dialog title="缂栫爜瑙勫垯浣跨敤鑼冨洿"
       append-to-body
       :visible.sync="codeRangeSettingBox"
       width="800px"
-        style="height: 116vh; margin-top: -10vh;">
+      style="height: 116vh; margin-top: -10vh;">
       <avue-crud
         :option="dialogeOption" 
         :table-loading="dialogLoading"
@@ -401,7 +418,7 @@
             <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"
+                  v-for="item in enumParam.secTypeList"
                   :key="item.itemValue"
                   :label="item.itemName"
                   :value="item.itemValue">
@@ -429,7 +446,7 @@
               <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required>
                 <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                  v-for="item in codeSecLengthType"
+                  v-for="item in enumParam.codeSecLengthType"
                   :key="item.itemValue"
                   :label="item.itemName"
                   :value="item.itemValue">
@@ -486,7 +503,7 @@
               <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"
+                    v-for="item in enumParam.codeFillType"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -496,7 +513,7 @@
               <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"
+                    v-for="item in enumParam.codeFillSeparator"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -521,7 +538,7 @@
               <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth" required>
                 <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                    v-for="item in codeLevelType"
+                    v-for="item in enumParam.codeLevelType"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -534,7 +551,7 @@
               <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth" required>
                 <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                    v-for="item in codeCutType"
+                    v-for="item in enumParam.codeCutType"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -544,7 +561,7 @@
               <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
                 <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                    v-for="item in codeGetValueType"
+                    v-for="item in enumParam.codeGetValueType"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -560,7 +577,7 @@
                   placeholder="璇烽�夋嫨"
                   prefix-icon="el-icon-search"
                   readonly="true"
-                  v-model="form.referBtmId"
+                  v-model="form.referBtmName"
                   @focus="openAttrSelectOrGetValue('referBtmId')"
                   :disabled="basicSecOnlyRead">
                   <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i>
@@ -590,7 +607,7 @@
               <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required>
                 <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                    v-for="item in codeSecLengthType"
+                    v-for="item in enumParam.codeSecLengthType"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -623,7 +640,7 @@
               <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required>
                 <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
-                      v-for="item in codeFillType"
+                      v-for="item in enumParam.codeFillType"
                       :key="item.itemValue"
                       :label="item.itemName"
                       :value="item.itemValue">
@@ -633,7 +650,7 @@
               <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"
+                    v-for="item in enumParam.codeFillSeparator"
                     :key="item.itemValue"
                     :label="item.itemName"
                     :value="item.itemValue">
@@ -676,10 +693,10 @@
               <basic-container>
                 <div class="bbox">
                 <avue-crud
-                  :data="selectattrData"
-                  :option="attrOption"
-                  :table-loading="selectAttrOptionLoading"
-                  ref="selectionAttrCrud"
+                  :data="selectAttrParams.selectAttrData"
+                  :option="selectAttrParams.attrOption"
+                  :table-loading="selectAttrParams.selectAttrOptionLoading"
+                  :ref="selectAttrParams.ref"
                   @search-change="selectAttrSearchChange"
                   @search-reset="searchAttrReset"
                   @row-click="selectionAttrRowClick"
@@ -697,25 +714,27 @@
       </el-dialog>
 
       <!-- 绗簩灞傚璇濇,灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗璇濇缁勪欢 -->
-      <formula-editor ref="formulaEditor" 
+      <formula-editor 
+        ref="formulaEditor" 
         @updateFormulaContent="updateFormulaContent" 
-        :thisSceneTableData="thisSceneTableData"
-        :systemVariableTableData="systemVariableTableData">
+        :thisSceneTableData="formulaEditorParams.thisSceneTableData"
+        :visible.sync="formulaEditorParams.formulaEditorSettingBox"
+        :systemVariableTableData="formulaEditorParams.systemVariableTableData">
       </formula-editor>
 
       <!-- 绗簩灞傚璇濇,涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊煎璇濇 -->
       <el-dialog title="涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊�"
         append-to-body
-        :visible.sync="isShowParentClassifyOption"
+        :visible.sync="parentClsfyParams.isShowParentClassifySettingBox"
         width="65%"
         style="height: 150vh; margin-top: -13vh;"
         destroy-on-close>
         <avue-crud
-          :page.sync="parentClassifyDataPage"
-          ref="crudParentClassify"
-          :option="parentClassifyParentOption" 
-          :table-loading="classifyDialogLoading"
-          :data="parentClassifyData"
+          :page.sync="parentClsfyParams.parentClassifyDataPage"
+          :ref="parentClsfyParams.ref"
+          :option="parentClsfyParams.parentClassifyParentOption" 
+          :table-loading="parentClsfyParams.classifyDialogLoading"
+          :data="parentClsfyParams.parentClassifyData"
           @refresh-change="refreshParentClassifyDataChange"
           @search-change="parentClassifySearchChange"
           @search-reset="parentClassifySearchReset"
@@ -727,35 +746,16 @@
         </avue-crud>
         <div slot="footer" class="dialog-footer">
           <el-button type="primary" @click="saveSelectedParentClassify">淇� 瀛�</el-button>
-          <el-button @click="isShowParentClassifyOption = false">鍙� 娑�</el-button>
+          <el-button @click="parentClsfyParams.isShowParentClassifySettingBox = false">鍙� 娑�</el-button>
         </div>
       </el-dialog>
 
-      <!-- 绗簩灞傚璇濇,涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊煎脊瀵硅瘽妗� -->
-      <el-dialog title="涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
-        append-to-body
-        :visible.sync="isShowSelectReferBtmOption"
-        width="65%"
-        style="height: 150vh; margin-top: -13vh;">
-        <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"
-          @row-click="referBtmRowClick">
-        </avue-crud>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="saveSelectedreferBtm">淇� 瀛�</el-button>
-          <el-button @click="isShowSelectReferBtmOption = false">鍙� 娑�</el-button>
-        </div>
-      </el-dialog>
+      <!-- 绗簩灞傚璇濇,涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊煎璇濇 -->
+      <refer-btm-type-crud-dialog
+        :visible.sync="referBtmDialogParams.selectReferBtmSettingBox"
+        :ref="referBtmDialogParams.ref"
+        @echoReferBtmType="echoReferBtmType">
+      </refer-btm-type-crud-dialog>
 
       <!-- 绗簩灞傚璇濇,鑷畾涔夊弬鐓ч厤缃瓼orm缁勪欢 -->
       <refer-config-form-dialog
@@ -793,7 +793,7 @@
   import optionBasic from "@/const/code/codebasic";
   import cloneOption from "@/const/code/cloneOption";
   import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
-  import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption.js";
+  import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
   import optionRule from "@/const/code/mdmrule";
   import attrOption from "@/const/code/selectAttrOptionDialog";
   import treeOption from "@/const/code/classifyTreeOptionDialog";
@@ -803,9 +803,14 @@
   import fixedValueOption from "@/const/code/fixedValueMgrDialog";
   import {mapGetters} from "vuex";
   import func from "@/util/func";
+  import {MasterTable} from "@/api/GetItem";
+import referBtmTypeCrudDialog from '../../components/code-dialog-page/referBtmTypeCrudDialog.vue';
+
   export default {
+  components: { referBtmTypeCrudDialog },
       data() {
         return {
+          value:"1",
           ruleForm: {},
           query: {},
           loading: true,
@@ -916,103 +921,107 @@
           treeOption: treeOption,
           currentSelectTreeData: '', //褰撳墠閫変腑鐨勬爲鑺傜偣
           /* 涓哄睘鎬ч�夊�煎彸渚ц〃鏍肩浉鍏虫暟鎹� */
-          attrOption: attrOption,
-          selectattrData: [],
-          selectAttrOptionLoading: false,
-          selectionChangeAttrList: [],
-          // 灞炴�х爜娈碉紝鍏紡缂栬緫妗嗙粍浠剁殑鏈満鏅樉绀哄彉閲忋�佷笌绯荤粺鍙橀噺
-          thisSceneTableData: [
-            {
-                formula: "${}",
-                desc: "",
-            }
-          ],
-          systemVariableTableData: [
-            {
-                formula: "#CURRENTUSER.OID#",
-                desc: "褰撳墠鐢ㄦ埛鐨勪富閿�",
-            },
-            {
-                formula: "#CURRENTUSER.ID#",
-                desc: "褰撳墠鐢ㄦ埛鐨勮处鎴�",
-            },
-            {
-                formula: "#CURRENTTIME#",
-                desc: "褰撳墠鏃堕棿",
-            },
-            {
-                formula: "#CURRENTDATE#",
-                desc: "褰撳墠鏃ユ湡",
-            },
-            {
-                formula: "#CURRENTDATETIME#",
-                desc: "褰撳墠鏃ユ湡鏃堕棿",
-            },
-            {
-                formula: "#CURRENTUSER_NAME#",
-                desc: "褰撳墠鐢ㄦ埛鐨勫鍚�",
-            },
-            {
-                formula: "#CURRENTUSER.SECRETGRADE#",
-                desc: "褰撳墠鐢ㄦ埛瀵嗙骇",
-            },
-            {
-                formula: "#CURRENTUSER.IPSECRET#",
-                desc: "褰撳墠鐢ㄦ埛鐨処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
+          
+          selectAttrParams: {
+            ref: "selectionAttrCrud",
+            attrOption: attrOption,
+            selectAttrData: [],
+            selectAttrOptionLoading: false,
+            selectionChangeAttrList: [],
+            selectAttrQeury: {},
           },
-          parentClassifyQuery: {}, //鏌ヨ鏉′欢
-          parentClassifySelectionList: [], //褰撳墠閫変腑琛�
 
+          // 灞炴�х爜娈碉紝鍏紡缂栬緫妗嗙粍浠剁殑鏈満鏅樉绀哄彉閲忋�佷笌绯荤粺鍙橀噺
+          formulaEditorParams: {
+            thisSceneTableData: [
+              {
+                  formula: "${}",
+                  desc: "",
+              }
+            ],
+            systemVariableTableData: [
+              {
+                  formula: "#CURRENTUSER.OID#",
+                  desc: "褰撳墠鐢ㄦ埛鐨勪富閿�",
+              },
+              {
+                  formula: "#CURRENTUSER.ID#",
+                  desc: "褰撳墠鐢ㄦ埛鐨勮处鎴�",
+              },
+              {
+                  formula: "#CURRENTTIME#",
+                  desc: "褰撳墠鏃堕棿",
+              },
+              {
+                  formula: "#CURRENTDATE#",
+                  desc: "褰撳墠鏃ユ湡",
+              },
+              {
+                  formula: "#CURRENTDATETIME#",
+                  desc: "褰撳墠鏃ユ湡鏃堕棿",
+              },
+              {
+                  formula: "#CURRENTUSER_NAME#",
+                  desc: "褰撳墠鐢ㄦ埛鐨勫鍚�",
+              },
+              {
+                  formula: "#CURRENTUSER.SECRETGRADE#",
+                  desc: "褰撳墠鐢ㄦ埛瀵嗙骇",
+              },
+              {
+                  formula: "#CURRENTUSER.IPSECRET#",
+                  desc: "褰撳墠鐢ㄦ埛鐨処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: "褰撳墠鐢ㄦ埛鎵�灞炶鑹插悕绉�",
+              },
+            ],
+            formulaEditorSettingBox: false,
+          },
+          
+          /* 鐖跺垎绫荤爜娈靛璇濇 */
+          parentClsfyParams: {
+            ref: 'crudParentClassify',
+            isShowParentClassifySettingBox: false, //鐖跺垎绫荤爜娈靛璇濇鏄剧ず鎺у埗
+            classifyDialogLoading: true, //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+            parentClassifyParentOption: parentClassifyParentOption,  //琛ㄦ牸閰嶇疆
+            parentClassifyData: [], //琛ㄦ牸鏁版嵁
+            //鍒嗛〉鍙傛暟閰嶇疆
+            parentClassifyDataPage: {
+              pageSize: 10,
+              currentPage: 1,
+              total: 0
+            },
+            parentClassifyQuery: {}, //鏌ヨ鏉′欢
+            parentClassifySelectionList: [], //褰撳墠閫変腑琛�
+          },
           
           /** 鍙傜収寮曠敤鐨勪笟鍔$被鍨嬪璇濇鐩稿叧鏁版嵁 */
-          isShowSelectReferBtmOption: false,   //瀵硅瘽妗嗘樉绀烘帶鍒�
-          referBtmDialogLoading: true,   //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
-          referBtmDataPage: {
-            pageSize: 10,
-            currentPage: 1,
-            total: 0
+          referBtmDialogParams: {
+            ref: 'crudReferBtm',
+            selectReferBtmSettingBox: false,
           },
-          referBtmOption: referBtmOption, //琛ㄦ牸閰嶇疆
-          referBtmData: [], //琛ㄦ牸鏁版嵁
-          referBtmQuery: {}, //鏌ヨ鏉′欢
-          referBtmSelectionList: [], //褰撳墠閫変腑琛�
 
           /** 鍩虹鐮佹鏂板琛ㄥ崟 */
           form: {
@@ -1027,79 +1036,85 @@
             componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
             pkCodeRule: '', //鎵�灞炵紪鐮佽鍒�
           },
-          // formRules: {
-          //   id: [
-          //     { required: true, message: '璇疯緭鍏ョ爜娈电紪鍙�', trigger: 'blur' },
-          //   ],
-          //   name: [
-          //     { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
-          //   ],
-          //   secType: [
-          //     { required: true, message: '璇烽�変腑鐮佹绫诲瀷', trigger: 'change' },
-          //   ],
-          //   codeSecLengthType: [
-          //     { required: true, message: '璇烽�夋嫨鐮佹闀垮害绫诲瀷', trigger: 'change' },
-          //   ],
-          //   codeSecLength: [
-          //     { required: true, message: '璇疯緭鍏ョ爜娈电殑闀垮害', trigger: ['blur', 'change']},
-          //     { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
-          //   ],
-          //   referAttributeName: [
-          //     { required: true, message: '璇烽�夋嫨灞炴��', trigger: 'change' },
-          //   ],
-          //   serialStart: [
-          //     { type: 'number', message: '娴佹按鍙风殑璧峰鍊煎繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
-          //   ],
-          //   serialStep: [
-          //     { type: 'number', message: '娴佹按鐨勬闀垮繀椤讳负鏁板瓧鍊�',trigger: ['blur', 'change']}
-          //   ],
-          //   codeFillType: [
-          //     { required: true, message: '璇烽�夋嫨缂栫爜琛ヤ綅鏂瑰紡', trigger: ['blur', 'change']},
-          //   ],
-          //   // 璁剧疆琛ヤ綅鏃剁殑瀛楃锛岄渶瑕佽嚜瀹氫箟鏉ュ仛鍒ゆ柇
-          //   codeFillSeparatorSelect: [
-          //     { validator: validateCodeFill, trigger: ['blur', 'change'] },
-          //   ],
-          //   codeFillLength: [
-          //     { required: true, message: '璇疯緭鍏ュ~鍏呴暱搴�', trigger: ['blur', 'change'] },
-          //     { type: 'number', message: '濉厖闀垮害蹇呴』涓烘暟瀛楀��',trigger: ['blur', 'change']}
-          //   ],
-          //   codeFillLimit: [
-          //     { required: true, message: '璇疯緭鍏ユ祦姘翠笂闄�', trigger: ['blur', 'change'] },
-          //     { type: 'number', message: '娴佹按涓婇檺蹇呴』涓烘暟瀛楀��',trigger: ['blur', 'change']}
-          //   ],
-          //   codeLevelType: [
-          //     { required: true, message: '璇烽�夋嫨灞傜骇绫诲瀷', trigger: 'change' },
-          //   ],
-          //   codeLevelValue: [
-          //     { required: false, type: 'number', message: '灞傜骇鐨勫�煎繀椤讳负鏁板瓧鍊�', trigger: 'change'}
-          //   ],
-          //   valueCutType: [
-          //     { required: true, message: '璇烽�夋嫨瀛楃鎴彇绫诲瀷', trigger: 'change' },
-          //   ],
-          //   referBtmId: [
-          //     { required: true, message: '璇烽�夋嫨鍙傜収搴旂敤鐨勪笟鍔$被鍨�', trigger: 'change' },
-          //   ],
-          //   referConfig: [
-          //     { required: true, message: '璇烽�夋嫨鍙傜収閰嶇疆', trigger: 'change' },
-          //   ],
-          //   codeDateFormatStr: [
-          //     { required: true, message: '璇疯緭鍏ユ棩鏈熸牸寮�', trigger: ['blur', 'change'] },
-          //   ],
-
-          // },
+          
           //鏋氫妇鍜屽彲杈撳彲閫夋煡璇�
-          sectypeList:[],    //鐮佹绫诲瀷
-          codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
-          codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
-          codeFillSeparator:[], //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夊唴瀹�
-          codeLevelType:[],     //灞傜骇绫诲瀷
-          codeCutType:[],       //瀛楃鎴彇绫诲瀷
-          codeGetValueType:[],  //鍙栧�肩被鍨�
+          enumParam: {
+            secTypeList:[],    //鐮佹绫诲瀷
+            codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
+            codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
+            codeFillSeparator:[], //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夊唴瀹�
+            codeLevelType:[],     //灞傜骇绫诲瀷
+            codeCutType:[],       //瀛楃鎴彇绫诲瀷
+            codeGetValueType:[],  //鍙栧�肩被鍨�
+          },
 
           //琛ㄥ崟鍏冪礌鏍囩瀹藉害
           leftFormLabelWidth: '110px',
           rightFormLabelWidth: '150px',
+
+          // 楂樼骇鏌ヨ瀵硅瘽妗嗙浉鍏冲弬鏁�
+          advancedQueryParam: {
+            advancedQuerySettingBox: false,
+            searchForm: {
+              name: 'advanced',
+            },
+            options: {
+              labelWidth: '110px',
+              // 鏌ヨ瀛楁
+              searchfeildName: [
+                    {
+                      label: '缂栧彿',
+                      value: 'id',
+                    },
+                    {
+                      label: '鍚嶇О',
+                      value: 'name',
+                    },
+                    {
+                      label: '鐘舵��',
+                      value: 'status',
+                    },
+              ], 
+              // 鏌ヨ鏉′欢 绛変簬銆佸寘鍚�佷笉绛変簬銆佷粙浜庘�︹��
+              searchCondition: [
+                {
+                  label: '绛変簬',
+                  value: '=',
+                },
+                {
+                  label: '鍖呭惈',
+                  value: 'like',
+                },
+                {
+                  label: '澶т簬绛変簬',
+                  value: '>=',
+                },
+                {
+                  label: '灏忎簬绛変簬',
+                  value: '<=',
+                },
+                {
+                  label: '涓嶇瓑浜�',
+                  value: '!=',
+                },
+                {
+                  label: '浠嬩簬',
+                  value: 'between',
+                },
+              ], 
+              column: [
+                {
+                  type: 'text',
+                  
+                  
+                },
+                {
+                  
+                },
+              ],
+            },
+          },
+          
 
         };
       },
@@ -1114,13 +1129,20 @@
           };
         },
       },
+      created() {
+          MasterTable({
+            codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
+            functionId: 5,
+          }).then(res=>{
+            console.log(res.data.tableDefineVO.seniorQueryColumns);
+          }) 
+      },
       methods: {
 
         /* 鍏紡缂栬緫妗嗗唴瀹规敼鍙�,瀛愮粍浠剁紪杈戝畬鍏紡涔嬪悗鍐呭鍥炴樉鏃惰皟鐢� */
         updateFormulaContent(content){
           this.form.getValueClass = content;
         },
-
         /* 寮曠敤鐮佹鍙傜収閰嶇疆,瀛愮粍浠跺~瀹屽弬鐓ч厤缃箣鍚庡唴瀹瑰洖鏄炬椂璋冪敤 */
         echoReferConfig(content){
           // console.log(content.referTypeName);
@@ -1130,137 +1152,72 @@
           let submitFormJson = JSON.stringify(content);
           this.form.referConfig = submitFormJson;
         },
+        /** 寮曠敤鐮佹涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊间箣鍚庣殑鍐呭鍥炴樉鏃惰皟鐢� */
+        echoReferBtmType(content){
+            // 瀹炵幇鍥炴樉
+            this.form.referBtmId = content.id;
+            this.form.referBtmName = content.name;
+        },
         
-        /** 涓哄弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷閫夊彇鍊硷紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉�  */
-        // 琛ㄦ牸鏁版嵁鍒锋柊鎸夐挳
-        referBtmDataChange(){
-          this.referBtmOnLoad(this.referBtmDataPage, this.referBtmQuery);
-        },
-        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();
-        },
-         // 鍗曞嚮閫変腑琛ㄦ牸琛屾椂瑙﹀彂
-        referBtmRowClick(row){
-          this.$refs.crudReferBtm.toggleSelection();
-          this.referBtmSelectionList = row;
-          this.$refs.crudReferBtm.setCurrentRow(row);
-          this.$refs.crudReferBtm.toggleRowSelection(row); //閫変腑褰撳墠琛�
-        },
-        referBtmSelectionChange(list) {
-          this.referBtmSelectionList = list;
-          this.$refs.crudReferBtm.setCurrentRow(this.referBtmSelectionList[list.length-1]);
-        },
-        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.$nextTick(() => {
-            this.$refs.crudReferBtm.doLayout();
-          })
-          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){
+          //console.log(this.parentClsfyParams.parentClassifySelectionList.length);
+          if(this.parentClsfyParams.parentClassifySelectionList.length != 1){
             this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�!");
             return false;
           }
           //鍙傛暟鍊硷紝瀹炵幇鍥炴樉
-          this.form.parentClassifySecOid = this.parentClassifySelectionList[0].oid;
-          this.form.parentClassifySecText = this.parentClassifySelectionList[0].name;
+          this.form.parentClassifySecOid = this.parentClsfyParams.parentClassifySelectionList[0].oid;
+          this.form.parentClassifySecText = this.parentClsfyParams.parentClassifySelectionList[0].name;
           //娓呯┖褰撳墠閫変腑鐨勮
           this.parentClassifySelectionClear();
-          this.isShowParentClassifyOption = false;
+          this.parentClsfyParams.isShowParentClassifySettingBox = false;
         },
         parentClassifySearchReset() {
-          this.parentClassifyQuery = {};
-          this.parentClassifyOnLoad(this.parentClassifyDataPage);
+          this.parentClsfyParams.parentClassifyQuery = {};
+          this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage);
         },
         parentClassifySearchChange(params, done) {
-          this.parentClassifyQuery = params;
-          this.parentClassifyDataPage.currentPage = 1;
+          this.parentClsfyParams.parentClassifyQuery = params;
+          this.parentClsfyParams.parentClassifyDataPage.currentPage = 1;
           this.parentClassifyOnLoad(this.page, params);
           done();
         },
         parentClassifyRowClick(row){
-          this.$refs.crudParentClassify.toggleSelection();
-          this.parentClassifySelectionList = row;
-          this.$refs.crudParentClassify.setCurrentRow(row);
-          this.$refs.crudParentClassify.toggleRowSelection(row); //閫変腑褰撳墠琛�
+          this.$refs[this.parentClsfyParams.ref].toggleSelection();
+          this.parentClsfyParams.parentClassifySelectionList = row;
+          this.$refs[this.parentClsfyParams.ref].setCurrentRow(row);
+          this.$refs[this.parentClsfyParams.ref].toggleRowSelection(row); //閫変腑褰撳墠琛�
         },
         parentClassifySelectionChange(list) {
-          this.parentClassifySelectionList = list;
-          this.$refs.crudParentClassify.setCurrentRow(this.parentClassifySelectionList[list.length-1]);
+          this.parentClsfyParams.parentClassifySelectionList = list;
+          this.$refs[this.parentClsfyParams.ref].setCurrentRow(this.parentClsfyParams.parentClassifySelectionList[list.length-1]);
         },
         parentClassifySelectionClear() {
-          this.parentClassifySelectionList = [];
-          this.$refs.crudParentClassify.toggleSelection();
+          this.parentClsfyParams.parentClassifySelectionList = [];
+          this.$refs[this.parentClsfyParams.ref].toggleSelection();
         },
         parentClassifyCurrentChange(currentPage){
-          this.parentClassifyDataPage.currentPage = currentPage;
+          this.parentClsfyParams.parentClassifyDataPage.currentPage = currentPage;
         },
         parentClassifySizeChange(pageSize){
-          this.parentClassifyDataPage.pageSize = pageSize;
+          this.parentClsfyParams.parentClassifyDataPage.pageSize = pageSize;
         },
         refreshParentClassifyDataChange() {
-          this.parentClassifyOnLoad(this.parentClassifyDataPage, this.parentClassifyQuery);
+          this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage, this.parentClsfyParams.parentClassifyQuery);
         },
         parentClassifyOnLoad(page, params = {}) {
-          this.classifyDialogLoading = true;
+          let parentClsParam = this.parentClsfyParams;
+          parentClsParam.classifyDialogLoading = true;
           let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
           Object.assign(params,{pkCodeRule:oid})
-          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
+          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, parentClsParam.parentClassifyQuery)).then(res => {
             //console.log(res.data);
             const data = res.data.data;
-            this.parentClassifyDataPage.total = data.total;
-            this.parentClassifyData = data.records;
-            this.classifyDialogLoading = false;
+            parentClsParam.parentClassifyDataPage.total = data.total;
+            parentClsParam.parentClassifyData = data.records;
+            parentClsParam.classifyDialogLoading = false;
             this.parentClassifySelectionClear();
           });
         },
@@ -1273,48 +1230,62 @@
           this.loadlistClassifyLinkAttr()
         },
         // 鍔犺浇鍒嗙被杩炴帴灞炴�ц〃鏍兼暟鎹�
-        loadlistClassifyLinkAttr(condition) {
-          //杩欏効杩橀渶瑕佸畬鍠�
-          this.selectAttrOptionLoading = true;
-          listClassifyLinkAttr({"page": 1,"limit": -1,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid}).then(res=>{
-            console.log(res.data.data);
-            this.selectattrData = res.data.data;
-            this.selectAttrOptionLoading = false;
+        loadlistClassifyLinkAttr() {
+          let attrParam = this.selectAttrParams;
+          //console.log(this.currentSelectTreeData);
+          attrParam.selectAttrOptionLoading = true;
+          let param = {};
+          // 澶氫釜conditionMap杩欐牱浼犲弬
+          if(attrParam.selectAttrQeury){
+              Object.keys(attrParam.selectAttrQeury).forEach(key=>{
+                  param['conditionMap['+key+']'] = attrParam.selectAttrQeury[key];
+              });
+          }
+          param['conditionMap[codeClassifyOid]'] = this.currentSelectTreeData.oid;
+          param['conditionMap[btmTypeOid]'] = this.currentSelectTreeData.btmTypeOid;
+          listClassifyLinkAttr(param).then(res=>{
+            //console.log(res.data.data);
+            attrParam.selectAttrData = res.data.data;
+            attrParam.selectAttrOptionLoading = false;
+            this.$nextTick(() => {
+                this.$refs[attrParam.ref].doLayout()
+            });
           })
         },
         // 鐐瑰嚮鎼滅储鍚庤Е鍙戣浜嬩欢
         selectAttrSearchChange(params, done) {
-          this.query = params;
+          this.selectAttrParams.selectAttrQeury = params;
           //console.log(params);  //杩欏効闇�瑕佹敼
-          this.loadlistClassifyLinkAttr(Object.assign(params,{'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid}));
+          this.loadlistClassifyLinkAttr();
           done();
         },
         // 涓哄睘鎬ч�夊�肩晫闈紝鍗曞嚮琛ㄦ牸琛屾椂瑙﹀彂璇ヤ簨浠�
         selectionAttrRowClick(row){
-          this.$refs.selectionAttrCrud.toggleSelection();
-          this.selectionChangeAttrList = row;
-          this.$refs.selectionAttrCrud.setCurrentRow(row);
-          this.$refs.selectionAttrCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+          this.$refs[this.selectAttrParams.ref].toggleSelection();
+          this.selectAttrParams.selectionChangeAttrList = row;
+          this.$refs[this.selectAttrParams.ref].setCurrentRow(row);
+          this.$refs[this.selectAttrParams.ref].toggleRowSelection(row); //閫変腑褰撳墠琛�
         },
         // 灞炴�у彇鍊煎綋鍓嶉�変腑琛屽彂鐢熷彉鍖栨椂瑙﹀彂
         selectionChangeAttr(list){
-          this.selectionChangeAttrList = list;
-          this.$refs.selectionAttrCrud.setCurrentRow(this.selectionChangeAttrList[list.length-1]);
+          this.selectAttrParams.selectionChangeAttrList = list;
+          this.$refs[this.selectAttrParams.ref].setCurrentRow(this.selectAttrParams.selectionChangeAttrList[list.length-1]);
         },
         // 閲嶇疆浣嶅睘鎬ч�夊彇鍊艰〃鏍肩殑鎼滅储妗嗕箣鍚庣殑鍥炶皟
         searchAttrReset() {
+          this.selectAttrParams.selectAttrQeury = {};
           this.loadlistClassifyLinkAttr()
         },
         // 涓哄睘鎬ч�夊彇鍊间箣鍚庣殑鍥炴樉
         selectedListClassifyLinkAttr(){
-          if(this.selectionChangeAttrList.length != 1){
+          if(this.selectAttrParams.selectionChangeAttrList.length != 1){
             this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�!");
             return false;
           }
           //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
           this.form = Object.assign({}, this.form, {
-            referAttributeId:this.selectionChangeAttrList[0].id,
-            referAttributeName:this.selectionChangeAttrList[0].name,
+            referAttributeId:this.selectAttrParams.selectionChangeAttrList[0].id,
+            referAttributeName:this.selectAttrParams.selectionChangeAttrList[0].name,
             referCodeClassifyOid: this.currentSelectTreeData.key,
             referCodeClassifyOidName: this.currentSelectTreeData.title,
           })
@@ -1377,8 +1348,16 @@
               window.console.log(error);
             });
           }else {
+            if(this.codeClassifyForm.id.trim() == ''){
+              this.$message.warning("鐮佸�间笉鑳戒负绌猴紒");
+              return;
+            }
+            if(this.codeClassifyForm.id.trim().length > 4 ){
+              this.$message.warning("鐮佸�奸暱搴︿笉鑳藉ぇ浜�4锛�");
+              return;
+            }
             this.codeClassifyForm.codeClassifySecOid = this.codefixedsecOrCodeclassifysecOid;
-            console.log(this.codeClassifyForm);
+            // console.log(this.codeClassifyForm);
             addSaveCodeClassifyValue(this.codeClassifyForm).then(() => {
               this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid});
               this.clearFixedOrClassifyForm('codeclassifyvaluesec');
@@ -2052,6 +2031,12 @@
 
 
         /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
+        // 鎵撳紑楂樼骇鏌ヨ绐楀彛
+        openAdvancedQuery(){
+          //this.$refs.advancedQuery.visible = true;
+          //this.advancedQueryParam.timer = new Date().getTime()
+          this.advancedQueryParam.advancedQuerySettingBox = !this.advancedQueryParam.advancedQuerySettingBox;
+        },
         // 鏌ヨ浣跨敤鑼冨洿
         handleRange(){
           if(!this.tipsMessage(this.selectionList)){
@@ -2377,23 +2362,24 @@
             this.isShowSelectAttrOption = true;
           }else if(condition === 'value'){
             //鎵撳紑鍏紡缂栬緫妗嗭紝绗簩灞傚祵濂楀璇濇
-            this.$refs.formulaEditor.isShowformulaEdit = true;
+            //this.$refs.formulaEditor.isShowformulaEdit = true;
+            this.formulaEditorParams.formulaEditorSettingBox = true;
           }else if(condition === 'parentClassifySecOid'){
-            this.isShowParentClassifyOption = true;
+            this.parentClsfyParams.isShowParentClassifySettingBox = true;
           }else if(condition === 'referBtmId'){
-            this.isShowSelectReferBtmOption = true;
-            this.refreshReferBtmDataChange();
+            this.referBtmDialogParams.selectReferBtmSettingBox = true;
+            // 璋冪敤瀛愮粍浠跺埛鏂拌〃鏍兼暟鎹�
+            this.$refs[this.referBtmDialogParams.ref].referBtmOnLoad();
           }else if(condition === 'referConfig'){
             if(func.notEmpty(this.form.referConfig) || func.notEmpty(this.form.referBtmName)){
               this.openReconfigInterFace(this.form);
             }else{
               this.openTipsChooseOrCust();
             }
-             //this.$refs.referConfigFormDialog.onloadAttrData();
           }
         },
 
-        // 褰撳墠宸插瓨鍦ㄧ紪杈戣繃鐨勫弬灞曢厤缃紝鎵�浠ョ洿鎺ユ墦寮�鍙傜収閰嶇疆鐣岄潰
+        // 褰撳墠宸插瓨鍦ㄧ紪杈戣繃鐨勫弬鐓ч厤缃紝鎵�浠ョ洿鎺ユ墦寮�鍙傜収閰嶇疆鐣岄潰
         openReconfigInterFace(preReferConfigForm){
           // console.log(preReferConfigForm);
           this.$refs.referConfigFormDialog.isShowReferConfigForm = true;
@@ -2458,7 +2444,7 @@
         // 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��
         changeSectypeFormItems(row){     
           //console.log(row);   
-          if(this.sectypeList.length==0){
+          if(this.enumParam.secTypeList.length==0){
             this.loadCodeSecType();
           }
           if(row != null){
@@ -2512,7 +2498,7 @@
               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', //缂栫爜琛ヤ綅鏂瑰紡
+              codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //缂栫爜琛ヤ綅鏂瑰紡
               codeFillSeparatorSelect: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparatorSelect:0,    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
               codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:0,          //琛ヤ綅鏃剁殑瀛楃
               codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'',              //濉厖闀垮害
@@ -2573,38 +2559,38 @@
         //鏋氫妇鍜屽彲杈撳彲閫夊唴瀹规煡璇�
         loadCodeSecType(){
           getDictionary({code: "codeSecType"}).then(res=>{
-            this.sectypeList = res.data.data;
+            this.enumParam.secTypeList = res.data.data;
           })
           this.loadCodeSecLength();
         },
         loadCodeSecLength(){
           getDictionary({code: "codeSecLength"}).then(res=>{
-            this.codeSecLengthType = res.data.data;
+            this.enumParam.codeSecLengthType = res.data.data;
           })
         },
         loadCodeFillType(){
           getDictionary({code: "codeFillType"}).then(res=>{
-            this.codeFillType = res.data.data;
+            this.enumParam.codeFillType = res.data.data;
           })
         },
         loadCodeFillSeparator(){
           getDictionary({code: "codeFillSeparator"}).then(res=>{
-            this.codeFillSeparator = res.data.data;
+            this.enumParam.codeFillSeparator = res.data.data;
           })
         },
         loadCodeLevelType(){
           getDictionary({code: "codeLevelType"}).then(res=>{
-            this.codeLevelType = res.data.data;
+            this.enumParam.codeLevelType = res.data.data;
           })
         },
         loadCodeCutType(){
           getDictionary({code: "codeCutType"}).then(res=>{
-            this.codeCutType = res.data.data;
+            this.enumParam.codeCutType = res.data.data;
           })
         },
         loadCodeGetValueType(){
           getDictionary({code: "codeGetValueType"}).then(res=>{
-            this.codeGetValueType = res.data.data;
+            this.enumParam.codeGetValueType = res.data.data;
           })
         },
         
@@ -2667,11 +2653,11 @@
   }
 
   .el-card__body > .treeBox {
-    height: 50vh;
+    height: 56vh;
   }
 
   .el-col-5 > .box {
-    height: 55vh;
+    height: 56vh;
   }
 
   .operator_,filter, .layui-btn{
@@ -2694,6 +2680,7 @@
   /** 鏂板鐮佹 */
   .add-basicsec-total {
     width: 100%;
+    padding: 20px 0 0 0;
   }
 
   .add-basicsec-total .el-input__inner,.add-basicsec-total .el-textarea__inner {
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsattributeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsattributeDTO.java
deleted file mode 100644
index db37b16..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsattributeDTO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.dto;
-
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 灞炴�ф樉绀哄璞� 鏁版嵁浼犺緭瀵硅薄瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsattributeDTO extends CodeOsattributeEntity {
-	private static final long serialVersionUID = 1L;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeDTO.java
deleted file mode 100644
index 69aca75..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeDTO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.dto;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 涓氬姟绫诲瀷 鏁版嵁浼犺緭瀵硅薄瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeDTO extends CodeOsbtmtypeEntity {
-	private static final long serialVersionUID = 1L;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeattributeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeattributeDTO.java
deleted file mode 100644
index e947292..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeattributeDTO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.dto;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鏁版嵁浼犺緭瀵硅薄瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeattributeDTO extends CodeOsbtmtypeattributeEntity {
-	private static final long serialVersionUID = 1L;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
index 2089d52..799f7dc 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
@@ -213,7 +213,7 @@
      * 灞炴�ф帶鍒惰緭鍏ョ殑闀垮害
      */
     //@Column(columnDefinition = "灞炴�ф帶鍒惰緭鍏ョ殑闀垮害",defaultValue = "254")
-    private Integer controlLength = 254;
+    private Integer controlLength;
 
     /**
      * 琛ㄥ崟涓婃樉绀虹殑鏍峰紡
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
deleted file mode 100644
index c0b753d..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.vci.ubcs.starter.revision.model.BaseModel;
-import lombok.Data;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.EqualsAndHashCode;
-
-/**
- * 灞炴�ф樉绀哄璞� 瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@TableName("PL_CODE_OSATTRIBUTE")
-@ApiModel(value = "CodeOsattribute瀵硅薄", description = "灞炴�ф樉绀哄璞�")
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsattributeEntity extends BaseModel {
-
-
-	/**
-	 * 灞炴�х被鍨嬶紝浣跨敤鏋氫妇VCIFIELDTYPEENUM
-	 */
-	@ApiModelProperty(value = "灞炴�х被鍨嬶紝浣跨敤鏋氫妇VCIFIELDTYPEENUM")
-	private String attributedatatype;
-	/**
-	 * 灞炴�х被鍨嬫樉绀烘枃鏈�
-	 */
-	@ApiModelProperty(value = "灞炴�х被鍨嬫樉绀烘枃鏈�")
-	private String attributedatatypetext;
-	/**
-	 * 鏄惁鍙互涓虹┖
-	 */
-	@ApiModelProperty(value = "鏄惁鍙互涓虹┖")
-	private String nullableflag;
-	/**
-	 * 榛樿鍊�
-	 */
-	@ApiModelProperty(value = "榛樿鍊�")
-	private String defaultvalue;
-	/**
-	 * 浣跨敤鏋氫妇鑻辨枃鍚嶇О
-	 */
-	@ApiModelProperty(value = "浣跨敤鏋氫妇鑻辨枃鍚嶇О")
-	private String enumid;
-	/**
-	 * 浣跨敤鏋氫妇鐨勪腑鏂囧悕绉�
-	 */
-	@ApiModelProperty(value = "浣跨敤鏋氫妇鐨勪腑鏂囧悕绉�")
-	private String enumname;
-	/**
-	 * 鍙傜収鐨勪笟鍔$被鍨嬬紪鍙�
-	 */
-	@ApiModelProperty(value = "鍙傜収鐨勪笟鍔$被鍨嬬紪鍙�")
-	private String btmtypeid;
-	/**
-	 * 鍙傜収鐨勪笟鍔$被鍨嬪悕绉�
-	 */
-	@ApiModelProperty(value = "鍙傜収鐨勪笟鍔$被鍨嬪悕绉�")
-	private String btmtypename;
-	/**
-	 * 灞炴�х殑闀垮害
-	 */
-	@ApiModelProperty(value = "灞炴�х殑闀垮害")
-	private Short attrlength;
-	/**
-	 * 灏忔暟绮惧害浣嶆暟
-	 */
-	@ApiModelProperty(value = "灏忔暟绮惧害浣嶆暟")
-	private Short precisionlength;
-	/**
-	 * 灏忔暟鍒诲害浣嶆暟
-	 */
-	@ApiModelProperty(value = "灏忔暟鍒诲害浣嶆暟")
-	private Short scalelength;
-	/**
-	 * 鍙栧�艰寖鍥�
-	 */
-	@ApiModelProperty(value = "鍙栧�艰寖鍥�")
-	private String range;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
deleted file mode 100644
index 8d35164..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.vci.ubcs.starter.revision.model.BaseModel;
-import lombok.Data;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.EqualsAndHashCode;
-
-/**
- * 涓氬姟绫诲瀷 瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@Data
-@TableName("PL_CODE_OSBTMTYPE")
-@ApiModel(value = "PLCodeOsbtmtype瀵硅薄", description = "涓氬姟绫诲瀷")
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeEntity  extends BaseModel {
-
-	/**
-	 * 搴忓垪鍖�
-	 */
-	private static final long serialVersionUID = -7142347409100551299L;
-
-	/**
-	 * 鏁版嵁搴撹〃鐨勫悕绉�
-	 */
-	@ApiModelProperty(value = "鏁版嵁搴撹〃鐨勫悕绉�")
-	private String tableName;
-	/**
-	 * 鐗堟湰瑙勫垯鐨勭紪鍙�
-	 */
-	@ApiModelProperty(value = "鐗堟湰瑙勫垯鐨勭紪鍙�")
-	private String revisionruleid;
-	/**
-	 * 鐗堟湰瑙勫垯鐨勫悕绉�
-	 */
-	@ApiModelProperty(value = "鐗堟湰瑙勫垯鐨勫悕绉�")
-	private String revisionrulename;
-	/**
-	 * 鍒嗛殧绗�
-	 */
-	@ApiModelProperty(value = "鍒嗛殧绗�")
-	private Short revisionsep;
-	/**
-	 * 鏄惁鎵嬪姩杈撳叆鐗堟湰
-	 */
-	@ApiModelProperty(value = "鏄惁鎵嬪姩杈撳叆鐗堟湰")
-	private String inputrevisionflag;
-	/**
-	 * 鏄惁鎺у埗瀵嗙骇
-	 */
-	@ApiModelProperty(value = "鏄惁鎺у埗瀵嗙骇")
-	private String secretflag;
-	/**
-	 * 鏄惁鎶借薄鍖�
-	 */
-	@ApiModelProperty(value = "鏄惁鎶借薄鍖�")
-	private String abstractflag;
-	/**
-	 * 瀹炰緥鍖栫被
-	 */
-	@ApiModelProperty(value = "瀹炰緥鍖栫被")
-	private String implclass;
-	/**
-	 * C#
-	 */
-	@ApiModelProperty(value = "C#")
-	private String shape;
-	/**
-	 * 鐢熷懡鍛ㄦ湡鐨勮嫳鏂囧悕绉�
-	 */
-	@ApiModelProperty(value = "鐢熷懡鍛ㄦ湡鐨勮嫳鏂囧悕绉�")
-	private String lifecycleid;
-	/**
-	 * 鐢熷懡鍛ㄦ湡鐨勪腑鏂囧悕绉�
-	 */
-	@ApiModelProperty(value = "鐢熷懡鍛ㄦ湡鐨勪腑鏂囧悕绉�")
-	private String lifecyclename;
-	/**
-	 * 澶囩敤鐢熷懡鍛ㄦ湡鑻辨枃鍚嶇О
-	 */
-	@ApiModelProperty(value = "澶囩敤鐢熷懡鍛ㄦ湡鑻辨枃鍚嶇О")
-	private String sublifecycleid;
-	/**
-	 * 澶囩敤鐢熷懡鍛ㄦ湡涓枃鍚嶇О
-	 */
-	@ApiModelProperty(value = "澶囩敤鐢熷懡鍛ㄦ湡涓枃鍚嶇О")
-	private String sublifecyclename;
-	/**
-	 * 鏄惁涓鸿鍥�
-	 */
-	@ApiModelProperty(value = "鏄惁涓鸿鍥�")
-	private String viewflag;
-	/**
-	 * 瑙嗗浘鍒涘缓鐨凷QL璇彞
-	 */
-	@ApiModelProperty(value = "瑙嗗浘鍒涘缓鐨凷QL璇彞")
-	private String viewcreatesql;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java
deleted file mode 100644
index 92070a7..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import lombok.Data;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
-import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@TableName("PL_CODE_OSBTMTYPEATTRIBUTE")
-@ApiModel(value = "CodeOsbtmtypeattribute瀵硅薄", description = "涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬�")
-@EqualsAndHashCode
-public class CodeOsbtmtypeattributeEntity implements java.io.Serializable{
-
-	/**
-	 * 绂佹淇敼杩欎釜鍊�
-	 */
-	private static final long serialVersionUID = -4431848943790920077L;
-
-	@JsonSerialize(
-		using = ToStringSerializer.class
-	)
-	@ApiModelProperty("涓婚敭id")
-	@TableId(value = "OID",type = IdType.ASSIGN_UUID)
-	private String oid;
-	/**
-	 * 鎵�灞炰笟鍔$被鍨�
-	 */
-	@ApiModelProperty(value = "鎵�灞炰笟鍔$被鍨�")
-	private String pkbtmtype;
-	/**
-	 * 灞炴�х殑闀垮害
-	 */
-	@ApiModelProperty(value = "灞炴�х殑闀垮害")
-	private String attributelength;
-	/**
-	 * 鏁版嵁绫诲瀷
-	 */
-	@ApiModelProperty(value = "鏁版嵁绫诲瀷")
-	private String attrdatatype;
-	/**
-	 * 鏄惁鍙互涓虹┖
-	 */
-	@ApiModelProperty(value = "鏄惁鍙互涓虹┖")
-	private String nullableflag;
-	/**
-	 * 榛樿鍊�
-	 */
-	@ApiModelProperty(value = "榛樿鍊�")
-	private String defaultvalue;
-	/**
-	 * 灏忔暟绮惧害浣嶆暟
-	 */
-	@ApiModelProperty(value = "灏忔暟绮惧害浣嶆暟")
-	private String precisionlength;
-	/**
-	 * 鍒诲害
-	 */
-	@ApiModelProperty(value = "鍒诲害")
-	private String scalelength;
-	/**
-	 * 鍙栧�艰寖鍥�
-	 */
-	@ApiModelProperty(value = "鍙栧�艰寖鍥�")
-	private String range;
-	/**
-	 * 鍙傜収涓氬姟绫诲瀷
-	 */
-	@ApiModelProperty(value = "鍙傜収涓氬姟绫诲瀷")
-	private String referbtmtypeid;
-	/**
-	 * 鍙傜収涓氬姟绫诲瀷鍚嶇О
-	 */
-	@ApiModelProperty(value = "鍙傜収涓氬姟绫诲瀷鍚嶇О")
-	private String referbtmtypename;
-	/**
-	 * 鏋氫妇缂栧彿
-	 */
-	@ApiModelProperty(value = "鏋氫妇缂栧彿")
-	private String enumid;
-	/**
-	 * 鏋氫妇鍚嶇О
-	 */
-	@ApiModelProperty(value = "鏋氫妇鍚嶇О")
-	private String enumname;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeOsbtmtypeClient.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeOsbtmtypeClient.java
deleted file mode 100644
index 0aef291..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeOsbtmtypeClient.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.feign;
-
-import org.springblade.core.mp.support.BladePage;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-/**
- * 涓氬姟绫诲瀷 Feign鎺ュ彛绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@FeignClient(
-    value = "ubcs-code"
-)
-public interface ICodeOsbtmtypeClient {
-
-    String API_PREFIX = "/client";
-    String TOP = API_PREFIX + "/getOsbtmPage";
-
-    /**
-     * 鑾峰彇涓氬姟绫诲瀷鍒楄〃
-     *
-     * @param current   椤靛彿
-     * @param size      椤垫暟
-     * @return BladePage
-     */
-    @GetMapping(TOP)
-    BladePage<CodeOsbtmtypeEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsattributeVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsattributeVO.java
deleted file mode 100644
index e2c97b0..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsattributeVO.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.vo;
-
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import org.springblade.core.tool.node.INode;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 灞炴�ф樉绀哄璞� 瑙嗗浘瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsattributeVO extends CodeOsattributeEntity {
-	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/CodeOsbtmtypeVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeVO.java
deleted file mode 100644
index 96d3530..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeVO.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.vo;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 涓氬姟绫诲瀷 瑙嗗浘瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeVO extends CodeOsbtmtypeEntity {
-	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/CodeOsbtmtypeattributeVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java
deleted file mode 100644
index 54018df..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.vo;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import org.springblade.core.tool.node.INode;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 瑙嗗浘瀹炰綋绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeattributeVO extends CodeOsbtmtypeattributeEntity {
-	private static final long serialVersionUID = 1L;
-
-	public String id;
-	public String name;
-	public String attrDataType;
-	public String attributeLength;
-	public String referBtmTypeId;
-	public String referBtmTypeName;
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
index 741d9bd..6814050 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.omd.feign;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import org.springblade.core.launch.constant.AppConstant;
@@ -67,8 +68,8 @@
 	 * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄
 	 * @return 鏌ヨ缁撴灉
 	 */
-	@GetMapping(GET_REF_PAGE)
-	R<IPage<BtmTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject);
+	@PostMapping(GET_REF_PAGE)
+	R<Page<BtmTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject);
 
 	/**
 	 * 鍙傜収鍒楄〃鏌ヨ
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
index 31f9b9a..af08546 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.omd.feign;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vci.ubcs.omd.entity.Attribute;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
@@ -53,7 +54,7 @@
 	 * @return 鏌ヨ缁撴灉
 	 */
 	@Override
-	public R<IPage<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
+	public R<Page<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java
index 67d98cb..beefce5 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java
@@ -63,6 +63,11 @@
      */
     private String attrDataType;
 
+	/**
+	 * 鏁版嵁绫诲瀷鏄剧ず瀵硅薄
+	 */
+	private String  attrDataTypeText;
+
     /**
      * 鏄惁鍙互涓虹┖
      */
@@ -72,7 +77,6 @@
      * 榛樿鍊�
      */
     private String defaultValue;
-
 
     /**
      * 灏忔暟绮惧害浣嶆暟
@@ -120,7 +124,7 @@
     private boolean enumFlag;
 
     /**
-z     * 鍖呭惈鏋氫妇鐨勫��
+     * 鍖呭惈鏋氫妇鐨勫��
      */
     private Map<String,String> enumItemMap;
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
index 6384c7c..f6284dd 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
@@ -26,7 +26,9 @@
 	private String id;
 
 	private String name;
+
 	//闆嗗洟鐮�
+	@TableField(exist = false)
 	private String groupcode;
 
 	private String description;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
index 9cdf420..1ac0859 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
@@ -22,11 +22,10 @@
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.mapper.CodeClassifyMapper;
 import com.vci.ubcs.code.service.ICodeClassifyService;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
-import com.vci.ubcs.starter.util.BladeTreeQueryObject;
 import com.vci.ubcs.starter.util.LocalFileUtil;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
@@ -47,7 +46,6 @@
 import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.File;
@@ -309,7 +307,7 @@
 	 * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴��
 	 */
 	@GetMapping("/listClassifyLinkAttr")
-	public DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject){
+	public DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject){
 		return codeClassifyService.listClassifyLinkAttr(baseQueryObject);
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java
index 1873d6a..ac97002 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java
@@ -21,9 +21,9 @@
 import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO;
 import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
 import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.wrapper.CodeClassifyTemplateAttrWrapper;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -232,7 +232,7 @@
 	 * @return
 	 */
 	@GetMapping("/codeClassifyTemplateAttrByBtm")
-	public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){
+	public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){
 		return CodeClstempattrService.codeClassifyTemplateAttrByBtm(baseQueryObject);
 	}
 
@@ -242,7 +242,7 @@
 	 * @return
 	 */
 	@GetMapping("/codeClassifyTemplateAttrByBtmHave")
-	public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){
+	public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){
 		return CodeClstempattrService.codeClassifyTemplateAttrByBtmHave(baseQueryObject);
 	}
 
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..f5bbfcb 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
@@ -72,7 +72,7 @@
     * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
     */
     @PostMapping( "/checkIsCanDelete")
-    public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
+    public R checkIsCanDelete(CodeClassifyValueDTO codeClassifyValueDTO)  {
         return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
     }
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsattributeController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsattributeController.java
deleted file mode 100644
index f93a5c9..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsattributeController.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.controller;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
-import org.springblade.core.secure.BladeUser;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.Func;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import com.vci.ubcs.code.wrapper.CodeOsattributeWrapper;
-import com.vci.ubcs.code.service.ICodeOsattributeService;
-import org.springblade.core.boot.ctrl.BladeController;
-
-/**
- * 灞炴�ф樉绀哄璞� 鎺у埗鍣�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@RestController
-@AllArgsConstructor
-@RequestMapping("/CodeOsattribute")
-@Api(value = "灞炴�ф樉绀哄璞�", tags = "灞炴�ф樉绀哄璞℃帴鍙�")
-public class CodeOsattributeController extends BladeController {
-
-	private final ICodeOsattributeService CodeOsattributeService;
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 璇︽儏
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "璇︽儏", notes = "浼犲叆CodeOsattribute")
-	public R<CodeOsattributeVO> detail(CodeOsattributeEntity CodeOsattribute) {
-		CodeOsattributeEntity detail = CodeOsattributeService.getOne(Condition.getQueryWrapper(CodeOsattribute));
-		return R.data(CodeOsattributeWrapper.build().entityVO(detail));
-	}
-	/**
-	 * 灞炴�ф樉绀哄璞� 鍒嗛〉
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeOsattribute")
-	public R<IPage<CodeOsattributeVO>> list(CodeOsattributeEntity CodeOsattribute, Query query) {
-		IPage<CodeOsattributeEntity> pages = CodeOsattributeService.page(Condition.getPage(query), Condition.getQueryWrapper(CodeOsattribute));
-		return R.data(CodeOsattributeWrapper.build().pageVO(pages));
-	}
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 鑷畾涔夊垎椤�
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeOsattribute")
-	public R<IPage<CodeOsattributeVO>> page(CodeOsattributeVO CodeOsattribute, Query query) {
-		IPage<CodeOsattributeVO> pages = CodeOsattributeService.selectCodeOsattributePage(Condition.getPage(query), CodeOsattribute);
-		return R.data(pages);
-	}
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 鏂板
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "鏂板", notes = "浼犲叆CodeOsattribute")
-	public R save(@Valid @RequestBody CodeOsattributeEntity CodeOsattribute) {
-		return R.status(CodeOsattributeService.save(CodeOsattribute));
-	}
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 淇敼
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "淇敼", notes = "浼犲叆CodeOsattribute")
-	public R update(@Valid @RequestBody CodeOsattributeEntity CodeOsattribute) {
-		return R.status(CodeOsattributeService.updateById(CodeOsattribute));
-	}
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 鏂板鎴栦慨鏀�
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆CodeOsattribute")
-	public R submit(@Valid @RequestBody CodeOsattributeEntity CodeOsattribute) {
-		return R.status(CodeOsattributeService.saveOrUpdate(CodeOsattribute));
-	}
-
-	/**
-	 * 灞炴�ф樉绀哄璞� 鍒犻櫎
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "閫昏緫鍒犻櫎", notes = "浼犲叆ids")
-	public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) {
-		return R.status(CodeOsattributeService.removeBatchByIds(Func.toLongList(ids)));
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeController.java
deleted file mode 100644
index e8fc199..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeController.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.controller;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.Func;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
-import com.vci.ubcs.code.wrapper.CodeOsbtmtypeWrapper;
-import com.vci.ubcs.code.service.ICodeOsbtmtypeService;
-import org.springblade.core.boot.ctrl.BladeController;
-
-/**
- * 涓氬姟绫诲瀷 鎺у埗鍣�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@RestController
-@AllArgsConstructor
-@RequestMapping("ubcs-code/PLCodeOsbtmtype")
-@Api(value = "涓氬姟绫诲瀷", tags = "涓氬姟绫诲瀷鎺ュ彛")
-public class CodeOsbtmtypeController extends BladeController {
-
-	private final ICodeOsbtmtypeService PLCodeOsbtmtypeService;
-
-	/**
-	 * 涓氬姟绫诲瀷 璇︽儏
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "璇︽儏", notes = "浼犲叆PLCodeOsbtmtype")
-	public R<CodeOsbtmtypeVO> detail(CodeOsbtmtypeEntity PLCodeOsbtmtype) {
-		CodeOsbtmtypeEntity detail = PLCodeOsbtmtypeService.getOne(Condition.getQueryWrapper(PLCodeOsbtmtype));
-		return R.data(CodeOsbtmtypeWrapper.build().entityVO(detail));
-	}
-	/**
-	 * 涓氬姟绫诲瀷 鍒嗛〉
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆PLCodeOsbtmtype")
-	public R<IPage<CodeOsbtmtypeVO>> list(CodeOsbtmtypeEntity PLCodeOsbtmtype, Query query) {
-		IPage<CodeOsbtmtypeEntity> pages = PLCodeOsbtmtypeService.page(Condition.getPage(query), Condition.getQueryWrapper(PLCodeOsbtmtype));
-		return R.data(CodeOsbtmtypeWrapper.build().pageVO(pages));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷 鑷畾涔夊垎椤�
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆PLCodeOsbtmtype")
-	public R<IPage<CodeOsbtmtypeVO>> page(CodeOsbtmtypeVO PLCodeOsbtmtype, Query query) {
-		IPage<CodeOsbtmtypeVO> pages = PLCodeOsbtmtypeService.selectPLCodeOsbtmtypePage(Condition.getPage(query), PLCodeOsbtmtype);
-		return R.data(pages);
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷 鏂板
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "鏂板", notes = "浼犲叆PLCodeOsbtmtype")
-	public R save(@Valid @RequestBody CodeOsbtmtypeEntity PLCodeOsbtmtype) {
-		return R.status(PLCodeOsbtmtypeService.save(PLCodeOsbtmtype));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷 淇敼
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "淇敼", notes = "浼犲叆PLCodeOsbtmtype")
-	public R update(@Valid @RequestBody CodeOsbtmtypeEntity PLCodeOsbtmtype) {
-		return R.status(PLCodeOsbtmtypeService.updateById(PLCodeOsbtmtype));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷 鏂板鎴栦慨鏀�
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆PLCodeOsbtmtype")
-	public R submit(@Valid @RequestBody CodeOsbtmtypeEntity PLCodeOsbtmtype) {
-		return R.status(PLCodeOsbtmtypeService.saveOrUpdate(PLCodeOsbtmtype));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷 鍒犻櫎
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "閫昏緫鍒犻櫎", notes = "浼犲叆ids")
-	public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) {
-		return null;
-//		return R.status(PLCodeOsbtmtypeService.deleteLogic(Func.toLongList(ids)));
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeattributeController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeattributeController.java
deleted file mode 100644
index 92cd51b..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeattributeController.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.controller;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
-import org.springblade.core.secure.BladeUser;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.Func;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
-import com.vci.ubcs.code.wrapper.CodeOsbtmtypeattributeWrapper;
-import com.vci.ubcs.code.service.ICodeOsbtmtypeattributeService;
-import org.springblade.core.boot.ctrl.BladeController;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鎺у埗鍣�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-@RestController
-@AllArgsConstructor
-@RequestMapping("/CodeOsbtmtypeattribute")
-@Api(value = "涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬�", tags = "涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬ф帴鍙�")
-public class CodeOsbtmtypeattributeController extends BladeController {
-
-	private final ICodeOsbtmtypeattributeService CodeOsbtmtypeattributeService;
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 璇︽儏
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "璇︽儏", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R<CodeOsbtmtypeattributeVO> detail(CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute) {
-		CodeOsbtmtypeattributeEntity detail = CodeOsbtmtypeattributeService.getOne(Condition.getQueryWrapper(CodeOsbtmtypeattribute));
-		return R.data(CodeOsbtmtypeattributeWrapper.build().entityVO(detail));
-	}
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鍒嗛〉
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R<IPage<CodeOsbtmtypeattributeVO>> list(CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute, Query query) {
-		IPage<CodeOsbtmtypeattributeEntity> pages = CodeOsbtmtypeattributeService.page(Condition.getPage(query), Condition.getQueryWrapper(CodeOsbtmtypeattribute));
-		return R.data(CodeOsbtmtypeattributeWrapper.build().pageVO(pages));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鑷畾涔夊垎椤�
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R<IPage<CodeOsbtmtypeattributeVO>> page(CodeOsbtmtypeattributeVO CodeOsbtmtypeattribute, Query query) {
-		IPage<CodeOsbtmtypeattributeVO> pages = CodeOsbtmtypeattributeService.selectCodeOsbtmtypeattributePage(Condition.getPage(query), CodeOsbtmtypeattribute);
-		return R.data(pages);
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鏂板
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "鏂板", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R save(@Valid @RequestBody CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute) {
-		return R.status(CodeOsbtmtypeattributeService.save(CodeOsbtmtypeattribute));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 淇敼
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "淇敼", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R update(@Valid @RequestBody CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute) {
-		return R.status(CodeOsbtmtypeattributeService.updateById(CodeOsbtmtypeattribute));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鏂板鎴栦慨鏀�
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆CodeOsbtmtypeattribute")
-	public R submit(@Valid @RequestBody CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute) {
-		return R.status(CodeOsbtmtypeattributeService.saveOrUpdate(CodeOsbtmtypeattribute));
-	}
-
-	/**
-	 * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鍒犻櫎
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "閫昏緫鍒犻櫎", notes = "浼犲叆ids")
-	public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) {
-		return R.status(CodeOsbtmtypeattributeService.removeBatchByIds(Func.toLongList(ids)));
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferBtmTypeController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferBtmTypeController.java
new file mode 100644
index 0000000..4b64165
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferBtmTypeController.java
@@ -0,0 +1,61 @@
+package com.vci.ubcs.code.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
+import com.vci.ubcs.code.service.ICodeReferBtmTypeService;
+import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.vo.AttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * @author ludc
+ * @date 2023/6/1 18:36
+ */
+@RestController
+@RequestMapping("/referBtmTypeController")
+@Api(value = "缂栫爜瑙勫垯绠$悊-寮曠敤鐮佹&&灞炴�х爜娈�-涓氬姟绫诲瀷鏌ヨ", tags = "缂栫爜瑙勫垯绠$悊-寮曠敤鐮佹-涓氬姟绫诲瀷鏌ヨ")
+public class CodeReferBtmTypeController {
+
+	@Resource
+	private ICodeReferBtmTypeService codeReferBtmTypeService;
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷鍒楄〃
+	 * @param baseQueryObject 鏌ヨ鏉′欢
+	 * @return 鍒楄〃鐨勫唴瀹�
+	 */
+	@GetMapping("/referDataGrid")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "鑾峰彇涓氬姟绫诲瀷鍒楄〃", notes = "baseQueryObject")
+	public R<Page<BtmTypeVO>> referDataGrid(BaseQueryObject baseQueryObject){
+		return R.data(codeReferBtmTypeService.referDataGrid(baseQueryObject));
+	}
+
+	@GetMapping(value = "/gridAttributesByBtmId")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "鑾峰彇涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬э紝涓嶅垎椤�", notes = "baseQueryObject")
+	public R<Page<AttributeVO>> gridAttributesByBtmId(BaseQueryObject baseQueryObject){
+		return R.data(codeReferBtmTypeService.gridAttributesByBtmId(baseQueryObject));
+	}
+
+
+
+
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeOsbtmtypeClient.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeOsbtmtypeClient.java
deleted file mode 100644
index 21b6b89..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeOsbtmtypeClient.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.feign;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
-import lombok.AllArgsConstructor;
-import org.springblade.core.mp.support.BladePage;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.service.ICodeOsbtmtypeService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-import springfox.documentation.annotations.ApiIgnore;
-
-/**
- * 涓氬姟绫诲瀷 Feign瀹炵幇绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@ApiIgnore()
-@RestController
-@AllArgsConstructor
-public class CodeOsbtmtypeClient implements ICodeOsbtmtypeClient {
-
-    private final CodeOsbtmtypeMapper codeOsbtmtypeMapper;
-
-    @Override
-    @GetMapping(TOP)
-    public BladePage<CodeOsbtmtypeEntity> top(Integer current, Integer size) {
-        Query query = new Query();
-        query.setCurrent(current);
-        query.setSize(size);
-        IPage<CodeOsbtmtypeEntity> page = codeOsbtmtypeMapper.selectPage(Condition.getPage(query), Wrappers.emptyWrapper());
-        return BladePage.of(page);
-    }
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsattributeMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsattributeMapper.java
deleted file mode 100644
index 495f6f3..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsattributeMapper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.mapper;
-
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import java.util.List;
-
-/**
- * 灞炴�ф樉绀哄璞� Mapper 鎺ュ彛
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public interface CodeOsattributeMapper extends BaseMapper<CodeOsattributeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param CodeOsattribute
-	 * @return
-	 */
-	List<CodeOsattributeVO> selectCodeOsattributePage(IPage page, CodeOsattributeVO CodeOsattribute);
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeMapper.java
deleted file mode 100644
index 25e0424..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeMapper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.mapper;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import java.util.List;
-
-/**
- * 涓氬姟绫诲瀷 Mapper 鎺ュ彛
- *
- * @author yuxc
- * @since 2023-04-13
- */
-public interface CodeOsbtmtypeMapper extends BaseMapper<CodeOsbtmtypeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param PLCodeOsbtmtype
-	 * @return
-	 */
-	List<CodeOsbtmtypeVO> selectPLCodeOsbtmtypePage(IPage page, CodeOsbtmtypeVO PLCodeOsbtmtype);
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeattributeMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeattributeMapper.java
deleted file mode 100644
index 7f20ad9..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeattributeMapper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.mapper;
-
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import java.util.List;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� Mapper 鎺ュ彛
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public interface CodeOsbtmtypeattributeMapper extends BaseMapper<CodeOsbtmtypeattributeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param CodeOsbtmtypeattribute
-	 * @return
-	 */
-	List<CodeOsbtmtypeattributeVO> selectCodeOsbtmtypeattributePage(IPage page, CodeOsbtmtypeattributeVO CodeOsbtmtypeattribute);
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
index 92e34d4..04e09cc 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -5,16 +5,13 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.entity.CodeClassify;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
-import com.vci.ubcs.starter.util.BladeTreeQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;import com.vci.ubcs.starter.web.pagemodel.Tree;
 import org.springblade.core.tool.api.R;
-
 import java.io.File;
 import java.util.Collection;
 import java.util.List;
@@ -170,7 +167,7 @@
 	 * @param baseQueryObject 鏌ヨ瀵硅薄锛屽繀椤绘湁codeClassifyOid锛屾敮鎸乮d鍜宯ame涓ょ鏌ヨ鏉′欢
 	 * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴��
 	 */
-	DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject);
+	DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject);
 
 	/**
 	 * 鑾峰彇褰撳墠鍒嗙被鐨勯《灞傚垎绫�
@@ -193,7 +190,6 @@
 	 * @return 鍒嗙被鐨勬樉绀哄璞�
 	 */
 	CodeClassifyVO getObjectByIdPath(String idPath);
-
 
 	/**
 	 * 涓婚搴撶殑鏍�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java
index ba6dc97..9d26d0e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java
@@ -5,8 +5,8 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO;
 import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
@@ -130,14 +130,14 @@
 	 * @param baseQueryObject
 	 * @return
 	 */
-	DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject);
+	DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject);
 
 	/**
 	 * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅宸查�夋嫨鐨勫睘鎬�
 	 * @param baseQueryObject
 	 * @return
 	 */
-	DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject);
+	DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject);
 
 	/**
 	 * 鍚屾鍒板叾浠栨ā鏉�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsattributeService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsattributeService.java
deleted file mode 100644
index 9d694ee..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsattributeService.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import org.springblade.core.mp.base.BaseService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-import java.util.Map;
-
-/**
- * 灞炴�ф樉绀哄璞� 鏈嶅姟绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public interface ICodeOsattributeService extends IService<CodeOsattributeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param CodeOsattribute
-	 * @return
-	 */
-	IPage<CodeOsattributeVO> selectCodeOsattributePage(IPage<CodeOsattributeVO> page, CodeOsattributeVO CodeOsattribute);
-
-	boolean isDefaultAttr(String selectKey);
-
-	Map<String, CodeOsattributeVO> getDefaultAttributeVOMap();
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeService.java
deleted file mode 100644
index e9a92a7..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeService.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
-import org.springblade.core.mp.base.BaseService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-/**
- * 涓氬姟绫诲瀷 鏈嶅姟绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-public interface ICodeOsbtmtypeService extends IService<CodeOsbtmtypeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param PLCodeOsbtmtype
-	 * @return
-	 */
-	IPage<CodeOsbtmtypeVO> selectPLCodeOsbtmtypePage(IPage<CodeOsbtmtypeVO> page, CodeOsbtmtypeVO PLCodeOsbtmtype);
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeattributeService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeattributeService.java
deleted file mode 100644
index c234501..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeattributeService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
-import org.springblade.core.mp.base.BaseService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鏈嶅姟绫�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public interface ICodeOsbtmtypeattributeService extends IService<CodeOsbtmtypeattributeEntity> {
-
-	/**
-	 * 鑷畾涔夊垎椤�
-	 *
-	 * @param page
-	 * @param CodeOsbtmtypeattribute
-	 * @return
-	 */
-	IPage<CodeOsbtmtypeattributeVO> selectCodeOsbtmtypeattributePage(IPage<CodeOsbtmtypeattributeVO> page, CodeOsbtmtypeattributeVO CodeOsbtmtypeattribute);
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeReferBtmTypeService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeReferBtmTypeService.java
new file mode 100644
index 0000000..103dac5
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeReferBtmTypeService.java
@@ -0,0 +1,38 @@
+package com.vci.ubcs.code.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vci.ubcs.omd.vo.AttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.util.BeanUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 瀵筼md涓彁渚涚殑feign鎺ュ彛杩涜璋冪敤锛屼互鍙婂鐞嗙浉鍏抽�昏緫
+ * @author ludc
+ * @date 2023/6/1 18:39
+ */
+public interface ICodeReferBtmTypeService {
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷鍒楄〃
+	 * @param baseQueryObject 鏌ヨ鏉′欢
+	 * @return 鍒楄〃鐨勫唴瀹�
+	 */
+	Page<BtmTypeVO> referDataGrid(BaseQueryObject baseQueryObject);
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬э紝涓嶅垎椤�
+	 * @param baseQueryObject 鏌ヨ瀵硅薄
+	 * @return 灞炴�х殑淇℃伅
+	 */
+	Page<AttributeVO> gridAttributesByBtmId(BaseQueryObject baseQueryObject);
+
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 1ed0304..1740d98 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -9,24 +9,20 @@
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.CodeClassifyTemplate;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
 import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
 import com.vci.ubcs.code.mapper.CodeClassifyMapper;
 import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper;
 import com.vci.ubcs.code.po.CodeClassifyPO;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService;
-import com.vci.ubcs.code.service.ICodeOsattributeService;
 import com.vci.ubcs.code.service.ICodeRuleService;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.omd.cache.EnumCache;
+import com.vci.ubcs.omd.enums.EnumEnum;
 import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.bo.WriteExcelData;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -41,6 +37,7 @@
 import com.vci.ubcs.starter.util.LocalFileUtil;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 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 com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.LangBaseUtil;
@@ -80,19 +77,7 @@
 	private ICodeRuleService codeRuleService;
 
 	@Resource
-	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
-
-	@Resource
-	private CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
-
-	@Resource
 	private IBtmTypeClient btmTypeClient;
-
-	/**
-	 * 灞炴�ф湇鍔�
-	 */
-//	@Autowired
-//	private OsAttributeServiceI attributeService;
 
 	/**
 	 * 鏃ュ織
@@ -680,7 +665,6 @@
 		return excelName;
 	}
 
-
 	/**
 	 * 瀵煎叆鍒嗙被
 	 *
@@ -745,9 +729,10 @@
 
 		List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId()))
 			.map(CodeClassifyPO::getBtmTypeId).collect(Collectors.toList());
-		Map<String, CodeOsbtmtypeEntity> btmVOMap = Optional.ofNullable(btmOids.size()==0 ? null: codeOsbtmtypeMapper.selectBatchIds(btmOids)
-		).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
-//		Map<String, CodeOsbtmtypeVO> btmVOMap = null;
+		Map<String, BtmTypeVO> btmVOMap = Optional
+			.ofNullable(btmOids.size()==0 ? null: btmTypeClient.selectByIdCollection(btmOids).getData())
+			.orElse(new ArrayList<BtmTypeVO>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
+		//		Map<String, CodeOsbtmtypeVO> btmVOMap = null;
 		Map<String/**璺緞**/,String/**涓婚敭**/> oidPathMap = new HashMap<>();
 
 		//鎴戜滑闇�瑕佹煡璇㈡墍鏈夊凡缁忓瓨鍦ㄧ殑鍒嗙被锛屼富瑕佹槸璺緞锛岀敤鏉ュ垽鏂垎绫荤殑鏁版嵁
@@ -777,7 +762,7 @@
 			classify.setDescription(po.getDescription());
 			oidPathMap.put(po.getPath(),classify.getOid());
 			if(StringUtils.isNotBlank(po.getBtmTypeId())){
-				CodeOsbtmtypeVO typeVO = (CodeOsbtmtypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
+				BtmTypeVO typeVO = (BtmTypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
 				classify.setBtmTypeId(typeVO.getId());
 				classify.setBtmTypeName(typeVO.getName());
 			}
@@ -888,7 +873,7 @@
 	 * @return 灞炴�х殑淇℃伅锛屽寘鍚粯璁ょ殑灞炴��
 	 */
 	@Override
-	public DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject) {
+	public DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject) {
 		if(baseQueryObject == null){
 			baseQueryObject = new BaseQueryObject();
 		}
@@ -896,9 +881,13 @@
 			baseQueryObject.setConditionMap(new HashMap<>());
 		}
 		String classifyOid = baseQueryObject.getConditionMap().getOrDefault("codeClassifyOid","");
+		String btmTypeOid = baseQueryObject.getConditionMap().getOrDefault("btmTypeOid","");
 		String id = baseQueryObject.getConditionMap().getOrDefault("id","");
 		String name = baseQueryObject.getConditionMap().getOrDefault("name","");
 		if(StringUtils.isBlank(classifyOid)){
+			return new DataGrid<>();
+		}
+		if(StringUtils.isBlank(btmTypeOid)){
 			return new DataGrid<>();
 		}
 		CodeClassifyVO topClassifyVO = getTopClassifyVO(classifyOid);
@@ -908,19 +897,20 @@
 
 		Map<String,Object> condition = new HashMap<>(1);
 		condition.put("pkbtmtype",topClassifyVO.getBtmtypeid());
-
-		List<CodeOsbtmtypeattributeEntity> unDefaultAttributes = codeOsbtmtypeattributeMapper.selectByMap(condition);
+		BtmTypeVO data = btmTypeClient.getDetail(btmTypeOid).getData();
+		List<BtmTypeAttributeVO> unDefaultAttributes = data.getAttributes();
+		// List<CodeOsbtmtypeattributeEntity> unDefaultAttributes = codeOsbtmtypeattributeMapper.selectByMap(condition);
 		// List<OsBtmTypeAttributeVO> unDefaultAttributes = btmService. (topClassifyVO.getBtmtypeid());
-		List<CodeOsattributeVO> attributeVOS = new ArrayList<>();
+		List<BtmTypeAttributeVO> attributeVOS = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(unDefaultAttributes)){
 			unDefaultAttributes.stream().forEach(attr->{
-				CodeOsattributeVO attributeVO = new CodeOsattributeVO();
+				BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
 				BeanUtils.copyProperties(attr,attributeVO);
-				attributeVO.setAttributedatatype(attr.getAttrdatatype());
-				attributeVO.setAttrlength(Short.valueOf(attr.getAttributelength()));
-				attributeVO.setBtmtypeid(attr.getReferbtmtypeid());
-				attributeVO.setBtmtypename(attr.getReferbtmtypename());
-				attributeVO.setAttributedatatypetext(attr.getReferbtmtypename());
+				attributeVO.setAttrDataType(attr.getAttrDataType());
+				attributeVO.setAttributeLength(attr.getAttributeLength());
+				attributeVO.setBtmTypeId(data.getId());
+				attributeVO.setBtmname(data.getName());
+				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCO_FIELD_TYPE,attr.getAttrDataType()));
 				boolean add = true;
 				if(StringUtils.isNotBlank(id) && !attributeVO.getId().contains(id.replace("*",""))){
 					add = false;
@@ -933,21 +923,7 @@
 				}
 			});
 		}
-//		if(!CollectionUtils.isEmpty(codeOsattributeService.getDefaultAttributeVOs())){
-//			codeOsattributeService.getDefaultAttributeVOs().stream().forEach(attr->{
-//				boolean add = true;
-//				if(StringUtils.isNotBlank(id) && !attr.getId().contains(id.replace("*",""))){
-//					add = false;
-//				}
-//				if(StringUtils.isNotBlank(name) && !attr.getId().contains(name.replace("*",""))){
-//					add = false;
-//				}
-//				if(add){
-//					attributeVOS.add(attr);
-//				}
-//			});
-//		}
-		DataGrid<CodeOsattributeVO> dataGrid = new DataGrid<>();
+		DataGrid<BtmTypeAttributeVO> dataGrid = new DataGrid<>();
 		dataGrid.setData(attributeVOS);
 		dataGrid.setTotal(attributeVOS.size());
 		return dataGrid;
@@ -1033,7 +1009,7 @@
 	}
 
 	/**
-	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
+	 * 涓婚搴撶殑鏍�,宸茶仈璋冧笟鍔$被鍨嬫煡璇eign
 	 *
 	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
 	 * @return 涓婚搴撴樉绀烘爲
@@ -1055,8 +1031,14 @@
 		if(Func.isEmpty(btmTypeVOS) || Func.isEmpty(trees)){
 			return null;
 		}
-		List<Tree> treeList = trees.stream().filter(tree -> btmTypeVOS.stream().
-			anyMatch(btmType -> Objects.equals(tree.getAttributes().get("id"), btmType.getId()))).collect(Collectors.toList());
+		List<Tree> treeList = trees.stream().filter(tree -> !CollectionUtils.isEmpty(btmTypeVOS.stream().filter(btmType -> {
+					if(Objects.equals(tree.getAttributes().get("id"), btmType.getId())){
+						tree.getAttributes().put("btmTypeOid",btmType.getOid());
+						return true;
+					}
+					return false;
+				}).collect(Collectors.toList())))
+			.collect(Collectors.toList());
 		return treeList;
 	}
 
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 ec03bc6..64c3a30 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
@@ -14,12 +14,12 @@
 import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
 import com.vci.ubcs.code.mapper.CodeClassifyTemplateAttrMapper;
 import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper;
 import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
 import com.vci.ubcs.code.service.ICodeTempphaseService;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.wrapper.CodeClassifyTemplateAttrWrapper;
+import com.vci.ubcs.omd.feign.IAttributeClient;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
@@ -71,18 +71,25 @@
 
 	@Resource
 	IDictBizClient iDictBizClient;
+
 	@Resource
 	CodeClassifyTemplateMapper codeClassifyTemplateMapper;
-	@Resource
-	CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
+
 	@Resource
 	@Lazy
 	ICodeTempphaseService codeTempphaseService;
+
 	/**
 	 * 瀵硅薄鐨勬搷浣�
 	 */
 	@Autowired(required = false)
 	private RevisionModelUtil revisionModelUtil;
+
+	/**
+	 * 灞炴�ф湇鍔″璞�
+	 */
+	@Resource
+	private IAttributeClient attributeClient;
 
 	/**
 	 * 鏌ヨ鎵�鏈夌殑涓婚搴撳垎绫荤殑妯℃澘灞炴��
@@ -507,6 +514,7 @@
 		}
 		return isKV;
 	}
+
 	public boolean checkKVObj(String kvString){
 		boolean isKV = true;
 		try {
@@ -705,11 +713,11 @@
 	 * @return
 	 */
 	@Override
-	public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){
+	public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){
 		if(baseQueryObject.getConditionMap() == null){
 			baseQueryObject.setConditionMap(new HashMap<>());
 		}
-		DataGrid<CodeOsbtmtypeattributeVO> dataGrid=new DataGrid<CodeOsbtmtypeattributeVO>();
+		DataGrid<BtmTypeAttributeVO> dataGrid=new DataGrid<BtmTypeAttributeVO>();
 		//妯℃澘oid
 		String templateAttrOid = baseQueryObject.getConditionMap().get("oid");
 		String name = baseQueryObject.getConditionMap().getOrDefault("name","");
@@ -726,9 +734,10 @@
 		CodeClassifyTemplate codeClassifyTemplateDO = codeClassifyTemplateMapper.selectById(templateAttrOid);
 
 		//杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬�
-		List<CodeOsbtmtypeattributeVO> boAttrs = (List<CodeOsbtmtypeattributeVO>) codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());// this.btmService.listAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId());
-//		codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());
-//		BeanUtils.copyProperties(codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()),boAttrs);
+		// 寰呭畬鍠�
+		List<BtmTypeAttributeVO> boAttrs = null;  //(List<BtmTypeAttributeVO>)attributeClient.selectById(codeClassifyTemplateDO.getBtmTypeId());// this.btmService.listAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId());
+		// codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());
+		// BeanUtils.copyProperties(codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()),boAttrs);
 		//鎶婇粯璁ょ殑灞炴�т篃娣诲姞鍒癰oAttrs
 		if(boAttrs == null){
 			boAttrs = new ArrayList<>();
@@ -767,9 +776,9 @@
 		}
 
 		//杩囨护鎺夊凡缁忓瓨鍦ㄧ殑灞炴��
-		List<CodeOsbtmtypeattributeVO> boAttrss = new ArrayList<CodeOsbtmtypeattributeVO>();
+		List<BtmTypeAttributeVO> boAttrss = new ArrayList<BtmTypeAttributeVO>();
 
-		for (CodeOsbtmtypeattributeVO osBtmTypeAttributeVO:boAttrs){
+		for (BtmTypeAttributeVO osBtmTypeAttributeVO:boAttrs){
 			if(!btmOids.contains(osBtmTypeAttributeVO.getId())){
 				//鐪嬬湅鏄笉鏄湁妯$硦鏌ヨ
 				boolean inSearch = true;
@@ -795,8 +804,8 @@
 	 * @return
 	 */
 	@Override
-	public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){
-		DataGrid<CodeOsbtmtypeattributeVO> dataGrid=new DataGrid<CodeOsbtmtypeattributeVO>();
+	public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){
+		DataGrid<BtmTypeAttributeVO> dataGrid=new DataGrid<BtmTypeAttributeVO>();
 		//妯℃澘oid
 		String templateAttrOid = baseQueryObject.getConditionMap().get("oid");
 
@@ -811,7 +820,8 @@
 		CodeClassifyTemplate codeClassifyTemplateDO = codeClassifyTemplateMapper.selectById(templateAttrOid);
 
 		//杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬�
-		List<CodeOsbtmtypeattributeVO> boAttrs = (List<CodeOsbtmtypeattributeVO>) codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());//this.btmService.listAttributeByBtmIdHasDefault(codeClassifyTemplateDO.getBtmTypeId());
+		// 寰呭畬鍠�
+		List<BtmTypeAttributeVO> boAttrs =  null; // (List<BtmTypeAttributeVO>) attributeClient.selectById(codeClassifyTemplateDO.getBtmTypeId());//this.btmService.listAttributeByBtmIdHasDefault(codeClassifyTemplateDO.getBtmTypeId());
 //		codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());
 //		BeanUtils.copyProperties(codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()),boAttrs);
 		//杩欎釜妯℃澘涓嬪凡缁忔湁鐨勫睘鎬�
@@ -835,9 +845,9 @@
 		}
 
 		//杩囨护鎺夐櫎浜嗚嚜韬殑鍒殑灞炴��
-		List<CodeOsbtmtypeattributeVO> boAttrss = new ArrayList<CodeOsbtmtypeattributeVO>();
+		List<BtmTypeAttributeVO> boAttrss = new ArrayList<BtmTypeAttributeVO>();
 
-		for (CodeOsbtmtypeattributeVO osBtmTypeAttributeVO:boAttrs){
+		for (BtmTypeAttributeVO osBtmTypeAttributeVO:boAttrs){
 			if(btmOids.contains(osBtmTypeAttributeVO.getId())){
 				boAttrss.add(osBtmTypeAttributeVO);
 			}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsattributeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsattributeServiceImpl.java
deleted file mode 100644
index b282fb9..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsattributeServiceImpl.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.vci.ubcs.code.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import com.vci.ubcs.code.service.ICodeOsattributeService;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import org.springframework.stereotype.Service;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.function.Function;
-
-@Service
-public class CodeOsattributeServiceImpl implements ICodeOsattributeService {
-	@Override
-	public IPage<CodeOsattributeVO> selectCodeOsattributePage(IPage<CodeOsattributeVO> page, CodeOsattributeVO CodeOsattribute) {
-		return null;
-	}
-
-	@Override
-	public boolean isDefaultAttr(String selectKey) {
-		return false;
-	}
-
-	@Override
-	public Map<String, CodeOsattributeVO> getDefaultAttributeVOMap() {
-		return null;
-	}
-
-	@Override
-	public boolean saveBatch(Collection<CodeOsattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean saveOrUpdateBatch(Collection<CodeOsattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean updateBatchById(Collection<CodeOsattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean saveOrUpdate(CodeOsattributeEntity entity) {
-		return false;
-	}
-
-	@Override
-	public CodeOsattributeEntity getOne(Wrapper<CodeOsattributeEntity> queryWrapper, boolean throwEx) {
-		return null;
-	}
-
-	@Override
-	public Map<String, Object> getMap(Wrapper<CodeOsattributeEntity> queryWrapper) {
-		return null;
-	}
-
-	@Override
-	public <V> V getObj(Wrapper<CodeOsattributeEntity> queryWrapper, Function<? super Object, V> mapper) {
-		return null;
-	}
-
-	@Override
-	public BaseMapper<CodeOsattributeEntity> getBaseMapper() {
-		return null;
-	}
-
-	@Override
-	public Class<CodeOsattributeEntity> getEntityClass() {
-		return null;
-	}
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeServiceImpl.java
deleted file mode 100644
index 1639b77..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeServiceImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
-import com.vci.ubcs.code.service.ICodeOsbtmtypeService;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-/**
- * 涓氬姟绫诲瀷 鏈嶅姟瀹炵幇绫�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-@Service
-public class CodeOsbtmtypeServiceImpl extends ServiceImpl<CodeOsbtmtypeMapper, CodeOsbtmtypeEntity> implements ICodeOsbtmtypeService {
-
-	@Override
-	public IPage<CodeOsbtmtypeVO> selectPLCodeOsbtmtypePage(IPage<CodeOsbtmtypeVO> page, CodeOsbtmtypeVO PLCodeOsbtmtype) {
-		return page.setRecords(baseMapper.selectPLCodeOsbtmtypePage(page, PLCodeOsbtmtype));
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeattributeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeattributeServiceImpl.java
deleted file mode 100644
index ba9b876..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeattributeServiceImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.vci.ubcs.code.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import com.vci.ubcs.code.service.ICodeOsbtmtypeattributeService;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
-import org.springframework.stereotype.Service;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.function.Function;
-@Service
-public class CodeOsbtmtypeattributeServiceImpl implements ICodeOsbtmtypeattributeService {
-	@Override
-	public IPage<CodeOsbtmtypeattributeVO> selectCodeOsbtmtypeattributePage(IPage<CodeOsbtmtypeattributeVO> page, CodeOsbtmtypeattributeVO CodeOsbtmtypeattribute) {
-		return null;
-	}
-
-	@Override
-	public boolean saveBatch(Collection<CodeOsbtmtypeattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean saveOrUpdateBatch(Collection<CodeOsbtmtypeattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean updateBatchById(Collection<CodeOsbtmtypeattributeEntity> entityList, int batchSize) {
-		return false;
-	}
-
-	@Override
-	public boolean saveOrUpdate(CodeOsbtmtypeattributeEntity entity) {
-		return false;
-	}
-
-	@Override
-	public CodeOsbtmtypeattributeEntity getOne(Wrapper<CodeOsbtmtypeattributeEntity> queryWrapper, boolean throwEx) {
-		return null;
-	}
-
-	@Override
-	public Map<String, Object> getMap(Wrapper<CodeOsbtmtypeattributeEntity> queryWrapper) {
-		return null;
-	}
-
-	@Override
-	public <V> V getObj(Wrapper<CodeOsbtmtypeattributeEntity> queryWrapper, Function<? super Object, V> mapper) {
-		return null;
-	}
-
-	@Override
-	public BaseMapper<CodeOsbtmtypeattributeEntity> getBaseMapper() {
-		return null;
-	}
-
-	@Override
-	public Class<CodeOsbtmtypeattributeEntity> getEntityClass() {
-		return null;
-	}
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferBtmTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferBtmTypeServiceImpl.java
new file mode 100644
index 0000000..4b0cc5e
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferBtmTypeServiceImpl.java
@@ -0,0 +1,116 @@
+package com.vci.ubcs.code.service.impl;
+
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vci.ubcs.code.service.ICodeReferBtmTypeService;
+import com.vci.ubcs.omd.feign.IAttributeClient;
+import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.vo.AttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.util.BeanUtil;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.rmi.ServerException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 瀵筼md涓彁渚涚殑feign鎺ュ彛杩涜璋冪敤锛屼互鍙婂鐞嗙浉鍏抽�昏緫
+ * @author ludc
+ * @date 2023/6/1 18:39
+ */
+@Service
+public class CodeReferBtmTypeServiceImpl implements ICodeReferBtmTypeService {
+
+	/**
+	 * 涓氬姟绫诲瀷鏈嶅姟
+	 */
+	@Resource
+	private IBtmTypeClient btmTypeClient;
+
+	/**
+	 * 涓氬姟绫诲瀷灞炴�ф湇鍔�
+	 */
+	@Resource
+	private IAttributeClient attributeClient;
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷鍒楄〃
+	 * @param baseQueryObject 鏌ヨ鏉′欢
+	 * @return 鍒楄〃鐨勫唴瀹�
+	 */
+	@Override
+	public Page<BtmTypeVO> referDataGrid(BaseQueryObject baseQueryObject) throws ServiceException {
+		Map<String, String> conditionMap = baseQueryObject.getConditionMap();
+		conditionMap.put("domain", AppConstant.APPLICATION_NAME_CODE);
+		baseQueryObject.setConditionMap(conditionMap);
+		Page<BtmTypeVO> refPage = null;
+		try {
+			refPage = btmTypeClient.getRefPage(baseQueryObject).getData();
+		}catch (Exception e){
+			throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒");
+		}
+		return refPage;
+	}
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬э紝涓嶅垎椤�
+	 * @param baseQueryObject 鏌ヨ瀵硅薄
+	 * @return 灞炴�х殑淇℃伅
+	 */
+	@Override
+	public Page<AttributeVO> gridAttributesByBtmId(BaseQueryObject baseQueryObject) {
+		String btmTypeId = baseQueryObject.getConditionMap().containsKey("btmTypeId")?baseQueryObject.getConditionMap().get("btmTypeId"):"";
+		if(StringUtils.isBlank(btmTypeId)){
+			return new Page<AttributeVO>();
+		}
+		String hasDefaultAttr = baseQueryObject.getConditionMap().getOrDefault("hasDefaultAttr","false");
+		String attrId = baseQueryObject.getConditionMap().containsKey("name")?baseQueryObject.getConditionMap().get("name").replace("*",""):"";
+		String attrName = baseQueryObject.getConditionMap().containsKey("label") ? baseQueryObject.getConditionMap().get("label").replace("*","") : "";
+		// TODO 鏍规嵁涓氬姟绫诲瀷id鑾峰彇鍏宠仈鐨勫睘鎬�
+		List<BtmTypeAttributeVO> boAttrs = null; //attributeClient.get();
+		if(boAttrs == null){
+			boAttrs = new ArrayList<>();
+		}
+		if(BooleanEnum.TRUE.getValue().equalsIgnoreCase(hasDefaultAttr)){
+			// TODO 鑾峰彇榛樿鐨勫睘鎬�
+			List<BtmTypeAttributeVO> finalBoAttrs = boAttrs;
+
+			List<BtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>(); //attributeClient.getDefaultAttributeVOs();
+			btmTypeAttributeVOS.stream().forEach(attr->{
+				BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
+				BeanUtil.convert(attr,attributeVO);
+				attributeVO.setAttributeLength(attr.getAttributeLength());
+				attributeVO.setAttrDataType(attr.getAttrDataType());
+				attributeVO.setReferBtmTypeId(attr.getBtmTypeId());
+				attributeVO.setReferBtmTypeName(attr.getReferBtmTypeName());
+				finalBoAttrs.add(attributeVO);
+			});
+			boAttrs = finalBoAttrs;
+		}
+		List<BtmTypeAttributeVO> attrList = boAttrs.stream().filter(s->{
+			boolean usedFlag = true;
+			if(StringUtils.isNotBlank(attrId) && !s.getId().contains(attrId.replace("*",""))){
+				usedFlag = false;
+			}
+			if(StringUtils.isNotBlank(attrName) && !s.getName().contains(attrName.replace("*",""))){
+				usedFlag = false;
+			}
+			return usedFlag;
+		}).collect(Collectors.toList());
+
+		return new Page<>();
+	}
+
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 61d5c0e..8734b22 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -13,7 +13,6 @@
 import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
 import com.vci.ubcs.code.entity.*;
 import com.vci.ubcs.code.enumpack.*;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
 import com.vci.ubcs.code.mapper.CodeWupinMapper;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
@@ -21,6 +20,7 @@
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
 import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
 import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.omd.feign.IAttributeClient;
 import com.vci.ubcs.omd.feign.IBtmTypeClient;
 import com.vci.ubcs.omd.feign.IEnumClient;
 import com.vci.ubcs.omd.feign.IRevisionRuleClient;
@@ -90,28 +90,28 @@
 	 */
 	@Resource
 	private CodeClstemplateServiceImpl templateService;
-	/**
-	 * 妯℃澘鐨勬湇鍔�
-	 */
+
 	@Resource
-	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
-	@Resource
-	private CodeOsattributeServiceImpl attributeService;
+	private IAttributeClient attributeClient;
+
 	/**
 	 * 鐢熸垚缂栫爜鐨勬湇鍔�
 	 */
 	@Resource
 	private MdmProductCodeService productCodeService;
+
 	/**
 	 * 鍙緭鍙�夌殑鏈嶅姟
 	 */
 	@Resource
 	IDictBizClient iDictBizClient;
+
 	/**
 	 * 瀛楀吀鐨勬湇鍔�
 	 */
 	@Resource
 	IEnumClient enumClient;
+
 	/**
 	 * 鍏紡鐨勬湇鍔�
 	 */
@@ -316,10 +316,11 @@
 		List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid());
 //		List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname());
 		//鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
-		QueryWrapper<CodeOsbtmtypeEntity> wrapper = new QueryWrapper<>();
+		QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
 		wrapper.eq("BTMNAME",baseModelDTO.getBtmname());
 		wrapper.in("OID",oids);
-		List<CodeOsbtmtypeEntity> cboList = codeOsbtmtypeMapper.selectList(wrapper);
+		// 寰呭畬鍠�
+		List<BtmTypeVO> cboList =  null;  // btmTypeClient.selectList(wrapper);
 		//杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
 //		Map<String, String> conditionMap = new HashMap<>();
 		QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
@@ -331,16 +332,18 @@
 //		List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
 		// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
 		if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
-//			BatchCBO batchCBO = new BatchCBO();
-//			batchCBO.getDeleteCbos().addAll(cboList);
-			codeOsbtmtypeMapper.deleteBatchIds(cboList);
-//			boService.persistenceBatch(batchCBO);
-		} else {
-//			lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
-		}
-//		lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
-	}
+			// BatchCBO batchCBO = new BatchCBO();
+			// batchCBO.getDeleteCbos().addAll(cboList);
 
+			// 寰呭畬鍠�
+			//btmTypeClient.deleteBatchIds(cboList);
+
+			//boService.persistenceBatch(batchCBO);
+		} else {
+			// lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
+		}
+		// lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
+	}
 
 	/**
 	 * 鐢宠鍗曚竴缂栫爜
@@ -1574,11 +1577,12 @@
 				selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField);
 			});
 		}
-		Optional.ofNullable(attributeService.getDefaultAttributeVOMap()).orElseGet(() -> new HashMap<>()).keySet().stream().forEach(attrId -> {
-			if (!selectFieldList.contains(attrId) && !"secretgrade".equalsIgnoreCase(attrId)) {
-				selectFieldList.add(attrId);
-			}
-		});
+		// 寰呭畬鍠�
+//		Optional.ofNullable(attributeService.getDefaultAttributeVOMap()).orElseGet(() -> new HashMap<>()).keySet().stream().forEach(attrId -> {
+//			if (!selectFieldList.contains(attrId) && !"secretgrade".equalsIgnoreCase(attrId)) {
+//				selectFieldList.add(attrId);
+//			}
+//		});
 		if (!selectFieldList.contains(CODE_FIELD)) {
 			selectFieldList.add(CODE_FIELD);
 		}
@@ -1781,9 +1785,10 @@
 	 */
 	private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) {
 		StringBuilder sql = new StringBuilder();
-		if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) {
-			sql.append("t.");
-		}
+		// 寰呭畬鍠�
+//		if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) {
+//			sql.append("t.");
+//		}
 		if (value.startsWith(QueryOptionConstant.IN)) {
 			sql.append(selectKey)
 				.append(SPACE)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsattributeWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsattributeWrapper.java
deleted file mode 100644
index ebd1bbf..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsattributeWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.wrapper;
-
-import org.springblade.core.mp.support.BaseEntityWrapper;
-import org.springblade.core.tool.utils.BeanUtil;
-import com.vci.ubcs.code.entity.CodeOsattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsattributeVO;
-import java.util.Objects;
-
-/**
- * 灞炴�ф樉绀哄璞� 鍖呰绫�,杩斿洖瑙嗗浘灞傛墍闇�鐨勫瓧娈�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public class CodeOsattributeWrapper extends BaseEntityWrapper<CodeOsattributeEntity, CodeOsattributeVO>  {
-
-	public static CodeOsattributeWrapper build() {
-		return new CodeOsattributeWrapper();
- 	}
-
-	@Override
-	public CodeOsattributeVO entityVO(CodeOsattributeEntity CodeOsattribute) {
-		CodeOsattributeVO CodeOsattributeVO = Objects.requireNonNull(BeanUtil.copy(CodeOsattribute, CodeOsattributeVO.class));
-
-		//User createUser = UserCache.getUser(CodeOsattribute.getCreateUser());
-		//User updateUser = UserCache.getUser(CodeOsattribute.getUpdateUser());
-		//CodeOsattributeVO.setCreateUserName(createUser.getName());
-		//CodeOsattributeVO.setUpdateUserName(updateUser.getName());
-
-		return CodeOsattributeVO;
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeWrapper.java
deleted file mode 100644
index 46a9b4e..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.wrapper;
-
-import org.springblade.core.mp.support.BaseEntityWrapper;
-import org.springblade.core.tool.utils.BeanUtil;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
-import java.util.Objects;
-
-/**
- * 涓氬姟绫诲瀷 鍖呰绫�,杩斿洖瑙嗗浘灞傛墍闇�鐨勫瓧娈�
- *
- * @author yuxc
- * @since 2023-04-13
- */
-public class CodeOsbtmtypeWrapper extends BaseEntityWrapper<CodeOsbtmtypeEntity, CodeOsbtmtypeVO>  {
-
-	public static CodeOsbtmtypeWrapper build() {
-		return new CodeOsbtmtypeWrapper();
- 	}
-
-	@Override
-	public CodeOsbtmtypeVO entityVO(CodeOsbtmtypeEntity PLCodeOsbtmtype) {
-		CodeOsbtmtypeVO PLCodeOsbtmtypeVO = Objects.requireNonNull(BeanUtil.copy(PLCodeOsbtmtype, CodeOsbtmtypeVO.class));
-
-		//User createUser = UserCache.getUser(PLCodeOsbtmtype.getCreateUser());
-		//User updateUser = UserCache.getUser(PLCodeOsbtmtype.getUpdateUser());
-		//PLCodeOsbtmtypeVO.setCreateUserName(createUser.getName());
-		//PLCodeOsbtmtypeVO.setUpdateUserName(updateUser.getName());
-
-		return PLCodeOsbtmtypeVO;
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeattributeWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeattributeWrapper.java
deleted file mode 100644
index b4b5c3c..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeattributeWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 搴勯獮 (smallchill@163.com)
- */
-package com.vci.ubcs.code.wrapper;
-
-import org.springblade.core.mp.support.BaseEntityWrapper;
-import org.springblade.core.tool.utils.BeanUtil;
-import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
-import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO;
-import java.util.Objects;
-
-/**
- * 涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬� 鍖呰绫�,杩斿洖瑙嗗浘灞傛墍闇�鐨勫瓧娈�
- *
- * @author yuxc
- * @since 2023-04-14
- */
-public class CodeOsbtmtypeattributeWrapper extends BaseEntityWrapper<CodeOsbtmtypeattributeEntity, CodeOsbtmtypeattributeVO>  {
-
-	public static CodeOsbtmtypeattributeWrapper build() {
-		return new CodeOsbtmtypeattributeWrapper();
- 	}
-
-	@Override
-	public CodeOsbtmtypeattributeVO entityVO(CodeOsbtmtypeattributeEntity CodeOsbtmtypeattribute) {
-		CodeOsbtmtypeattributeVO CodeOsbtmtypeattributeVO = Objects.requireNonNull(BeanUtil.copy(CodeOsbtmtypeattribute, CodeOsbtmtypeattributeVO.class));
-
-		//User createUser = UserCache.getUser(CodeOsbtmtypeattribute.getCreateUser());
-		//User updateUser = UserCache.getUser(CodeOsbtmtypeattribute.getUpdateUser());
-		//CodeOsbtmtypeattributeVO.setCreateUserName(createUser.getName());
-		//CodeOsbtmtypeattributeVO.setUpdateUserName(updateUser.getName());
-
-		return CodeOsbtmtypeattributeVO;
-	}
-
-
-}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java
index ac76c7c..bba0d8f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java
@@ -44,8 +44,8 @@
 	@Override
 	public CodeRuleVO entityVO(CodeRule codeRule) {
 		CodeRuleVO codeRuleVO = Objects.requireNonNull(BeanUtil.copy(codeRule, CodeRuleVO.class));
-		if(StringUtils.isNotBlank(codeRuleVO.getLcStatus())){
-			codeRuleVO.setLcStatusText(EnumCache.getValue(EnumEnum.CODE_RULE_LC,codeRuleVO.getLcStatus()));
+		if(StringUtils.isNotBlank(codeRule.getLcStatus())){
+			codeRuleVO.setLcStatusText(EnumCache.getValue(EnumEnum.CODE_RULE_LC,codeRule.getLcStatus()));
 		}
 		return codeRuleVO;
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index b054ef5..8485e2a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -47,7 +47,7 @@
     <select id="selectAllLevelChildOid" resultType="java.util.HashMap">
         select oid, level
         from PL_CODE_CLASSIFY
-                 START WITH parentCodeClassifyOid = #{oid}CONNECT BY
+                 START WITH parentCodeClassifyOid = #{oid} CONNECT BY
             PRIOR OID = parentCodeClassifyOid
     </select>
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsattributeMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsattributeMapper.xml
deleted file mode 100644
index 0907b0f..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsattributeMapper.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.vci.ubcs.code.mapper.CodeOsattributeMapper">
-
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="CodeOsattributeResultMap" type="com.vci.ubcs.code.entity.CodeOsattributeEntity">
-        <result column="OID" property="oid"/>
-        <result column="ID" property="id"/>
-        <result column="NAME" property="name"/>
-        <result column="DESCRIPTION" property="description"/>
-        <result column="ATTRIBUTEDATATYPE" property="attributedatatype"/>
-        <result column="ATTRIBUTEDATATYPETEXT" property="attributedatatypetext"/>
-        <result column="NULLABLEFLAG" property="nullableflag"/>
-        <result column="DEFAULTVALUE" property="defaultvalue"/>
-        <result column="ENUMID" property="enumid"/>
-        <result column="ENUMNAME" property="enumname"/>
-        <result column="BTMTYPEID" property="btmtypeid"/>
-        <result column="BTMTYPENAME" property="btmtypename"/>
-        <result column="ATTRLENGTH" property="attrlength"/>
-        <result column="PRECISIONLENGTH" property="precisionlength"/>
-        <result column="SCALELENGTH" property="scalelength"/>
-        <result column="RANGE" property="range"/>
-        <result column="BTMNAME" property="btmname"/>
-        <result column="OWNER" property="owner"/>
-        <result column="CREATOR" property="creator"/>
-        <result column="CREATETIME" property="createTime"/>
-        <result column="LASTMODIFIER" property="lastModifier"/>
-        <result column="LASTMODIFYTIME" property="lastModifyTime"/>
-        <result column="TS" property="ts"/>
-    </resultMap>
-
-
-    <select id="selectCodeOsattributePage" resultMap="CodeOsattributeResultMap">
-        select * from PL_CODE_OSATTRIBUTE where is_deleted = 0
-    </select>
-
-
-</mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeMapper.xml
deleted file mode 100644
index a56cd7a..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeMapper.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper">
-
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="PLCodeOsbtmtypeResultMap" type="com.vci.ubcs.code.entity.CodeOsbtmtypeEntity">
-        <result column="OID" property="oid"/>
-        <result column="ID" property="id"/>
-        <result column="NAME" property="name"/>
-        <result column="TABLENAME" property="tableName"/>
-        <result column="DESCRIPTION" property="description"/>
-        <result column="REVISIONRULEID" property="revisionruleid"/>
-        <result column="REVISIONRULENAME" property="revisionrulename"/>
-        <result column="REVISIONSEP" property="revisionsep"/>
-        <result column="INPUTREVISIONFLAG" property="inputrevisionflag"/>
-        <result column="SECRETFLAG" property="secretflag"/>
-        <result column="ABSTRACTFLAG" property="abstractflag"/>
-        <result column="IMPLCLASS" property="implclass"/>
-        <result column="SHAPE" property="shape"/>
-        <result column="LIFECYCLEID" property="lifecycleid"/>
-        <result column="LIFECYCLENAME" property="lifecyclename"/>
-        <result column="VERSIONRULE" property="versionRule"/>
-        <result column="SUBLIFECYCLEID" property="sublifecycleid"/>
-        <result column="SUBLIFECYCLENAME" property="sublifecyclename"/>
-        <result column="VIEWFLAG" property="viewflag"/>
-        <result column="VIEWCREATESQL" property="viewcreatesql"/>
-        <result column="BTMNAME" property="btmname"/>
-        <result column="OWNER" property="owner"/>
-        <result column="CREATOR" property="creator"/>
-        <result column="CREATETIME" property="createTime"/>
-        <result column="LASTMODIFIER" property="lastModifier"/>
-        <result column="LASTMODIFYTIME" property="lastModifyTime"/>
-        <result column="TS" property="ts"/>
-    </resultMap>
-
-
-    <select id="selectPLCodeOsbtmtypePage" resultMap="PLCodeOsbtmtypeResultMap">
-        select * from PL_CODE_OSBTMTYPE where is_deleted = 0
-    </select>
-
-
-</mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeattributeMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeattributeMapper.xml
deleted file mode 100644
index 6abc6b7..0000000
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeattributeMapper.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper">
-
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="CodeOsbtmtypeattributeResultMap" type="com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity">
-        <result column="OID" property="oid"/>
-        <result column="PKBTMTYPE" property="pkbtmtype"/>
-        <result column="ID" property="id"/>
-        <result column="NAME" property="name"/>
-        <result column="ATTRIBUTELENGTH" property="attributelength"/>
-        <result column="DESCRIPTION" property="description"/>
-        <result column="ATTRDATATYPE" property="attrdatatype"/>
-        <result column="NULLABLEFLAG" property="nullableflag"/>
-        <result column="DEFAULTVALUE" property="defaultvalue"/>
-        <result column="PRECISIONLENGTH" property="precisionlength"/>
-        <result column="SCALELENGTH" property="scalelength"/>
-        <result column="RANGE" property="range"/>
-        <result column="REFERBTMTYPEID" property="referbtmtypeid"/>
-        <result column="REFERBTMTYPENAME" property="referbtmtypename"/>
-        <result column="ENUMID" property="enumid"/>
-        <result column="ENUMNAME" property="enumname"/>
-        <result column="BTMNAME" property="btmname"/>
-        <result column="OWNER" property="owner"/>
-        <result column="CREATOR" property="creator"/>
-        <result column="CREATETIME" property="createTime"/>
-        <result column="LASTMODIFIER" property="lastModifier"/>
-        <result column="LASTMODIFYTIME" property="lastModifyTime"/>
-        <result column="TS" property="ts"/>
-    </resultMap>
-
-
-    <select id="selectCodeOsbtmtypeattributePage" resultMap="CodeOsbtmtypeattributeResultMap">
-        select * from PL_CODE_OSBTMTYPEATTRIBUTE where is_deleted = 0
-    </select>
-
-
-</mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
index 4613774..29577d9 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
@@ -51,7 +51,6 @@
 	 */
 	private final IBtmTypeService btmTypeService;
 
-
 	/**
 	 * 鏌ョ湅璇︽儏
 	 *
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
index 997bea0..d5c59e2 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
@@ -62,7 +62,7 @@
 	 */
 	@Override
 	@PostMapping(GET_REF_PAGE)
-	public R<IPage<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
+	public R<Page<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
 		Map<String, String> conditionMap = baseQueryObject.getConditionMap();
 		if (conditionMap == null){
 			conditionMap = new HashMap<>(16);
@@ -83,10 +83,10 @@
 		query.setSize(pageHelper.getLimit());
 		query.setCurrent(pageHelper.getPage());
 		IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(BtmType::getDomain, domainValue).orderByAsc(BtmType::getId));
-		IPage<BtmTypeVO> pageVO = new Page<>();
+		Page<BtmTypeVO> pageVO = new Page<>();
 		BeanUtil.copy(page,pageVO);
 		pageVO.setRecords(BtmTypeWrapper.build().listEntityVO(page.getRecords()));
-		R<IPage<BtmTypeVO>> r = R.data(pageVO);
+		R<Page<BtmTypeVO>> r = R.data(pageVO);
 		r.setSuccess(true);
 		return r;
 	}

--
Gitblit v1.9.3