diff --git a/src/components/semri/deptUserComponent/SzDeptUserModal.vue b/src/components/semri/deptUserComponent/SzDeptUserModal.vue new file mode 100644 index 0000000..d7b0f4e --- /dev/null +++ b/src/components/semri/deptUserComponent/SzDeptUserModal.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/components/semri/deptUserComponent/SzDeptUserSelect.vue b/src/components/semri/deptUserComponent/SzDeptUserSelect.vue new file mode 100644 index 0000000..f994eb4 --- /dev/null +++ b/src/components/semri/deptUserComponent/SzDeptUserSelect.vue @@ -0,0 +1,389 @@ + + + + + diff --git a/src/components/semri/deptUserComponent/SzDeptUserSelectedList.vue b/src/components/semri/deptUserComponent/SzDeptUserSelectedList.vue new file mode 100644 index 0000000..a7a0e09 --- /dev/null +++ b/src/components/semri/deptUserComponent/SzDeptUserSelectedList.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/semri/deptUserComponent/types.ts b/src/components/semri/deptUserComponent/types.ts new file mode 100644 index 0000000..b8d6c32 --- /dev/null +++ b/src/components/semri/deptUserComponent/types.ts @@ -0,0 +1,68 @@ +export interface UserItem { + id: string; + username: string; + realname: string; + orgCodeTxt?: string; + userSecurityLevel?: number; + userSecurityLevel_dictText?: string; + sex_dictText?: string; + sortno?: number; + departId?: string; + departName?: string; +} + +export interface DepartTreeNode { + id: string; + key: string; + value: string; + title: string; + isLeaf?: boolean; + departType?: string | number; + distributable?: number; + disableCheckbox?: boolean; + children?: DepartTreeNode[]; + description?: string; + parentId?: string; + orgCode?: string; +} + +export function deleteIfExist>(array: T[], value: T, key: string): void { + const idx = array.findIndex((item) => item[key] === value[key]); + if (idx >= 0) { + array.splice(idx, 1); + } +} + +export function pushIfNotExist>(array: T[], value: T, key: string): void { + const idx = array.findIndex((item) => item[key] === value[key]); + if (idx < 0) { + array.push(value); + } +} + +export function filterDepartTree>(departTree: T[], searchValue: string): T[] { + let filtered: T[] = []; + departTree.forEach((item) => { + if (item.title && item.title.includes(searchValue)) { + filtered.push(Object.assign({}, item, { children: null, isLeaf: true })); + } + if (item.children) { + const result = filterDepartTree(item.children, searchValue); + if (result.length > 0) { + filtered = filtered.concat(result); + } + } + }); + return filtered; +} + +export function recurTree, R>(tree: T[], callback: (node: T) => R[]): R[] { + let res: R[] = []; + tree.forEach((item) => { + res = res.concat(callback(item)); + if (item.children) { + res = res.concat(recurTree(item.children, callback)); + } + }); + return res; +} diff --git a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue index ed99695..9629856 100644 --- a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue +++ b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue @@ -184,13 +184,10 @@ - - - + @@ -226,7 +223,7 @@ import JDictSelectTag from "../../../../components/Form/src/jeecg/components/JDictSelectTag.vue"; import BgPartymatterBPMFeedbackModal from './BgPartymatterBPMFeedbackModal.vue'; import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue'; - import JSelectUser from "../../../../components/Form/src/jeecg/components/JSelectUser.vue"; + import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue'; const { isDisabledAuth, hasPermission, initBpmFormData} = usePermission(); const props = defineProps({