|
@@ -0,0 +1,222 @@
|
|
|
+<template>
|
|
|
+ <div class="execute_wrapper">
|
|
|
+ <el-collapse-item name="element-execute-user">
|
|
|
+ <template #title>
|
|
|
+ <collapse-title title="执行用户">
|
|
|
+ <lucide-icon name="User" />
|
|
|
+ </collapse-title>
|
|
|
+ </template>
|
|
|
+ <div class="element-execute-user">
|
|
|
+ <edit-item label="用户类型" :label-width="100">
|
|
|
+ <!-- <el-input
|
|
|
+ v-model="formKey"
|
|
|
+ maxlength="32"
|
|
|
+ @change="setExternalTaskPriority"
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="exeUserType"
|
|
|
+ placeholder="请选择执行人类型"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="updateExeUserType"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in userTypeList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </edit-item>
|
|
|
+ <edit-item
|
|
|
+ v-show="exeUserTypeLabel"
|
|
|
+ :label="exeUserTypeLabel"
|
|
|
+ :label-width="100"
|
|
|
+ >
|
|
|
+ <div class="exe_user_type_input">
|
|
|
+ <el-select
|
|
|
+ v-scroll="scrollHandler"
|
|
|
+ v-model="exeUserValue"
|
|
|
+ placeholder="请选择执行人类型"
|
|
|
+ :multiple="exeUserType == 2"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="updateExeUserValue"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in exeUserValueList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-button
|
|
|
+ type="info"
|
|
|
+ size="mini"
|
|
|
+ icon="el-icon-user"
|
|
|
+ @click="() => {}"
|
|
|
+ >
|
|
|
+ </el-button> -->
|
|
|
+ </div>
|
|
|
+ </edit-item>
|
|
|
+ </div>
|
|
|
+ </el-collapse-item>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import EventEmitter from "@utils/EventEmitter";
|
|
|
+import {
|
|
|
+ setExecuteUser,
|
|
|
+ getExecuteUser,
|
|
|
+ setExecuteUserType,
|
|
|
+ getExecuteUserType,
|
|
|
+ setExecuteUserDesc,
|
|
|
+ getExecuteUserDesc,
|
|
|
+} from "@packages/bo-utils/myFieldUtil";
|
|
|
+import { getActive } from "@packages/bpmn-utils/BpmnDesignerUtils";
|
|
|
+import { listUser, deptTreeSelect } from "@/api/system/user";
|
|
|
+import { listRole } from "@/api/system/role";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "ElementExecuteUser",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ userTypeList: [
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ label: "指定处理人",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 2,
|
|
|
+ label: "批量处理人",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 3,
|
|
|
+ label: "角色处理",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ exeUserType: "",
|
|
|
+ // exeUserTypeLabel: "",
|
|
|
+ exeUserValue: "",
|
|
|
+ exeUserValueList: [],
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ userName: undefined,
|
|
|
+ tenantName: undefined,
|
|
|
+ phonenumber: undefined,
|
|
|
+ status: undefined,
|
|
|
+ deptId: undefined,
|
|
|
+ },
|
|
|
+ isArriveBoottom: false,
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ mounted() {
|
|
|
+ this.initFormData();
|
|
|
+ EventEmitter.on("element-update", () => {
|
|
|
+ this.initFormData();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ exeUserTypeLabel() {
|
|
|
+ let label =
|
|
|
+ this.userTypeList.find((item) => item.value === this.exeUserType)
|
|
|
+ ?.label || "";
|
|
|
+ return label;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initFormData() {
|
|
|
+ this.exeUserValue = getExecuteUser(getActive()) || "";
|
|
|
+ this.exeUserType = getExecuteUserType(getActive()) || "";
|
|
|
+ Object.assign(this.queryParams, {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ });
|
|
|
+ this.isArriveBoottom = false;
|
|
|
+ },
|
|
|
+ updateExeUserType(value) {
|
|
|
+ setExecuteUserType(getActive(), value);
|
|
|
+ value == 2
|
|
|
+ ? setExecuteUser(getActive(), [])
|
|
|
+ : setExecuteUser(getActive(), "");
|
|
|
+ this.exeUserValueList = [];
|
|
|
+ this.exeUserValue = "";
|
|
|
+ if (!value) return;
|
|
|
+ if (value == 3) {
|
|
|
+ this.exeRoleListHandler();
|
|
|
+ } else {
|
|
|
+ this.exeUserListHandler();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async exeUserListHandler() {
|
|
|
+ try {
|
|
|
+ let res = await listUser(this.queryParams);
|
|
|
+ if (res.code == 200) {
|
|
|
+ if (
|
|
|
+ res.rows.length == 0 ||
|
|
|
+ res.rows.length < this.queryParams.pageSize
|
|
|
+ ) {
|
|
|
+ this.isArriveBoottom = true; //到底了
|
|
|
+ }
|
|
|
+ res.rows.forEach((item) => {
|
|
|
+ this.exeUserValueList.push({
|
|
|
+ value: item.userName,
|
|
|
+ label: item.nickName,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async exeRoleListHandler() {
|
|
|
+ try {
|
|
|
+ let res = await listRole(this.queryParams);
|
|
|
+ if (res.code == 200) {
|
|
|
+ if (
|
|
|
+ res.rows.length == 0 ||
|
|
|
+ res.rows.length < this.queryParams.pageSize
|
|
|
+ ) {
|
|
|
+ this.isArriveBoottom = true; //到底了
|
|
|
+ }
|
|
|
+ res.rows.forEach((item) => {
|
|
|
+ this.exeUserValueList.push({
|
|
|
+ value: item.roleKey,
|
|
|
+ label: item.roleName,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ updateExeUserValue(value) {
|
|
|
+ setExecuteUser(getActive(), value);
|
|
|
+ },
|
|
|
+ scrollHandler() {
|
|
|
+ if (this.isArriveBoottom) return;
|
|
|
+ this.queryParams.pageNum++;
|
|
|
+ this.loadListHandler();
|
|
|
+ },
|
|
|
+ loadListHandler() {
|
|
|
+ if (!this.exeUserType) return;
|
|
|
+ if (this.exeUserType == 3) {
|
|
|
+ this.exeRoleListHandler();
|
|
|
+ } else {
|
|
|
+ this.exeUserListHandler();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.exe_user_type_input {
|
|
|
+ display: flex;
|
|
|
+ padding-right: 25px;
|
|
|
+}
|
|
|
+</style>
|