ludc
2023-07-31 a2109930695034bc9fe3e2d38f97649b0d2d2a12
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改4个文件
已添加1个文件
584 ■■■■ 文件已修改
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ThemeTemplatePro.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/info.vue 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -48,6 +48,16 @@
    <el-button-group>
      <el-button size="small" plain  icon="el-icon-view"  v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" @click="editOpen" >开启编辑</el-button>
    </el-button-group>
      <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag"  size="small" v-model="selectvalue" placeholder="请选择">
        <el-option
          v-for="item in selectoptions"
          :key="item.value"
          :label="item.label"
          :value="item.value">
        </el-option>
      </el-select>
      <el-switch v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag"  v-model="switchvalue" @change="batchSetFlag" active-value="true" style="margin:6px 0 0 10px">
      </el-switch>
    </div>
<!--    å¼¹çª—-->
    <div>
@@ -256,6 +266,7 @@
              @cell-click="handleCellClicks"
              @select="selectHandle"
              @selection-change="selectionChange"
              @row-click="rowClick"
              v-if="this.crudArrayFlag"
              ref="referAttrCrud"
              v-loading="loading"
@@ -331,6 +342,7 @@
      type: Boolean,
      default: false
    },
    //控制是否开启编辑
    editOpenFlag:{
      type: Boolean,
      default: false
@@ -360,9 +372,16 @@
    crudArrayFlag:{
      type: Boolean,
      default: false
    }
    },
  },
  watch:{
    crudOid:{
      handler(newval,oldval){
        if(newval){
          this.editOpenFlag=false
        }
      }
    },
    crudArray:{
      handler(newval,oldval){
        if(newval != undefined){
@@ -405,7 +424,7 @@
    },
    editOpenFlag:{
      handler(newval,oldval){
        console.log(newval)
        console.log('editOpenFlag',newval)
      },
      deep:true,
      immediate:true
@@ -1394,7 +1413,50 @@
      codeDataFlag:false,
    //  ç»„合规单元格编辑回填
      componentRuleText:"",
      //模板属性下拉设置switch
      selectoptions: [{
        value: 'keyAttrFlag',
        label: '关键属性'
      }, {
        value: 'queryAttrFlag',
        label: '查询属性'
      }, {
        value: 'seniorQueryAttrFlag',
        label: '高级查询属性'
      }, {
        value: 'sameRepeatAttrFlag',
        label: '相似查重属性'
      }, {
        value: 'barcodeFlag',
        label: '一维码'
      }, {
        value: 'qrcodeFlag',
        label: '二维码'
      }, {
        value: 'requireFlag',
        label: '必输'
      }, {
        value: 'formDisplayFlag',
        label: '表单显示'
      }, {
        value: 'tableDisplayFlag',
        label: '列表显示'
      }, {
        value: 'readonlyFlag',
        label: '只读'
      }, {
        value: 'sortAttrFlag',
        label: '列表排序'
      }, {
        value: 'textareaFlag',
        label: '多行文本'
      }, {
        value: 'imageFlag',
        label: '预览图'
      }],
      //模板属性下拉选中值
      selectvalue: 'keyAttrFlag',
      switchvalue:'false'
    }
  },
  computed:{
@@ -1613,7 +1675,15 @@
    //表格选择
    selectionChange(list) {
      this.attrSelectList = list;
      console.log(list)
    },
    rowClick(row){
      this.$refs.referAttrCrud.clearSelection();
      this.attrSelectList = [row];
      this.$refs.referAttrCrud.setCurrentRow(row);
      this.$refs.referAttrCrud.toggleRowSelection(row); //选中当前行
      this.attrOid = row.oid;
      this.attrRow = row;
    },
    //保存
    addsHandler() {
@@ -1633,7 +1703,6 @@
         this.rowOid = row.oid;
         this.CurrentCell=row;
         if(column.property == 'referConfig' ){
           console.log( this.CurrentCell.referConfig)
           this.referConfigVisble= true;
           this.referConfigOption = {
             referConfig: this.CurrentCell.referConfig || '',
@@ -1944,6 +2013,12 @@
    //开启编辑
    editOpen(){
      this.editOpenFlag=true;
    },
    //批量设置switch
    batchSetFlag(value){
      this.attrSelectList.forEach(item=>{
        item[this.selectvalue]=value;
      })
    }
  }
}
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -58,7 +58,7 @@
        </el-dialog>
        <!--        ä¿®æ”¹å¯¹è¯æ¡†-->
        <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类">
          <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform>
          <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" :nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform>
        </el-dialog>
        <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false"
                   :option="Treeoption"
@@ -730,6 +730,13 @@
  created() {
  },
  watch:{
    FormList:{
      handler(newval,oldval){
        console.log('FormList',newval)
      }
    }
  },
  methods: {
    /** å¯¼å…¥ */
    ImportExcel(){
@@ -967,29 +974,7 @@
      this.crudOid=row.oid;
      this.crudLCStatus=row.lcStatus;
      this.crudArray.push(row);
      gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[this.selectRow].oid,limit:-1}).then(res => {
        this.ProData = res.data.data;
        //分类注入数据格式
        this.ProData =  res.data.data.map((item) => {
          //如果分类注入classifyInvokeAttr为空说明是初始状态
          if(item.classifyInvokeAttr !== ''){
            if (!item.hasOwnProperty('classifyInvokeText')) { // æ£€æŸ¥classifyInvokeText属性是否存在
              item = {
                ...item,
                classifyInvokeText: {
                  "注入类型": item.classifyInvokeAttr,
                  "注入类型名称": item.classifyInvokeAttrName,
                  "层级设置": item.classifyInvokeLevel,
                  "是否可修改": item.classifyInvokeEditFlag
                }
              };
            }
          }
          return item;
        });
      }).catch(res => {
        this.$message.error(res)
      })
      this.gridCode()
    },
    //分类树数据处理
    getAttr() {
@@ -1222,31 +1207,8 @@
          if(this.Formlist.length >= 1){
            this.crudLCStatus=this.Formlist[this.selectRow].lcStatus;
            this.crudArray.push(this.Formlist[this.selectRow]);
            this.crudOid=this.Formlist[this.selectRow].oid
            gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[this.selectRow].oid,limit:-1}).then(res => {
              this.ProData = res.data.data;
              console.log(this.ProData)
              //分类注入数据格式
              this.ProData =  res.data.data.map((item) => {
                //如果分类注入classifyInvokeAttr为空说明是初始状态
                if(item.classifyInvokeAttr !== ''){
                  if (!item.hasOwnProperty('classifyInvokeText')) { // æ£€æŸ¥classifyInvokeText属性是否存在
                    item = {
                      ...item,
                      classifyInvokeText: {
                        "注入类型": item.classifyInvokeAttr,
                        "注入类型名称": item.classifyInvokeAttrName,
                        "层级设置": item.classifyInvokeLevel,
                        "是否可修改": item.classifyInvokeEditFlag
                      }
                    };
                  }
                }
                return item;
              });
            }).catch(res => {
              this.$message.error(res)
            })
            this.crudOid=this.Formlist[this.selectRow].oid;
            this.gridCode()
          }else {
              this.ProData = [];
          }
@@ -1262,6 +1224,31 @@
      } catch (error) {
        this.$message.error(error)
      }
    },
    gridCode(){
      gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[this.selectRow].oid,limit:-1}).then(res => {
        this.ProData = res.data.data;
        //分类注入数据格式
        this.ProData =  res.data.data.map((item) => {
          //如果分类注入classifyInvokeAttr为空说明是初始状态
          if(item.classifyInvokeAttr !== ''){
            if (!item.hasOwnProperty('classifyInvokeText')) { // æ£€æŸ¥classifyInvokeText属性是否存在
              item = {
                ...item,
                classifyInvokeText: {
                  "注入类型": item.classifyInvokeAttr,
                  "注入类型名称": item.classifyInvokeAttrName,
                  "层级设置": item.classifyInvokeLevel,
                  "是否可修改": item.classifyInvokeEditFlag
                }
              };
            }
          }
          return item;
        });
      }).catch(res => {
        this.$message.error(res)
      })
    },
    treeClick(e) {
      console.log(e);
@@ -1455,12 +1442,14 @@
    },
    //刷新
    TemRefresh() {
      this.FormLoing = true
      this.FormLoing = true;
      if (this.nodeClickList.oid != "") {
        gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': this.nodeClickList.oid}).then(res => {
          this.Formlist = res.data.data.filter(item => {
            return item.codeclassifyoid == this.nodeClickList.oid
          })
          this.crudLCStatus=this.Formlist[this.selectRow].lcStatus;
          this.crudArray.push(this.Formlist[this.selectRow]);
        })
      } else {
        this.FormLoing = true
Source/UBCS-WEB/src/components/Theme/ThemeTemplatePro.vue
@@ -2,7 +2,7 @@
  <basic-container>
    <avue-tabs :option="Taboption" @change="handleChange"></avue-tabs>
    <span v-if="type.prop==='tab1'">
      <attrCrud :ProData="ProData" :editOpenFlag="editOpenFlag" :crudOid="crudOid" :checkStatus="checkStatus"  :crudLCStatus="crudLCStatus" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud>
      <attrCrud :ProData="ProData"  :crudOid="crudOid" :checkStatus="checkStatus"  :crudLCStatus="crudLCStatus" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud>
    </span>
    <span v-else-if="type.prop==='tab2'">
       <FlowPath :code="this.crudOid" :checkStatus="checkStatus" :crudLCStatus="crudLCStatus"></FlowPath>
@@ -35,7 +35,6 @@
        }]
      },
      checkStatus:true,//是否需要验证模板状态,
      editOpenFlag:false,//开启编辑状态
    }
  },
  created() {
@@ -44,13 +43,6 @@
    this.type.prop = "tab1";
  },
  watch:{
    crudOid:{
      handler(newval,oldval){
        if(newval){
          this.editOpenFlag=false
        }
      }
    }
  },
  methods: {
    // Tab栏切换
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -157,13 +157,13 @@
        this.option.column = [{
          prop: 'id',
          label: '英文名称',
          sort: true,
          sortable: true,
          width: 150,
          search: true
        }, {
          prop: 'name',
          label: '中文名称',
          sort: true,
          sortable: true,
          width: 150,
          search: true
        }, {
Source/UBCS-WEB/src/views/docking/info.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,396 @@
<template>
  <el-container>
    <el-main>
      <basic-container>
        <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page"
                   @search-change="searchChange"
                   @search-reset="searchReset"
                   @selection-change="selectionChange"
                   @current-change="currentChange"
                   @size-change="sizeChange"
                   @refresh-change="refreshChange" @row-click="rowClick">
          <template slot="menu" slot-scope="{row,index}">
            <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave(row,index)">编辑</el-button>
            <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave(row,index)">删除</el-button>
            <el-button v-if="row.usedflag=='false'" icon="el-icon-position" size="small" type="text" @click="ENABLE(row,index)">启用</el-button>
            <el-button v-else icon="el-icon-finished" size="small" type="text" @click="DISABLE(row,index)">停用</el-button>
          </template>
          <template slot="menuLeft">
            <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave">新&nbsp;&nbsp;增
            </el-button>
            <el-button size="small" icon="el-icon-share" @click="PUSH">同  æ­¥
            </el-button>
            <el-button size="small" icon="el-icon-search" @click="openAdvancedQuery">查  è¯¢
            </el-button>
          </template>
        </avue-crud>
      </basic-container>
    </el-main>
    <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd>
    <!-- é«˜çº§æŸ¥è¯¢å¯¹è¯æ¡† -->
    <advanced-query
      :ref="advancedQueryParam.ref"
      :options="advancedQueryParam.options"
      :visible.sync="advancedQueryParam.advancedQuerySettingBox"
      @echoContion="echoSeniorContionMap">
    </advanced-query>
  </el-container>
</template>
<script>
import {
  getList,
  remove,
  add,
  update, getPage, getApplyRange
} from "@/api/omd/OmdAttribute";
import {getDictionary} from "@/api/omd/enum";
import {mapGetters} from "vuex";
export default {
  name: "info",
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      selectRow: "",
      data: [],
      form: {},
      attribute: {
        nullable: true
      },
      editAttribute: {},
      applyRangeData: [],
      selectionList: [],
      option: {
        height: "auto",
        calcHeight: 20,
        tip: false,
        headerAlign: "center",
        border: true,
        index: true,
        selection: true,
        searchShow: false,
        searchMenuSpan: 6,
        rowKey: "id",
        tabs: true,
        stripe: true,
        indexFixed: false,
        menuWidth: 300,
        highlightCurrentRow: true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        columnBtn: false,
        column: [{
          label: '推送类型',
          field: 'pushTypeText',
          sortable: true,
          width: 150,
          type: 'select',
          dicData: this.pushType,
          props: {
            label: "value",
            value: "key"
          },
        }, {
          label: '系统名称',
          prop: 'sysbasename',
          sortable: true,
          search: true,
          width: 150
        }, {
          label: '系统编号',
          prop: 'sysbaseid',
          sortable: true,
          search: true,
          width: 150
        }, {
          label: '接口函数',
          prop: 'interfaceFunction',
          sortable: true,
          width: 150
        }, {
          label: '命名空间',
          prop: 'namespace',
          sortable: true,
          width: 150
        }, {
          label: 'soapAction',
          prop: 'soapaction',
          sortable: true,
          width: 150
        }, {
          label: '参数名称',
          prop: 'targName',
          sortable: true,
          width: 150
        }, {
          label: '调用方式',
          prop: 'cxfaxis',
          sortable: true,
          width: 150
        }, {
          label: '请求地址',
          prop: 'requesturl',
          sortable: true,
          width: 150
        }, {
          label: '参数类型',
          prop: 'paramtype',
          sortable: true,
          width: 150
        }, {
          label: '返回值类型',
          prop: 'returntype',
          sortable: true,
          width: 150
        }]
      },
      itemForm: {
        itemData: {},
        activeName: "referTab",
        enumInitFlag: false,
        referInitFlag: false,
        form: {}
      },
      pushType: [{key: '1', value: '数据推送'},
        {key: '2', value: '分类推送'},
        {key: '3', value: '编码申请'},
        {key: '4', value: '编码更改(状态、回收)'},
        {key: '5', value: '分类查询'},
        {key: '6', value: '含规则信息的分类查询'},
        {key: '7', value: '数据查询'}],
      // é«˜çº§æŸ¥è¯¢å¯¹è¯æ¡†ç›¸å…³å‚æ•°
      advancedQueryParam: {
        ref: 'advancedQuery',
        advancedQuerySettingBox: false,
        options: [],
        currentOpen: '', //当前打开高级查询的窗口是
        //conditionMapParams: {},
      }
    };
  },
  created() {
  },
  computed: {
    oids() {
      let oids = [];
      this.selectionList.forEach(ele => {
        oids.push(ele.oid);
      });
      return oids.join(",");
    }
  },
  methods: {
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
      if(this.selectionList.length <= 0){
        this.itemForm.itemData = null
        this.selectRow = null
        this.attribute = null
      }
      if (this.selectionList.length > 0) {
        this.itemForm.itemData = this.selectionList[list.length-1];
        this.selectRow = this.selectionList[list.length-1].$index;
        this.attribute = this.selectionList[list.length-1];
      }
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    addSave() {
      this.$refs.originalAdd.showSubmitDialog = true;
      const newAttr = {};
      newAttr.nullable = true;
      this.$refs.originalAdd.attribute = newAttr;
    },
    updateSave(row,index) {
      this.selectRow = index;
      var json = JSON.stringify(row);
      this.editAttribute = JSON.parse(json);
      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
      this.$refs.originalAdd.attribute = this.editAttribute;
      this.$refs.originalAdd.showSubmitDialog = true;
      this.checkUsingReferDict(row);
      this.$refs.originalAdd.activeName = this.itemForm.activeName;
      this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag;
      this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag;
      // this.refreshChange()
    },
    deleteSave(row,index) {
      this.$confirm("删除元数据将无法被恢复, æ˜¯å¦ç»§ç»­?", "提示", {
        iconClass: 'el-icon-question',
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        showClose: true,
        type: "warning"
      }).then(() => {
        remove(row.oid).then(res => {
          this.$message.success("删除成功");
          this.refreshChange();
        });
      });
    },
    PUSH(){
      if (this.selectionList.length != 1) {
        this.$message.error('请选择一条数据')
        return false;
      }
      this.$confirm("是否要"+ (this.selectionList[0].pushType == "1" ? "推送数据" : "推送分类"), {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          return push(this.oids.split(','));
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          this.$refs.crud.toggleSelection();
        });
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.data = res.data.data.records;
        this.itemData = this.data[0];
      });
    },
    rowClick(row) {
      this.itemForm.itemData = row;
      this.selectRow = row.$index;
      this.attribute = row;
      this.$refs.crud.toggleSelection();
      this.$refs.crud.toggleRowSelection(row); //选中当前行
      //this.checkUsingReferDict(row);
    },
    checkUsingReferDict(row){
      if (row.referToId !== null && row.referToId !== ""){
        this.itemForm.activeName = 'referTab';
        this.itemForm.referInitFlag = true;
        this.itemForm.enumInitFlag = false;
      }else if (row.usingDict === 'true'){
        this.itemForm.activeName = 'enumTab';
        this.itemForm.referInitFlag = false;
        this.itemForm.enumInitFlag = true;
        getDictionary({code: row.dictCode}).then(res => {
          this.editAttribute.dictValue = res.data.data[0].label;
          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
          this.$refs.originalAdd.dictEnums = res.data.data;
        })
      }else {
        this.itemForm.activeName = 'referTab';
        this.itemForm.referInitFlag = true;
        this.itemForm.enumInitFlag = false;
      }
    },
    selectBtmType() {
      this.referType.display = true;
      this.referType.title = "请选择" + this.referType.value;
    },
    applyRangeOpen() {
      if (!this.selectRow && this.selectRow != 0) {
        this.$message({
          type: "warning",
          message: "请先选择属性"
        });
      }
      var oid = this.data[this.selectRow].oid;
      getApplyRange(oid).then(res => {
        this.applyRangeData = res.data.data;
        this.$refs.applyRange.rangeData = this.applyRangeData;
        this.$refs.applyRange.showDialog = true;
      });
    },
    /** é«˜çº§æŸ¥è¯¢å¯¹è¯æ¡†ç»„ä»¶,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */
    echoSeniorContionMap(conditionMaps){
      if(JSON.stringify(conditionMaps)!='{}'){
        this.query = conditionMaps;
        this.onLoad(this.page);
      }
    },
    openAdvancedQuery(){
        this.advancedQueryParam.options = [
          {
            data: [],
            title: '编号',
            fieldType: 'text',
            queryField: 'id',
          },{
            data: [],
            title: '名称',
            fieldType: 'text',
            queryField: 'name',
          },{
            data: [],
            title: '描述',
            fieldType: 'text',
            queryField: 'description',
          },{
            data: [
              // {
              //   key: '编辑中',
              //   value: 'Editing',
              // },
              // {
              //   key: '已发布',
              //   value: 'Released',
              // },
              // {
              //   key: '停用',
              //   value: 'Disabled',
              // },
            ],
            title: '状态',
            fieldType: 'combox',
            queryField: 'lcStatus',
            comboxKey: 'codeSearchLCStatus',
          },
        ]
      this.advancedQueryParam.currentOpen = 'info';
      this.advancedQueryParam.advancedQuerySettingBox = true;
    },
  }
}
</script>
<style lang="scss">
.applyRangeTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
  display: none !important;
}
</style>