zhangxp
2023-07-07 38dd9ea383a844f54c05676dcc09acf7d6552727
主数据动态按钮
已修改4个文件
353 ■■■■■ 文件已修改
.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -10,3 +10,5 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
Source/UBCS-WEB/vue.config.js
Source/UBCS-WEB/package-lock.json
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -2,11 +2,9 @@
  <basic-container>
    <div class="testbox">
      <div>
        <el-button plain size="small" type="primary" @click="addvisible = true"
        >增加
        <!-- <el-button plain size="small" type="primary" @click="addvisible = true">增加
        </el-button>
        <el-button plain size="small" type="primary" @click="editHandler"
        >编辑
        <el-button plain size="small" type="primary" @click="editHandler">编辑
        </el-button>
        <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">批量导入申请</el-button>
        <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">历史数据导入</el-button>
@@ -14,126 +12,60 @@
        <el-button plain size="small" type="primary">批量发布</el-button>
        <el-button plain size="small" type="primary">查看流程历史</el-button>
        <el-button plain size="small" type="primary">删除</el-button>
        <el-button plain size="small" type="primary" @click="setHandler"
        >发布</el-button
        >
        <el-button plain size="small" type="primary" @click="DataChange"
        >数据更改</el-button
        >
        <el-button plain size="small" type="primary" @click="huishouHandler"
        >回收</el-button
        >
        <el-button plain size="small" type="primary" @click="openD"
        >导出
        <el-button plain size="small" type="primary" @click="setHandler">发布</el-button>
        <el-button plain size="small" type="primary" @click="DataChange">数据更改</el-button>
        <el-button plain size="small" type="primary" @click="huishouHandler">回收</el-button>
        <el-button plain size="small" type="primary" @click="openD">导出
        </el-button>
        <el-button plain size="small" type="primary" @click="findHandler"
        >查询
        <el-button plain size="small" type="primary" @click="findHandler">查询
        </el-button>
        <el-button plain size="small" type="primary" @click="similarHandler"
        >相似项查询</el-button
        >
        <el-button plain size="small" type="primary" @click="similarHandler">相似项查询</el-button>
        <el-button plain size="small" type="primary">刷新</el-button>
        <el-input
          placeholder="请输入关键字按回车查询"
          size="small"
          style="width: 180px; margin-left: 5px; margin-top: 10px"
        ></el-input>
        <el-input placeholder="请输入关键字按回车查询" size="small"
          style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> -->
        <el-button plain size="small" type="primary" v-for="(item, index) in masterVrBtnList" :key="index"
          @click="handelBtnClick(item)">{{
            item.name }}</el-button>
        <el-input placeholder="请输入关键字按回车查询" size="small"
          style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input>
      </div>
      <el-row style="height: 700px; width: 100%">
        <el-table
          v-loading="isLoading"
          :data="tableData"
          max-height="700"
          style=""
          @cell-click="handleCellClick"
          @selection-change="handleSelectionChange"
          @sort-change="sortChange"
          v-if="tableData.length != 0"
        >
        <el-table v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick"
          @selection-change="handleSelectionChange" @sort-change="sortChange" v-if="tableData.length != 0">
          <el-table-column fixed type="selection" width="55"> </el-table-column>
          <el-table-column fixed label="序号" type="index" width="55">
          </el-table-column>
          <el-table-column
            v-for="item in this.tableHeadFindData"
            :key="item.id"
            :label="item.label"
            :prop="item.prop"
            :sortable="item.sortable"
            :formatter="item.formatter"
            :width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'"
            :show-overflow-tooltip="true"
            align="center"
          >
          <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop"
            :sortable="item.sortable" :formatter="item.formatter"
            :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'" :show-overflow-tooltip="true"
            align="center">
          </el-table-column>
        </el-table>
      </el-row>
      <FormTemplateDialog
        :codeClassifyOid="this.codeClassifyOid"
        :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp"
        :templateOid="templateOid"
        type="add"
        :visible.sync="addvisible"
        @submit="AddSumbit"
      >
      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp" :templateOid="templateOid" type="add" :visible.sync="addvisible" @submit="AddSumbit">
      </FormTemplateDialog>
      <FormTemplateDialog
        :codeClassifyOid="this.codeClassifyOid"
        :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp"
        :rowOid="rowOid"
        :templateOid="templateOid"
        type="edit"
        :title="'修改编码信息'"
        :visible.sync="editvisible"
        @submit="EditSumbit"
      ></FormTemplateDialog>
      <FormTemplateDialog
        :codeClassifyOid="this.codeClassifyOid"
        :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp"
        :rowOid="rowOid"
        :templateOid="templateOid"
        :type="edit"
        :title="'已发布数据更改'"
        :visible.sync="DataVisible"
      ></FormTemplateDialog>
      <set-personnel
        :visible.sync="visibleFlow"
        :parameter="this.parameter"
      ></set-personnel>
      <advanced-query
        :options="this.options"
        :visible.sync="findvisible"
        @echoContion="echoContion"
      ></advanced-query>
      <integration-transfer
        :data="transferData"
        :props="transferProps"
        :visible.sync="dialogPush"
        @save="handelTransferSave"
      ></integration-transfer>
      <ResembleQueryDialog
        :visible.sync="similarVisible"
        :templateOid="templateOid"
        :codeClassifyOid="codeClassifyOid"
        :rowOid="rowOid"
        :codeRuleOid="this.codeRuleOid"
      ></ResembleQueryDialog>
      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" type="edit" :title="'修改编码信息'"
        :visible.sync="editvisible" @submit="EditSumbit"></FormTemplateDialog>
      <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
        :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :type="edit" :title="'已发布数据更改'"
        :visible.sync="DataVisible"></FormTemplateDialog>
      <set-personnel :visible.sync="visibleFlow" :parameter="this.parameter"></set-personnel>
      <advanced-query :options="this.options" :visible.sync="findvisible" @echoContion="echoContion"></advanced-query>
      <integration-transfer :data="transferData" :props="transferProps" :visible.sync="dialogPush"
        @save="handelTransferSave"></integration-transfer>
      <ResembleQueryDialog :visible.sync="similarVisible" :templateOid="templateOid" :codeClassifyOid="codeClassifyOid"
        :rowOid="rowOid" :codeRuleOid="this.codeRuleOid"></ResembleQueryDialog>
    </div>
    <div class="block" style="display: flex; justify-content: flex-end">
      <el-pagination
        :current-page="page.currentPage"
        :page-size="page.pageSizes"
        :page-sizes="page.pageSizes"
        :total="page.total"
        layout="total, sizes, prev, pager, next, jumper"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
      >
      <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes"
        :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
        @current-change="handleCurrentChange">
      </el-pagination>
    </div>
    <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"></BatchImport>
    <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData">
    </BatchImport>
  </basic-container>
