From 849934d0e2a3d05c4814edad52b060d93d77725f Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 09 一月 2025 11:42:10 +0800 Subject: [PATCH] 用户、角色、部门组件完善、办理查看任务优化 --- src/views/flowable/task/myProcess/send/index.vue | 100 ++++++++++++---- src/views/flowable/task/myProcess/detail/index.vue | 55 +++++--- src/components/Process/panel/TaskConfPanel.vue | 3 src/components/flow/Role/MyRole.vue | 34 ++--- src/components/flow/Dept/MyDept.vue | 7 + src/components/flow/User/MultUser.vue | 31 ++--- src/components/flow/User/SingleUser.vue | 90 +++----------- 7 files changed, 165 insertions(+), 155 deletions(-) diff --git a/src/components/Process/panel/TaskConfPanel.vue b/src/components/Process/panel/TaskConfPanel.vue index 88718ff..9d93362 100644 --- a/src/components/Process/panel/TaskConfPanel.vue +++ b/src/components/Process/panel/TaskConfPanel.vue @@ -242,12 +242,14 @@ }, editDept() { this.$nextTick(() => { + this.deptKey += '1' this.$refs.dept.setCheckList(this.delegationDeptSelect) }) this.deptShow = true }, editSingleUser() { if (this.delegationUserSelect && this.delegationUserSelect.length > 0) { + this.singleUserKey += '1' this.$nextTick(() => { this.$refs.singleUser.setChecked(this.delegationUserSelect[0]) }) @@ -256,6 +258,7 @@ }, editRole() { if (this.delegationRoleSelect && this.delegationRoleSelect.length > 0) { + this.roleKey += '1' this.$nextTick(() => { this.$refs.role.setChecked(this.delegationRoleSelect) }) diff --git a/src/components/flow/Dept/MyDept.vue b/src/components/flow/Dept/MyDept.vue index c74ced8..27abe9a 100644 --- a/src/components/flow/Dept/MyDept.vue +++ b/src/components/flow/Dept/MyDept.vue @@ -1,7 +1,7 @@ <template> <div> <el-dialog - :title="`閫夋嫨鍊欓�夐儴闂╜" + :title="title" :visible.sync="show" width="65%" :destroy-on-close="true" @@ -35,6 +35,11 @@ required: true, type: Boolean }, + title: { + type: String, + required: false, + default: '鍊欓�夐儴闂�' + }, checkeds: { required: true } diff --git a/src/components/flow/Role/MyRole.vue b/src/components/flow/Role/MyRole.vue index dfa4e74..e5e9cd7 100644 --- a/src/components/flow/Role/MyRole.vue +++ b/src/components/flow/Role/MyRole.vue @@ -1,11 +1,12 @@ <template> <div> <el-dialog - :title="`閫夋嫨鍊欓�夎鑹瞏" + :title="title" :visible.sync="show" width="65%" :destroy-on-close="true" :close-on-click-modal="false" + :modal-append-to-body="false" :modal="false" :before-close="close"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> @@ -14,6 +15,7 @@ v-model="queryParams.roleName" placeholder="璇疯緭鍏ヨ鑹插悕绉�" clearable + @clear="handleQuery" style="width: 240px" @keyup.enter.native="handleQuery" /> @@ -24,8 +26,8 @@ </el-form-item> </el-form> - <el-table ref="dataTable" v-loading="loading" :data="roleList" @selection-change="handleMultipleRoleSelect"> - <el-table-column type="selection" width="50" align="center" /> + <el-table ref="dataTable" :row-key="getRowKey" v-loading="loading" :data="roleList" @selection-change="handleMultipleRoleSelect"> + <el-table-column type="selection" width="50" align="center" :reserve-selection="true"/> <el-table-column label="瑙掕壊缂栧彿" prop="roleId"/> <el-table-column label="瑙掕壊鍚嶇О" prop="roleName" :show-overflow-tooltip="true"/> <el-table-column label="鏉冮檺瀛楃" prop="roleKey" :show-overflow-tooltip="true"/> @@ -68,6 +70,11 @@ required: true, default: true }, + title: { + type: String, + required: false, + default: '鍊欓�夎鑹�' + }, // 鍥炴樉鏁版嵁浼犲�� selectValues: { type: Array, @@ -79,22 +86,12 @@ return { // 閬僵灞� loading: true, - // 閫変腑鏁扮粍 - ids: [], - // 闈炲崟涓鐢� - single: true, - // 闈炲涓鐢� - multiple: true, // 鏄剧ず鎼滅储鏉′欢 showSearch: true, // 鎬绘潯鏁� total: 0, // 瑙掕壊琛ㄦ牸鏁版嵁 roleList: [], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -103,9 +100,6 @@ roleKey: undefined, status: undefined }, - // 琛ㄥ崟鍙傛暟 - form: {}, - radioSelected: 0, // 鍗曢�夋浼犲�� selectRoleList: [] // 鍥炴樉鏁版嵁浼犲�� }; }, @@ -118,13 +112,15 @@ methods: { // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁 getRowKey (row) { + console.log(row.roleId) return row.roleId }, setChecked(val) { - console.log("鎺ユ敹鍒扮殑鏁版嵁", val) + this.selectRoleList = val + console.log("鎺ユ敹鍒扮殑鏁版嵁", this.selectRoleList) this.$nextTick(() => { - val.forEach(check => { + this.selectRoleList.forEach(check => { this.$refs.dataTable.toggleRowSelection(check, true) }) }); @@ -147,7 +143,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleMultipleRoleSelect(rows) { - this.selectRoleList = rows + this.selectRoleList = [...new Set(rows)] }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { diff --git a/src/components/flow/User/MultUser.vue b/src/components/flow/User/MultUser.vue index 8e1f059..00406bb 100644 --- a/src/components/flow/User/MultUser.vue +++ b/src/components/flow/User/MultUser.vue @@ -1,7 +1,7 @@ <template> <div> <el-dialog - :title="`閫夋嫨杞姙鎺ユ敹浜哄憳`" + :title="title" :visible.sync="show" width="65%" :destroy-on-close="true" @@ -39,11 +39,12 @@ <!--鐢ㄦ埛鏁版嵁--> <el-col :span="18" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-form-item label="鐢ㄦ埛鍚嶇О" prop="nickName"> <el-input - v-model="queryParams.userName" - placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + v-model="queryParams.nickName" + placeholder="璇疯緭鍏ョ敤鎴峰鍚�" clearable + @clear="handleQuery" style="width: 150px" @keyup.enter.native="handleQuery" /> @@ -95,6 +96,11 @@ required: true, type: Boolean }, + title: { + type: String, + required: false, + default: '鍊欓�変汉鍛�' + }, // 鍥炴樉鏁版嵁浼犲�� selectUserList: { type: Array, @@ -108,24 +114,16 @@ innerSelected: [], // 閫変腑 // 閬僵灞� loading: false, - // 閫変腑鏁扮粍 - ids: [], // 鏄剧ず鎼滅储鏉′欢 showSearch: true, // 鎬绘潯鏁� total: 0, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: [], - // 寮瑰嚭灞傛爣棰� - title: "", // 閮ㄩ棬鏍戦�夐」 deptOptions: undefined, - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, // 閮ㄩ棬鍚嶇О deptName: undefined, - // 琛ㄥ崟鍙傛暟 - form: {}, defaultProps: { children: "children", label: "label" @@ -134,7 +132,7 @@ queryParams: { pageNum: 1, pageSize: 5, - userName: undefined, + nickName: undefined, phonenumber: undefined, status: undefined, deptId: undefined @@ -162,7 +160,8 @@ this.getList(); }, methods: { - getRowKeys(row) { + // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁 + getRowKey (row) { return row.userId }, setChecked(val) { @@ -189,10 +188,6 @@ deptTreeSelect().then(response => { this.deptOptions = response.data; }); - }, - // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁 - getRowKey (row) { - return row.userId }, // 绛涢�夎妭鐐� filterNode(value, data) { diff --git a/src/components/flow/User/SingleUser.vue b/src/components/flow/User/SingleUser.vue index ff2cf26..d779e71 100644 --- a/src/components/flow/User/SingleUser.vue +++ b/src/components/flow/User/SingleUser.vue @@ -1,7 +1,7 @@ <template> <div> <el-dialog - :title="`閫夋嫨杞姙鎺ユ敹浜哄憳`" + :title="title" :visible.sync="show" width="65%" :destroy-on-close="true" @@ -38,11 +38,12 @@ <!--鐢ㄦ埛鏁版嵁--> <el-col :span="18" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-form-item label="鐢ㄦ埛濮撳悕" prop="nickName"> <el-input - v-model="queryParams.userName" - placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + v-model="queryParams.nickName" + placeholder="璇疯緭鍏ョ敤鎴峰鍚�" clearable + @clear="handleQuery" style="width: 150px" @keyup.enter.native="handleQuery" /> @@ -53,7 +54,7 @@ </el-form-item> </el-form> <el-table ref="dataTable" v-loading="loading" :row-key="getRowKey" :data="userList" @selection-change="handleUserSelect"> - <el-table-column type="selection" /> + <el-table-column type="selection" :reserve-selection="true"/> <el-table-column label="鐢ㄦ埛缂栧彿" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> <el-table-column label="鐧诲綍璐﹀彿" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="鐢ㄦ埛濮撳悕" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> @@ -94,6 +95,11 @@ required: true, type: Boolean }, + title: { + type: String, + required: false, + default: '鎸囧畾浜哄憳' + }, // 鍥炴樉鏁版嵁浼犲�� selectUser: { default: null, @@ -106,24 +112,16 @@ innerSelected: null, // 閬僵灞� loading: true, - // 閫変腑鏁扮粍 - ids: [], // 鏄剧ず鎼滅储鏉′欢 showSearch: true, // 鎬绘潯鏁� total: 0, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: [], - // 寮瑰嚭灞傛爣棰� - title: "", // 閮ㄩ棬鏍戦�夐」 deptOptions: undefined, - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, // 閮ㄩ棬鍚嶇О deptName: undefined, - // 琛ㄥ崟鍙傛暟 - form: {}, defaultProps: { children: "children", label: "label" @@ -132,7 +130,7 @@ queryParams: { pageNum: 1, pageSize: 5, - userName: undefined, + nickName: undefined, phonenumber: undefined, status: undefined, deptId: undefined @@ -155,65 +153,21 @@ deptName(val) { this.$refs.tree.filter(val); }, - selectUser: { - deep: true, - handler(newVal) { - if (newVal) { - this.$nextTick(() => { - this.$refs.dataTable.clearSelection(); - this.userList.forEach(item => { - if (newVal === item.userId) { - this.innerSelected = item - this.$refs.dataTable.toggleRowSelection(item) - } - }) - }); - } else { - this.innerSelected = null; - } - }, - }, - userLst: { - deep: true, - handler(newVal) { - if (newVal) { - this.$nextTick(() => { - if (this.$refs.dataTable) { - if (! this.innerSelected) { - newVal.forEach(item => { - if (this.innerSelected.userId === item.userId) { - this.innerSelected = item - this.$refs.dataTable.toggleRowSelection(item) - } - }) - } - } - }); - } else { - this.innerSelected = null; - } - }, - }, }, mounted() { this.getList(); this.getDeptTree(); }, methods: { + // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁 + getRowKey (row) { + return row.userId + }, setChecked(val) { - if (val) { - this.$nextTick(() => { - this.$refs.dataTable.clearSelection(); - this.userList.forEach(item => { - if (val.userId === item.userId) { - this.innerSelected = item - this.$refs.dataTable.toggleRowSelection(item) - } - }) - }); - } else { - this.innerSelected = null - } + this.innerSelected = val + this.$nextTick(() => { + this.$refs.dataTable.toggleRowSelection(val, true) + }); }, /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ getList() { @@ -230,10 +184,6 @@ deptTreeSelect().then(response => { this.deptOptions = response.data; }); - }, - // 淇濆瓨閫変腑鐨勬暟鎹甶d,row-key灏辨槸瑕佹寚瀹氫竴涓猭ey鏍囪瘑杩欎竴琛岀殑鏁版嵁 - getRowKey (row) { - return row.id }, // 绛涢�夎妭鐐� filterNode(value, data) { diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue index baa1eae..9879bd8 100644 --- a/src/views/flowable/task/myProcess/detail/index.vue +++ b/src/views/flowable/task/myProcess/detail/index.vue @@ -9,17 +9,41 @@ <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick"> <!--琛ㄥ崟淇℃伅--> <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> + <!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�--> <el-col :span="16" :offset="4"> <div v-if="formDataList && formDataList.length > 0"> - <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp"> - <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div> - <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div> - <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''"> - <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> + <div v-if="formDataObj.current"> + <div style="margin-bottom: 15px;color: #E6A23C">褰撳墠闃舵锛�<span style="color: #409EFF">{{formDataObj.beforeNodeName}}</span></div> + <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''"> + <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + </div> + <div v-else> + <el-alert + title="褰撳墠鑺傜偣鏈粦瀹氳〃鍗�" + type="info" + :closable="false" + > + </el-alert> + </div> </div> - <div v-else> + <div v-else-if="formDataList.length > 1"> + <div style="margin-bottom: 15px;color: #E6A23C">鍓嶇疆闃舵锛�<span style="color: #F56C6C">{{formDataObj.beforeNodeName}}</span></div> + <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''"> + <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + </div> + <div v-else> + <el-alert + title="鍓嶇疆鑺傜偣鏈粦瀹氳〃鍗�" + type="info" + :closable="false" + > + </el-alert> + </div> + </div> + <div v-if="formDataList.length <= 1"> <el-alert - title="鑺傜偣鏃犺〃鍗曟暟鎹�" + title="涓嶅瓨鍦ㄥ墠缃妭鐐�" type="info" :closable="false" > @@ -27,22 +51,7 @@ </div> </div> </div> - <div v-else> - <el-alert - title="褰撳墠鑺傜偣鏃犺〃鍗曟暟鎹�" - type="info" - :closable="false" - > - </el-alert> - <el-alert - style="margin-top: 20px" - title="鍓嶇疆鑺傜偣鏃犺〃鍗曟暟鎹�" - type="info" - :closable="false" - > - </el-alert> - </div> - </el-col> + </el-col> </el-tab-pane> <!--娴佺▼娴佽浆璁板綍--> <el-tab-pane label="娴佽浆璁板綍" name="2"> diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue index e87f061..1fdc23e 100644 --- a/src/views/flowable/task/myProcess/send/index.vue +++ b/src/views/flowable/task/myProcess/send/index.vue @@ -10,21 +10,56 @@ <!--琛ㄥ崟淇℃伅--> <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> <!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�--> - <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0"> - <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> -<!-- 鍓嶇疆鑺傜偣鍙┏鍥� --> - <div v-if="!formDataObj.current" style="position: absolute; top: 4px; right: 4px"> - <el-button type="danger" size="small" @click="openRejectTask(formDataObj.beforeNodeDefId)">椹� 鍥�</el-button> + <el-col :span="16" :offset="4"> + <div v-if="formDataList && formDataList.length > 0"> + <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> + <div v-if="formDataObj.current"> + <!-- 褰撳墠鑺傜偣鍙崗鍚屻�佽浆鍔炵瓑鎿嶄綔 --> + <div style="position: absolute; top: 4px; right: 4px; display: flex;justify-content: center; align-items: center;"> + <el-button size="small" type="primary" @click="submitForm">纭骞舵彁浜�</el-button> + <el-button size="small" type="primary" disabled @click="submitForm">鍗忓悓鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button> + <el-button size="small" type="primary" @click="openDelegation(formDataList[0].beforeNodeName)">杞姙</el-button> + </div> + <div style="margin-bottom: 15px;color: #E6A23C">褰撳墠闃舵锛�<span style="color: #409EFF">{{formDataObj.beforeNodeName}}</span></div> + <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''"> + <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + </div> + <div v-else> + <el-alert + title="褰撳墠鑺傜偣鏈粦瀹氳〃鍗�" + type="info" + :closable="false" + > + </el-alert> + </div> + </div> + <div v-else-if="formDataList.length > 1"> + <!-- 鍓嶇疆鑺傜偣鍙┏鍥� --> + <div style="position: absolute; top: 4px; right: 4px"> + <el-button type="danger" size="small" @click="openRejectTask(formDataObj.beforeNodeDefId)">椹� 鍥�</el-button> + </div> + <div style="margin-bottom: 15px;color: #E6A23C">鍓嶇疆闃舵锛�<span style="color: #F56C6C">{{formDataObj.beforeNodeName}}</span></div> + <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''"> + <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + </div> + <div v-else> + <el-alert + title="鍓嶇疆鑺傜偣鏈粦瀹氳〃鍗�" + type="info" + :closable="false" + > + </el-alert> + </div> + </div> + <div v-if="formDataList.length <= 1"> + <el-alert + title="涓嶅瓨鍦ㄥ墠缃妭鐐�" + type="info" + :closable="false" + > + </el-alert> + </div> </div> -<!-- 褰撳墠鑺傜偣鍙崗鍚屻�佽浆鍔炵瓑鎿嶄綔 --> - <div v-else style="position: absolute; top: 4px; right: 4px; display: flex;justify-content: center; align-items: center;"> - <el-button size="small" type="primary" @click="submitForm">纭骞舵彁浜�</el-button> - <el-button size="small" type="primary" disabled @click="submitForm">鍗忓悓鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button> - <el-button size="small" type="primary" @click="openDelegation(formDataList[0].beforeNodeName)">杞姙</el-button> - </div> - <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #E6A23C">褰撳墠闃舵锛�<span style="color: #409EFF">{{formDataObj.beforeNodeName}}</span></div> - <div v-else style="margin-bottom: 15px;color: #E6A23C">鍓嶇疆闃舵锛�<span style="color: #F56C6C">{{formDataObj.beforeNodeName}}</span></div> - <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> </div> </el-col> </el-tab-pane> @@ -90,7 +125,7 @@ </el-select> </el-form-item> <el-form-item v-if="delegationForm.peopleType === 'DEPT'" label="鍊欓�夐儴闂�" prop="targetId"> - <MyDept ref="dept" :checkeds="delegationDeptSelect" :show="deptShow" @close="closeDept" @submit="getDeptSelect"/> + <MyDept ref="dept" :checkeds="delegationDeptSelect" :title="`閫夋嫨杞姙閮ㄩ棬`" :show="deptShow" @close="closeDept" @submit="getDeptSelect" :key="deptKey"/> <div style="display: flex;align-items: center"> <div> <el-tag v-for="dept in delegationDeptSelect" :key="dept.id + 'zxc'" type="info" closable @close="removeDept(dept)">{{dept.label}}</el-tag> @@ -99,7 +134,7 @@ </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"/> + <single-user ref="singleUser" :select-user="delegationForm.targetId" :title="`閫夋嫨杞姙鎺ユ敹浜哄憳(鍗曚汉)`" :show="singleUserShow" @close="closeSingleUser" @submit="getSingleUserSelect" :key="singleUserKey"/> <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> @@ -108,7 +143,7 @@ </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"/> + <mult-user ref="multUser" :select-user="delegationUserSelect" :title="`閫夋嫨杞姙鎺ユ敹浜哄憳(鍙浜�)`" :show="multUserShow" @close="closeMultUser" @submit="getMultUserSelect" :key="multUserKey"/> <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> @@ -117,7 +152,7 @@ </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"/> + <my-role ref="role" :select-values="delegationRoleSelect" :title="`閫夋嫨杞姙瑙掕壊`" :show="roleShow" @close="closeRole" @submit="getRoleSelect" :key="roleKey"/> <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> @@ -160,6 +195,10 @@ props: {}, data() { return { + roleKey: 'role', + deptKey: 'dept', + multUserKey: 0, + singleUserKey: 'single', projectName: '', flowName: '', roleShow: false, // 瑙掕壊缁勬樉绀� @@ -306,6 +345,7 @@ } }, editDept() { + this.deptKey += '1' this.$nextTick(() => { this.$refs.dept.setCheckList(this.delegationDeptSelect) }) @@ -313,6 +353,7 @@ }, editSingleUser() { if (this.delegationUserSelect && this.delegationUserSelect.length > 0) { + this.singleUserKey += '1' this.$nextTick(() => { this.$refs.singleUser.setChecked(this.delegationUserSelect[0]) }) @@ -321,6 +362,7 @@ }, editRole() { if (this.delegationRoleSelect && this.delegationRoleSelect.length > 0) { + this.roleKey += '1' this.$nextTick(() => { this.$refs.role.setChecked(this.delegationRoleSelect) }) @@ -329,6 +371,7 @@ }, editMultUser() { if (this.delegationForm.targetId) { + this.multUserKey += 1 this.$nextTick(() => { this.$refs.multUser.setChecked(this.delegationUserSelect) }) @@ -343,6 +386,7 @@ this.delegationDeptSelect = [] } this.deptShow = false + this.deptKey += 1 }, getMultUserSelect(userList) { if (userList && userList.length > 0) { @@ -353,6 +397,7 @@ this.delegationUserSelect = [] } this.multUserShow = false + this.multUserKey += 1 }, getRoleSelect(roleList) { if (roleList && roleList.length > 0) { @@ -363,6 +408,7 @@ this.delegationRoleSelect = [] } this.roleShow = false + this.roleKey += '1' }, getSingleUserSelect(user) { if (user) { @@ -373,18 +419,23 @@ this.delegationUserSelect = [] } this.singleUserShow = false + this.singleUserKey += '1' }, closeDept() { this.deptShow = false + this.deptKey += '1' }, closeSingleUser() { this.singleUserShow = false + this.singleUserKey += '1' }, closeRole() { this.roleShow = false + this.roleKey += '1' }, closeMultUser() { this.multUserShow = false + this.multUserKey += 1 }, openDelegation(taskName) { this.delegationForm.taskName = taskName @@ -417,14 +468,15 @@ if (this.formDataList && this.formDataList.length > 0) { this.$nextTick(() => { this.formDataList.forEach((formDataObj, index) => { - console.log("琛ㄥ崟鏁版嵁鍒楄〃", formDataObj.formJson) let that = this - console.log(eval("that.$refs.form" +index)[0]) - eval("that.$refs.form" +index)[0].setFormJson(formDataObj.formJsonObj.formJson); - - eval("that.$refs.form" +index)[0].setFormData(formDataObj.formJsonObj); + if (formDataObj.formJsonObj) { + eval("that.$refs.form" +index)[0].setFormJson(formDataObj.formJsonObj.formJson); + eval("that.$refs.form" +index)[0].setFormData(formDataObj.formJsonObj); + } }) - this.formJson = this.formDataList[0].formJsonObj.formJson + if (this.formDataList[0].formJsonObj) { + this.formJson = this.formDataList[0].formJsonObj.formJson + } }) } -- Gitblit v1.8.0