From 954e7748ef145af771a8ee854a9c35d661eb961c Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 16 Feb 2022 18:00:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=20?= =?UTF-8?q?=E5=A4=8D=E5=AE=A12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creatProcess/qbfs/common/formList.vue | 317 ++++---- .../pages/creatProcess/qbfs/step1.vue | 16 - .../pages/creatProcess/qbfs/step3.vue | 121 ++- .../pages/creatProcess/qbfs/step4.vue | 768 ++++++++++++++++++ src/router/index.js | 9 + 5 files changed, 1066 insertions(+), 165 deletions(-) create mode 100644 src/pages/processCenter/pages/creatProcess/qbfs/step4.vue diff --git a/src/pages/processCenter/pages/creatProcess/qbfs/common/formList.vue b/src/pages/processCenter/pages/creatProcess/qbfs/common/formList.vue index 127b8576a..e8616b1f0 100644 --- a/src/pages/processCenter/pages/creatProcess/qbfs/common/formList.vue +++ b/src/pages/processCenter/pages/creatProcess/qbfs/common/formList.vue @@ -294,6 +294,90 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --> + + + +
@@ -311,15 +395,15 @@ > - + - - + - + + +
+ {{ item.name | ellipsis2 }} + + + + + + +
+
@@ -355,147 +450,6 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {{ item.name }} - - - -
-
-
-
-
@@ -534,6 +488,14 @@ export default { type: Array, required: true }, + LXDListSub: { + type: Array, + required: true + }, + FSDListSub: { + type: Array, + required: true + }, summaryFileList: { type: Array, required: false @@ -566,6 +528,13 @@ export default { return value.slice(0,35) + '...' } return value + }, + ellipsis2 (value) { + if (!value) return '' + if (value.length > 20) { + return value.slice(0,20) + '...' + } + return value } }, data () { @@ -581,6 +550,8 @@ export default { {value: '3',label: '继续有效'}, ], form:{}, + LXDList:[], + FSDList:[], countryOptions:[],//国家地区 standSortOptions: [], // 标准类别 standNatureOptions: [], // 标准性质 @@ -629,6 +600,16 @@ export default { choiceZRRList (type, title, id) { this.$emit('formChoiceZRRListCancel',type,title,id) }, + filterReviewResults(data){ + if(!data){ + return "" + } + const map = new Map(); + map.set("1","修订"); + map.set("2","废止"); + map.set("3","继续有效"); + return map.get(data) + }, filterOp(data){ if(!data){ return "" @@ -639,6 +620,50 @@ export default { map.set("3","不采纳"); return map.get(data) }, + // 文件预览及下载 + handleFilePreviewNew(file,type,onlineType) { + let id = "" + let fileName = "" + let fileNam2 = "" + if(onlineType === 'lx'){ + if(this.form.standName && this.form.standName !== ''){ + fileName = this.form.standName+'-立项单.docx' + fileNam2 = this.form.standName+'-立项单' + }else { + fileName = '立项单.docx' + fileNam2 = '立项单' + } + }else if(onlineType === 'fs'){ + if(this.form.standName && this.form.standName !== ''){ + fileName = this.form.standName+'-复审单.docx' + fileNam2 = this.form.standName+'-复审单' + }else { + fileName = '复审单.docx' + fileNam2 = '复审单' + } + } + + if(file && file.id){ + id = file.id + }else { + if(onlineType === 'fs'){ + id = file.FSD + }else if(onlineType === 'lx'){ + id = file.LXD + } + } + if (type === 'down') { + if (id) { + window.open('/api/lawss/activiti/downloadFileForSar?fileId=' + id +'&oldFileName='+fileName) + } else { + this.$message.warning('文件不存在,下载失败') + } + } else if(type === 'preview'){ + this.$onlineEditPreview(id,fileNam2,this.$store.getters.userInfo.userId,this.$store.getters.userInfo.userName) + }else { + this.$onlineEdit(id,fileNam2,this.$store.getters.userInfo.userId,this.$store.getters.userInfo.userName) + } + }, // 文件预览及下载 handleFilePreview(file,type) { let attId = "" @@ -686,6 +711,8 @@ export default { }, mounted () { this.form = this.formSub + this.LXDList = this.LXDListSub + this.FSDList = this.FSDListSub this.$http.get('sys/dictype/getDicTypeListCode', '', { _this: this }, res => { diff --git a/src/pages/processCenter/pages/creatProcess/qbfs/step1.vue b/src/pages/processCenter/pages/creatProcess/qbfs/step1.vue index e613e0ea3..7354793b1 100644 --- a/src/pages/processCenter/pages/creatProcess/qbfs/step1.vue +++ b/src/pages/processCenter/pages/creatProcess/qbfs/step1.vue @@ -1249,22 +1249,6 @@ export default { this.modalShowRoleFlag = false }, checkedRole (data) { - if (this.type === 0) { - this.roleForm.deptUserId = data[0].id - this.roleForm.deptUserIdName = data[0].name - } else if (this.type === 1) { - this.qbfsForm.modelData[this.zrIndex].bussFsSubUser1 = data[0].id - this.qbfsForm.modelData[this.zrIndex].bussFsSubUser1Name = data[0].name - } else { - this.qbfsForm.modelData.forEach(item => { - this.zrIdList.forEach(items => { - if (item.id === items) { - item.bussFsSubUser1 = data[0].id - item.bussFsSubUser1Name = data[0].name - } - }) - }) - } if (this.type === "dockUser") { this.roleForm.dockUser = data[0].id; diff --git a/src/pages/processCenter/pages/creatProcess/qbfs/step3.vue b/src/pages/processCenter/pages/creatProcess/qbfs/step3.vue index cf06b6b50..ad406a516 100644 --- a/src/pages/processCenter/pages/creatProcess/qbfs/step3.vue +++ b/src/pages/processCenter/pages/creatProcess/qbfs/step3.vue @@ -26,6 +26,8 @@ :BZSMBUSSFileList = "BZSMBUSSFileList" :QTWJBUSSFileList = "QTWJBUSSFileList" :GLWJBUSSFileList = "GLWJBUSSFileList" + :LXDListSub = "LXDList === undefined ? [] : LXDList" + :FSDListSub = "FSDList === undefined ? [] : FSDList" :disabledState = "disabledState" :opinionsShow2 = "false" :verifySarStandard = "verifySarStandard" @@ -148,6 +150,7 @@ @checkedRole="checkedRole2" :nodeList="nodeList2" > + 正在加载数据 @@ -155,11 +158,11 @@ import ProcessHeader from "../../components/ProcessHeader"; import ProcessFooter from "../../components/ProcessFooter"; import ProcessTitle from "../../components/ProcessTitle"; -import { changeAssigneeNew, inboundLiaisonDetail, saveTaskFirst,taskDel,queryTaskFirst } from "api/process"; +import { changeAssigneeNew, inboundLiaisonDetail, saveTaskFirst,taskDel,queryTaskFirst,processEditFile } from "api/process"; import formList from './common/formList.vue' export default { - name: "qbfsStepSub1", + name: "qbfsStepSub2", components:{ ProcessHeader, ProcessFooter, @@ -167,7 +170,22 @@ export default { formList }, data() { + const validateFsOnlineFile = async (rule, value, callback) => { + if(this.qbfsForm.FSD){ + let fileObj = await this.processEditFile(this.qbfsForm.FSD) + if (fileObj) { + const editFileInfo = fileObj + console.log(editFileInfo) + if (editFileInfo && editFileInfo.editStatus === '1') { + callback() + } else { + callback(new Error('请先在线编辑,再提交流程!')) + } + } + } + }; return { + dataLoading:true, bpnId: '', formKey:1, active: '1', @@ -179,6 +197,8 @@ export default { LSBBBUSSFileList: [], QTWJBUSSFileList: [], GLWJBUSSFileList: [], + LXDList: [], + FSDList: [], fileList: [], commentText: '', detailData: [], @@ -217,6 +237,18 @@ export default { bussFsSubUser2Name: [ {required: true, message: "请选择企标复审人", trigger: "change"} ], + reviewResults: [ + {required: true, message: "请选择复审结果", trigger: "change"} + ], + draftTime: [ + {required: true, message: "请选择初稿完成日期", trigger: "change"} + ], + releaseTime: [ + {required: true, message: "请选择计划标准发布日期", trigger: "change"} + ], + LXDName: [ + { required: true, validator: validateFsOnlineFile, trigger: 'blur' } + ], }, } }, @@ -228,7 +260,45 @@ export default { this.processTable() this.getData() }, + watch:{ + 'qbfsForm.reviewResults': { + handler (val) { + if (val !== '' && val !== null && typeof (val) !== 'undefined') { + if(val === '1'){ + if (this.bpnId === undefined) { + this.getFsFile() + } + } + } + } + }, + }, methods:{ + async getFsFile(){ + let fileObj = await this.getSaveFile("model_fs") + if(fileObj){ + this.qbfsForm.FSD = fileObj.id + if(this.qbfsForm.standName){ + this.qbfsForm.FSDName = this.qbfsForm.standName + '-复审单' + }else { + this.qbfsForm.FSDName = '复审单' + } + this.FSDList=this.assemble(fileObj.id,this.qbfsForm.FSDName); + this.formKey++ + } + }, + getSaveFile(model) { + return new Promise((resolve, reject) => { + this.$http.get('/lawss/activiti/saveEditFile', { + model: model + }, { + _this: this + }, res => { + const history = res; + resolve(history) + }) + }) + }, checkedRole2 (data) { let idList = '' let nameList = '' @@ -272,13 +342,15 @@ export default { formChoiceZRRListCancel(type, title, id){ this.choiceZRRList(type, title, id) }, - formCancel (form, list1,list2,list3,list4,list5) { + formCancel (form, list1,list2,list3,list4,list5,list6,list7) { this.qbfsForm = form this.FBGBUSSFileList = list1 this.LSBBBUSSFileList = list2 this.BZSMBUSSFileList = list3 this.QTWJBUSSFileList = list4 this.GLWJBUSSFileList = list5 + this.LXDList = list6 + this.FSDList = list7 }, processTable() { this.$http.get("lawss/activiti/get_list_by_instance", { @@ -330,6 +402,8 @@ export default { this.LSBBBUSSFileList=this.assemble(this.qbfsForm.LSBBBUSS,this.qbfsForm.LSBBBUSSName); this.QTWJBUSSFileList=this.assemble(this.qbfsForm.QTWJBUSS,this.qbfsForm.QTWJBUSSName); this.GLWJBUSSFileList=this.assemble(this.qbfsForm.GLWJBUSS,this.qbfsForm.GLWJBUSSName); + this.LXDList=this.assemble(this.qbfsForm.LXD,this.qbfsForm.LXDName); + this.FSDList=this.assemble(this.qbfsForm.FSD,this.qbfsForm.FSDName); this.standardDrawer = false this.verifySarStandard = true this.commentText = mes.commentText @@ -361,7 +435,12 @@ export default { const obj = { reviewResultsContent:"", draftTime:"", - releaseTime:"", + releaseTime:"", + expirationDate:"", + LXDName:"", + LXD:"", + FSDName:"", + FSD:"", } const json = Object.assign(bringData, bringData.attrInfoMap,item,obj); this.qbfsForm = JSON.parse(JSON.stringify(json)) @@ -373,10 +452,13 @@ export default { this.LSBBBUSSFileList=this.assemble(this.qbfsForm.LSBBBUSS,this.qbfsForm.LSBBBUSSName); this.QTWJBUSSFileList=this.assemble(this.qbfsForm.QTWJBUSS,this.qbfsForm.QTWJBUSSName); this.GLWJBUSSFileList=this.assemble(this.qbfsForm.GLWJBUSS,this.qbfsForm.GLWJBUSSName); + this.LXDList=this.assemble(this.qbfsForm.LXD,this.qbfsForm.LXDName); + this.FSDList=this.assemble(this.qbfsForm.FSD,this.qbfsForm.FSDName); this.standardDrawer = false this.verifySarStandard = true this.formKey++ this.$forceUpdate() + this.dataLoading = false }) }, handleTabs(name) { @@ -402,12 +484,42 @@ export default { this.saveLoading = false }) }, + processEditFile(id) { + return new Promise((resolve, reject) => { + processEditFile({ + id + }).then(res => { + if (res) { + const history = res; + resolve(history) + } else { + reject() + } + }).catch(e => { + reject(e) + }) + }) + }, //流程提交 handleSubmit(){ this.$refs['qbfsForm'].validate((valid) => { if (valid) { this.isSubmit = true + this.saveLoading = true this.qbfsForm.commentText = this.commentText + const infoList = [] + const info = {} + info.reviewResults = this.qbfsForm.reviewResults + info.reviewResultsContent = this.qbfsForm.reviewResultsContent + info.draftTime = this.qbfsForm.draftTime + info.releaseTime = this.qbfsForm.releaseTime + info.expirationDate = this.qbfsForm.expirationDate + info.LXDName = this.qbfsForm.LXDName + info.LXD = this.qbfsForm.LXD + info.FSDName = this.qbfsForm.FSDName + info.FSD = this.qbfsForm.FSD + infoList.push(info) + this.qbfsForm.fileModelList = infoList let json = JSON.stringify(this.qbfsForm); this.$http.post('lawss/activiti/completeTask', { taskIds: this.$route.query.taskIds, @@ -428,6 +540,7 @@ export default { } } this.isSubmit = false + this.saveLoading = false }, e => { }); }else { diff --git a/src/pages/processCenter/pages/creatProcess/qbfs/step4.vue b/src/pages/processCenter/pages/creatProcess/qbfs/step4.vue new file mode 100644 index 000000000..606dd3a29 --- /dev/null +++ b/src/pages/processCenter/pages/creatProcess/qbfs/step4.vue @@ -0,0 +1,768 @@ + + + + + diff --git a/src/router/index.js b/src/router/index.js index 73253b419..df60b7780 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -2019,6 +2019,15 @@ const routes = [ title: '企标复审流程' } }, + { + path: '/bussFs2', + name: 'bussFs2', + component: () => import('@/pages/processCenter/pages/creatProcess/qbfs/step4.vue'), + meta: { + requireAuth: true, + title: '企标复审流程' + } + }, //企标复审流程 { path: '/qbfsStep1',