ludc
2023-05-23 b8886034cbd7a43911d6b24e322f604f557c1e02
增加referconfig的相关接口
已修改26个文件
已重命名1个文件
已添加4个文件
2191 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/template/templateAttr.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 299 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue 434 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeReferConfig.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSrchCondConfig.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeReferConfigVO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeShowFieldConfigVO.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSrchCondConfigVO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/BladeTreeQueryObject.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/BladeQueryObject.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferConfigController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeReferConfigMapper.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeShowFieldConfigMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSrchCondConfigMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeReferConfigService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeReferConfigWraper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/template/templateAttr.js
@@ -76,7 +76,7 @@
    }
  })
}
//查询
export const  gridCodeClassifyFindTemplate = (params) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/gridCodeClassifyTemplate',
@@ -128,6 +128,13 @@
    params:{
     ...params
    }
  })}
//克隆模板copy
export const  copy = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/copy',
    method: 'post',
    data:data
  })
}
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue
@@ -19,21 +19,14 @@
      type: {},
      Taboption: {
        column: [{
          icon: 'el-icon-info',
          label: '模板属性',
          prop: 'tab1',
        }, {
          icon: 'el-icon-warning',
          label: '模板流程',
          prop: 'tab2',
        }, {
          icon: 'el-icon-question',
          label: '模板阶段',
          prop: 'tab3',
        }, {
          icon: 'el-icon-question',
          label: '模板按钮流程',
          prop: 'tab4',
        }]
      },
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -15,6 +15,8 @@
        sex: "男"
      },
      option: {
        submitBtn:false,
        emptyBtn:false,
        column: [
          {
            label: '主题库/分类编号',
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -7,15 +7,12 @@
        <div>
          <div style="display: flex;justify-content: space-around">
            <el-button plain size="small" type="primary" @click="TreeAdd">添加</el-button>
            <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button>
            <el-button plain size="small" type="primary" @click="Enable">启用</el-button>
          </div>
          <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px">
            <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button>
            <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button>
            <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button>
            <el-button plain size="small" type="primary" @click="flushed">刷新</el-button>
          </div>
          <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px">
          </div>
        </div>
        <!--        æ ‘节点添加对话框-->
@@ -62,7 +59,6 @@
                   @check-change="checkChange"
        >
        </avue-tree>
      </basic-container>
    </el-aside>
    <el-main>
@@ -70,7 +66,10 @@
        <!--        å³ä¾§è¡¨æ ¼-->
        <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs>
        <span v-if="type.prop==='tab1'">
          <basic-container>
           <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform>
        </span>
        <span v-else-if="type.prop==='tab2'">
            <basic-container>
               <avue-crud v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption"
                          @row-save="CrudRowSave"
                          @row-del="CrudRowDel"
@@ -79,10 +78,15 @@
            <template slot="menuLeft">
              <el-button plain size="small" type="primary" @click="FindFormVisible = true;">查询</el-button>
              <el-button plain size="small" type="primary" @click="TemRefresh">刷新</el-button>
              <el-button plain size="small" type="primary">从其它模板克隆</el-button>
                    <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button>
            <el-button plain size="small" type="primary" @click="Enable">启用</el-button>
            <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button>
              <el-button plain size="small" type="primary" @click="CloneBtn">从其它模板克隆</el-button>
              <div style="display: inline-block"> <el-input v-model="FindText" placeholder="请输入关键字按回车查询"
                                                            size="small"
                                                            @keyup.enter.native="EnterFind"></el-input></div>
              <!--              æŸ¥è¯¢å¯¹è¯æ¡†-->
           <el-dialog :visible.sync="FindFormVisible" append-to-body title="高级查询">
              <div>
                <el-button size="small" type="primary" @click="AdvQueries">查询</el-button>
@@ -91,7 +95,8 @@
             <div style="padding-left: 80px;margin-top: 15px;">
               <template v-for="(value, key) in FindSelect">
                <div style="display: flex;justify-content: space-around;width: 85%;margin-bottom: 15px">
                <el-select v-model="FindSelect[key]" placeholder="请选择" style="width: 28%" @change="handleSelectChange(key)">
                <el-select v-model="FindSelect[key]" placeholder="请选择" style="width: 28%"
                           @change="handleSelectChange(key)">
                  <el-option label="模板编号" value="0"></el-option>
                  <el-option label="模板名称" value="1"></el-option>
                  <el-option label="模板描述" value="2"></el-option>
@@ -104,17 +109,66 @@
                </el-select>
              <el-input v-model="QueryArray[key]" style="width: 49%"></el-input>
          <span> <i class="el-icon-delete" style="font-size: 22px;margin-top:8px;margin-left: 10px"/></span>
    </div>
  </template>
</div>
             </div>
          </template>
        </div>
           </el-dialog>
              <!--            æ¨¡æ¿å…‹éš†  -->
                <el-dialog :visible.sync="CloneVisible" append-to-body title="克隆模板">
                  <el-container>
                    <el-aside width="300px">
                      <div style="margin-bottom: 5px"><el-tag>主题库分类</el-tag></div>
                        <avue-tree ref="tree" v-model="TreeAvueform" v-loading="loading" :data="Treedata"
                                   :defaultExpandAll="false"
                                   :option="Treeoption"
                                   style="height: 50.5vh;margin-right: 10px"
                                   @node-click=" nodeClick"
                                   @check-change="checkChange"
                        >
                        </avue-tree>
                    </el-aside>
                     <el-container>
                       <el-main>
                         <div style="padding-left: 10px;height: 50.5vh">
                           <div style="margin: 8px 0;display: flex">
                             <el-select v-model="Clonevalue" size="small" style="width: 130px;">
                               <el-option
                                 v-for="item in this.CloneSelectOptions"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value">
                              </el-option>
                             </el-select>
                            <el-input v-model="CloneFind" size="small" style="width: 40%;margin-left: 15px" placeholder="输入值后按回车进行模糊查询"></el-input>
                             <el-button size="small" type="primary" plain style="margin-left: 10px" @click="CloneEnterFind"  @keyup.enter.native="CloneEnterFind">查询</el-button>
                           </div>
                            <avue-crud v-model="ClonecrudForm" v-loading="FormLoing" :data="this.CloneFormlist"
                                       :option="this.ClonecrudTreeOption"
                                       @selection-change="selectionChange"
                            ></avue-crud>
                         </div>
                       </el-main>
                     </el-container>
                    </el-container >
                   <div style="display: flex; justify-content: flex-end; align-items: center;margin-top: 10px" >
                     <el-button size="small " type="primary" @click="Clonehandler">确定</el-button>
                     <el-button size="small" @click="CloneVisible=false" >取消</el-button>
                   </div>
                      <el-dialog
                        width="30%"
                        title="克隆模板"
                        :visible.sync="CloneinnerVisible"
                        append-to-body>
                        <div>
                          <avue-form :option="CloneOption" @submit="Clonesubmit" v-model="CloneModel"></avue-form>
                        </div>
                    </el-dialog>
                </el-dialog>
            </template>
          </avue-crud>
          </basic-container>
    <templatePro :ProData="this.ProData"></templatePro>
        </span>
        <span v-else-if="type.prop==='tab2'">
           <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform>
          <templatePro :ProData="this.ProData"></templatePro>
        </span>
      </basic-container>
    </el-main>
@@ -140,8 +194,10 @@
  gridCodeClassifyFindTemplate,
  addSave,
  deleteData,
  editSave
  editSave,
  copy
} from "@/api/template/templateAttr";
import done from "@/views/work/done";
export default {
  name: "classifyTrees.vue",
@@ -157,6 +213,9 @@
      FindText: "",
      //高级查询对话框
      FindFormVisible: false,
      //克隆模板对话框
      CloneVisible: false,
      CloneinnerVisible:false,
      //高级查询下拉框
      FindSelect: {
        id: "0",
@@ -215,19 +274,101 @@
        // //这个是多选
        // multiple: true,
      },
      //模板管理form
      crudForm: "",
      //动态切换处理过的表格数据
      //克隆模板form
      ClonecrudForm: "",
      //动态切换处理过的模板表格数据
      Formlist: [],
      //克隆模板数据
      CloneFormlist: [],
      //克隆模板下拉框value
      Clonevalue: "0",
      //克隆模板搜索输入框
      CloneFind:"",
      //克隆模板下拉框数据
      CloneSelectOptions: [{
        value: '0',
        label: '模板编号'
        },
        {
          value: '1',
          label: '模板名称'
        },
      ],
      //克隆模板确认表单数据
      CloneOption:{
        column:[
          {
            label:'模板编号',
            prop:'id',
            rules: [{
              required: true,
              message: "请输入模板编号",
              trigger: "blur"
            }]
          }, {
            label:'模板名称',
            prop:'name',
            rules: [{
              required: true,
              message: "请输入模板名称",
              trigger: "blur"
            }]
          },
          {
            label:'描述',
            prop:'desc',
            type:'textarea',
            span:24
          }
        ]
      },
      //克隆模板双向绑定数据
      CloneModel:[],
      CloneSelect:[],
      //克隆模板option
      ClonecrudTreeOption: {
        index: true,
        border: true,
        menu: false,
        addBtn: false,
        selection: true,
        header: false,
        height: 430,
        column: [
          {
            label: "模板编号",
            prop: "id"
          },
          {
            label: "模板名称",
            prop: "name"
          },
          {
            label: "模板描述",
            prop: "description"
          },
          {
            label: "版本号",
            prop: "revisionSeq",
            display: false
          },
          {
            label: "状态",
            prop: "lcStatusText",
            display: false
          }
        ]
      },
      //tab状态
      type: {},
      //Tab配置项
      tabOption: {
        column: [{
          icon: 'el-icon-info',
          label: '基本信息',
          prop: 'tab1',
        }, {
          icon: 'el-icon-warning',
          label: '模板管理',
          prop: 'tab2',
        }]
@@ -247,7 +388,7 @@
      ],
      //传递给子组件动态渲染的数据
      TreeList: {},
      codeClassifyOid:""
      codeClassifyOid: ""
    }
  },
  //tab栏默认是表格
@@ -448,7 +589,7 @@
    async nodeClick(data) {
      //定义一个模板属性id,数据是模板管理表格里面的oid
      this.nodeClickList = data
      //console.log(data.oid)
      console.log(data.oid)
      try {
        await TreeObjcet(data.oid).then(res => {
          this.FlagObj = res.data.data
@@ -456,14 +597,22 @@
          this.$message.error(res)
        })
        //模板管理表格数据
        await gridCodeClassifyTemplate({'conditionMap[codeClassifyOid]':data.oid }).then(res => {
          this.Formlist = res.data.data.filter(item => {
            if (item.codeclassifyoid != "") {
              this.codeClassifyOid=item.codeclassifyoid
              return item.codeclassifyoid == this.nodeClickList.oid
            }
          })
          console.log("formlist", this.Formlist)
        await gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': data.oid}).then(res => {
          if (this.CloneVisible != true) {
            this.Formlist = res.data.data.filter(item => {
              if (item.codeclassifyoid != "") {
                this.codeClassifyOid = item.codeclassifyoid
                return item.codeclassifyoid == this.nodeClickList.oid
              }
            })
          } else {
            this.CloneFormlist = res.data.data.filter(item => {
              if (item.codeclassifyoid != "") {
                this.codeClassifyOid = item.codeclassifyoid
                return item.codeclassifyoid == this.nodeClickList.oid
              }
            })
          }
          gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid}).then(res => {
            this.ProData = res.data.data
            console.log(this.ProData)
@@ -548,25 +697,28 @@
      }
    },
    //模板管理渲染
    CrudRend(){
      gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]':this.nodeClickList.oid }).then(res=>{
    CrudRend() {
      gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': this.nodeClickList.oid}).then(res => {
        this.Formlist = res.data.data
      })
    },
    //模板管理表格添加
    CrudRowSave(row){
      if(this.nodeClickList.length <= 0){
    CrudRowSave(row,done) {
      debugger
      console.log(nodeClickList.length)
      if (this.nodeClickList.length <= 0) {
        this.$message({
          type: 'warning',
          message: '请先从树上选择一条数据!'
        });
      }else {
      } else {
        console.log(this.nodeClickList)
        let codeClassifyOid=this.codeClassifyOid
        this.$set(row,"codeclassifyoid",codeClassifyOid)
        addSave(row).then(res=>{
        let codeClassifyOid = this.codeClassifyOid
        this.$set(row, "codeclassifyoid", codeClassifyOid)
        addSave(row).then(res => {
          this.CrudRend()
        }).catch(res=>{
          done()
        }).catch(res => {
          this.$message({
            type: 'info',
            message: res
@@ -575,10 +727,10 @@
      }
    },
    //模板管理修改
    CrudRowUpdata(row){
      editSave(row).then(()=>{
    CrudRowUpdata(row) {
      editSave(row).then(() => {
        this.CrudRend()
      }).catch(res=>{
      }).catch(res => {
        this.$message({
          type: 'info',
          message: res
@@ -586,10 +738,10 @@
      })
    },
    //模板管理删除
    CrudRowDel(row){
      deleteData(row).then(res=>{
    CrudRowDel(row) {
      deleteData(row).then(res => {
        this.CrudRend()
      }).catch(res=>{
      }).catch(res => {
        this.$message({
          type: 'info',
          message: res
@@ -611,11 +763,64 @@
        })
      }
    },
    //克隆模板查询
    CloneEnterFind(){
      gridCodeClassifyTemplate().then(res => {
        this.CloneFormlist = res.data.data.filter(item => {
          if(this.Clonevalue == 0){
            return item.id.includes(this.CloneFind)
          }else if(this.Clonevalue == 1){
            return item.name.includes(this.CloneFind)
          }
        })
      })
    },
    //克隆模板选择确定
    Clonehandler(){
      if(this.CloneFormlist.length <= 0){
        this.$message({
          type: 'warning',
          message: '请选择要克隆的模板!'
        });
      }else if(this.CloneSelect.length >1){
        this.$message({
          type: 'warning',
          message: '只能选择一条数据!'
        });
      } else {
        this.CloneinnerVisible=true
      }
    },
    //点击从其它模板克隆
    CloneBtn(){
      if(this.nodeClickList.length <= 0){
        this.$message({
          type: 'warning',
          message: '请先从[主题库分类】树上选择一条数据!'
        });
      }else {
        this.CloneVisible=true;
      }
    },
    //克隆模板单选框改变
    selectionChange(row){
      console.log(row)
      this.CloneSelect=row
      this.CloneModel.id=row[0].id;
      this.CloneModel.name=row[0].name;
    },
    //克隆表单提交
    Clonesubmit(done){
      copy(this.CloneSelect[0]).then(res=>{
        console.log(res)
        done()
      })
    },
    //刷新
    TemRefresh() {
      this.FormLoing = true
      if (this.nodeClickList.oid != "") {
        gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]':this.nodeClickList.oid}).then(res => {
        gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': this.nodeClickList.oid}).then(res => {
          this.Formlist = res.data.data.filter(item => {
            return item.codeclassifyoid == this.nodeClickList.oid
          })
Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,441 @@
<template>
    <el-dialog
        title="选择参照配置"
        append-to-body
        :visible.sync="isShowReferConfigCrud"
        width="94%"
        id="refer-config-dialog"
        style="height: 115vh; margin-top: -14vh; overflow-y: hidden">
        <div style="width: 100%; overflow-y: auto; height: 70vh">
            <el-row style="width: 100%; height:70%">
                <el-col style="width: 70%; height: 100%;">
                    <basic-container style="width: 100%; ">
                        <avue-crud :option="referConfigCrudOption"
                            class="refer-config-crud"
                            :page.sync="referConfigParams.referConfigPage"
                            :table-loading="referConfigParams.referConfigLoading"
                            :data="referConfigParams.referConfigData"
                            :ref= "referConfigParams.ref"
                            @row-click="referConfigRowClick"
                            @selection-change="referConfigDataChange"
                            @search-change="referConfigSearchChange"
                            @search-reset="referConfigSearchReset">
                            <template #radio="{row}">
                                <el-radio v-model="referConfigParams.referConfigSelectedRow"
                                    :label="row.$index">
                                    &nbsp;
                                </el-radio>
                            </template>
                        </avue-crud>
                    </basic-container>
                </el-col>
                <el-col v-show="true" style="width: 30%; height: 100%;">
                    <basic-container style="width: 100%;">
                        <avue-form ref="refereConfigForm"
                        style="height: 65vh;"
                        :option="formOption"
                        class="refer-confg-form"
                        ></avue-form>
                    </basic-container>
                </el-col>
            </el-row>
            <el-row style="width: 100%; height:30%; margin-top: 130px">
                <basic-container style="width: 100%; height:100%;">
                    <avue-crud :option="attrAndSrchCondOption"
                        class="refer-attrorsrchcond-crud"
                        :table-loading="attrAndSrchCondParams.attrAndSrchCondLoading"
                        :data="attrAndSrchCondParams.attrAndSrchCondData"
                        :ref= "attrAndSrchCondParams.ref"
                        @row-click="attrAndSrchCondRowClick">
                    </avue-crud>
                </basic-container>
            </el-row>
        </div>
        <div slot="footer" class="dialog-footer">
            <el-button type="primary" @click="selectedreferConfig('selectedSave')">选择并保存</el-button>
            <el-button @click="selectedreferConfig('selectedEdit')">选择并修改</el-button>
        </div>
    </el-dialog>
</template>
<script>
//import func from "@/util/func";
export default {
    name: "referConfigDialog",
        props: {
        },
        data() {
            return{
                isShowReferConfigCrud:false,
                referConfigCrudOption: {
                    border: true,
                    height: '56vh',
                    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: 'referType'
                        },{
                            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: '110', //默认标签宽度
                    column: [{
                            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,
                            dicData: [{
                                label: '升序', value: 'asc'
                            }, {
                                label: '降序', value: 'desc'
                            }],
                            type: 'select',
                            disabled: true,
                            row: true,
                            placeholder: ' ',
                        }
                    ]
                },
                // æŽ’序类型的表单配置
                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,
                    dicData: [{
                        label: '升序', value: 'asc'
                    }, {
                        label: '降序', value: 'desc'
                    }],
                    type: 'select',
                    disabled: true,
                    row: true,
                    placeholder: ' ',
                }],
                // æ ‘形类型的表单配置
                treeColumn:[{
                    label: '树形的上级属性',
                    prop: 'parentFieldName',
                    span: 7,
                    tip: '树形展示的时候,上下级关系查找的属性。',
                    tipPlacement: 'right',
                    rules: [{
                        required: true,
                        message: "(树形的上级属性)必填项不能为空",
                        trigger: "blur",
                    }],
                },{
                    label: '上级属性值对应属性',
                    prop: 'parentUsedField',
                    span: 7,
                    tip: '上级属性存储的值,是上级数据的什么属性。一般都是oid。',
                    value: 'oid',
                    tipPlacement: 'right',
                },{
                    label: '根节点的值',
                    prop: 'parentValue',
                    span: 7,
                    tip: '树形展示的时候,上级的值。',
                    tipPlacement: 'right',
                },{
                    label: '树加载方式',
                    prop: 'loadType',
                    span: 7,
                    value: 'all',
                    dicData: [{
                        label: '全部', value: 'all'
                    }, {
                        label: '逐级加载', value: 'node'
                    }],
                    type: 'select',
                },{
                    label: '是否只能选择叶子节点',
                    prop: 'onlyLeaf',
                    span: 7,
                    value: false,
                    type: 'switch',
                },{
                    label: '排序字段',
                    prop: 'sortField',
                    span: 7,
                    //type: 'table',
                    tip: '查询数据时的排序字段',
                    tipPlacement: 'right',
                },{
                    label: '排序类型',
                    prop: 'sortType',
                    span: 7,
                    type: 'select',
                    value: 'asc',
                    dicData: [{
                        label: '升序', value: 'asc'
                    }, {
                        label: '降序', value: 'desc'
                    }],
                },],
                // å¹³å°ç±»åž‹çš„表单配置
                standColumn:[{
                    label: '参考的UI上下文',
                    prop: 'referContent',
                    span: 7,
                    tip: '只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效',
                    tipPlacement: 'right',
                },
                {
                    label: '平台的表格编号',
                    prop: 'displayTable',
                    span: 7,
                    tip: '与参照的UI上下文互斥,只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效',
                    tipPlacement: 'right',
                }],
                // æ˜¾ç¤ºçš„属性和查询条件表格区域
                attrAndSrchCondOption: {
                    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',
                                }
                            ],
                        },{
                            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: 'fieldType'
                                },{
                                    label: '列表可排序',
                                    prop: 'sort'
                                },{
                                    label: '排序字段',
                                    prop: 'sortField'
                                },{
                                    label: '字段宽度',
                                    prop: 'width'
                                },{
                                    label: '列固定位置',
                                    prop: 'fixedText'
                                },{
                                    label: 'js显示代码',
                                    prop: 'templet'
                                }
                            ]
                        },
                    ],
                },
                attrAndSrchCondParams: {
                    ref: "attrOrSrchCondCrud",
                    attrAndSrchCondLoading: false,
                    attrAndSrchCondData: [],
                },
            }
        },
        methods: {
            // ä¸‹ä¸€æ­¥è¦è¿›è¡Œçš„æ“ä½œé€‰æ‹©å¹¶ä¿å­˜æˆ–选择并修改
            selectedreferConfig(condition) {
                // å½“前选中的参照配置行
                let currentSeletedRow = this.referConfigParams.referConfigSelectedRowData;
                if(!currentSeletedRow){
                    this.$message.warning("请选择一条数据!");
                    return;
                }
                if(condition == "selectedSave"){
                    console.log(currentSeletedRow);
                }else {
                    console.log(currentSeletedRow);
                }
            },
            referConfigOnload(page, params = {}){
                this.referConfigParams.referConfigLoading = true;
                this.referConfigParams.referConfigData = [
                    {
                        id: 'test',
                        name: '测试',
                        referType: 'test',
                        textField: 'test',
                        valueField: 'test',
                        typeText:'默认配置',
                    },{
                        id: 'test1',
                        name: '测试1',
                        referType: 'test1',
                        textField: 'test1',
                        valueField: 'test1',
                        typeText:'平台配置',
                    }
                ];
                this.$nextTick(() => {
                    this.$refs[this.referConfigParams.ref].doLayout()
                })
                this.referConfigParams.referConfigLoading = false;
            },
            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);
            },
            referConfigDataChange(params, done){
                this.referConfigParams.referConfigQuery = params;
                this.referConfigParams.referConfigPage.currentPage = 1;
                this.referConfigOnload(this.referConfigParams.referConfigPage, params);
                done();
            },
            referConfigSearchReset(){
                this.referConfigParams.referConfigQuery = {};
                this.referConfigOnload(this.referConfigParams.referConfigPage);
            },
            // æ˜¾ç¤ºçš„属性和查询条件相关方法
            attrAndSrchCondOnload(row){
                this.attrAndSrchCondParams.attrAndSrchCondLoading = true;
                this.attrAndSrchCondParams.attrAndSrchCondParams = row.attrAndSrchCondParams
                this.attrAndSrchCondParams.attrAndSrchCondLoading = false;
            },
        },
}
</script>
<style>
    .refer-config-crud > .el-card > .el-card__body > .avue-crud__menu {
        display: none!important;
    }
    .refer-attrorsrchcond-crud > .el-card > .el-card__body > .avue-crud__menu {
        display: none!important;
    }
</style>
Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
ÎļþÃû´Ó Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue ÐÞ¸Ä
@@ -3,139 +3,117 @@
    <el-dialog
      title="参照配置"
      append-to-body
      :visible.sync="isShowReferConfig"
      :visible.sync="isShowReferConfigForm"
      width="90%"
      id="refer-config"
      id="refer-config-form"
      @close="recoveryDataAndForm('initData')"
      style="height: 115vh; margin-top: -14vh; overflow-y: hidden">
        <el-tabs v-model="activeName" @tab-click="handleClick">
            <el-tab-pane label="自定义参照配置" name="first">
                <div style="width: 100%; overflow-y: auto; height: 65vh">
                    <el-row>
                        <avue-form ref="form" :option="formOption" v-model="form" class="referTypeForm">
                            <template #referTypeName="{disabled,size}">
                                <el-input :disabled="disabled"
                                    :size="size"
                                    v-model="form.referTypeName"
                                    ref="referTypeName"
                                    placeholder="请选择 å‚照的业务类型"
                                    prefix-icon="el-icon-search"
                                    readonly="true"
                                    @focus="openSelectionTable('referType')">
                                    <i v-show="!disabled" slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('referType')" style="margin-right: 5px;cursor: pointer;"></i>
                                </el-input>
                            </template>
                            <template #sortField="{disabled,size}">
                                <el-input :disabled="disabled"
                                    :size="size"
                                    v-model="form.sortField"
                                    ref="sortField"
                                    placeholder="请选择 æŽ’序字段"
                                    prefix-icon="el-icon-search"
                                    readonly="true"
                                    @focus="openSelectionTable('sortField')">
                                    <i slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('sortField')" style="margin-right: 5px;cursor: pointer;"></i>
                                </el-input>
                            </template>
                        </avue-form>
                    </el-row>
                    <el-row v-show="form.type=='default' || form.type=='grid'">
                        <avue-crud
                            ref="crudAttr"
                            class="crud-attr"
                            :option="attrOption"
                            @cell-click="clickAttrEdit"
                            :data="attrData">
                            <!-- è¡¨æ ¼å†…操作按钮 -->
                            <template slot="menu" slot-scope="scope">
                                <el-button type="text"
                                    size="small"
                                    icon="el-icon-search"
                                    plain
                                    @click="scope.row.isquery=!scope.row.isquery">
                                    {{scope.row.isquery ? "取消快速查询":"快速查询"}}
                                </el-button>
                                <el-button type="text"
                                    size="small"
                                    icon="el-icon-minus"
                                    plain
                                    @click="removeCurrentRow(scope.row,'removeAttr')">移除
                                </el-button>
                            </template>
                            <!-- è¡¨æ ¼å·¦ä¸Šæ–¹æŒ‰é’®åŒºåŸŸ -->
                            <template slot="menuLeft" slot-scope="scope">
                                <el-button type="primary"
                                    size="small"
                                    icon="el-icon-plus"
                                    @click="openSelectionTable('selectAttr')">选择属性
                                </el-button>
                                <div class="tag-group" style="display: inline">
                                    <el-tag
                                        v-for="item in attrData"
                                        v-show="item.isquery && item.title!=''"
                                        style="margin-left: 3px"
                                        :key="item.title"
                                        type="info"
                                        size="small"
                                        effect="dark">
                                        {{ item.title }}
                                    </el-tag>
                                </div>
                            </template>
                        </avue-crud>
                    </el-row>
                    <el-row style="margin-top: 10px">
                        <avue-crud
                            ref="crudAddCondition"
                            :option="addSearchCondtionOption"
                            @cell-click="clickAddSearchCondtionEdit"
                            :data="addSearchCondtionData">
                            <!-- è¡¨æ ¼å†…操作按钮 -->
                            <template slot="menu" slot-scope="scope">
                                <el-button type="text"
                                    size="small"
                                    icon="el-icon-minus"
                                    plain
                                    @click="removeCurrentRow(scope.row,'removeaddSearchCondtion')">移除
                                </el-button>
                            </template>
                            <!-- è¡¨æ ¼å·¦ä¸Šæ–¹æŒ‰é’®åŒºåŸŸ -->
                            <template slot="menuLeft" slot-scope="scope">
                                <el-button type="primary"
                                    size="small"
                                    icon="el-icon-plus"
                                    @click="openSelectionTable('addSearchCondition')">
                                    æ·»åŠ æŸ¥è¯¢æ¡ä»¶
                                </el-button>
                            </template>
                        </avue-crud>
                    </el-row>
                </div>
            </el-tab-pane>
            <el-tab-pane label="直接选取参照配置" name="second">
                <div style="width: 100%; overflow-y: auto; height: 65vh">
                    <avue-crud
                        :option="selectReferConfigOption"
                        :table-loading="selectReferConfigLoading"
                        :data="selectReferConfigData"
                        :page.sync="selectReferConfigPage"
                        ref="selectReferConfigCrud"
                        @row-click="codeRuleRowClick"
                        @search-change="searchChange"
                        @search-reset="searchReset"
                        @selection-change="selectionChange"
                        @current-change="currentChange"
                        @size-change="sizeChange"
                        @refresh-change="refreshChange"
                        @on-load="onLoad">
                    </avue-crud>
                </div>
            </el-tab-pane>
        </el-tabs>
        <div style="width: 100%; overflow-y: auto; height: 70vh">
            <el-row>
                <avue-form ref="form" :option="formOption" v-model="form" class="referTypeForm">
                    <template #referTypeName="{disabled,size}">
                        <el-input :disabled="disabled"
                            :size="size"
                            v-model="form.referTypeName"
                            ref="referTypeName"
                            placeholder="请选择 å‚照的业务类型"
                            prefix-icon="el-icon-search"
                            readonly="true"
                            @focus="openSelectionTable('referType')">
                            <i v-show="!disabled" slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('referType')" style="margin-right: 5px;cursor: pointer;"></i>
                        </el-input>
                    </template>
                    <template #sortField="{disabled,size}">
                        <el-input :disabled="disabled"
                            :size="size"
                            v-model="form.sortField"
                            ref="sortField"
                            placeholder="请选择 æŽ’序字段"
                            prefix-icon="el-icon-search"
                            readonly="true"
                            @focus="openSelectionTable('sortField')">
                            <i slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('sortField')" style="margin-right: 5px;cursor: pointer;"></i>
                        </el-input>
                    </template>
                </avue-form>
            </el-row>
            <el-row v-show="form.type=='default' || form.type=='grid'">
                <avue-crud
                    ref="crudAttr"
                    class="crud-attr"
                    :option="attrOption"
                    @cell-click="clickAttrEdit"
                    :data="attrData">
                    <!-- è¡¨æ ¼å†…操作按钮 -->
                    <template slot="menu" slot-scope="scope">
                        <el-button type="text"
                            size="small"
                            icon="el-icon-search"
                            plain
                            @click="scope.row.isquery=!scope.row.isquery">
                            {{scope.row.isquery ? "取消快速查询":"快速查询"}}
                        </el-button>
                        <el-button type="text"
                            size="small"
                            icon="el-icon-minus"
                            plain
                            @click="removeCurrentRow(scope.row,'removeAttr')">移除
                        </el-button>
                    </template>
                    <!-- è¡¨æ ¼å·¦ä¸Šæ–¹æŒ‰é’®åŒºåŸŸ -->
                    <template slot="menuLeft" slot-scope="scope">
                        <el-button type="primary"
                            size="small"
                            icon="el-icon-plus"
                            @click="openSelectionTable('selectAttr')">选择属性
                        </el-button>
                        <div class="tag-group" style="display: inline">
                            <el-tag
                                v-for="item in attrData"
                                v-show="item.isquery && item.title!=''"
                                style="margin-left: 3px"
                                :key="item.title"
                                type="info"
                                size="small"
                                effect="dark">
                                {{ item.title }}
                            </el-tag>
                        </div>
                    </template>
                </avue-crud>
            </el-row>
            <el-row style="margin-top: 10px">
                <avue-crud
                    ref="crudAddCondition"
                    :option="addSearchCondtionOption"
                    @cell-click="clickAddSearchCondtionEdit"
                    :data="addSearchCondtionData">
                    <!-- è¡¨æ ¼å†…操作按钮 -->
                    <template slot="menu" slot-scope="scope">
                        <el-button type="text"
                            size="small"
                            icon="el-icon-minus"
                            plain
                            @click="removeCurrentRow(scope.row,'removeaddSearchCondtion')">移除
                        </el-button>
                    </template>
                    <!-- è¡¨æ ¼å·¦ä¸Šæ–¹æŒ‰é’®åŒºåŸŸ -->
                    <template slot="menuLeft" slot-scope="scope">
                        <el-button type="primary"
                            size="small"
                            icon="el-icon-plus"
                            @click="openSelectionTable('addSearchCondition')">
                            æ·»åŠ æŸ¥è¯¢æ¡ä»¶
                        </el-button>
                    </template>
                </avue-crud>
            </el-row>
        </div>
        <div slot="footer" class="dialog-footer">
            <el-button type="primary" @click="selectedListReferConfig">ç¡® å®š</el-button>
            <el-button @click="recoveryDataAndForm('initForm')">清空内容</el-button>
            <el-button @click="isShowReferConfig = false">取 æ¶ˆ</el-button>
            <el-button @click="isShowReferConfigForm = false">取 æ¶ˆ</el-button>
        </div>
        <el-dialog title="为【参照的业务类型】选取值"
@@ -159,7 +137,7 @@
                <template #radio="{row}">
                    <el-radio v-model="referBtmTypeSelectRow"
                        :label="row.$index">
                        -
                        &nbsp;
                    </el-radio>
                </template>
            </avue-crud>
@@ -189,7 +167,7 @@
                <template #radio="{row}">
                    <el-radio v-model="sortFieldSelectRow"
                        :label="row.$index">
                        -
                        &nbsp;
                    </el-radio>
                </template>
            </avue-crud>
@@ -246,47 +224,18 @@
</template>
    
<script>
    import func from "@/util/func";
    export default {
        name: "referConfigDialog",
        props: {
            //本场景变量
            thisSceneTableData: {
                type: Array,
            },
        },
        data() {
            let element = '';
            return {
                //测试表格行编辑效果
                // tableData:[{
                //         field: 'id',
                //         title: '编号',
                //         fieldType: 'text',
                //         fieldTypeText: '文本框',
                //         sort: true,
                //         sortField: 'id',
                //         width: '150',
                //         isquery: true,
                //         $cellEdit: false
                // },{
                //         field: 'name',
                //         title: '名称',
                //         fieldType: 'text',
                //         fieldTypeText: '文本框',
                //         sort: true,
                //         sortField: 'name',
                //         width: '180',
                //         isquery: true,
                //         $cellEdit: false
                // }],
                // tableOption:{
                //     tableData:[], //表格数据
                //     options:[] //表格配置项信息(表头,label宽度等)
                // },
                activeName: 'first', //当前活动的tabs
                labelWidth: '150',   // æ ‡é¢˜å®½åº¦
                isShowReferConfig: false,  // ç¬¬ä¸€å±‚对话框显示隐藏控制
                isShowReferConfigForm: false,  // ç¬¬ä¸€å±‚对话框显示隐藏控制
                referTypeIsReadOnly: false,
                // è¡¨å•对象
                form: {
@@ -459,80 +408,6 @@
                        }
                    ]
                },
                selectReferConfigOption: {
                    height:'auto',
                    tip: false,
                    addBtn: false,
                    editBtn: false,
                    //searchShow: false,
                    searchMenuSpan: 6,
                    border: false,
                    index: true,
                    viewBtn: false,
                    delBtn: false,
                    //selection: false,
                    //disablePage: false,
                    //refreshBtn: false,
                    //columnBtn: false,
                    dialogClickModal: false,
                    highlightCurrentRow: true,
                    column: [
                        {
                            label: "列字段(*)",
                            prop: "field",
                        },{
                            label: "列名(*)",
                            prop: "title",
                        },{
                            label: "字段类型(*)",
                            prop: "fieldTypeText",
                        },{
                            label: "列表可排序",
                            prop: "sort",
                        },{
                            label: "排序字段",
                            prop: "sortField",
                        },{
                            label: "字段宽度",
                            prop: "width",
                        },{
                            label: "列固定位置",
                            prop: "fixedText",
                        },{
                            label: "js显示代码",
                            prop: "templet",
                        },
                    ]
                },
                selectReferConfigLoading: false,
                selectReferConfigData: [
                    {
                        field: 'id',
                        title: '编号',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: "true",
                        sortField: 'id',
                        width: '150',
                        isquery: true,
                    },{
                        field: 'name',
                        title: '名称',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: "true",
                        sortField: 'name',
                        width: '180',
                        isquery: true,
                    }
                ],
                selectReferConfigPage: {
                    pageSize: 10,
                    currentPage: 1,
                    total: 0
                },
                selectReferConfigQuery: {},
                //为【参照的业务类型】选取值对话框
                selectionReferBtmTypeOption: {
@@ -1079,32 +954,6 @@
                                    //type: 'table',
                                    tip: '查询数据时的排序字段',
                                    tipPlacement: 'right',
                                    // children: {
                                    //     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'
                                    //     }],
                                    // },
                                    // è¿™å„¿éœ€è¦æ·»åŠ ä¸šåŠ¡ç±»åž‹æŽ¥å£è¯·æ±‚å®žçŽ°å¼¹çª—ç•Œé¢è¡¨æ ¼æ¸²æŸ“
                                },{
                                    label: '排序类型',
                                    prop: 'sortType',
@@ -1122,11 +971,10 @@
                    ]
                }
            },
        },
        mounted() {
            // éº»çš„这个地方调死我了
            this.element = document.getElementById('refer-config');
            this.element = document.getElementById('refer-config-form');
            this.element.addEventListener("click", (e) => {
                //<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 911px;">
                //console.log(e.target);
@@ -1162,10 +1010,10 @@
                this.preClickAttrRow = row;
            },
            // å±žæ€§è¡¨æ ¼è¡Œç¼–辑失去焦点时保存方法
            updateAttrBlur(value){
            // updateAttrBlur(value){
                //console.log(this.attrData[0]);
                
            },
            // },
            // å•击表格实现表格行编辑
            clickAddSearchCondtionEdit(row, column, event){
                if(this.preClickAddSearchConditionRow && this.preClickAddSearchConditionRow != row){
@@ -1177,21 +1025,20 @@
            },
            //上一个页面已经选中参照应用的业务类型的情况,和上一次已经配置过参照配置的情况下进行页面初始化渲染
            initPageData(val){
                let value = JSON.parse(val);
                if(value != null || value != 'undefined' ){
                    this.form = value;
                //console.log(val);
                if(func.notEmpty(val.referConfig)){
                    this.form = JSON.parse(val.referConfig);
                    //console.log(val);
                    this.referTypeIsReadOnly = true;
                    return;
                }
                if(func.notEmpty(val.referType)){
                    this.form.referTypeName = val.referTypeName;
                    this.form.referType = val.referType;
                    this.referTypeIsReadOnly = true;
                    return;
                }
                //console.log(localStorage.getItem("userId"));
            },
            // åˆ‡æ¢å½“前活动的tabs
            handleClick(tab, event) {
                if(tab.index=='0'){
                    this.onloadAttrData();
                }else{
                    //this.onloadSelectReferConfigData();
                }
            },
            // é€‰æ‹©å®Œå‚照配置之后点击保存按钮触发
            selectedListReferConfig(){
@@ -1202,7 +1049,7 @@
                        let submitForm = this.filterForm();
                        //console.log(submitForm);
                        this.$emit('echoReferConfig', submitForm) // è§¦å‘update:data将子组件值传递给父组件
                        this.isShowReferConfig = false;
                        this.isShowReferConfigForm = false;
                        done()
                    } else {
                        for(let attr in msg) {
@@ -1214,17 +1061,9 @@
                    }
                })
            },
            //从缓存中那form表单对象
            getLocalStoregeForm(){
                localStorage.getItem("userId");
            },
            /** å…¶å®žé€‰å–属性表格的默认数据不需要加载,
             ä½†æ˜¯å¼¹çª—打开会有表格错行问题所以需要在这调用doLayout方法*/
            onloadAttrData(){
                this.$nextTick(() => {
                    this.$refs.crudAttr.doLayout()
                })
                this.attrData = [
                    {
                        field: 'id',
@@ -1248,6 +1087,9 @@
                        $cellEdit: false
                    }
                ];
                this.$nextTick(() => {
                    this.$refs.crudAttr.doLayout()
                })
            },
            // å±žæ€§é€‰æ‹©è¡¨æ ¼ä¸­çš„移除按钮功能
            removeCurrentRow(row,condition){
@@ -1353,30 +1195,6 @@
             */
            checkArrayIsUndefined(val){
                return typeof val === 'array' && (val.length === 0 ||val === null || typeof val === 'undefined');
            },
            onloadSelectReferConfigData(){
                this.$nextTick(() => {
                    this.$refs.selectReferConfigCrud.doLayout()
                })
                this.selectReferConfigData = [{
                    field: 'id',
                    title: '编号',
                    fieldType: 'text',
                    fieldTypeText: '文本框',
                    sort: "true",
                    sortField: 'id',
                    width: '150',
                    isquery: true,
                },{
                    field: 'name',
                    title: '名称',
                    fieldType: 'text',
                    fieldTypeText: '文本框',
                    sort: "true",
                    sortField: 'name',
                    width: '180',
                    isquery: true,
                }];
            },
            // æ‰“开表格选择框
            openSelectionTable(condition){
Source/UBCS-WEB/src/main.js
@@ -37,9 +37,9 @@
import TemplatePro from "@/components/Tree/TemplatePro"
import attrCrud from "@/components/Tree/attrCrud"
import formulaEditor from "@/components/code-dialog-page/formulaEditor"
import referConfigDialog from "@/components/code-dialog-page/referConfigDialog"
import referConfigCrudDialog from "@/components/code-dialog-page/referConfigCrudDialog"
import referConfigFormDialog from "@/components/code-dialog-page/referConfigFormDialog"
import businessAdd from "@/views/modeling/BusinessAdd"
import tableEdit from "@/components/code-dialog-page/tableEdit"
// æ³¨å†Œå…¨å±€crud驱动
window.$crudCommon = crudCommon;
@@ -74,10 +74,10 @@
Vue.component('classifyTreeform',classifyTreeform)
Vue.component('TemplatePro',TemplatePro)
Vue.component('formulaEditor',formulaEditor)
Vue.component('referConfigDialog',referConfigDialog)
Vue.component('referConfigCrudDialog',referConfigCrudDialog)
Vue.component('referConfigFormDialog',referConfigFormDialog)
Vue.component('businessAdd',businessAdd)
Vue.component('attrCrud',attrCrud)
Vue.component('tableEdit',tableEdit)
Source/UBCS-WEB/src/views/code/code.vue
@@ -757,11 +757,15 @@
        </div>
      </el-dialog>
      <!-- ç¬¬äºŒå±‚对话框,参照配置组件 -->
      <refer-config-dialog
        ref="referConfigDialog"
      <!-- ç¬¬äºŒå±‚对话框,自定义参照配置Form组件 -->
      <refer-config-form-dialog
        ref="referConfigFormDialog"
        @echoReferConfig="echoReferConfig" >
      </refer-config-dialog>
      </refer-config-form-dialog>
      <!-- ç¬¬äºŒå±‚对话框,直接选择参照配置curd组件 -->
      <refer-config-crud-dialog
        ref="referConfigCrudDialog">
      </refer-config-crud-dialog>
    </el-dialog>
@@ -1119,7 +1123,6 @@
        echoReferConfig(content){
          this.form.referBtmId = content.referType;
          this.form.referBtmName = content.referTypeName;
          //console.log(content);
          //转换成JSON字符串进行父组件回显
          let submitFormJson = JSON.stringify(content);
          this.form.referConfig = submitFormJson;
@@ -2385,14 +2388,46 @@
            this.isShowSelectReferBtmOption = true;
            this.refreshReferBtmDataChange();
          }else if(condition === 'referConfig'){
            this.$refs.referConfigDialog.isShowReferConfig = true;
            if(func.notEmpty(this.form.referConfig)){
               this.$refs.referConfigDialog.initPageData(this.form.referConfig);
            if(func.notEmpty(this.form.referConfig) || func.notEmpty(this.form.referBtmName)){
              this.$refs.referConfigFormDialog.isShowReferConfig = true;
              let value = {
                referTypeName: this.form.referBtmName,
                referType: this.form.referBtmId,
                referConfig: this.form.referConfig,
              }
              this.$refs.referConfigFormDialog.initPageData(value);
            }else{
              this.openTipsChooseOrCust();
            }
            //表格错行的问题所
            this.$refs.referConfigDialog.onloadAttrData();
             //this.$refs.referConfigFormDialog.onloadAttrData();
          }
        },
        // æ‰“开自定义参照配置或直接选择参照配置界面
        openTipsChooseOrCust(){
          this.$confirm('请选择参照配置的定义方式?','参照配置的方式', {
            distinguishCancelAndClose: true,
            closeOnClickModal: false,
            confirmButtonText: '自定义参照配置',
            cancelButtonText: '直接选择参照配置'
          })
          .then(() => {
            // æ‰“开自定参照配置对话框
            this.$refs.referConfigFormDialog.isShowReferConfigForm = true;
            // è¡¨æ ¼é”™è¡Œçš„问题
            this.$refs.referConfigFormDialog.onloadAttrData();
          })
          .catch(action => {
            if (action === "cancel") {
              // æ‰“开直接选择参照配置对话框
              this.$refs.referConfigCrudDialog.isShowReferConfigCrud = true;
              this.$refs.referConfigCrudDialog.referConfigOnload();
            }
            //console.log(action);
          });
          // è®©å‚照配置输入框失去焦点,否则该提示框无法被关闭
          this.$refs.referConfig.$el.querySelector('input').blur();
        },
        // ç‚¹å‡»è¾“入框的×号,清空输入框中的内容
        clearAttrDataByIcon(condition){
          if(condition === 'attr'){
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
@@ -9,6 +9,8 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.sql.Clob;
/**
 * åŸºç¡€ç æ®µçš„信息
 * æ–¹ä¾¿åœ¨åŒä¸€ä¸ªé¡µé¢é‡Œæ˜¾ç¤ºæ‰€æœ‰çš„码段
@@ -181,7 +183,6 @@
     */
    private String filterSql ;
    /**
     * æµæ°´å·èµ·å§‹å€¼
     */
@@ -191,7 +192,6 @@
     * æµæ°´çš„æ­¥é•¿
     */
    private Integer serialStep;
    /**
     * ç¼–码补位方式
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeReferConfig.java
@@ -1,9 +1,17 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.CodeShowFieldConfigVO;
import com.vci.ubcs.code.vo.CodeSrchCondConfigVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.apache.commons.math3.util.Precision;
import org.aspectj.weaver.ast.Not;
import org.ietf.jgss.Oid;
import java.util.List;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
@@ -20,6 +28,11 @@
     * åºåˆ—化
     */
    private static final long serialVersionUID = 957685333614390234L;
    /**
     * ç§Ÿæˆ·ID
     */
    private String tenantId;
    /**
     * å‚照的业务类型
@@ -131,5 +144,16 @@
     */
    private Integer orderNum;
    /**
     * æ˜¾ç¤ºçš„属性-显示对象
     */
    @TableField(exist = false)
    private List<CodeShowFieldConfig> codeShowFieldConfigs;
    /**
     * æŸ¥è¯¢æ¡ä»¶æ˜¾ç¤ºå¯¹è±¡
     */
    @TableField(exist = false)
    private List<CodeSrchCondConfig> codeSrchCondConfigs;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java
@@ -51,7 +51,7 @@
    /**
     * åˆ—固定位置
     */
    private String fixedText;
    private String fixedPosition;
    /**
     * js显示代码
@@ -59,6 +59,11 @@
    private String templet;
    /**
     * å…³è”的参照配置主键
     */
    private String referConfigOid;
    /**
     * æŽ’序
     */
    private Integer orderNum;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSrchCondConfig.java
@@ -35,9 +35,13 @@
    private String filterValue;
    /**
     * å…³è”的参照配置主键
     */
    private String referConfigOid;
    /**
     * æŽ’序
     */
    private Integer orderNum;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeReferConfigVO.java
@@ -1,10 +1,16 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
@@ -13,7 +19,7 @@
 * @date 2023/5/19 17:24
 */
@Data
public class CodeReferConfigVO extends BaseModelVO {
public class CodeReferConfigVO extends CodeReferConfig {
    /**
     * åºåˆ—化
@@ -21,59 +27,20 @@
    private static final long serialVersionUID = 957685333614390234L;
    /**
     * å‚照的业务类型
     * å‚照的业务类型-显示文本
     */
    private String referType;
    private String referTypeText;
    /**
     * æ˜¾ç¤ºçš„属性
     * å‚照窗口类型-显示文本
     */
    private String textField;
    /**
     * å­˜å‚¨å€¼çš„属性
     */
    private String valueField;
    /**
     * å‚照窗口类型
     */
    private String type;
    /**
     * è‡ªå®šä¹‰çš„后台路径
     */
    private String url;
    /**
     * æœåŠ¡çš„åœ°å€
     */
    private String backPath;
    private String typeText;
    /**
     * è¯·æ±‚后台的协议方式
     */
    private String method;
    /**
     * çª—口显示的高度
     */
    private Long height;
    /**
     * è¿‡æ»¤å±žæ€§è¯·æ±‚参数
     */
    private String paramForFormKey;
    /**
     * æ˜¯å¦å¤šé€‰
     */
    private String isMuti;
    /**
     * æ˜ å°„其他属性
     */
    private String mapFields;
    /**
     * å‚考的UI上下文
@@ -125,5 +92,15 @@
     */
    private String onlyLeaf;
    /**
     * æ˜¾ç¤ºçš„属性-显示对象
     */
    @TableField(exist = false)
    private List<CodeShowFieldConfigVO> codeShowFieldConfigVOS;
    /**
     * æŸ¥è¯¢æ¡ä»¶æ˜¾ç¤ºå¯¹è±¡
     */
    @TableField(exist = false)
    private List<CodeSrchCondConfigVO> codeSrchCondConfigVOS;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeShowFieldConfigVO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
@@ -13,48 +14,24 @@
 * @date 2023/5/19 17:35
 */
@Data
public class CodeShowFieldConfigVO extends BaseModelVO {
public class CodeShowFieldConfigVO extends CodeShowFieldConfig {
    private static final long serialVersionUID = -71135592796848692L;
    /**
     * åˆ—字段
     * å…³è”的参照配置id
     */
    private String field;
    private String configOid;
    /**
     * åˆ—名
     * å­—段类型-显示文本
     */
    private String title;
    private String fieldTypeText;
    /**
     * å­—段类型
     * åˆ—固定位置-显示文本
     */
    private String fieldType;
    private String fixedPositionText;
    /**
     * åˆ—表可排序
     */
    private String sort;
    /**
     * æŽ’序字段
     */
    private String sortField;
    /**
     * å­—段宽度
     */
    private Long width;
    /**
     * åˆ—固定位置
     */
    private String fixedText;
    /**
     * js显示代码
     */
    private String templet;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSrchCondConfigVO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
@@ -14,23 +15,18 @@
 */
@Data
public class CodeSrchCondConfigVO extends BaseModelVO {
public class CodeSrchCondConfigVO extends CodeSrchCondConfig {
    private static final long serialVersionUID = -51655155561881523L;
    /**
     * ç­›é€‰å­—段
     * å…³è”的参照配置id
     */
    private String filterField;
    private String configOid;
    /**
     * ç­›é€‰ç±»åž‹
     */
    private String filterType;
    /**
     * ç­›é€‰çš„值
     */
    private String filterValue;
    private String filterTypeText;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
@@ -20,8 +20,8 @@
 * @date 2023/4/24
 */
@FeignClient(
    value = AppConstant.APPLICATION_NAME_OMD,
    fallback = IBtmTypeFallback.class
    value = AppConstant.APPLICATION_NAME_OMD
    //fallback = IBtmTypeFallback.class
)
public interface IBtmTypeClient {
@@ -76,7 +76,7 @@
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping(GET_REF)
    R<List<BtmTypeVO>> getRef(@RequestParam("condition")Map<String,Object> condition, @RequestParam("domain") String domain);
    R<List<BtmTypeVO>> getRef(@RequestParam("condition")Map<String,Object> condition,@RequestParam("domain") String domain);
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
@@ -22,6 +22,7 @@
    @TableId(value = "OID",type = IdType.ASSIGN_UUID)
    private String oid;
    @TableField(value = "ID")
    private String id;
    private String name;
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/BladeTreeQueryObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.vci.ubcs.starter.util;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
 * åŽŸæœ¬çš„TreeQueryObject中map对象为String,String
 * æ‰€ä»¥æ”¹ä¸ºString,Object
 * @author ludc
 * @date 2023/5/23 15:25
 */
@Data
public class BladeTreeQueryObject implements Serializable {
    private static final long serialVersionUID = -7570704940199743059L;
    private Map<String, Object> conditionMap;
    private boolean multipleSelect;
    private boolean showCheckBox;
    private boolean queryAllLevel;
    private String parentOid;
    private String parentBtmName;
    private String valueField = "oid";
    private String textField = "name";
    private String parentFieldName;
    private Map<String, Object> extendParamsMap;
    private boolean queryAllRev;
    private String sort;
    private String order;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/BladeQueryObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,170 @@
package com.vci.ubcs.starter.web.pagemodel;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.springblade.core.mp.support.Query;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
 * å› ä¸ºå½“前框架使用的是query来做分页,
 * æ‰€ä»¥æˆ‘这边参照以前的BladeQueryObject来修改
 * ä¸€ä¸ªå½“前框架使用起来方便一点的对象
 * @author ludc
 * @date 2023/5/23 13:00
 */
public class BladeQueryObject implements Serializable {
    @JSONField(
        serialize = false,
        deserialize = false
    )
    private static final long serialVersionUID = 5608634730007623041L;
    @JSONField
    private Map<String, Object> conditionMap = new HashMap();
    @JSONField
    private int page = 1;
    @JSONField
    private String sort;
    @JSONField
    private String order;
    @JSONField
    private int limit = 25;
    public BladeQueryObject() {
    }
    public BladeQueryObject(Map<String, Object> conditionMap) {
        this.setConditionMap(conditionMap);
    }
    public BladeQueryObject(int limit) {
        this.setLimit(limit);
    }
    public BladeQueryObject(Map<String, Object> conditionMap, int limit) {
        this.setConditionMap(conditionMap);
        this.setLimit(limit);
    }
    public Map<String, Object> getConditionMap() {
        return this.conditionMap;
    }
    public Map<String, Object> getConditionMapByNick(String nick) {
        if (this.conditionMap != null) {
            Map<String, Object> conditionMapHasNick = new HashMap();
            this.conditionMap.forEach((k, v) -> {
                if (!k.contains(".")) {
                    conditionMapHasNick.put(nick + "." + k, v);
                } else {
                    conditionMapHasNick.put(k, v);
                }
            });
            return conditionMapHasNick;
        } else {
            return null;
        }
    }
    public void setConditionMap(Map<String, Object> conditionMap) {
        this.conditionMap = conditionMap;
    }
    public int getPage() {
        return this.page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public String getSort() {
        return this.sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return this.order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public int getLimit() {
        return this.limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    @JSONField(
        serialize = false,
        deserialize = false
    )
    public Query getQuery() {
        Query query = new Query();
        query.setCurrent(this.getPage());
        query.setSize(this.getLimit());
        query.setAscs(this.getSort());
        //query.setOrder(this.getOrder());
        return query;
    }
    public BladeQueryObject addSort(String sort, String order) {
        this.setSort(StringUtils.isBlank(this.getSort()) ? sort : this.getSort() + "," + sort);
        this.setOrder(StringUtils.isBlank(this.getOrder()) ? order : this.getOrder() + "," + order);
        return this;
    }
    public BladeQueryObject addCondition(String key, String value) {
        if (this.getConditionMap() == null) {
            this.conditionMap = new HashMap();
        }
        this.conditionMap.put(key, value);
        return this;
    }
    public BladeQueryObject page(Query query) {
        this.setSort(query.getDescs());
        this.setSort(query.getAscs());
        //this.setOrder(query.getOrder());
        this.setPage(query.getCurrent());
        this.setLimit(query.getSize());
        return this;
    }
    @JSONField(
        serialize = false,
        deserialize = false
    )
    public Map<String, Object> getFeignRequestMap() {
        Map<String, Object> feignRequestMap = new HashMap();
        if (this.conditionMap != null) {
            this.getConditionMap().forEach((k, v) -> {
                feignRequestMap.put("conditionMap[\"" + k + "\"]", v);
            });
        }
        feignRequestMap.put("page", this.getPage() + "");
        feignRequestMap.put("limit", this.getLimit() + "");
        feignRequestMap.put("sort", this.getSort());
        feignRequestMap.put("order", this.getOrder());
        return feignRequestMap;
    }
    @Override
    public String toString() {
        return "BladeQueryObject{conditionMap=" + this.conditionMap + ", page=" + this.page + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + ", limit=" + this.limit + '}';
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
@@ -26,6 +26,7 @@
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
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;
@@ -311,6 +312,7 @@
    public DataGrid<CodeOsattributeVO> listClassifyLinkAttr(BaseQueryObject baseQueryObject){
        return codeClassifyService.listClassifyLinkAttr(baseQueryObject);
    }
    /**
     * ä¸»é”®èŽ·å–ä¸»é¢˜åº“åˆ†ç±»
     * @param oid ä¸»é”®
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java
@@ -16,6 +16,7 @@
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -51,7 +52,7 @@
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
        }
        return R.data(codeClassifyProcessTempService.gridCodeClassifyProcessTemp(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()));
        return R.data(codeClassifyProcessTempService.gridCodeClassifyProcessTemp(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()));
    }
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferConfigController.java
@@ -1,7 +1,14 @@
package com.vci.ubcs.code.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.service.CodeReferConfigService;
import com.vci.ubcs.code.vo.CodeReferConfigVO;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
@@ -18,33 +25,32 @@
@RestController
@RequestMapping("codeReferConfig")
public class CodeReferConfigController {
    /**
     * æœåŠ¡å¯¹è±¡
     */
    @Resource
    private CodeReferConfigService plCodeReferconfigService;
    private CodeReferConfigService codeReferconfigService;
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeReferConfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @param bladeQueryObject ç­›é€‰æ¡ä»¶
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping
    public ResponseEntity<Page<CodeReferConfig>> queryByPage(CodeReferConfig codeReferConfig, PageRequest pageRequest) {
        return ResponseEntity.ok(this.plCodeReferconfigService.queryByPage(codeReferConfig, pageRequest));
    @GetMapping("getReferConfigPage")
    public R<IPage<CodeReferConfigVO>> queryByPage(BladeQueryObject bladeQueryObject) {
        return R.data(this.codeReferconfigService.queryByPage(bladeQueryObject));
    }
    /**
     * é€šè¿‡ä¸»é”®æŸ¥è¯¢å•条数据
     *
     * @param id ä¸»é”®
     * @param oid ä¸»é”®
     * @return å•条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<CodeReferConfig> queryById(@PathVariable("id") String id) {
        return ResponseEntity.ok(this.plCodeReferconfigService.queryById(id));
    @GetMapping("getByOid")
    public R<CodeReferConfig> queryById(@RequestParam("oid") String oid) {
        return R.data(this.codeReferconfigService.queryById(oid));
    }
    /**
@@ -53,9 +59,9 @@
     * @param codeReferConfig å®žä½“
     * @return æ–°å¢žç»“æžœ
     */
    @PostMapping
    public ResponseEntity<CodeReferConfig> add(CodeReferConfig codeReferConfig) {
        return ResponseEntity.ok(this.plCodeReferconfigService.insert(codeReferConfig));
    @PostMapping("/save")
    public R<CodeReferConfig> add(CodeReferConfig codeReferConfig) {
        return R.data(this.codeReferconfigService.insert(codeReferConfig));
    }
    /**
@@ -64,9 +70,9 @@
     * @param codeReferConfig å®žä½“
     * @return ç¼–辑结果
     */
    @PutMapping
    public ResponseEntity<CodeReferConfig> edit(CodeReferConfig codeReferConfig) {
        return ResponseEntity.ok(this.plCodeReferconfigService.update(codeReferConfig));
    @PutMapping("/edit")
    public R<CodeReferConfig> edit(CodeReferConfig codeReferConfig) {
        return R.data(this.codeReferconfigService.update(codeReferConfig));
    }
    /**
@@ -75,9 +81,9 @@
     * @param id ä¸»é”®
     * @return åˆ é™¤æ˜¯å¦æˆåŠŸ
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(String id) {
        return ResponseEntity.ok(this.plCodeReferconfigService.deleteById(id));
    @DeleteMapping("/del")
    public R<Boolean> deleteById(String id) {
        return R.data(this.codeReferconfigService.deleteById(id));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeReferConfigMapper.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeReferConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
@@ -11,7 +12,7 @@
 * @author makejava
 * @since 2023-05-19 17:47:51
 */
public interface CodeReferConfigMapper {
public interface CodeReferConfigMapper extends BaseMapper<CodeReferConfig> {
    /**
     * é€šè¿‡ID查询单条数据
@@ -24,60 +25,11 @@
    /**
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param plCodeReferconfig æŸ¥è¯¢æ¡ä»¶
     * @param codeReferConfig æŸ¥è¯¢æ¡ä»¶
     * @param pageable         åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<CodeReferConfig> queryAllByLimit(CodeReferConfig plCodeReferconfig, @Param("pageable") Pageable pageable);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param plCodeReferconfig æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(CodeReferConfig plCodeReferconfig);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int insert(CodeReferConfig plCodeReferconfig);
    /**
     * æ‰¹é‡æ–°å¢žæ•°æ®ï¼ˆMyBatis原生foreach方法)
     *
     * @param entities List<CodeReferConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     */
    int insertBatch(@Param("entities") List<CodeReferConfig> entities);
    /**
     * æ‰¹é‡æ–°å¢žæˆ–按主键更新数据(MyBatis原生foreach方法)
     *
     * @param entities List<CodeReferConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     * @throws org.springframework.jdbc.BadSqlGrammarException å…¥å‚是空List的时候会抛SQL语句错误的异常,请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<CodeReferConfig> entities);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int update(CodeReferConfig plCodeReferconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return å½±å“è¡Œæ•°
     */
    int deleteById(String oid);
    List<CodeReferConfig> queryAllByPage(CodeReferConfig codeReferConfig, @Param("pageable") Pageable pageable);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeShowFieldConfigMapper.java
@@ -1,6 +1,8 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
@@ -11,7 +13,7 @@
 * @author makejava
 * @since 2023-05-19 17:58:55
 */
public interface CodeShowFieldConfigMapper {
public interface CodeShowFieldConfigMapper extends BaseMapper<CodeShowFieldConfig> {
    /**
     * é€šè¿‡ID查询单条数据
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSrchCondConfigMapper.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
@@ -11,7 +12,7 @@
 * @author makejava
 * @since 2023-05-19 17:58:56
 */
public interface CodeSrchCondConfigMapper {
public interface CodeSrchCondConfigMapper extends BaseMapper<CodeSrchCondConfig> {
    /**
     * é€šè¿‡ID查询单条数据
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeReferConfigService.java
@@ -1,6 +1,12 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.vo.CodeReferConfigVO;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
import org.springblade.core.mp.support.Query;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -10,7 +16,7 @@
 * @author ludc
 * @since 2023-05-19 17:47:59
 */
public interface CodeReferConfigService {
public interface CodeReferConfigService extends IService<CodeReferConfig> {
    /**
     * é€šè¿‡ID查询单条数据
@@ -23,27 +29,26 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeReferconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @param bladeQueryObject ç­›é€‰æ¡ä»¶
     * @return æŸ¥è¯¢ç»“æžœ
     */
    Page<CodeReferConfig> queryByPage(CodeReferConfig plCodeReferconfig, PageRequest pageRequest);
    IPage<CodeReferConfigVO> queryByPage(BladeQueryObject bladeQueryObject);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @param codeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig insert(CodeReferConfig plCodeReferconfig);
    CodeReferConfig insert(CodeReferConfig codeReferconfig);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @param codeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig update(CodeReferConfig plCodeReferconfig);
    CodeReferConfig update(CodeReferConfig codeReferconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -9,6 +9,7 @@
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
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;
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java
@@ -1,9 +1,22 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.mapper.CodeReferConfigMapper;
import com.vci.ubcs.code.service.CodeReferConfigService;
import com.vci.ubcs.code.vo.CodeReferConfigVO;
import com.vci.ubcs.code.wrapper.CodeReferConfigWraper;
import com.vci.ubcs.starter.util.Map2MPJLambdaUtil;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
@@ -18,7 +31,7 @@
 * @since 2023-05-19 17:48:02
 */
@Service("CodeReferconfigService")
public class CodeReferConfigServiceImpl implements CodeReferConfigService {
public class CodeReferConfigServiceImpl extends ServiceImpl<CodeReferConfigMapper,CodeReferConfig> implements CodeReferConfigService {
    @Resource
    private CodeReferConfigMapper codeReferconfigMapper;
@@ -36,38 +49,44 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeReferconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @param bladeQueryObject ç­›é€‰æ¡ä»¶
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public Page<CodeReferConfig> queryByPage(CodeReferConfig plCodeReferconfig, PageRequest pageRequest) {
        long total = this.codeReferconfigMapper.count(plCodeReferconfig);
        return new PageImpl<>(this.codeReferconfigMapper.queryAllByLimit(plCodeReferconfig, pageRequest), pageRequest, total);
    }
    public IPage<CodeReferConfigVO> queryByPage(BladeQueryObject bladeQueryObject) {
        MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = Map2MPJLambdaUtil.getMPJLambdaWrapper(bladeQueryObject.getConditionMap(), CodeReferConfig.class)
            .selectAll(CodeReferConfig.class)
            .selectCollection("PCS",CodeShowFieldConfig.class, CodeReferConfig::getCodeShowFieldConfigs)
            .selectCollection("PCSR",CodeSrchCondConfig.class, CodeReferConfig::getCodeSrchCondConfigs)
            .leftJoin(CodeShowFieldConfig.class, CodeShowFieldConfig::getReferConfigOid,CodeReferConfig::getOid)
            .leftJoin(CodeSrchCondConfig.class, CodeSrchCondConfig::getReferConfigOid, CodeReferConfig::getOid)
            .orderBy(true, true, CodeReferConfig::getCreateTime);
        IPage<CodeReferConfig> codeReferConfigIPage = this.codeReferconfigMapper.selectPage(Condition.getPage(bladeQueryObject.getQuery()), mpjLambdaWrapper);
        return CodeReferConfigWraper.build().pageVO(codeReferConfigIPage);
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @param codeReferConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeReferConfig insert(CodeReferConfig plCodeReferconfig) {
        this.codeReferconfigMapper.insert(plCodeReferconfig);
        return plCodeReferconfig;
    public CodeReferConfig insert(CodeReferConfig codeReferConfig) {
        this.codeReferconfigMapper.insert(codeReferConfig);
        return codeReferConfig;
    }
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @param codeReferConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeReferConfig update(CodeReferConfig plCodeReferconfig) {
        this.codeReferconfigMapper.update(plCodeReferconfig);
        return this.queryById(plCodeReferconfig.getOid());
    public CodeReferConfig update(CodeReferConfig codeReferConfig) {
        this.codeReferconfigMapper.updateById(codeReferConfig);
        return this.queryById(codeReferConfig.getOid());
    }
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeReferConfigWraper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.code.wrapper;
import com.vci.ubcs.code.entity.CodePhaseAttr;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.vo.CodeReferConfigVO;
import com.vci.ubcs.code.vo.pagemodel.CodePhaseAttrVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.Objects;
/**
 * å‚照配置-包装类,返回视图层所需的字段
 *
 * @author ludc
 * @date 2023/5/23 10:51
 */
public class CodeReferConfigWraper extends BaseEntityWrapper<CodeReferConfig, CodeReferConfigVO> {
    public static CodeReferConfigWraper build() {
        return new CodeReferConfigWraper();
    }
    @Override
    public CodeReferConfigVO entityVO(CodeReferConfig codeReferConfig) {
        CodeReferConfigVO codeReferConfigVO = Objects.requireNonNull(BeanUtil.copy(codeReferConfig, CodeReferConfigVO.class));
        return codeReferConfigVO;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
@@ -4,7 +4,7 @@
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap type="com.vci.ubcs.code.entity.CodeBasicSec" id="CodeBasicsecMap">
        <result property="oid" column="OID" jdbcType="VARCHAR"/>
        <result property="oid" column="OID"/>
        <result property="revisionOid" column="REVISIONOID" jdbcType="VARCHAR"/>
        <result property="nameOid" column="NAMEOID" jdbcType="VARCHAR"/>
        <result property="btmname" column="BTMNAME" jdbcType="VARCHAR"/>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml
@@ -57,7 +57,7 @@
    </select>
    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="CodeReferconfigMap">
    <select id="queryAllByPage" resultMap="CodeReferconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF
        from PL_CODE_REFERCONFIG
@@ -194,347 +194,6 @@
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>
    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from PL_CODE_REFERCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="refertype != null and refertype != ''">
                and REFERTYPE = #{refertype}
            </if>
            <if test="textfield != null and textfield != ''">
                and TEXTFIELD = #{textfield}
            </if>
            <if test="valuefield != null and valuefield != ''">
                and VALUEFIELD = #{valuefield}
            </if>
            <if test="type != null and type != ''">
                and TYPE = #{type}
            </if>
            <if test="url != null and url != ''">
                and URL = #{url}
            </if>
            <if test="backpath != null and backpath != ''">
                and BACKPATH = #{backpath}
            </if>
            <if test="method != null and method != ''">
                and METHOD = #{method}
            </if>
            <if test="height != null">
                and HEIGHT = #{height}
            </if>
            <if test="paramforformkey != null and paramforformkey != ''">
                and PARAMFORFORMKEY = #{paramforformkey}
            </if>
            <if test="ismuti != null and ismuti != ''">
                and ISMUTI = #{ismuti}
            </if>
            <if test="mapfields != null and mapfields != ''">
                and MAPFIELDS = #{mapfields}
            </if>
            <if test="refercontent != null and refercontent != ''">
                and REFERCONTENT = #{refercontent}
            </if>
            <if test="displaytable != null and displaytable != ''">
                and DISPLAYTABLE = #{displaytable}
            </if>
            <if test="limit != null and limit != ''">
                and LIMIT = #{limit}
            </if>
            <if test="sortfield != null and sortfield != ''">
                and SORTFIELD = #{sortfield}
            </if>
            <if test="sorttype != null and sorttype != ''">
                and SORTTYPE = #{sorttype}
            </if>
            <if test="parentfieldname != null and parentfieldname != ''">
                and PARENTFIELDNAME = #{parentfieldname}
            </if>
            <if test="parentusedfield != null and parentusedfield != ''">
                and PARENTUSEDFIELD = #{parentusedfield}
            </if>
            <if test="parentvalue != null and parentvalue != ''">
                and PARENTVALUE = #{parentvalue}
            </if>
            <if test="loadtype != null and loadtype != ''">
                and LOADTYPE = #{loadtype}
            </if>
            <if test="onlyleaf != null and onlyleaf != ''">
                and ONLYLEAF = #{onlyleaf}
            </if>
        </where>
    </select>
    <!--新增所有列-->
    <insert id="insert" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values (#{revisionoid}, #{nameoid}, #{btmname}, #{lastr}, #{firstr}, #{lastv}, #{firstv}, #{creator}, #{createtime}, #{revisionseq}, #{revisionvalue}, #{versionseq}, #{versionvalue}, #{lctid}, #{lcstatus}, #{ts}, #{name}, #{description}, #{owner}, #{copyfromversion}, #{ordernum}, #{refertype}, #{textfield}, #{valuefield}, #{type}, #{url}, #{backpath}, #{method}, #{height}, #{paramforformkey}, #{ismuti}, #{mapfields}, #{refercontent}, #{displaytable}, #{limit}, #{sortfield}, #{sorttype}, #{parentfieldname}, #{parentusedfield}, #{parentvalue}, #{loadtype}, #{onlyleaf})
    </insert>
    <insert id="insertBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.refertype}, #{entity.textfield}, #{entity.valuefield}, #{entity.type}, #{entity.url}, #{entity.backpath}, #{entity.method}, #{entity.height}, #{entity.paramforformkey}, #{entity.ismuti}, #{entity.mapfields}, #{entity.refercontent}, #{entity.displaytable}, #{entity.limit}, #{entity.sortfield}, #{entity.sorttype}, #{entity.parentfieldname}, #{entity.parentusedfield}, #{entity.parentvalue}, #{entity.loadtype}, #{entity.onlyleaf})
        </foreach>
    </insert>
    <insert id="insertOrUpdateBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.refertype}, #{entity.textfield}, #{entity.valuefield}, #{entity.type}, #{entity.url}, #{entity.backpath}, #{entity.method}, #{entity.height}, #{entity.paramforformkey}, #{entity.ismuti}, #{entity.mapfields}, #{entity.refercontent}, #{entity.displaytable}, #{entity.limit}, #{entity.sortfield}, #{entity.sorttype}, #{entity.parentfieldname}, #{entity.parentusedfield}, #{entity.parentvalue}, #{entity.loadtype}, #{entity.onlyleaf})
        </foreach>
        on duplicate key update
        REVISIONOID = values(REVISIONOID),
        NAMEOID = values(NAMEOID),
        BTMNAME = values(BTMNAME),
        LASTR = values(LASTR),
        FIRSTR = values(FIRSTR),
        LASTV = values(LASTV),
        FIRSTV = values(FIRSTV),
        CREATOR = values(CREATOR),
        CREATETIME = values(CREATETIME),
        REVISIONSEQ = values(REVISIONSEQ),
        REVISIONVALUE = values(REVISIONVALUE),
        VERSIONSEQ = values(VERSIONSEQ),
        VERSIONVALUE = values(VERSIONVALUE),
        LCTID = values(LCTID),
        LCSTATUS = values(LCSTATUS),
        TS = values(TS),
        NAME = values(NAME),
        DESCRIPTION = values(DESCRIPTION),
        OWNER = values(OWNER),
        COPYFROMVERSION = values(COPYFROMVERSION),
        ORDERNUM = values(ORDERNUM),
        REFERTYPE = values(REFERTYPE),
        TEXTFIELD = values(TEXTFIELD),
        VALUEFIELD = values(VALUEFIELD),
        TYPE = values(TYPE),
        URL = values(URL),
        BACKPATH = values(BACKPATH),
        METHOD = values(METHOD),
        HEIGHT = values(HEIGHT),
        PARAMFORFORMKEY = values(PARAMFORFORMKEY),
        ISMUTI = values(ISMUTI),
        MAPFIELDS = values(MAPFIELDS),
        REFERCONTENT = values(REFERCONTENT),
        DISPLAYTABLE = values(DISPLAYTABLE),
        LIMIT = values(LIMIT),
        SORTFIELD = values(SORTFIELD),
        SORTTYPE = values(SORTTYPE),
        PARENTFIELDNAME = values(PARENTFIELDNAME),
        PARENTUSEDFIELD = values(PARENTUSEDFIELD),
        PARENTVALUE = values(PARENTVALUE),
        LOADTYPE = values(LOADTYPE),
        ONLYLEAF = values(ONLYLEAF)
    </insert>
    <!--通过主键修改数据-->
    <update id="update">
        update PL_CODE_REFERCONFIG
        <set>
            <if test="revisionoid != null and revisionoid != ''">
                REVISIONOID = #{revisionoid},
            </if>
            <if test="nameoid != null and nameoid != ''">
                NAMEOID = #{nameoid},
            </if>
            <if test="btmname != null and btmname != ''">
                BTMNAME = #{btmname},
            </if>
            <if test="lastr != null and lastr != ''">
                LASTR = #{lastr},
            </if>
            <if test="firstr != null and firstr != ''">
                FIRSTR = #{firstr},
            </if>
            <if test="lastv != null and lastv != ''">
                LASTV = #{lastv},
            </if>
            <if test="firstv != null and firstv != ''">
                FIRSTV = #{firstv},
            </if>
            <if test="creator != null and creator != ''">
                CREATOR = #{creator},
            </if>
            <if test="createtime != null and createtime != ''">
                CREATETIME = #{createtime},
            </if>
            <if test="revisionseq != null">
                REVISIONSEQ = #{revisionseq},
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                REVISIONVALUE = #{revisionvalue},
            </if>
            <if test="versionseq != null">
                VERSIONSEQ = #{versionseq},
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                VERSIONVALUE = #{versionvalue},
            </if>
            <if test="lctid != null and lctid != ''">
                LCTID = #{lctid},
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                LCSTATUS = #{lcstatus},
            </if>
            <if test="ts != null and ts != ''">
                TS = #{ts},
            </if>
            <if test="name != null and name != ''">
                NAME = #{name},
            </if>
            <if test="description != null and description != ''">
                DESCRIPTION = #{description},
            </if>
            <if test="owner != null and owner != ''">
                OWNER = #{owner},
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                COPYFROMVERSION = #{copyfromversion},
            </if>
            <if test="ordernum != null">
                ORDERNUM = #{ordernum},
            </if>
            <if test="refertype != null and refertype != ''">
                REFERTYPE = #{refertype},
            </if>
            <if test="textfield != null and textfield != ''">
                TEXTFIELD = #{textfield},
            </if>
            <if test="valuefield != null and valuefield != ''">
                VALUEFIELD = #{valuefield},
            </if>
            <if test="type != null and type != ''">
                TYPE = #{type},
            </if>
            <if test="url != null and url != ''">
                URL = #{url},
            </if>
            <if test="backpath != null and backpath != ''">
                BACKPATH = #{backpath},
            </if>
            <if test="method != null and method != ''">
                METHOD = #{method},
            </if>
            <if test="height != null">
                HEIGHT = #{height},
            </if>
            <if test="paramforformkey != null and paramforformkey != ''">
                PARAMFORFORMKEY = #{paramforformkey},
            </if>
            <if test="ismuti != null and ismuti != ''">
                ISMUTI = #{ismuti},
            </if>
            <if test="mapfields != null and mapfields != ''">
                MAPFIELDS = #{mapfields},
            </if>
            <if test="refercontent != null and refercontent != ''">
                REFERCONTENT = #{refercontent},
            </if>
            <if test="displaytable != null and displaytable != ''">
                DISPLAYTABLE = #{displaytable},
            </if>
            <if test="limit != null and limit != ''">
                LIMIT = #{limit},
            </if>
            <if test="sortfield != null and sortfield != ''">
                SORTFIELD = #{sortfield},
            </if>
            <if test="sorttype != null and sorttype != ''">
                SORTTYPE = #{sorttype},
            </if>
            <if test="parentfieldname != null and parentfieldname != ''">
                PARENTFIELDNAME = #{parentfieldname},
            </if>
            <if test="parentusedfield != null and parentusedfield != ''">
                PARENTUSEDFIELD = #{parentusedfield},
            </if>
            <if test="parentvalue != null and parentvalue != ''">
                PARENTVALUE = #{parentvalue},
            </if>
            <if test="loadtype != null and loadtype != ''">
                LOADTYPE = #{loadtype},
            </if>
            <if test="onlyleaf != null and onlyleaf != ''">
                ONLYLEAF = #{onlyleaf},
            </if>
        </set>
        where OID = #{oid}
    </update>
    <!--通过主键删除-->
    <delete id="deleteById">
        delete from PL_CODE_REFERCONFIG where OID = #{oid}
    </delete>
</mapper>