</template>
<script>
@@ -188,6 +120,9 @@
    tableHeadFindData: {
      type: Array,
    },
    tableHeadBtnData: {
      type: Array,
    },
  },
  data() {
    return {
@@ -199,8 +134,8 @@
        code: "",
        type: "PUBLIC",
        template: "",
        vars:{
          codeClassifyOid:""
        vars: {
          codeClassifyOid: ""
        }
      },
      visibleFlow: false,
@@ -243,25 +178,27 @@
        visible: false,
        type: '',
        codeClassifyOid: ''
      }
      },
      // 主数据按钮
      masterVrBtnList: []
    };
  },
  computed: {},
  created() {},
  mounted() {},
  created() { },
  mounted() { },
  activated() {
    this.doLayout();
    // this.doLayout();
  },
  watch: {
    tableHeadDataFateher:{
      handler(newval,oldval){
        this.options=newval.tableDefineVO.seniorQueryColumns
    tableHeadDataFateher: {
      handler(newval, oldval) {
        this.options = newval.tableDefineVO.seniorQueryColumns
      }
    },
    codeClassifyOid: {
      handler(newval, oldval) {
        this.codeClassifyOid = newval;
        this.parameter.vars.codeClassifyOid=newval
        this.parameter.vars.codeClassifyOid = newval
      },
      deep: true,
    },
@@ -272,16 +209,16 @@
    },
    tableHeadFindData: {
      handler(newval, oldval) {
        newval.forEach((record,_index) =>{
          if(record.field == 'id' && validatenull(record.templet)){
        newval.forEach((record, _index) => {
          if (record.field == 'id' && validatenull(record.templet)) {
            //企业编码的默认添加超链接,暂未实现
            record.formatter = '';
          }else {
            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)")>-1) {
          } else {
            if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)") > -1) {
              record.formatter = eval("(" + record.templet + ")");
              //function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'是':'否'}
            }else if(record.fieldType=="truefalse"){
              record.formatter = function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'是':'否'}
            } else if (record.fieldType == "truefalse") {
              record.formatter = function (row, column) { return row[column.property] == 'true' || row[column.property] == '1' ? '是' : '否' }
            }
          }
        })
@@ -299,6 +236,14 @@
      },
      deep: true,
    },
    tableHeadBtnData: {
      handler(newval) {
        if (newval.length !== 0) {
          this.masterVrBtnList = newval
        }
      },
      deep: true
    }
  },
  methods: {
    // 发布
@@ -310,6 +255,28 @@
        this.parameter.template = this.userName + "-发布" + "[物品]";
        this.visibleFlow = true;
      }
    },
    openVis(visible) {
      console.log(visible)
      this[visible] = true
    },
    handelBtnClick(event) {
      const { uniqueFlag } = event
      this.$nextTick(() => {
        if (uniqueFlag === 'CODEADD') return this.addvisible = true
        if (uniqueFlag === 'CODEEDIT') return this.editHandler()
        if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply')
        if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport')
        // 批量申请编码
        //  if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode')
        if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler()
        if (uniqueFlag === 'CODEUPREVISION') return this.DataChange()
        if (uniqueFlag === 'CODERECYCLE') return this.huishouHandler()
        if (uniqueFlag === 'CODEEXPORT') return this.openD()
        if (uniqueFlag === 'CODEQUERY') return this.findHandler()
        //  相似项查询
        //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
      });
    },
    openD() {
      this.getListCodeByClassId();
@@ -359,6 +326,7 @@
    },
    doLayout() {
      this.$nextTick(() => {
        console.log(this.$refs)
        this.$refs.crud.doLayout();
      });
    },
