引用码段关于业务类型接口的联调,重复使用的界面抽离成单独组件
已修改25个文件
已删除31个文件
已添加7个文件
5419 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/code/referBtmType.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/advanced-query/advanced-query.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue 1248 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue 606 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classifytreeoption.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/referBtmDialog.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 717 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsattributeDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeattributeDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeOsbtmtypeClient.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsattributeVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsattributeController.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeController.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeattributeController.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferBtmTypeController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeOsbtmtypeClient.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsattributeMapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeMapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeattributeMapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsattributeService.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeattributeService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeReferBtmTypeService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsattributeServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeattributeServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferBtmTypeServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsattributeWrapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeWrapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeattributeWrapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsattributeMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeattributeMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
    }
  })
}
Source/UBCS-WEB/src/components/advanced-query/advanced-query.vue
ÎļþÒÑɾ³ý
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: {
        // ç›‘听父组件传的窗口显示隐藏的值
        visible (){
            this.isShowDialog = this.visible;
        }
    },
    created () {
        // å°†options配置赋值到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>
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', //当前活动的tab
      activeNameAttr: 'first', //变量中的当前活动tab
@@ -639,6 +644,12 @@
      ],
    };
  },
  watch: {
      // ç›‘听父组件传的窗口显示隐藏的值
      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;  
    },
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: {
        // ç›‘听父组件传的窗口显示隐藏的值
        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>
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显示代码',
                                    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显示代码',
                                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"){
                // ç›´æŽ¥ä¿å­˜,所以直接调用code界面的界面回显
                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"){
                    // ç›´æŽ¥ä¿å­˜,所以直接调用code界面的界面回显
                    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的变动切换attr表格的显示隐藏,调整查询条件表格的宽度
            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的变动切换attr表格的显示隐藏,调整查询条件表格的宽度
        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>
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', //当前活动的tabs
                //为【参照的业务类型】选取值对话框
                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: '', //查询条件,业务类型id
                },
                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 = '';
                }
            },
            // å…³é—­å¯¹è¯æ¡†æ—¶å¯¹é€‰ä¸­å†…容进行清空,并解绑全局监听事件
            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;
            },
        }
    };
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: {
        // ç›‘听父组件传的窗口显示隐藏的值
        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>
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,
Source/UBCS-WEB/src/const/code/classifytreeoption.js
ÎļþÒÑɾ³ý
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: "描述",
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,
      }
    ]
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 => {
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>
      <!-- ç¬¬äºŒå±‚对话框,自定义参照配置Form组件 -->
      <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: "当前用户的IP密级",
            },
            {
                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: "当前用户的IP密级",
              },
              {
                  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 @@
        // ç æ®µç±»åž‹æ”¹å˜æ—¶ï¼Œå¢žåŠ å¯¹åº”çš„form表单中的属性
        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 {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsattributeDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOsbtmtypeattributeDTO.java
ÎļþÒÑɾ³ý
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;
    /**
     * è¡¨å•上显示的样式
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeOsbtmtypeClient.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsattributeVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java
ÎļþÒÑɾ³ý
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);
    /**
     * å‚照列表查询
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("获取数据失败");
    }
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;
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;
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);
    }
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);
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
@@ -72,7 +72,7 @@
    * @return æ‰§è¡Œç»“æžœ success为true为可以删除,false表示有数据引用,obj为true表示有下级
    */
    @PostMapping( "/checkIsCanDelete")
    public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
    public R checkIsCanDelete(CodeClassifyValueDTO codeClassifyValueDTO)  {
        return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsattributeController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeOsbtmtypeattributeController.java
ÎļþÒÑɾ³ý
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));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeOsbtmtypeClient.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsattributeMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeOsbtmtypeattributeMapper.java
ÎļþÒÑɾ³ý
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,支持id和name两种查询条件
     * @return å±žæ€§çš„信息,包含默认的属性
     */
    DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject);
    DataGrid<BtmTypeAttributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject);
    /**
     * èŽ·å–å½“å‰åˆ†ç±»çš„é¡¶å±‚åˆ†ç±»
@@ -193,7 +190,6 @@
     * @return åˆ†ç±»çš„æ˜¾ç¤ºå¯¹è±¡
     */
    CodeClassifyVO getObjectByIdPath(String idPath);
    /**
     * ä¸»é¢˜åº“的树
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);
    /**
     * åŒæ­¥åˆ°å…¶ä»–模板
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsattributeService.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeService.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeOsbtmtypeattributeService.java
ÎļþÒÑɾ³ý
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;
/**
 * å¯¹omd中提供的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);
}
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 @@
    }
    /**
     * ä¸»é¢˜åº“的树,已经联调业务类型查询
     * ä¸»é¢˜åº“的树,已联调业务类型查询feign
     *
     * @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;
    }
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);
        //把默认的属性也添加到boAttrs
        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);
            }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsattributeServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeOsbtmtypeattributeServiceImpl.java
ÎļþÒÑɾ³ý
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;
/**
 * å¯¹omd中提供的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<>();
    }
}
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);
        //还需要修改allCode的生命周期
//        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)
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsattributeWrapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeWrapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeOsbtmtypeattributeWrapper.java
ÎļþÒÑɾ³ý
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;
    }
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>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsattributeMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeOsbtmtypeattributeMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
@@ -51,7 +51,6 @@
     */
    private final IBtmTypeService btmTypeService;
    /**
     * æŸ¥çœ‹è¯¦æƒ…
     *
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;
    }