|
|
@@ -245,8 +245,8 @@
|
|
|
<script setup lang="ts">
|
|
|
import { reactive, ref, computed, watch } from 'vue';
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
-import { getAPI } from '/@/utils/axios-utils';
|
|
|
-import { SysUserApi, SysRoleApi, SysOrgApi } from '/@/api-services/api';
|
|
|
+import { axiosInstance, getAPI, serveConfig } from '/@/utils/axios-utils';
|
|
|
+import { SysRoleApi, SysOrgApi } from '/@/api-services/api';
|
|
|
|
|
|
const props = defineProps({
|
|
|
nodeData: { type: Object, default: () => ({}) },
|
|
|
@@ -274,14 +274,18 @@ const isParallelGateway = computed(() => {
|
|
|
const userLoading = ref(false);
|
|
|
const userOptions = ref<Array<{ id: number; account: string; realName: string }>>([]);
|
|
|
const selectedUserIds = ref<number[]>([]);
|
|
|
+const escSelectedUserIds = ref<number[]>([]);
|
|
|
|
|
|
const searchUsers = async (query: string) => {
|
|
|
if (!query) return;
|
|
|
userLoading.value = true;
|
|
|
try {
|
|
|
- const res = await getAPI(SysUserApi).apiSysUserPagePost({ page: 1, pageSize: 20, realName: query } as any);
|
|
|
- const items = res.data.result?.items ?? [];
|
|
|
- const existing = userOptions.value.filter((o) => selectedUserIds.value.includes(o.id));
|
|
|
+ const res = await axiosInstance.get(`${serveConfig.basePath}/api/approvalFlow/candidateUsers`, {
|
|
|
+ params: { keyword: query, pageSize: 20 },
|
|
|
+ });
|
|
|
+ const items = res.data.result ?? [];
|
|
|
+ const selectedIds = new Set([...selectedUserIds.value, ...escSelectedUserIds.value]);
|
|
|
+ const existing = userOptions.value.filter((o) => selectedIds.has(o.id));
|
|
|
const merged = [...existing];
|
|
|
for (const u of items) {
|
|
|
if (u.id && !merged.some((m) => m.id === u.id)) {
|
|
|
@@ -347,7 +351,6 @@ const onOrgChange = () => {
|
|
|
};
|
|
|
|
|
|
// ── 升级目标选择状态 ──
|
|
|
-const escSelectedUserIds = ref<number[]>([]);
|
|
|
const escSelectedRoleIds = ref<number[]>([]);
|
|
|
const escSelectedOrgIds = ref<number[]>([]);
|
|
|
|