From f867526db1a30d25b77fc67d1761e986b7cba0c8 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 03 一月 2025 10:30:56 +0800
Subject: [PATCH] 项目流程推进增加table列宽度等属性
---
src/views/flowable/task/myProcess/send/index.vue | 214 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 181 insertions(+), 33 deletions(-)
diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue
index 8049573..7c23992 100644
--- a/src/views/flowable/task/myProcess/send/index.vue
+++ b/src/views/flowable/task/myProcess/send/index.vue
@@ -2,7 +2,7 @@
<div class="app-container">
<el-card class="box-card" >
<div slot="header" class="clearfix">
- <span class="el-icon-document">{{`娴佺▼澶勭悊锛歚 + processName}}</span>
+ <span class="el-icon-document">{{`娴佺▼鍔炵悊锛歚 + processName}}</span>
<el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button>
</div>
<el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
@@ -90,10 +90,39 @@
</el-select>
</el-form-item>
<el-form-item v-if="delegationForm.peopleType === 'DEPT'" label="鍊欓�夐儴闂�" prop="targetId">
- <Dept ref="dept" :checkeds="delegationDeptSelect" :show="deptShow" @close="closeDept" @submit="getDeptSelect"/>
+ <MyDept ref="dept" :checkeds="delegationDeptSelect" :show="deptShow" @close="closeDept" @submit="getDeptSelect"/>
<div style="display: flex;align-items: center">
- <div>{{deptNames}}</div>
- <el-button style="margin-left: 8px" type="text" @click="editDept">缂栬緫</el-button>
+ <div>
+ <el-tag v-for="dept in delegationDeptSelect" :key="dept.id + 'zxc'" type="info" closable @close="removeDept(dept)">{{dept.label}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editDept">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'FIX_USER'" label="鎸囧畾鐢ㄦ埛" prop="targetId">
+ <single-user ref="singleUser" :select-user="delegationForm.targetId" :show="singleUserShow" @close="closeSingleUser" @submit="getSingleUserSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="user in delegationUserSelect" :key="user.userId + 'abc'" type="info" closable @close="removeSingleUser(user)">{{user.nickName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editSingleUser">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'USER'" label="鍊欓�夌敤鎴�" prop="targetId">
+ <mult-user ref="multUser" :select-user="delegationUserSelect" :show="multUserShow" @close="closeMultUser" @submit="getMultUserSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="user in delegationUserSelect" :key="user.userId + 'qwe'" type="info" closable @close="removeMultUser(user)">{{user.nickName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editMultUser">閫夋嫨</el-button>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="delegationForm.peopleType === 'ROLE'" label="鍊欓�夎鑹�" prop="targetId">
+ <my-role ref="role" :select-values="delegationRoleSelect" :show="roleShow" @close="closeRole" @submit="getRoleSelect"/>
+ <div style="display: flex;align-items: center">
+ <div>
+ <el-tag v-for="role in delegationRoleSelect" :key="role.roleId + 'rty'" type="info" closable @close="removeRole(role)">{{role.roleName}}</el-tag>
+ </div>
+ <el-button style="margin-left: 8px" type="text" @click="editRole">閫夋嫨</el-button>
</div>
</el-form-item>
</el-form>
@@ -109,12 +138,13 @@
<script>
import {definitionStart, flowXmlAndNode} from "@/api/flowable/definition";
import BpmnViewer from '@/components/Process/viewer';
-import Dept from '@/components/flow/Dept'
+import MyDept from '@/components/flow/Dept/MyDept'
+import SingleUser from '@/components/flow/User/SingleUser'
+import MultUser from '@/components/flow/User/MultUser'
+import MyRole from '@/components/flow/Role/MyRole'
import {completeSubmitFormTask} from "@/api/flowable/process";
import { flowTaskForm } from "@/api/flowable/todo";
import {getNextFlowNodeByStart} from "@/api/flowable/todo";
-import FlowUser from '@/components/flow/User'
-import FlowRole from '@/components/flow/Role'
import {rejectTask} from "@/api/flowable/process";
import {taskDelegation} from "@/api/projectProcess/projectProcess";
@@ -122,15 +152,20 @@
name: "Record",
components: {
BpmnViewer,
- FlowUser,
- FlowRole,
- Dept,
+ MyRole,
+ MyDept,
+ SingleUser,
+ MultUser,
},
props: {},
data() {
return {
- deptShow: false, // 閮ㄩ棬鏄剧ず
- deptNames: '', // 閫変腑鐨勯儴闂ㄥ悕绉�
+ roleShow: false, // 瑙掕壊缁勬樉绀�
+ delegationRoleSelect: [], // 閫変腑瑙掕壊
+ multUserShow: false, // 鐢ㄦ埛缁勬樉绀�
+ singleUserShow: false, // 鎸囧畾鐢ㄦ埛鏄剧ず
+ delegationUserSelect: [], // 閫変腑鐨勭敤鎴�
+ deptShow: false, // 閮ㄩ棬缁勬樉绀�
delegationDeptSelect: [], // 閫変腑閮ㄩ棬
delegationFormRules: {
peopleType: [
@@ -193,20 +228,63 @@
this.getFlowFormData(this.taskId);
},
methods: {
+ removeDept(dept) {
+ let index = this.delegationDeptSelect.indexOf(dept);
+ if (index !== -1) {
+ this.delegationDeptSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationDeptSelect.map(item => item.id).join(",")
+ },
+ removeRole(role) {
+ let index = this.delegationRoleSelect.indexOf(role);
+ if (index !== -1) {
+ this.delegationRoleSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationRoleSelect.map(item => item.roleId).join(",")
+ },
+ removeMultUser(user) {
+ let index = this.delegationUserSelect.indexOf(user);
+ if (index !== -1) {
+ this.delegationUserSelect.splice(index, 1);
+ }
+ this.delegationForm.targetId = this.delegationUserSelect.map(item => item.userId).join(",")
+ },
+ removeSingleUser(user) {
+ // 鍥犱负鍙兘閫変竴涓敤鎴凤紝鎵�浠ュ垹浜嗗氨娌′簡
+ this.delegationUserSelect = []
+ this.delegationForm.targetId = ''
+ },
+ getTips() {
+ if (this.delegationForm.peopleType === 'USER' || this.delegationForm.peopleType === 'FIX_USER') {
+ return this.delegationUserSelect.map(item => item.nickName).join("銆�")
+ } else if (this.delegationForm.peopleType === 'DEPT') {
+ return this.delegationDeptSelect.map(item => item.label).join("銆�")
+ } else if (this.delegationForm.peopleType === 'ROLE') {
+ return this.delegationRoleSelect.map(item => item.roleName).join("銆�")
+ }
+ },
delegation() {
- this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- taskDelegation(this.delegationForm).then(res => {
- this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '宸插彇娑堣浆鍔炴搷浣�'
- });
+ this.$refs['delegationForm'].validate((valid) => {
+ if (valid) {
+ this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.getTips()}銆戝鐞嗗悧?`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ taskDelegation(this.delegationForm).then(res => {
+ this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
+ this.goBack()
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堣浆鍔炴搷浣�'
+ });
+ });
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
});
},
peopleTypeChange(val) {
@@ -215,6 +293,12 @@
this.$refs.dept.setCheckList(this.delegationDeptSelect)
})
this.deptShow = true
+ } else if (val === 'FIX_USER') {
+ this.singleUserShow = true
+ } else if (val === 'USER') {
+ this.multUserShow = true
+ } else if (val === 'ROLE') {
+ this.roleShow = true
}
},
editDept() {
@@ -223,18 +307,78 @@
})
this.deptShow = true
},
- getDeptSelect(list, names) {
- console.log(list, names)
- if (list) {
- this.delegationForm.targetId = list
- this.delegationDeptSelect = list.split(",")
- this.deptNames = names
+ editSingleUser() {
+ if (this.delegationUserSelect && this.delegationUserSelect.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.singleUser.setChecked(this.delegationUserSelect[0])
+ })
+ }
+ this.singleUserShow = true
+ },
+ editRole() {
+ if (this.delegationRoleSelect && this.delegationRoleSelect.length > 0) {
+ this.$nextTick(() => {
+ this.$refs.role.setChecked(this.delegationRoleSelect)
+ })
+ }
+ this.roleShow = true
+ },
+ editMultUser() {
+ if (this.delegationForm.targetId) {
+ this.$nextTick(() => {
+ this.$refs.multUser.setChecked(this.delegationUserSelect)
+ })
+ }
+ this.multUserShow = true
+ },
+ getDeptSelect(deptList) {
+ if (deptList && deptList.length > 0) {
+ this.delegationForm.targetId = deptList.map(item => item.id).join(",")
+ this.delegationDeptSelect = deptList
}
this.deptShow = false
},
+ getMultUserSelect(userList) {
+ if (userList && userList.length > 0) {
+ this.delegationForm.targetId = userList.map(item => item.userId).join(",")
+ this.delegationUserSelect = userList
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationUserSelect = []
+ }
+ this.multUserShow = false
+ },
+ getRoleSelect(roleList) {
+ if (roleList && roleList.length > 0) {
+ this.delegationForm.targetId = roleList.map(item => item.roleId).join(",")
+ this.delegationRoleSelect = roleList
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationRoleSelect = []
+ }
+ this.roleShow = false
+ },
+ getSingleUserSelect(user) {
+ if (user) {
+ this.delegationForm.targetId = user.userId
+ this.delegationUserSelect = [user]
+ } else {
+ this.delegationForm.targetId = ''
+ this.delegationUserSelect = []
+ }
+ this.singleUserShow = false
+ },
closeDept() {
- console.log(this.deptNames)
this.deptShow = false
+ },
+ closeSingleUser() {
+ this.singleUserShow = false
+ },
+ closeRole() {
+ this.roleShow = false
+ },
+ closeMultUser() {
+ this.multUserShow = false
},
openDelegation(taskName) {
this.delegationForm.taskName = taskName
@@ -304,11 +448,15 @@
},
/** 杩斿洖椤甸潰 */
goBack() {
+ // 鍏抽棴褰撳墠鏍囩椤�
+ this.$store.dispatch("tagsView/delView", this.$route);
+ // 璺宠浆璺敱
this.$router.push({
path: '/projectFlow/detail',
query: {
projectId: this.goBackParams.projectId,
- processDefId: this.goBackParams.processDefId
+ processDefId: this.goBackParams.processDefId,
+ processName: this.goBackParams.processName
}
})
},
--
Gitblit v1.8.0