ludc
2023-07-20 ca8c0962e36d4ef8489e2d8a220d9953b9cf851a
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改7个文件
已添加3个文件
290 ■■■■■ 文件已修改
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTransfer.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/attrCrud.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/template/FlowPath.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/template/SetPersonnel.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave/handle.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionEndListener.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowTaskComplateListener.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -29,21 +29,26 @@
          </div>
          <el-row style="width: 100%;margin-bottom: 20px">
            <div>
              <el-button v-for="(item, index) in masterVrBtnList" :key="index" plain size="small" type="primary"
                         v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
              <el-button v-for="(item, index) in masterVrBtnList" v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" :key="index" plain size="small"
                         type="primary"
                         @click="handelBtnClick(item)">{{
                  item.name
                }}
              </el-button>
              <el-input v-model="WupinFindValue" placeholder="请输入关键字按回车查询"
                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input>
                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
                        @keyup.enter.native="tableFindInp"></el-input>
            </div>
            <el-table v-if="tableData.length != 0" v-loading="isLoading" :data="tableData" :height="tableHeight" ref="dataTable"
                      @cell-click="handleCellClick" @row-click="handleRowClick" @select="handleSelection" @select-all="handleSelectionAll" @selection-change="handleSelectionChange" @sort-change="sortChange">
            <el-table v-if="tableData.length != 0" ref="dataTable" v-loading="isLoading" :data="tableData"
                      :height="tableHeight"
                      @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
                      @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
                      @sort-change="sortChange">
              <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" :formatter="item.formatter" :label="item.label"
              <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :formatter="item.formatter"
                               :label="item.label"
                               :prop="item.prop" :show-overflow-tooltip="true"
                               :sortable="item.sortable"
                               :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'"
@@ -51,50 +56,55 @@
              </el-table-column>
            </el-table>
          </el-row>
<!--          æ–°å¢ž-->
          <!--          æ–°å¢ž-->
          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" type="add"
                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible"
                              type="add"
                              @submit="AddSumbit">
          </FormTemplateDialog>
<!--          ä¿®æ”¹-->
          <!--          ä¿®æ”¹-->
          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'修改编码信息'"
                              :visible.sync="editvisible"
                              type="edit" @submit="EditSumbit"></FormTemplateDialog>
<!--          å·²å‘布数据修改-->
          <!--          å·²å‘布数据修改-->
          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'已发布数据更改'"
                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
                              :title="'已发布数据更改'"
                              :type="edit"
                              :visible.sync="DataVisible"></FormTemplateDialog>
<!--          å‘布-->
          <set-personnel :parameter="this.parameter" :visible.sync="visibleFlow" :title="title"></set-personnel>
<!--          åœç”¨-->
            <set-personnel :parameter="this.parameter" :visible.sync="visibleDeactivate" :title="title"></set-personnel>
<!--          å¯ç”¨-->
            <set-personnel :parameter="this.parameter" :visible.sync="visibleEnable" :title="title"></set-personnel>
<!--          å›žæ”¶-->
            <set-personnel :parameter="this.parameter" :visible.sync="visibleRecovery" :title="title"></set-personnel>
<!--          é«˜çº§æŸ¥è¯¢-->
          <advanced-query :options="this.options" :visible.sync="findvisible" @echoContion="echoContion"></advanced-query>
<!--          å¯¼å‡º-->
          <MasterTransfer :visible.sync="dialogPush" :tableHeadData="tableHeadFindData" :codeClassifyOid="codeClassifyOid" :tableData="tableData" :selectRow="selectRow"></MasterTransfer>
