From 0cd35d78a4edc361d377370bbc85417215610a67 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期二, 02 七月 2024 10:41:00 +0800 Subject: [PATCH] 启动流程展示样式更改 添加启动流程节点选择穿梭框 调试模板查询 节点查询 启用流程默认接口 --- Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue | 279 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 229 insertions(+), 50 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue index 5c8cdb1..7b1d72e 100644 --- a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue +++ b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue @@ -1,19 +1,23 @@ <template> <el-dialog v-dialogDrag - append-to-body="true" :close-on-click-modal="false" :destroy-on-close="true" :visible.sync="visible" :width="width" + append-to-body="true" class="avue-dialog" title="鍚姩娴佺▼" - top="0" - style="margin-top: -10% !important;" @close="dialogClose"> - <el-form :model="saveParam" :rules="rules" class="demo-form-inline" label-position="left" label-width="auto"> + <el-divider content-position="left">娴佺▼淇℃伅</el-divider> + + <el-form ref="nodeForm" :model="saveParam" :rules="rules" class="demo-form-inline" label-position="left" + label-width="auto"> <el-form-item label="娴佺▼妯℃澘"> - <el-input v-model="saveParam.modelName" disabled placeholder="娴佺▼妯℃澘"></el-input> + <el-select v-model="saveParam.processTemplate" filterable style="width: 100%;" @change="proTemSelect($event)"> + <el-option v-for="(item, key) in processTemplateList" :key="key" :label="item.value" + :value="item.value"></el-option> + </el-select> </el-form-item> <el-form-item label="娴佺▼鍚嶇О" prop="processName"> <el-input v-model="saveParam.processName" placeholder="娴佺▼鍚嶇О"> @@ -25,29 +29,33 @@ </el-form-item> </el-form> - <el-divider></el-divider> - <div class="btns-icon"> - <el-button circle icon="el-icon-star-off" @click="handleCollect"></el-button> - </div> - <el-form :model="collectParam" class="demo-form-inline" label-position="left" label-width="auto"> - <el-form-item v-for="(item, index) in initFrom" :key="index" :label="item.taskName"> - <el-select v-model="collectParam.flowTaskUsers[index]['userId']" :placeholder="item.taskName" filterable - style="width: 100%;" @change="handleSelect($event, index)"> - <el-option v-for="(key, keyi) in typeName" :key="keyi" :label="key.userNames" - :value="key.userId"></el-option> - </el-select> + <el-divider content-position="left">娴佺▼鑺傜偣</el-divider> + + + <el-form :key="formKey" v-loading="nodeLoading" :model="collectParam" :rules="nodeRules" class="demo-form-inline" + label-position="left" + label-width="auto"> + <el-form-item v-for="(item, index) in initFrom" :key="index" :label="item.name" prop="node"> + <div @click="nodeChange(item)"> + <el-input v-model="collectParam[item.name+'name']" readonly="true" suffix-icon="el-icon-zoom-in"></el-input> + </div> </el-form-item> </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="handleCancel">鍙� 娑�</el-button> - <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button> - </div> + <div slot="footer" class="dialog-footer"> + <el-button size="small" @click="handleCancel">鍙� 娑�</el-button> + <el-button size="small" type="primary" @click="handleConfirm">纭� 瀹�</el-button> + </div> + <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" + :title="`涓恒��${this.nodeName}銆戦�夊彇鍊糮" :transferTitle="transferTitle" :bottomValue="bottomValue" + @transferSend="roleSendHandler"></transfer> </el-dialog> + </template> <script> import {validatenull} from "@/util/validate"; +import {getTemplateByType, getAllProcessNode, startProcess} from "@/api/base/startWork/index" export default { name: "startWorkFlow", @@ -70,29 +78,67 @@ data() { return { visible: false, - saveParam: {}, - users: [], - collectParam: {}, - initFrom: [], - typeName: [], + saveParam: { + processName: '' + }, // 瀵硅薄鍖呭惈 {processTemplate娴佺▼妯℃澘(鐢辨帴鍙h繑鍥炲綋鍓嶆祦绋嬫ā鏉�) , processName娴佺▼鍚嶇О锛堜负褰撳墠鐢ㄦ埛+'鍚姩娴佺▼'+褰撳墠鍒嗙被锛� , processDesc娴佺▼鎻忚堪 } + processTemplateList: [], // 娴佺▼妯℃澘涓嬫媺鏁扮粍 + initFrom: [], // 褰撳墠娴佺▼鑺傜偣寰幆鏁扮粍 + collectParam: {}, // 娴佺▼鑺傜偣涓嬫媺妗嗗弻鍚戠粦瀹氬睘鎬� + typeName: [], // 娴佺▼鑺傜偣option寰幆閫夐」 + nodeLoading: false, + rules: { + processName: [ + {required: true, message: '娴佺▼鍚嶇О涓嶈兘涓虹┖', trigger: 'blur'}, + {min: 3, max: 50, message: '闀垮害鍦� 3 鍒� 50 涓瓧绗�', trigger: 'blur'} + ] + }, + nodeRules: { + node: [ + {required: true, message: '閫夋嫨鍐呭涓嶈兘涓虹┖', trigger: 'change'}, + ] + }, + bottomValue:'', + leftRoleData: [], + rightRoleData: [], + transferTitle: [], + nodeName: '', // 褰撳墠鑺傜偣鍚嶇О + userVo: [ + { + "children": [], + "id": "zkjs", + "leaf": true, + "name": "鎬讳細璁″笀", + "oid": "1241AC3B-26AF-9B86-7870-53DA8D78A742", + "secret": -1, + "secretText": "", + "type": "user" + }, + { + "children": [], + "id": "1", + "leaf": true, + "name": "娴嬭瘯", + "oid": "921D71F8-C2BB-3BCE-B744-AD0C3812F41A", + "secret": -1, + "secretText": "", + "type": "user" + }, + { + "children": [], + "id": "5", + "leaf": true, + "name": "鎬讳細璁″笀", + "oid": "34ddb5a8-ab95-4070-b72f-abaaa48cf8b1", + "secret": -1, + "secretText": "", + "type": "user" + } + ], + formKey: 0, + } }, - watch: { - users: { - handler(val) { - this.collectParam.flowTaskUsers = val - }, - deep: true, - immediate: true - }, - parameter: { - handler(newval, oldval) { - this.saveParam = Object.assign({processName: '', processDesc: ''}, newval); - }, - deep: true, - immediate: true - } - }, + watch: {}, computed: { fullscreen() { if (this.paramVOS.width || this.paramVOS.height) { @@ -114,31 +160,164 @@ } }, }, + created() { + // this.modelNameChange(); + this.getWorkByType(); + }, + mounted() { + }, methods: { + // 鑾峰彇娴佺▼妯℃澘淇℃伅 + getWorkByType() { + let params = { + type: '鏂囨。瀹$娴佺▼', + filterTemplate: "" + } + getTemplateByType(params).then(res => { + const data = res.data.data; + const userInfo = JSON.parse(localStorage.getItem('saber-userInfo')); + + this.processTemplateList = data; + this.saveParam.processTemplate = data[0].value; + this.saveParam.processName = userInfo.content.userName + '-' + data[0].value; // 瀵规祦绋嬫ā鏉� 娴佺▼鍚嶇О璧嬮粯璁ゅ�� + + this.getProcessNode(data[0].attributes.oid); // 棣栨杩涘叆璋冪敤绗竴涓ā鏉跨殑鎵�鏈夎妭鐐� + }).catch(err => { + this.$message.error(err); + }) + }, + + // 璇锋眰娴佺▼鑺傜偣 + getProcessNode(oid) { + let params = { + processOid: oid, + maxSecret: -1 + } + getAllProcessNode(params).then(res => { + const nodes = res.data.data; + this.initFrom = nodes; + nodes.forEach(item => { + // let name = item.processUserVO[0].children.map(name => name.name).join(','); + // let ids = item.processUserVO[0].children.map(id => id.id).join(','); + let name = this.userVo.map(name => name.name).join(','); + let ids = this.userVo.map(id => id.id).join(','); + this.bottomValue = name; + this.collectParam[item.name + 'name'] = name; + this.collectParam[item.name] = ids; + }) + this.nodeLoading = false; + }).catch(err => { + this.$message.error(err); + }) + }, + // 鍏抽棴寮圭獥 dialogClose() { this.visible = false; }, - handleSelect() { - - }, - - handleCollect() { - - }, handleCancel() { this.dialogClose(); }, handleConfirm() { + let params = { + deployid:this.processTemplateList[0].attributes.deploymentId, + title:this.saveParam.processName, + description:this.saveParam.processDesc, + btmType:this.processTemplateList[0].attributes.taskType, + uiType:this.processTemplateList[0].attributes.taskType, + oids:'', // 褰撳墠鏁版嵁oid锛屽涓敤,鍒嗛殧 + detailInfoUrl:'', // 鐢ㄦ埛閰嶇疆灞炴�� + resetStatus:'Editing', + nodeUsers:{ + ...this.collectParam + } + } + startProcess(params).then(res => { + if(res.data.obj.status === 200){ + this.dialogClose(); + this.$message.success('鍚姩娴佺▼鎴愬姛'); + }else { + this.$message.error(res.data.obj.error); + } + }).catch(err => { + this.$message.error(err); + }) + }, - } + // 鍒囨崲娴佺▼妯℃澘 + proTemSelect(event) { + this.nodeLoading = true; + this.getProcessNode(event); + this.$refs.nodeForm.clearValidate(); + }, + + // 鑺傜偣鐐瑰嚮浜嬩欢 + nodeChange(item) { + this.nodeName = item.name; + this.transferTitle = [`[${item.name}]鏈�夌敤鎴穈, `[${item.name}]宸查�夌敤鎴穈] + this.leftRoleData = [ + { + "children": [], + "id": "zkjs", + "leaf": true, + "name": "鎬讳細璁″笀", + "oid": "1241AC3B-26AF-9B86-7870-53DA8D78A742", + "secret": -1, + "secretText": "", + "type": "user" + }, + { + "children": [], + "id": "1", + "leaf": true, + "name": "娴嬭瘯", + "oid": "921D71F8-C2BB-3BCE-B744-AD0C3812F41A", + "secret": -1, + "secretText": "", + "type": "user" + }, + { + "children": [], + "id": "5", + "leaf": true, + "name": "鎬讳細璁″笀", + "oid": "34ddb5a8-ab95-4070-b72f-abaaa48cf8b1", + "secret": -1, + "secretText": "", + "type": "user" + } + ]; + this.rightRoleData = this.userVo.map(item => item.oid); + this.$refs.transfer.visible = true; + }, + + // 绌挎妗嗗洖濉� + roleSendHandler(data) { + let filterData; + filterData = this.userVo.filter(item => { + return data.includes(item.oid); + }); + const filterName = filterData.map(item => item.name).join(','); + this.$set(this.collectParam, this.nodeName + 'name', filterName); + this.formKey += 1; // 鍒锋柊琛ㄥ崟 鍥犱负鍙屽悜缁戝畾鐨則his.collectParam[this.nodeName + 'name']鏄姩鎬佸�� vue鏃犳硶妫�娴嬪埌鍊肩殑鏇存柊 + }, } } </script> -<style scoped lang="scss"> +<style lang="scss" scoped> +.el-form-item { + margin-bottom: 25px; +} +.el-divider--horizontal { + margin-bottom: 20px !important; +} + +.el-divider__text.is-left { + color: #8b8989 !important; +} </style> -- Gitblit v1.9.3