@@ -446,7 +414,7 @@
      row.forEach((item) => {
        this.parameter.ids.push(item.oid);
      });
      console.log(  '  this.parameter.ids',this.parameter.ids)
      console.log('  this.parameter.ids', this.parameter.ids)
    },
    //编辑
    editHandler() {
@@ -473,8 +441,8 @@
        ...val,
      }).then((res) => {
        console.log(res);
        this.tableData=res.data.data;
        this.page.total=res.data.total
        this.tableData = res.data.data;
        this.page.total = res.data.total
      });
    },
    //相似项查询
@@ -529,6 +497,4 @@
/deep/ .el-button {
  margin: 0 10px 10px 0;
}
</style>
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -29,6 +29,7 @@
  },
  data(){
    return{
      masterVrBtnList:[],
      tableHeadFindData:[],
      tableHeadDataFateher:[],
      templateOids:"",
@@ -120,6 +121,8 @@
          codeClassifyOid: this.nodeClickList.oid,
          functionId: 5,
        }).then(res => {
          console.log(res.data.buttons)
          this.masterVrBtnList = res.data.buttons
          this.tableHeadDataFateher = res.data;
          this.templateOids = res.data.tableDefineVO.oid;
          let List = res.data.tableDefineVO.cols[0];
@@ -136,6 +139,7 @@
          })
          this.$emit('tableHeadDataFateher', this.tableHeadDataFateher);
          this.$emit('tableHeadFindData', this.tableHeadFindData);
          this.$emit('tableHeadBttoms', this.masterVrBtnList);
          resolve();
        }).catch(err=>{
          reject(err)
@@ -152,7 +156,6 @@
        this.TableRend(); // TableHeadRend() 方法完成后再执行 TableRend()
        this.$emit('nodeClick',this.templateOids)
        this.$emit("codeClassifyOid", this.nodeClickList.oid )
      } catch (error) {
        // 处理错误
        this.$message.error(error)
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -1,43 +1,29 @@
<template>
    <el-container>
      <el-aside>
        <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
<!--          树组件-->
          <master-tree @codeClassifyOid="codeClassifyOidList"
                       @coderuleoid="coderuleoidList"
                       :pageSize="this.pageSize"
                       :currentPage="this.currentPage"
                       @tableDataArray="tableDataArrays"
                       @tableHeadDataFateher="tableHeadDatas"
                       @total="totals"
                       @nodeClick="nodeClick"
                       @tableHeadFindData="tableHeadFindDatas"
                        ></master-tree>
        </basic-container>
      </el-aside>
      <el-main>
<!--        表格组件-->
      <VciMasterCrud :page="this.page"
                 :codeClassifyOid="this.codeClassifyOid"
                 :coderuleoid="this.coderuleoid"
                 @pageSize="pageSizes"
                 @currentPage="currentPages"
                 :tableDataArray="tableDataArray"
                 :total="this.total"
                 :tableHeadDataFateher="this.tableHeadDataFateher"
                 :isLoading="isLoading"
                 :templateOid="templateOid"
                 :tableHeadFindData="tableHeadFindData"
      ></VciMasterCrud>
      </el-main>
    </el-container>
  <el-container>
    <el-aside>
      <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
        <!--          树组件-->
        <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize"
          :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas"
          @tableHeadBttoms="tableHeadBttoms" @total="totals" @nodeClick="nodeClick"
          @tableHeadFindData="tableHeadFindDatas"></master-tree>
      </basic-container>
    </el-aside>
    <el-main>
      <!--        表格组件-->
      <VciMasterCrud :page="this.page" :codeClassifyOid="this.codeClassifyOid" :coderuleoid="this.coderuleoid"
        @pageSize="pageSizes" @currentPage="currentPages" :tableDataArray="tableDataArray" :total="this.total"
        :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid"
        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList"></VciMasterCrud>
    </el-main>
  </el-container>
</template>
<script>
export default {
  name: "items.vue",
  data(){
    return{
  data() {
    return {
      // 分页
      page: {
        total: 0,
@@ -45,56 +31,58 @@
        pageSize: 10,
        pageSizes: [10, 30, 50, 100, 200],
      },
      pageSize:"10",
      currentPage:"1",
      codeClassifyOid:"",
      coderuleoid:"",
      templateOid:"",
      tableDataArray:[],
      tableHeadDataFateher:[],
      total:"",
      pageSize: "10",
      currentPage: "1",
      codeClassifyOid: "",
      coderuleoid: "",
      templateOid: "",
      tableDataArray: [],
      masterVrBtnList: [],
      tableHeadDataFateher: [],
      total: "",
      isLoading: false,
      tableHeadFindData:{}
      tableHeadFindData: {}
    }
  },
  created() {
  },
  methods:{
    codeClassifyOidList(val){
      this.codeClassifyOid=val;
  methods: {
    codeClassifyOidList(val) {
      this.codeClassifyOid = val;
    },
    coderuleoidList(val){
      this.coderuleoid=val;
    coderuleoidList(val) {
      this.coderuleoid = val;
    },
    pageSizes(val){
      this.pageSize=val
    pageSizes(val) {
      this.pageSize = val
    },
    currentPages(val){
      this.currentPage=val
    currentPages(val) {
      this.currentPage = val
    },
    tableDataArrays(val){
      this.tableDataArray=val
    tableDataArrays(val) {
      this.tableDataArray = val
    },
    totals(val){
      this.total=val
    totals(val) {
      this.total = val
    },
    tableHeadDatas(val){
      this.tableHeadDataFateher=val
    tableHeadDatas(val) {
      this.tableHeadDataFateher = val
    },
    tableHeadFindDatas(val){
      this.tableHeadFindData=val
    tableHeadFindDatas(val) {
      this.tableHeadFindData = val
    },
    nodeClick(val){
      this.templateOid=val;
      this.isLoading=true;
    nodeClick(val) {
      this.templateOid = val;
      this.isLoading = true;
      setTimeout(() => {
        this.isLoading = false;
      }, 2000);
}
    },
    tableHeadBttoms(val) {
      this.masterVrBtnList = val
    },
  }
}
</script>
<style scoped>
</style>
<style scoped></style>