Merge remote-tracking branch 'origin/master'
| | |
| | | WupinFindValue: "", |
| | | //相似项查询 |
| | | similarVisible: false, |
| | | //发布 |
| | | //启动流程 |
| | | parameter: { |
| | | ids: [], |
| | | btmtype: '', |
| | | code: "", |
| | | type: '', |
| | | // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC' |
| | | template: "", |
| | | processName: "", |
| | | vars: { |
| | | codeClassifyOid: "", |
| | | templateOid: "" |
| | |
| | | result: '' |
| | | }; |
| | | }, |
| | | computed: {}, |
| | | computed: { |
| | | oids() { |
| | | let oids = []; |
| | | this.selectRow.forEach(ele => { |
| | | oids.push(ele.oid); |
| | | }); |
| | | return oids; |
| | | } |
| | | }, |
| | | created() { |
| | | // const index = this.$route.query.id.indexOf('@name=') + '@name='.length; |
| | | // this.result = this.$route.query.id.substring(index); |
| | | getUserInfo().then(res => { |
| | | console.log(res.data.data) |
| | | this.result = res.data.data.realName |
| | | }) |
| | | }, |
| | |
| | | codeClassifyOid: { |
| | | handler(newval, oldval) { |
| | | this.codeClassifyOid = newval; |
| | | this.parameter.vars.codeClassifyOid = newval |
| | | }, |
| | | deep: true, |
| | | }, |
| | |
| | | }, |
| | | templateOid: { |
| | | handler(newval, oldval) { |
| | | this.parameter.code = newval; |
| | | this.fileOptions.ownbizOid = "0"; |
| | | this.parameter.vars.templateOid = newval |
| | | }, |
| | | deep: true, |
| | | }, |
| | |
| | | }, |
| | | // 发布 |
| | | setHandler() { |
| | | console.log('Treedata', this.Treedata) |
| | | if (this.selectRow.length > 0) { |
| | | let hasEditing = this.selectRow.some(item => item.lcstatus !== 'Editing'); |
| | | let showMessage = true; |
| | | this.selectRow.forEach(item => { |
| | | if (this.selectRow.length === 1 && item.lcstatus !== "Editing" && showMessage) { |
| | | this.$message.warning('只有状态是【编辑中】的数据才可以发起流程'); |
| | | showMessage = false; |
| | | } else if (hasEditing && showMessage) { |
| | | this.$message.warning('您选择的数据全部为【编辑中】才可以发起流程'); |
| | | showMessage = false; |
| | | } else if (showMessage) { |
| | | processTS({templateId: this.templateOid, buttonTypeKey: 'PUBLIC'}).then(res => { |
| | | if (res.data.data.records && res.data.data.records.length != 0) { |
| | | this.parameter.processName = this.result + '-申请[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; |
| | | this.parameter.type = 'PUBLIC'; |
| | | this.parameter.code = this.templateOid; |
| | | this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype; |
| | | this.title = '流程审批' |
| | | this.visibleFlow = true; |
| | | } else { |
| | | this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | const oid = this.selectRow.map(obj => obj.oid).join(","); |
| | | changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Released'}).then(res => { |
| | | if (res.data.code == 200) { |
| | | this.$message.success('发布成功') |
| | | this.onLoad() |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | } else { |
| | | this.$message.warning('请至少选择一条数据') |
| | | var options = { |
| | | processUse:'PUBLIC', |
| | | processUseText:'申请', |
| | | allowStatus:'Editing', |
| | | allowStatusText:'已编辑', |
| | | startStatus:'Auditing', |
| | | resetStatus:'Editing', |
| | | batchTitle:'批量提交编码数据到流程审批', |
| | | title:'提交编码数据到流程审批' |
| | | } |
| | | this.checkStatusAndSubmitProcess(options,'Released'); |
| | | }, |
| | | //停用 |
| | | Deactivate() { |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning("请选择一条数据"); |
| | | } else { |
| | | let hasEditing = this.selectRow.every(item => item.lcstatus == 'Released'); |
| | | let showMessage = true; |
| | | this.selectRow.forEach(item => { |
| | | if (this.selectRow.length === 1 && item.lcstatus === "Disabled" && showMessage) { |
| | | this.$message.warning('选择的数据中状态无需再执行当前操作'); |
| | | showMessage = false; |
| | | } else if (this.selectRow.length > 1 && !hasEditing && showMessage) { |
| | | this.$message.warning('您选择的数据全部为【发布状态】才可以发起流程'); |
| | | showMessage = false; |
| | | } else if (this.selectRow.length >= 1 && hasEditing && showMessage) { |
| | | processTS({templateId: this.templateOid, buttonTypeKey: 'DISABLE'}).then(res => { |
| | | if (res.data.records != [] && res.data.data.records.length != 0) { |
| | | this.parameter.processName = this.result + '-停用[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; |
| | | this.parameter.type = 'DISABLE'; |
| | | this.parameter.code = this.templateOid |
| | | this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype; |
| | | this.title = '停用(冻结)编码数据' |
| | | this.visibleDeactivate = true; |
| | | } else { |
| | | if (showMessage) { |
| | | showMessage = false; // 标记已执行过操作 |
| | | this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | const oid = this.selectRow.map(obj => obj.oid).join(","); |
| | | changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Disabled'}).then(res => { |
| | | if (res.data.code == 200) { |
| | | this.$message.success('停用成功') |
| | | this.onLoad() |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } else if (this.selectRow.length == 1 && !hasEditing && showMessage) { |
| | | this.$message.warning('您选择的数据为【发布状态】才可以发起流程') |
| | | } |
| | | }); |
| | | var options = { |
| | | processUse:'DISABLE', |
| | | processUseText:'停用', |
| | | allowStatus:'Released', |
| | | allowStatusText:'已发布', |
| | | resetStatus:'Released', |
| | | batchTitle:'批量停用(冻结)的编码数据', |
| | | title:'停用(冻结)编码数据', |
| | | confirmMsg:'是否要停用这些数据' |
| | | } |
| | | this.checkStatusAndSubmitProcess(options,'Disabled'); |
| | | }, |
| | | //启用 |
| | | Enable() { |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning("请选择一条数据"); |
| | | } else { |
| | | let hasEditing = this.selectRow.every(item => item.lcstatus == 'Disabled'); |
| | | let showMessage = true; |
| | | this.selectRow.forEach(item => { |
| | | if (this.selectRow.length === 1 && item.lcstatus !== "Disabled" && showMessage) { |
| | | this.$message.warning('选择的数据中状态无需再执行当前操作'); |
| | | showMessage = false; |
| | | } else if (this.selectRow.length >= 1 && hasEditing && showMessage) { |
| | | processTS({templateId: this.templateOid, buttonTypeKey: 'ENABLE'}).then(res => { |
| | | if (res.data.data.records && res.data.data.records.length != 0) { |
| | | this.parameter = res.data.data.records[0] |
| | | this.parameter.processName = this.result + '-启用[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; |
| | | this.parameter.type = 'Released'; |
| | | this.parameter.code = this.templateOid |
| | | this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype; |
| | | this.title = '启用编码数据' |
| | | this.visibleDeactivate = true; |
| | | } else { |
| | | if (showMessage) { |
| | | showMessage = false; // 标记已执行过操作 |
| | | this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | const oid = this.selectRow.map(obj => obj.oid).join(","); |
| | | changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Released'}).then(res => { |
| | | if (res.data.code == 200) { |
| | | this.$message.success('启用成功') |
| | | this.onLoad() |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } else if (this.selectRow.length > 1 && !hasEditing && showMessage) { |
| | | this.$message.warning('您选择的数据全部为【停用状态】才可以发起流程'); |
| | | showMessage = false; |
| | | } |
| | | }); |
| | | var options = { |
| | | processUse:'ENABLE', |
| | | processUseText:'启用', |
| | | allowStatus:'Disabled', |
| | | allowStatusText:'已停用', |
| | | resetStatus:'Disabled', |
| | | batchTitle:'批量启用(解冻)的编码数据', |
| | | title:'启用(解冻)编码数据', |
| | | confirmMsg:'是否要启用(解冻)这些数据' |
| | | } |
| | | this.checkStatusAndSubmitProcess(options,'Released'); |
| | | }, |
| | | //回收 |
| | | Recovery() { |
| | | var options = { |
| | | processUse:'ROLLBACK', |
| | | processUseText:'回收', |
| | | allowStatus:'Released,Disabled', |
| | | allowStatusText:'已发布,已停用', |
| | | batchTitle:'批量回收的编码数据', |
| | | title:'回收编码数据', |
| | | confirmMsg:'是否要回收这些数据', |
| | | } |
| | | this.checkStatusAndSubmitProcess(options,'TakeBack'); |
| | | }, |
| | | checkStatusAndSubmitProcess(options,targetLcstatus){ |
| | | // 编辑中-只能发布,不能回收 |
| | | // 审核中-什么都不能做 |
| | | // 已发布-停用、回收 |
| | | // 停用-只能启用、回收 |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning("请选择一条数据"); |
| | | this.$message.warning("请选择数据"); |
| | | } else if (this.selectRow.length >1000) { |
| | | this.$message.warning("每次提交到流程的数量请不要超过1000条"); |
| | | } else { |
| | | // 编辑中-只能发布,不能回收 |
| | | // 审核中-什么都不能做 |
| | | // 已发布-停用、回收 |
| | | // 停用-只能启用、回收 |
| | | const disabledCount = this.selectRow.filter(item => item.lcstatus === 'Disabled').length; |
| | | const releasedCount = this.selectRow.filter(item => item.lcstatus === 'Released').length; |
| | | let showMessage = true; |
| | | this.selectRow.forEach(item => { |
| | | if (this.selectRow.length === 1 && item.lcstatus == "TakeBack" && showMessage) { |
| | | this.$message.warning('选择的数据中状态无需再执行当前操作'); |
| | | showMessage = false; |
| | | } else if (this.selectRow.length >= 1 && (disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) { |
| | | //disabledCount 和 releasedCount 中任意一个等于 this.selectRow 数组的长度则表示全部是同一种状态,返回 true 如果disabledCount 和 releasedCount 都大于0,则表示既有Disabled也有Released返回 true |
| | | processTS({templateId: this.templateOid, buttonTypeKey: 'ROLLBACK'}).then(res => { |
| | | if (res.data.records != [] && res.data.data.records.length != 0) { |
| | | this.parameter.processName = this.result + '-回收[' + this.selectRow[0].btmname + '-' + this.selectRow[0].name + ']'; |
| | | this.parameter.type = 'TakeBack'; |
| | | this.parameter.code = this.templateOid |
| | | this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype; |
| | | this.title = '回收编码数据' |
| | | this.visibleDeactivate = true; |
| | | } else { |
| | | if (showMessage) { |
| | | showMessage = false; // 标记已执行过操作 |
| | | this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | const oid = this.selectRow.map(obj => obj.oid).join(","); |
| | | changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'TakeBack'}).then(res => { |
| | | if (res.data.code == 200) { |
| | | this.$message.success('回收成功') |
| | | this.onLoad() |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }); |
| | | //审批的数据的状态必须相同 |
| | | var lcstatus = this.selectRow[0].lcstatus; |
| | | let hasDiff = this.selectRow.every(item => item.lcstatus == lcstatus); |
| | | if (!hasDiff) { |
| | | this.$message.warning("您选择的数据的状态不相同"); |
| | | return false; |
| | | } |
| | | if (lcstatus == targetLcstatus) { |
| | | this.$message.warning("选择的数据中状态无需再执行当前操作"); |
| | | return false; |
| | | } |
| | | if(options.processUseText=='申请' && !validatenull(this.selectRow[0].copyfromversion)){ |
| | | options.processUseText='修改' |
| | | options.processUse='EDIT' |
| | | } |
| | | let checkStatus = this.selectRow.every(item => options.allowStatus.indexOf(item.lcstatus)!=-1); |
| | | if(!checkStatus){ |
| | | this.$message.warning('只有状态是【'+options.allowStatusText+'】的数据才可以发起流程'); |
| | | return false; |
| | | } |
| | | processTS({templateId: this.templateOid, buttonTypeKey: options.processUse}).then(res => { |
| | | if (res.data.data.records && res.data.data.records.length != 0) { |
| | | this.parameter.ids=this.oids; |
| | | this.parameter.processName = this.result + '-'+options.processUseText+'[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; |
| | | this.parameter.type = options.processUse; |
| | | this.parameter.code = this.templateOid |
| | | this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype; |
| | | this.parameter.vars= { |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | templateOid: this.templateOid |
| | | }; |
| | | this.title = this.selectRow.length>1?options.batchTitle:options.title; |
| | | this.visibleDeactivate = true; |
| | | } else { |
| | | this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | changeStatus({oid: this.oids.join(','), btmname: this.selectRow[0].btmname, lcStatus: targetLcstatus}).then(res => { |
| | | if (res.data.code == 200) { |
| | | this.$message.success(options.processUseText + '成功') |
| | | this.onLoad() |
| | | } |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }); |
| | | } else if (showMessage && this.selectRow.length > 1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0)) { |
| | | this.$message.warning('您选择的数据全部为【停用状态或发布状态】才可以发起流程'); |
| | | showMessage = false; |
| | | } else if (showMessage) { |
| | | this.$message.warning('您选择的数据为【停用状态或发布状态】才可以发起流程') |
| | | } |
| | | }); |
| | | } |
| | |
| | | //多选 |
| | | handleSelectionChange(list) { |
| | | this.selectRow = list; |
| | | console.log(this.selectRow) |
| | | this.parameter.ids = []; |
| | | list.forEach((item) => { |
| | | this.parameter.ids.push(item.oid); |
| | | }); |
| | | }, |
| | | //选择 |
| | | handleSelection(list, row) { |
| | |
| | | } else if (this.btmSelectList.length <= 0) { |
| | | this.$message.warning('请选择一条数据') |
| | | } else { |
| | | this.$refs.myForm.clearValidate(); |
| | | this.BtmdialogVisible = false; |
| | | this.btmSelectList = [] |
| | | this.$set(this.TreeAddform, 'btmTypeName', this.btmName) |
| | |
| | | </template> |
| | | <script> |
| | | import { personnelInit, personnelCollect, cancelCollect, personnelSave, personnelDict } from '@/api/template/setPersonnel.js' |
| | | import { dateFormat } from "@/util/date"; |
| | | export default { |
| | | name: 'SetPersonnel', |
| | | props: { |
| | |
| | | const {modelKey,modelName,processDesc,processName,templateId,topName,vars,ids,btmtype} = this.saveParam |
| | | let vals= {modelKey,modelName,processDesc,processName,templateId,topName,ids,btmtype,...vars} |
| | | vals.oids=ids; |
| | | vals.createTime=dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") |
| | | const response = await personnelSave({ variables:vals, flowTaskUsers: this.collectParam.flowTaskUsers, }) |
| | | if (response.status === 200) { |
| | | this.$message({ |
| | |
| | | export default { |
| | | name: "BusinessWork", |
| | | components: { vciWebRefer }, |
| | | props:['ids','templateId',"taskId","modelKey","codeClassifyOid"], |
| | | props:['ids','templateId',"taskId","modelKey","codeClassifyOid",'stageAttrs'], |
| | | data() { |
| | | return { |
| | | BuinessOids:[], |
| | |
| | | this.BuinseseRend() |
| | | }, |
| | | deep:true |
| | | }, |
| | | stageAttrs(newval,oldval){ |
| | | this.hasEditor=newval.length>0; |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | mounted() { |
| | | }, |
| | |
| | | 'modelKey': this.modelKey, |
| | | 'codeClassifyOid': this.codeClassifyOid |
| | | }).then((res) => { |
| | | this.hasEditor=res.data.tableDefineVO.hasEditor; |
| | | this.options = res.data.tableDefineVO.seniorQueryColumns; |
| | | this.List = res.data.tableDefineVO.cols[0]; |
| | | this.tableHeadData=[]; |
| | | this.List.forEach((item) => { |
| | | let editAttr=this.stageAttrs.filter(stageitem => stageitem.attrId == item.field); |
| | | let columnItem = { |
| | | label: item.title, |
| | | prop: item.field, |
| | | type: this.columnType[item.type], |
| | | sortable: item.sort, |
| | | width: item.minWidth, |
| | | edit:this.columnType[item.edit] |
| | | width: item.minWidth |
| | | }; |
| | | if(item.field == 'id' && validatenull(item.templet)){ |
| | | //企业编码的默认添加超链接,暂未实现 |
| | |
| | | } |
| | | |
| | | } |
| | | if(!validatenull(item.edit)) { |
| | | if (typeof item.editConfig == "string") { |
| | | if(editAttr.length>0) { |
| | | debugger; |
| | | editAttr=editAttr[0] |
| | | columnItem.edit= 'text';//this.columnType[editAttr.edit] |
| | | if (typeof editAttr.editConfig == "string") { |
| | | columnItem.editConfig = eval("(" + item.editConfig + ")"); |
| | | } else { |
| | | columnItem.editConfig = item.editConfig |
| | |
| | | label: '上一步处理时间', |
| | | sortable:true, |
| | | width:150, |
| | | prop: 'historyActivityDurationTime' |
| | | prop: 'createTime' |
| | | }, |
| | | { |
| | | label: '上一步操作人', |
| | |
| | | }) |
| | | }, |
| | | cellHandle(row, column, cell, event) { |
| | | if (column.property == 'name') { |
| | | if (column.property == 'taskName') { |
| | | this.gotodo(row) |
| | | } |
| | | }, |
| | |
| | | label: '发起时间', |
| | | sortable:true, |
| | | width:180, |
| | | prop: 'createTime', |
| | | prop: 'processDefinitionStartTime' |
| | | }, { |
| | | label: '当前步骤', |
| | | prop: 'taskName', |
| | |
| | | label: '发起时间', |
| | | sortable: true, |
| | | width:180, |
| | | prop: 'createTime', |
| | | prop: 'processDefinitionStartTime' |
| | | }, { |
| | | label: '完成时间', |
| | | sortable: true, |
| | | width:180, |
| | | prop: 'historyTaskEndTime', |
| | | prop: 'createTime' |
| | | }, { |
| | | label: '所属流程模板', |
| | | sortable: true, |
| | |
| | | <el-card class="dialogwarp_tab_card"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="业务数据信息" name="first"> |
| | | <businesswork ref="businesswork":ids="ids" :templateId="templateId" :taskId="taskId" :modelKey="modelKey" :codeClassifyOid="codeClassifyOid"></businesswork> |
| | | <businesswork ref="businesswork" :ids="ids" :templateId="templateId" :taskId="taskId" :modelKey="modelKey" :codeClassifyOid="codeClassifyOid" :stageAttrs="stageAttrs"></businesswork> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="流程跟踪" name="second"> |
| | | <avue-crud :data="flowList" :option="option" ref="crud"> |
| | |
| | | codeClassifyOid:'', |
| | | businessId: '', |
| | | processInstanceId: '', |
| | | stageAttrs:[], |
| | | src: '', |
| | | flowList: [], |
| | | btnList: [], |
| | |
| | | this.templateId=res.data.variables.templateId; |
| | | this.modelKey=res.data.variables.modelKey; |
| | | this.codeClassifyOid=res.data.variables.codeClassifyOid; |
| | | this.title='11'; |
| | | this.title=res.data.variables.processName; |
| | | this.stageAttrs=res.data.stageAttrs; |
| | | //this.taskId=res.data.variables.taskId; |
| | | if (res.success) { |
| | | console.log(res) |
| | | this.btnList = res.data.toTasks; |
| | | } |
| | | }, |
| | |
| | | label: '发起时间', |
| | | sortable:true, |
| | | width:180, |
| | | prop: 'createTime' |
| | | prop: 'processDefinitionStartTime' |
| | | },{ |
| | | label: '所属流程模板', |
| | | sortable:true, |
| | |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | |
| | | label: '发起时间', |
| | | sortable:true, |
| | | width:180, |
| | | prop: 'createTime', |
| | | prop: 'processDefinitionStartTime' |
| | | }, { |
| | | label: '所属流程模板', |
| | | sortable:true, |