From 03c943e4d6453191ad5451d0b13a3b8c9a3a1a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98huanghaiixia=E2=80=99?= <980486410@.com> Date: Tue, 23 Dec 2025 17:51:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E6=8A=A5=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/approve/Appro/index.ts | 51 +++++- src/components/common/deptListModal.vue | 128 +++++++++++++++ src/components/common/deptUserModal.vue | 149 ++++++++++++++++++ .../approve/Appro/components/createForm.vue | 57 +++++-- src/views/approve/Appro/index.vue | 2 +- .../user/components/OrganizationModal.vue | 4 +- .../system/user/components/UserModal.vue | 6 +- 7 files changed, 372 insertions(+), 25 deletions(-) create mode 100644 src/components/common/deptListModal.vue create mode 100644 src/components/common/deptUserModal.vue diff --git a/src/api/approve/Appro/index.ts b/src/api/approve/Appro/index.ts index a5d9499..12eab0b 100644 --- a/src/api/approve/Appro/index.ts +++ b/src/api/approve/Appro/index.ts @@ -3,16 +3,59 @@ import { defHttp } from '/@/utils/http/axios'; import { ErrorMessageMode } from '/#/axios'; enum Api { - Page = '/approve/appro/page', + // Page = '/approve/appro/page', + Page = '/magic-api/sales//lngApproPage', List = '/approve/appro/list', Info = '/approve/appro/info', LngAppro = '/approve/appro', - - + compDept = '/magic-api/sales/getCompAndDeptByUserId', + depart = '/magic-api/mdm/queryAllDepartment', + user = '/magic-api/sales/getUsersByDept' } - +/** + * @description: 根据部门查询部门下的用户 + */ +export async function getUser(params: LngApproPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.user, + params, + }, + { + errorMessageMode: mode, + }, + ); +} +/** + * @description: 查询全部组织机构数 + */ +export async function getDept( mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.depart, + params: { }, + }, + { + errorMessageMode: mode, + }, + ); +} +/** + * @description: 根据用户ID查询默认公司部门 + */ +export async function getCompDept(userId: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.compDept, + params: { userId }, + }, + { + errorMessageMode: mode, + }, + ); +} /** * @description: 查询LngAppro分页列表 */ diff --git a/src/components/common/deptListModal.vue b/src/components/common/deptListModal.vue new file mode 100644 index 0000000..0b81735 --- /dev/null +++ b/src/components/common/deptListModal.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/components/common/deptUserModal.vue b/src/components/common/deptUserModal.vue new file mode 100644 index 0000000..7bf7832 --- /dev/null +++ b/src/components/common/deptUserModal.vue @@ -0,0 +1,149 @@ + + + diff --git a/src/views/approve/Appro/components/createForm.vue b/src/views/approve/Appro/components/createForm.vue index 7afc7dc..6cdca4c 100644 --- a/src/views/approve/Appro/components/createForm.vue +++ b/src/views/approve/Appro/components/createForm.vue @@ -42,18 +42,18 @@ - - + + - - + + - - + + @@ -87,7 +87,8 @@ - + + @@ -102,13 +103,18 @@ import type { Rule } from 'ant-design-vue/es/form'; import { getDictionary } from '/@/api/sales/Customer'; import { useModal } from '/@/components/Modal'; - import { addLngScore,updateLngScore,getLngScore } from '/@/api/sales/ScoreCustomer'; + import { addLngAppro,updateLngAppro,getLngAppro,getCompDept } from '/@/api/approve/Appro'; import dayjs from 'dayjs'; import { getAppEnvConfig } from '/@/utils/env'; import { message } from 'ant-design-vue'; import UploadList from '/@/components/Form/src/components/UploadList.vue'; - import customerListModal from '/@/components/common/customerListModal.vue'; + import deptUserModal from '/@/components/common/deptUserModal.vue'; + import deptListModal from '/@/components/common/deptListModal.vue'; + import { Modal } from 'ant-design-vue'; + import { useUserStore } from '/@/store/modules/user'; + const userStore = useUserStore(); + const userInfo = userStore.getUserInfo; const tableName = 'Appro'; const columnName = 'Appro' @@ -143,14 +149,15 @@ dateAppro: dayjs(new Date()), }); const [register, { openModal:openModal}] = useModal(); + const [registerDept, { openModal:openModalDept}] = useModal(); const rules: Record = { title: [{ required: true, message: "该项为必填项", trigger: 'change' }], typeCode: [{ required: true, message: "该项为必填项", trigger: 'change' }], securityCode: [{ required: true, message: "该项为必填项", trigger: 'change' }], urgencyCode: [{ required: true, message: "该项为必填项", trigger: 'change' }], - empIdName: [{ required: true, message: "该项为必填项", trigger: 'change' }], - bDeptIdName: [{ required: true, message: "该项为必填项", trigger: 'change' }], - comIdName: [{ required: true, message: "该项为必填项", trigger: 'change' }], + empName: [{ required: true, message: "该项为必填项", trigger: 'change' }], + bDeptName: [{ required: true, message: "该项为必填项", trigger: 'change' }], + comName: [{ required: true, message: "该项为必填项", trigger: 'change' }], dateAppro: [{ required: true, message: "该项为必填项", trigger: 'change' }], content: [{ required: true, message: "该项为必填项", trigger: 'change' }], @@ -191,6 +198,9 @@ getOption() if (pageId.value) { getInfo(pageId.value) + } else { + formState.empName = userInfo.name + formState.empId = userInfo.id } }); @@ -200,7 +210,7 @@ async function getInfo(id) { spinning.value = true try { - let data = await getLngScore(id) + let data = await getLngAppro(id) spinning.value = false Object.assign(formState, {...data}) Object.assign(dataFile.value, formState.lngFileUploadList || []) @@ -214,14 +224,27 @@ optionSelect.securityCodeList = await getDictionary('LNG_SECRET') optionSelect.urgencyCodeList = await getDictionary('LNG_URGEN') optionSelect.approCodeList = await getDictionary('LNG_APPRO') + + const res = await getCompDept(userInfo.id) + formState.bDeptName = res?.dept?.name + formState.bDeptId = res?.dept?.id + + formState.comName = res?.comp?.name + formState.comId = res?.comp?.id } const onSearch = (val)=> { + openModalDept(true,{isUpdate: false}) + } + const onSearchUser = (val)=> { openModal(true,{isUpdate: false}) } const handleSuccess = (val) => { - formState.cpCode = val[0].cuCode - formState.classCode = val[0].classCode - formState.cpCodeName = val[0].cuName + formState.empName = val[0].name + formState.empId = val[0].id + } + const handleSuccessDept = (val) => { + formState.bDeptName = val[0].name + formState.bDeptId = val[0].id } function close() { @@ -240,7 +263,7 @@ } spinning.value = true; - let request = !formState.id ? addLngScore :updateLngScore + let request = !formState.id ? addLngAppro :updateLngAppro try { const data = await request(obj); diff --git a/src/views/approve/Appro/index.vue b/src/views/approve/Appro/index.vue index 17297ee..9607878 100644 --- a/src/views/approve/Appro/index.vue +++ b/src/views/approve/Appro/index.vue @@ -125,7 +125,7 @@ showResetButton: false, }, beforeFetch: (params) => { - return { ...params, FormId: formIdComputedRef.value, PK: 'id' }; + return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit}; }, afterFetch: (res) => { tableRef.value.setToolBarWidth(); diff --git a/src/views/system/user/components/OrganizationModal.vue b/src/views/system/user/components/OrganizationModal.vue index e13a869..5b527cc 100644 --- a/src/views/system/user/components/OrganizationModal.vue +++ b/src/views/system/user/components/OrganizationModal.vue @@ -51,7 +51,9 @@ const emits = defineEmits(['success']); const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { setModalProps({ confirmLoading: false, fixedHeight: true }); - setSelectedRowKeys1(data.orgs?.map((x) => x.id) || []); + if (data.pageType == 'edit') { + setSelectedRowKeys1(data.orgs?.map((x) => x.id) || []); + } reload(); }); diff --git a/src/views/system/user/components/UserModal.vue b/src/views/system/user/components/UserModal.vue index f54d237..b1358d0 100644 --- a/src/views/system/user/components/UserModal.vue +++ b/src/views/system/user/components/UserModal.vue @@ -742,12 +742,14 @@ }; const handleOrgCreate = () => { openOrgModal(true, { - orgs: orgDatasource.value + orgs: orgDatasource.value, + pageType: !unref(isUpdate) ? 'add' : 'edit' }); }; const handleDeptCreate = () => { openDeptModal(true, { - orgs: deptDatasource.value + orgs: deptDatasource.value, + pageType: !unref(isUpdate) ? 'add' : 'edit' }); };