<!--          ç›¸ä¼¼é¡¹-->
          <!--          å‘布-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow"></set-personnel>
          <!--          åœç”¨-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleDeactivate"></set-personnel>
          <!--          å¯ç”¨-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleEnable"></set-personnel>
          <!--          å›žæ”¶-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleRecovery"></set-personnel>
          <!--          é«˜çº§æŸ¥è¯¢-->
          <advanced-query :options="this.options" :visible.sync="findvisible"
                          @echoContion="echoContion"></advanced-query>
          <!--          å¯¼å‡º-->
          <MasterTransfer :codeClassifyOid="codeClassifyOid" :selectRow="selectRow"
                          :tableData="tableData" :tableHeadData="tableHeadFindData"
                          :visible.sync="dialogPush"></MasterTransfer>
          <!--          ç›¸ä¼¼é¡¹-->
          <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid"
                               :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog>
        <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>
          <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>
          </div>
        </div>
      </div>
        <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :visible.sync="batchImportData.visible">
        </BatchImport>
      </div>
      <div class="bottom">
        <el-collapse v-model="visibleNames" @change="handleCollapse">
          <el-collapse-item title="附件列表" name="1">
          <el-collapse-item name="1" title="附件列表">
            <fileInHtml :options="fileOptions"></fileInHtml>
          </el-collapse-item>
        </el-collapse>
@@ -103,7 +113,7 @@
  </basic-container>
</template>
<script>
import {MasterTable, TableData, FindData,addSaveCode,editSaveCode} from "@/api/GetItem";
import {MasterTable, TableData, FindData, addSaveCode, editSaveCode} from "@/api/GetItem";
import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
import integrationTransfer from "@/views/integration/integrationTransfer";
import SetPersonnel from "@/components/template/SetPersonnel";
@@ -163,6 +173,7 @@
  },
  data() {
    return {
      searchResults:[],
      //首页右侧搜索
      WupinFindValue: "",
      //相似项查询
@@ -176,19 +187,19 @@
        template: "",
        vars: {
          codeClassifyOid: "",
          templateOid:""
          templateOid: ""
        }
      },
      visibleNames:[],
      visibleNames: [],
      //发布
      visibleFlow: false,
      //停用
      visibleDeactivate:false,
      visibleDeactivate: false,
      //启用
      visibleEnable:false,
      visibleEnable: false,
      //回收
      visibleRecovery:false,
      title:'',
      visibleRecovery: false,
      title: '',
      transferData: [],
      transferProps: {
        key: "oid",
@@ -218,7 +229,7 @@
        datetime: "datetime",
      },
      tableData: [],
      tableHeight:'calc(100vh - 330px)',
      tableHeight: 'calc(100vh - 330px)',
      DataVisible: false,
      tableHeadData: [],
      items: {},
@@ -232,14 +243,14 @@
      },
      // ä¸»æ•°æ®æŒ‰é’®
      masterVrBtnList: [],
      fileOptions:{
        ownbizOid:"0",
        ownbizBtm:"0",
        fileDocClassify:'!=processAuditSuggest',
        fileDocClassifyName:'',
        hasDownload:true,
        hasUpload:true,
        height:100
      fileOptions: {
        ownbizOid: "0",
        ownbizBtm: "0",
        fileDocClassify: '!=processAuditSuggest',
        fileDocClassifyName: '',
        hasDownload: true,
        hasUpload: true,
        height: 100
      }
    };
  },
