From 0387c2ca86245ace26363412459a18915f52b292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98huanghaiixia=E2=80=99?= <980486410@.com> Date: Wed, 24 Dec 2025 17:38:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E6=8A=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 3 + src/api/approve/Appro/index.ts | 34 +- src/api/contract/ContractFact/index.ts | 89 ++ .../ContractFact/model/ContractFactModel.ts | 112 ++ .../Form/src/components/UploadList.vue | 2 +- src/components/common/deptListModal.vue | 62 +- src/components/common/deptUserModal.vue | 7 - src/views/approve/Appro/components/config.ts | 109 +- .../approve/Appro/components/createForm.vue | 44 +- src/views/approve/Appro/index.vue | 96 +- .../components/ContractFactModal.vue | 110 ++ .../contract/ContractFact/components/Form.vue | 224 ++++ .../ContractFact/components/config.ts | 1059 +++++++++++++++++ .../ContractFact/components/createForm.vue | 447 +++++++ .../components/workflowPermission.ts | 347 ++++++ src/views/contract/ContractFact/index.vue | 407 +++++++ .../sales/CustomerGroup/components/Form.vue | 5 +- .../sales/GradeSystem/components/Form.vue | 8 +- .../ScoreCustomer/components/createForm.vue | 22 +- src/views/secondDev/customFormConfig.ts | 2 +- .../ScoreSupplier/components/createForm.vue | 22 +- 21 files changed, 3029 insertions(+), 182 deletions(-) create mode 100644 src/api/contract/ContractFact/index.ts create mode 100644 src/api/contract/ContractFact/model/ContractFactModel.ts create mode 100644 src/views/contract/ContractFact/components/ContractFactModal.vue create mode 100644 src/views/contract/ContractFact/components/Form.vue create mode 100644 src/views/contract/ContractFact/components/config.ts create mode 100644 src/views/contract/ContractFact/components/createForm.vue create mode 100644 src/views/contract/ContractFact/components/workflowPermission.ts create mode 100644 src/views/contract/ContractFact/index.vue diff --git a/src/App.vue b/src/App.vue index a089008..59cb3ae 100644 --- a/src/App.vue +++ b/src/App.vue @@ -109,5 +109,8 @@ .ant-picker.ant-picker-disabled .ant-picker-input .ant-picker-suffix { display: none !important; } + .ant-input-search > .ant-input-group > .ant-input-group-addon-disabled:last-child { + display: none !important; + } } diff --git a/src/api/approve/Appro/index.ts b/src/api/approve/Appro/index.ts index 12eab0b..188d8ae 100644 --- a/src/api/approve/Appro/index.ts +++ b/src/api/approve/Appro/index.ts @@ -10,9 +10,37 @@ enum Api { LngAppro = '/approve/appro', compDept = '/magic-api/sales/getCompAndDeptByUserId', depart = '/magic-api/mdm/queryAllDepartment', - user = '/magic-api/sales/getUsersByDept' - - + user = '/magic-api/sales/queryUsersByDept', + company = '/magic-api/mdm/queryAllCompany', + deptByCompany ='/magic-api/mdm/queryDeptByCompany' +} +/** + * @description: 根据公司id查部门 + */ +export async function getDeptByCompany(params: LngApproPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.deptByCompany, + params + }, + { + errorMessageMode: mode, + }, + ); +} +/** + * @description: 查询查询全部公司 + */ +export async function getAllCompany( mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.company, + params: { }, + }, + { + errorMessageMode: mode, + }, + ); } /** * @description: 根据部门查询部门下的用户 diff --git a/src/api/contract/ContractFact/index.ts b/src/api/contract/ContractFact/index.ts new file mode 100644 index 0000000..fdfd8aa --- /dev/null +++ b/src/api/contract/ContractFact/index.ts @@ -0,0 +1,89 @@ +import { LngContractFactPageModel, LngContractFactPageParams, LngContractFactPageResult } from './model/ContractFactModel'; +import { defHttp } from '/@/utils/http/axios'; +import { ErrorMessageMode } from '/#/axios'; + +enum Api { + Page = '/contract/contractFact/page', + List = '/contract/contractFact/list', + Info = '/contract/contractFact/info', + LngContractFact = '/contract/contractFact', + + + + +} + +/** + * @description: 查询LngContractFact分页列表 + */ +export async function getLngContractFactPage(params: LngContractFactPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Page, + params, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 获取LngContractFact信息 + */ +export async function getLngContractFact(id: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Info, + params: { id }, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 新增LngContractFact + */ +export async function addLngContractFact(lngContractFact: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.post( + { + url: Api.LngContractFact, + params: lngContractFact, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 更新LngContractFact + */ +export async function updateLngContractFact(lngContractFact: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.put( + { + url: Api.LngContractFact, + params: lngContractFact, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 删除LngContractFact(批量删除) + */ +export async function deleteLngContractFact(ids: string[], mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: Api.LngContractFact, + data: ids, + }, + { + errorMessageMode: mode, + }, + ); +} \ No newline at end of file diff --git a/src/api/contract/ContractFact/model/ContractFactModel.ts b/src/api/contract/ContractFact/model/ContractFactModel.ts new file mode 100644 index 0000000..af31637 --- /dev/null +++ b/src/api/contract/ContractFact/model/ContractFactModel.ts @@ -0,0 +1,112 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; + +/** + * @description: LngContractFact分页参数 模型 + */ +export interface LngContractFactPageParams extends BasicPageParams { + kNo: string; + + kName: string; + + kTypeCode1: string; + + comId: string; + + modifyDate: string; + + cpCount: string; + + dateDraft: string; + + periodTypeCode: string; + + dateFrom: string; + + dateTo: string; + + curCode: string; + + amount: string; + + empId: string; + + tel: string; + + bDeptId: string; + + bidSign: string; + + preApproSign: string; + + aheadSign: string; + + tempSign: string; + + impSign: string; + + approCode: string; + + kDesc: string; + + note: string; +} + +/** + * @description: LngContractFact分页返回值模型 + */ +export interface LngContractFactPageModel { + id: string; + + kNo: string; + + kName: string; + + kTypeCode1: string; + + comId: string; + + modifyDate: string; + + cpCount: string; + + dateDraft: string; + + periodTypeCode: string; + + dateFrom: string; + + dateTo: string; + + curCode: string; + + amount: string; + + empId: string; + + tel: string; + + bDeptId: string; + + bidSign: string; + + preApproSign: string; + + aheadSign: string; + + tempSign: string; + + impSign: string; + + approCode: string; + + kDesc: string; + + note: string; +} + +0; + +/** + * @description: LngContractFact分页返回值结构 + */ +export type LngContractFactPageResult = BasicFetchResult; \ No newline at end of file diff --git a/src/components/Form/src/components/UploadList.vue b/src/components/Form/src/components/UploadList.vue index 4954808..f3a21c1 100644 --- a/src/components/Form/src/components/UploadList.vue +++ b/src/components/Form/src/components/UploadList.vue @@ -9,7 +9,7 @@ - @@ -64,7 +61,7 @@ { title: t('序号'), dataIndex: 'index', key: 'index', sorter: true, customRender: (column) => `${column.index + 1}` ,width: 100}, { title: t('评价事项'), dataIndex: 'itemName', sorter: true, width:200}, { title: t('评价标准'), dataIndex: 'itemDesc', sorter: true, }, - { title: t('评价部门'), dataIndex: 'eDeptCode', sorter: true, width: 200}, + { title: t('评价部门'), dataIndex: 'eDeptName', sorter: true, width: 200}, { title: t('操作'), dataIndex: 'operation', width: 120}, ]); const curIdx = ref(null) @@ -82,6 +79,7 @@ } } const handleSuccessEvaluate = (val) => { + val.id = '' if (curIdx.value != null) { dataList.value[curIdx.value] = {...val} return @@ -206,7 +204,7 @@ list.forEach(v => { delete v.eDeptName !v.gsId && (v.gsId = values.gsId) - !v.id && (v.id = values.id) + // !v.id && (v.id = values.id) }) let obj = { ...values, diff --git a/src/views/sales/ScoreCustomer/components/createForm.vue b/src/views/sales/ScoreCustomer/components/createForm.vue index ca598a4..561eb98 100644 --- a/src/views/sales/ScoreCustomer/components/createForm.vue +++ b/src/views/sales/ScoreCustomer/components/createForm.vue @@ -6,7 +6,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -48,10 +48,10 @@ @@ -85,6 +85,7 @@ import customerListModal from '/@/components/common/customerListModal.vue'; import { getUserInfo } from '/@/api/system/login'; import { Modal } from 'ant-design-vue'; + import { getCompDept } from '/@/api/approve/Appro'; const tableName = 'ScoreCustomer'; const columnName = 'ScoreCustomer' @@ -114,6 +115,7 @@ const curIdx = ref(null) const { notification } = useMessage(); const { t } = useI18n(); + const compDep = ref({}) const formState = reactive({ approCode: 'WTJ', dateGrade: dayjs(new Date()), @@ -133,12 +135,12 @@ { title: t('序号'), dataIndex: 'index', key: 'index', sorter: true, customRender: (column) => `${column.index + 1}` ,width: 80}, { title: t('评价事项'), dataIndex: 'itemName', sorter: true}, { title: t('评价标准'), dataIndex: 'itemDesc', sorter: true}, - { title: t('评价部门'), dataIndex: 'eDeptCode', sorter: true}, + { title: t('评价部门'), dataIndex: 'eDeptName', sorter: true}, { title: t('评分'), dataIndex: 'score', sorter: true}, { title: t('分数说明'), dataIndex: 'scoreDesc', sorter: true}, - { title: t('评价人'), dataIndex: 'aEmpCode', sorter: true}, + { title: t('评价人'), dataIndex: 'aEmpName', sorter: true}, { title: t('评价时间'), dataIndex: 'aTime', sorter: true}, - { title: t('实际评价部门'), dataIndex: 'aDeptCode', sorter: true}, + { title: t('实际评价部门'), dataIndex: 'aDeptName', sorter: true}, ]); const dataList= ref([]); const dataFile = ref([]); @@ -194,6 +196,7 @@ optionSelect.approCodeList = await getDictionary('LNG_APPRO') let res = await getUserInfo() Object.assign(userInfo, {...res}) + compDep.value = await getCompDept(userInfo.id) } const onSearch = (val)=> { openModal(true,{isUpdate: false}) @@ -244,7 +247,10 @@ formState.score = null dataList.value.forEach(v => { v.aTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss') - v.aEmpCode = userInfo.name + v.aEmpCode = userInfo.id + v.aEmpName = userInfo.name + v.aDeptCode = compDep.value?.dept?.id + v.aDeptName = compDep.value?.dept?.name v.gsiId = v.id delete v.id diff --git a/src/views/secondDev/customFormConfig.ts b/src/views/secondDev/customFormConfig.ts index 5662cc1..1891da0 100644 --- a/src/views/secondDev/customFormConfig.ts +++ b/src/views/secondDev/customFormConfig.ts @@ -1,5 +1,5 @@ export const customFormConfig = { - codeList: ['addCustomer','addSupplier', 'addCustomerScore', 'addSupplierScore', 'addAppro'], + codeList: ['addCustomer','addSupplier', 'addCustomerScore', 'addSupplierScore', 'addAppro', 'contractFactApprove'], router: [ {code: 'addCustomer', src: ''} ] diff --git a/src/views/supplier/ScoreSupplier/components/createForm.vue b/src/views/supplier/ScoreSupplier/components/createForm.vue index 15f65ae..8818400 100644 --- a/src/views/supplier/ScoreSupplier/components/createForm.vue +++ b/src/views/supplier/ScoreSupplier/components/createForm.vue @@ -6,7 +6,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -48,10 +48,10 @@ @@ -85,6 +85,7 @@ import supplierListModal from '/@/components/common/supplierListModal.vue'; import { getUserInfo } from '/@/api/system/login'; import { Modal } from 'ant-design-vue'; + import { getCompDept } from '/@/api/approve/Appro'; const tableName = 'ScoreSupplier'; const columnName = 'ScoreSupplier' @@ -114,6 +115,7 @@ const curIdx = ref(null) const { notification } = useMessage(); const { t } = useI18n(); + const compDep = ref({}) const formState = reactive({ approCode: 'WTJ', dateGrade: dayjs(new Date()), @@ -133,12 +135,12 @@ { title: t('序号'), dataIndex: 'index', key: 'index', sorter: true, customRender: (column) => `${column.index + 1}` ,width: 80}, { title: t('评价事项'), dataIndex: 'itemName', sorter: true}, { title: t('评价标准'), dataIndex: 'itemDesc', sorter: true}, - { title: t('评价部门'), dataIndex: 'eDeptCode', sorter: true}, + { title: t('评价部门'), dataIndex: 'eDeptName', sorter: true}, { title: t('评分'), dataIndex: 'score', sorter: true}, { title: t('分数说明'), dataIndex: 'scoreDesc', sorter: true}, - { title: t('评价人'), dataIndex: 'aEmpCode', sorter: true}, + { title: t('评价人'), dataIndex: 'aEmpName', sorter: true}, { title: t('评价时间'), dataIndex: 'aTime', sorter: true}, - { title: t('实际评价部门'), dataIndex: 'aDeptCode', sorter: true}, + { title: t('实际评价部门'), dataIndex: 'aDeptName', sorter: true}, ]); const dataList= ref([]); const dataFile = ref([]); @@ -194,6 +196,7 @@ optionSelect.approCodeList = await getDictionary('LNG_APPRO') let res = await getUserInfo() Object.assign(userInfo, {...res}) + compDep.value = await getCompDept(userInfo.id) } const onSearch = (val)=> { openModal(true,{isUpdate: false}) @@ -245,7 +248,10 @@ formState.score = null dataList.value.forEach(v => { v.aTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss') - v.aEmpCode = userInfo.name + v.aEmpCode = userInfo.id + v.aEmpName = userInfo.name + v.aDeptCode = compDep.value?.dept?.id + v.aDeptName = compDep.value?.dept?.name v.gsiId = v.id delete v.id