@@ -297,7 +308,7 @@
    templateOid: {
      handler(newval, oldval) {
        this.parameter.code = newval;
        this.fileOptions.ownbizOid="0";
        this.fileOptions.ownbizOid = "0";
        this.parameter.vars.templateOid = newval
      },
      deep: true,
@@ -354,7 +365,7 @@
      this.getListCodeByClassId();
    },
    async getListCodeByClassId() {
      this.dialogPush=true;
      this.dialogPush = true;
      this.transferData = [];
      const response = await listCodeAttributeByClassId({
        codeClassifyId: this.codeClassifyOid,
@@ -364,8 +375,8 @@
        this.transferData = data;
      }
    },
    handelTransferSave(val){
      console.log('发布',val)
    handelTransferSave(val) {
      console.log('发布', val)
    },
    rend() {
      this.tableData = this.tableHeadData;
@@ -379,16 +390,16 @@
      // }else if(EditFlag2){
      //   this.$message.warning('您选择的数据全部为【编辑中】才可以发起流程')
      // }
      this.selectRow.forEach(item=>{
        if(this.selectRow.length === 1 && item.lcstatus !== "Editing"){
      this.selectRow.forEach(item => {
        if (this.selectRow.length === 1 && item.lcstatus !== "Editing") {
          this.$message.warning('只有状态是【编辑中】的数据才可以发起流程')
        }else if(item.lcstatus !== 'Editing'){
        } else if (item.lcstatus !== 'Editing') {
          this.$message.warning('您选择的数据全部为【编辑中】才可以发起流程')
        }else {
        } else {
          this.userName = localStorage.getItem("username");
          this.parameter.template = this.userName + "-发布" + "[物品]";
          this.parameter.type='PUBLIC'
          this.title='流程审批'
          this.parameter.type = 'PUBLIC'
          this.title = '流程审批'
          this.visibleFlow = true;
        }
      })
@@ -403,39 +414,39 @@
      // }
    },
    //停用
    Deactivate(){
    Deactivate() {
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      }  else {
      } else {
        this.userName = localStorage.getItem("username");
        this.parameter.template = this.userName + "-发布" + "[物品]";
        this.parameter.type='DISABLE'
        this.title='停用(冻结)编码数据'
        this.visibleDeactivate=true;
        this.parameter.type = 'DISABLE'
        this.title = '停用(冻结)编码数据'
        this.visibleDeactivate = true;
      }
    },
    //启用
    Enable(){
    Enable() {
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      } else {
        this.userName = localStorage.getItem("username");
        this.parameter.template = this.userName + "-发布" + "[物品]";
        this.parameter.type='ENABLE'
        this.title='启用(解冻)编码数据'
        this.visibleEnable=true;
        this.parameter.type = 'ENABLE'
        this.title = '启用(解冻)编码数据'
        this.visibleEnable = true;
      }
    },
    //回收
    Recovery(){
    Recovery() {
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      } else {
        this.userName = localStorage.getItem("username");
        this.parameter.template = this.userName + "-发布" + "[物品]";
        this.parameter.type='ROLLBACK'
        this.title='回收编码数据'
        this.visibleRecovery=true;
        this.parameter.type = 'ROLLBACK'
        this.title = '回收编码数据'
        this.visibleRecovery = true;
      }
    },
    handleSizeChange(val) {
@@ -646,7 +657,40 @@
      this.batchImportData.visible = true
      this.batchImportData.type = type
      this.batchImportData.codeClassifyOid = this.codeClassifyOid
    },
    //输入回车搜索
    tableFindInp(event) {
      console.log('回车键被按下');
      console.log(this.WupinFindValue)
      console.log(this.tableData)
      // åœ¨è¿™é‡Œæ‰§è¡Œä½ çš„æ“ä½œ
      // let referList=[]
      // this.tableData.filter(item => {
        // console.log(item.name.includes(this.WupinFindValue))
        // console.log(item.name.indexOf(this.WupinFindValue)>=0)
      // })
      // const regex = new RegExp(this.WupinFindValue, 'i');
      // this.tableData.filter(item => {
      //   console.log(regex.test(item.name))
      //   // return regex.test(item.name);
      // });
      if (this.WupinFindValue.trim() === '') {
        this.searchResults = []; // è¾“入值为空,清空搜索结果
        return;
      }
        this.tableData = this.tableData.filter(item => {
        if (typeof item.name === 'string') {
          return item.name.includes(this.WupinFindValue);
        }else {
          return false; // item.name不是字符串类型,返回false
        }
      });
      console.log(this.searchResults);
    }
  }
};
</script>
@@ -672,6 +716,7 @@
  height: calc(100vh - 150px);
  min-height: 400px;
}
.top {
  overflow-y: scroll;
  min-height: 55%;
@@ -682,7 +727,7 @@
  overflow-y: scroll;
}
.el-collapse-item__content{
.el-collapse-item__content {
  padding-bottom: 0;
}
</style>
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -350,6 +350,8 @@
        "lcstatus_text",
        "hesuanfenleiname",
        "$kucunwl",
        "oldcode",
        "lastmodifier"
      ];
      let resForm = {};
      const { defaultValue, formValue } = this.getDefaultValueAndFormValues(
Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
@@ -118,7 +118,9 @@
        if(this.selectRow.length<=0){
          this.$message.warning('请选择要导出的模板')
        }else {
          //已选择多选
          const selectList=[]
          //已选择属性
          let exportArr={}
          const ids = this.selectRow.map(item => item.oid).join(',')
          this.selectRow.forEach(item=>{
@@ -126,7 +128,6 @@
             item.oid
            )
          })
          //已选择属性
          this.value.map(index => this.tableHeadData[index].prop).forEach((item, index) => {
            exportArr[`attrIdIndexMap[${index}]`] = item
          })
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1817,9 +1817,9 @@
    //组合规则确定
    updataFormlaContent(val) {
      if(this.CurrentCell){
        this.$set(this.CurrentCell, 'componentRule', JSON.stringify(val))
        this.$set(this.CurrentCell, 'componentRule', val.replace(/"/g, ''))
      }else {
        this.$set(this.attrRow, 'componentRule', JSON.stringify(val))
        this.$set(this.attrRow, 'componentRule', val.replace(/"/g, ''))
      }
    },
Source/UBCS-WEB/src/components/template/FlowPath.vue
@@ -1,5 +1,5 @@
<template>
        <avue-crud ref="crud" :table-loading="loading" :data="data" v-model="form" :option="option" :page.sync="page"   :permission="permissionList"
        <avue-crud ref="crud" :table-loading="loading" :data="data" v-model="form" :option="option" :page.sync="page"
            :search.sync="search" @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete"
            @row-update="handleEdit" @refresh-change="handleRefresh" @size-change="handleSizePage"
            @current-change="handleCurrentPage">
@@ -8,19 +8,14 @@
<script>
import { getFlowpathList, getStartList, flowpathSave, flowpathDelete } from '@/api/template/flowpath.js'
import {mapGetters} from "vuex";
export default {
    name: 'FlowPath',
    props: {
      code: {
        typeof: String,
        required: true,
        default: ""
      },
      crudLCStatus: {
        type: String,
        default: 'Editing'
      }
        code: {
            typeof: String,
            required: true,
            default: ""
        }
    },
    data() {
        return {
@@ -103,17 +98,6 @@
    created() {
        this.getStart()
    },
  computed:{
    ...mapGetters([ "permission"]),
    permissionList() {
      return {
        addBtn: this.crudLCStatus=='Editing',
        viewBtn: false,
        delBtn: this.crudLCStatus=='Editing',
        editBtn: this.crudLCStatus=='Editing'
      };
    },
  },
    methods: {
        async getStart() {
            const response = await getStartList()
Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -76,7 +76,6 @@
        visible(n) {
            this.dialogVisible = n;
            if (n) {
              this.saveParam=this.setSaveParam();
                this.apiInit()
                this.apiDict()
            }
@@ -118,8 +117,10 @@
    },
    mounted() {
      console.log('---',this.parameter)
    },
    created() {
  created() {
    console.log('parameter',this.parameter)
  },
  methods: {
        setSaveParam() {
Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -146,7 +146,7 @@
      this.templateId=res.data.variables.templateId;
      this.modelKey=res.data.variables.modelKey;
      this.codeClassifyOid=res.data.variables.codeClassifyOid;
      this.taskId=res.data.variables.taskId;
      //this.taskId=res.data.variables.taskId;
      if (res.success) {
        console.log(res)
        this.btnList = res.data.toTasks;
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionEndListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.vci.ubcs.flow.engine.envent;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.springframework.stereotype.Component;
import java.util.Map;
@Slf4j
@Component
public class FlowExecutionEndListener implements ExecutionListener {
    @Override
    public void notify(DelegateExecution execution) {
        Map var = execution.getVariableInstances();
        log.info("执行流程FlowExecutionEndListener",var);
    }
}
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowExecutionStartListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.vci.ubcs.flow.engine.envent;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.springframework.stereotype.Component;
import java.util.Map;
@Slf4j
@Component
public class FlowExecutionStartListener implements ExecutionListener {
    @Override
    public void notify(DelegateExecution execution) {
        Map var = execution.getVariableInstances();
        log.info("执行流程FlowExecutionStartListener",var);
    }
}
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/envent/FlowTaskComplateListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.vci.ubcs.flow.engine.envent;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.stereotype.Component;
import java.util.Map;
@Slf4j
@Component
public class FlowTaskComplateListener implements TaskListener {
    @Override
    public void notify(DelegateTask delegateTask) {
        Map var = delegateTask.getVariableInstances();
        log.info("执行流程FlowTaskComplateEdListener",var);
    }
}