From 98564e7a5fc942cebbc526a2b05eb1be81bd5b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98huanghaiixia=E2=80=99?= <980486410@.com> Date: Tue, 3 Feb 2026 17:59:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E9=99=85=E9=87=87=E8=B4=AD=20?= =?UTF-8?q?=E9=94=80=E5=94=AE=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/approve/Appro/index.ts | 12 + src/api/contract/ContractPurInt/index.ts | 89 +++ .../model/ContractPurIntModel.ts | 58 ++ src/api/contract/ContractSalesInt/index.ts | 89 +++ .../model/ContractSalesIntModel.ts | 58 ++ src/components/common/approListModal.vue | 45 +- src/components/common/discountList.vue | 3 + .../components/ContractPurIntModal.vue | 110 +++ .../ContractPurInt/components/Form.vue | 224 ++++++ .../ContractPurInt/components/config.ts | 693 ++++++++++++++++++ .../components/workflowPermission.ts | 239 ++++++ src/views/contract/ContractPurInt/index.vue | 409 +++++++++++ .../components/ContractSalesIntModal.vue | 110 +++ .../ContractSalesInt/components/Form.vue | 224 ++++++ .../ContractSalesInt/components/config.ts | 693 ++++++++++++++++++ .../components/workflowPermission.ts | 239 ++++++ src/views/contract/ContractSalesInt/index.vue | 413 +++++++++++ .../components/createForm.vue | 8 +- src/views/secondDev/approveFlowPage.vue | 3 + 19 files changed, 3709 insertions(+), 10 deletions(-) create mode 100644 src/api/contract/ContractPurInt/index.ts create mode 100644 src/api/contract/ContractPurInt/model/ContractPurIntModel.ts create mode 100644 src/api/contract/ContractSalesInt/index.ts create mode 100644 src/api/contract/ContractSalesInt/model/ContractSalesIntModel.ts create mode 100644 src/views/contract/ContractPurInt/components/ContractPurIntModal.vue create mode 100644 src/views/contract/ContractPurInt/components/Form.vue create mode 100644 src/views/contract/ContractPurInt/components/config.ts create mode 100644 src/views/contract/ContractPurInt/components/workflowPermission.ts create mode 100644 src/views/contract/ContractPurInt/index.vue create mode 100644 src/views/contract/ContractSalesInt/components/ContractSalesIntModal.vue create mode 100644 src/views/contract/ContractSalesInt/components/Form.vue create mode 100644 src/views/contract/ContractSalesInt/components/config.ts create mode 100644 src/views/contract/ContractSalesInt/components/workflowPermission.ts create mode 100644 src/views/contract/ContractSalesInt/index.vue diff --git a/src/api/approve/Appro/index.ts b/src/api/approve/Appro/index.ts index e9e80df..03292e1 100644 --- a/src/api/approve/Appro/index.ts +++ b/src/api/approve/Appro/index.ts @@ -5,6 +5,7 @@ import { ErrorMessageMode } from '/#/axios'; enum Api { // Page = '/approve/appro/page', Page = '/magic-api/sales/lngApproPage', + PageFile = '/magic-api/sales/lngApproPage/modal', List = '/approve/appro/list', Info = '/approve/appro/info', LngAppro = '/approve/appro', @@ -84,6 +85,17 @@ export async function getCompDept(userId: String, mode: ErrorMessageMode = 'moda }, ); } +export async function getLngApproPageFile(params: LngApproPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.PageFile, + params, + }, + { + errorMessageMode: mode, + }, + ); +} /** * @description: 查询LngAppro分页列表 */ diff --git a/src/api/contract/ContractPurInt/index.ts b/src/api/contract/ContractPurInt/index.ts new file mode 100644 index 0000000..43d000d --- /dev/null +++ b/src/api/contract/ContractPurInt/index.ts @@ -0,0 +1,89 @@ +import { LngContractPageModel, LngContractPageParams, LngContractPageResult } from './model/ContractPurIntModel'; +import { defHttp } from '/@/utils/http/axios'; +import { ErrorMessageMode } from '/#/axios'; + +enum Api { + Page = '/contract/contractPurInt/page', + List = '/contract/contractPurInt/list', + Info = '/contract/contractPurInt/info', + LngContract = '/contract/contractPurInt', + + + + +} + +/** + * @description: 查询LngContract分页列表 + */ +export async function getLngContractPage(params: LngContractPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Page, + params, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 获取LngContract信息 + */ +export async function getLngContract(id: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Info, + params: { id }, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 新增LngContract + */ +export async function addLngContract(lngContract: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.post( + { + url: Api.LngContract, + params: lngContract, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 更新LngContract + */ +export async function updateLngContract(lngContract: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.put( + { + url: Api.LngContract, + params: lngContract, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 删除LngContract(批量删除) + */ +export async function deleteLngContract(ids: string[], mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: Api.LngContract, + data: ids, + }, + { + errorMessageMode: mode, + }, + ); +} \ No newline at end of file diff --git a/src/api/contract/ContractPurInt/model/ContractPurIntModel.ts b/src/api/contract/ContractPurInt/model/ContractPurIntModel.ts new file mode 100644 index 0000000..17544b1 --- /dev/null +++ b/src/api/contract/ContractPurInt/model/ContractPurIntModel.ts @@ -0,0 +1,58 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; + +/** + * @description: LngContract分页参数 模型 + */ +export interface LngContractPageParams extends BasicPageParams { + id: string; + + kNo: string; + + kName: string; + + cpCode: string; + + dateFrom: string; + + dateTo: string; + + approCode: string; + + ruleUserId: string; + + comId: string; + + note: string; +} + +/** + * @description: LngContract分页返回值模型 + */ +export interface LngContractPageModel { + id: string; + + kNo: string; + + kName: string; + + cpCode: string; + + dateFrom: string; + + dateTo: string; + + approCode: string; + + ruleUserId: string; + + comId: string; + + note: string; +} + +0; + +/** + * @description: LngContract分页返回值结构 + */ +export type LngContractPageResult = BasicFetchResult; \ No newline at end of file diff --git a/src/api/contract/ContractSalesInt/index.ts b/src/api/contract/ContractSalesInt/index.ts new file mode 100644 index 0000000..3e5cd72 --- /dev/null +++ b/src/api/contract/ContractSalesInt/index.ts @@ -0,0 +1,89 @@ +import { LngContractPageModel, LngContractPageParams, LngContractPageResult } from './model/ContractSalesIntModel'; +import { defHttp } from '/@/utils/http/axios'; +import { ErrorMessageMode } from '/#/axios'; + +enum Api { + Page = '/contract/contractSalesInt/page', + List = '/contract/contractSalesInt/list', + Info = '/contract/contractSalesInt/info', + LngContract = '/contract/contractSalesInt', + + + + +} + +/** + * @description: 查询LngContract分页列表 + */ +export async function getLngContractPage(params: LngContractPageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Page, + params, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 获取LngContract信息 + */ +export async function getLngContract(id: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Info, + params: { id }, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 新增LngContract + */ +export async function addLngContract(lngContract: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.post( + { + url: Api.LngContract, + params: lngContract, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 更新LngContract + */ +export async function updateLngContract(lngContract: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.put( + { + url: Api.LngContract, + params: lngContract, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 删除LngContract(批量删除) + */ +export async function deleteLngContract(ids: string[], mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: Api.LngContract, + data: ids, + }, + { + errorMessageMode: mode, + }, + ); +} \ No newline at end of file diff --git a/src/api/contract/ContractSalesInt/model/ContractSalesIntModel.ts b/src/api/contract/ContractSalesInt/model/ContractSalesIntModel.ts new file mode 100644 index 0000000..7caefc4 --- /dev/null +++ b/src/api/contract/ContractSalesInt/model/ContractSalesIntModel.ts @@ -0,0 +1,58 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; + +/** + * @description: LngContract分页参数 模型 + */ +export interface LngContractPageParams extends BasicPageParams { + id: string; + + kNo: string; + + kName: string; + + cpCode: string; + + dateFrom: string; + + dateTo: string; + + approCode: string; + + onlineSign: string; + + comId: string; + + note: string; +} + +/** + * @description: LngContract分页返回值模型 + */ +export interface LngContractPageModel { + id: string; + + kNo: string; + + kName: string; + + cpCode: string; + + dateFrom: string; + + dateTo: string; + + approCode: string; + + onlineSign: string; + + comId: string; + + note: string; +} + +0; + +/** + * @description: LngContract分页返回值结构 + */ +export type LngContractPageResult = BasicFetchResult; \ No newline at end of file diff --git a/src/components/common/approListModal.vue b/src/components/common/approListModal.vue index 6ff108b..0002962 100644 --- a/src/components/common/approListModal.vue +++ b/src/components/common/approListModal.vue @@ -2,7 +2,15 @@
- + + +
@@ -13,7 +21,9 @@ import { BasicTable, useTable, FormSchema, BasicColumn, TableAction } from '/@/components/Table'; import { useMessage } from '/@/hooks/web/useMessage'; import { useI18n } from '/@/hooks/web/useI18n'; - import { getLngApproPage} from '/@/api/approve/appro'; + import { getLngApproPageFile} from '/@/api/approve/appro'; + import { parseDownloadUrl} from '/@/api/system/file'; + import { downloadByUrl } from '/@/utils/file/download'; const { t } = useI18n(); const codeFormSchema: FormSchema[] = [ @@ -22,12 +32,12 @@ const columns: BasicColumn[] = [ { dataIndex: 'title', title: '标题', align: 'left', }, - { dataIndex: 'code', title: '编号', align: 'left', }, - { dataIndex: 'typeName', title: '签报类型', align: 'left', }, - { dataIndex: 'empName', title: '拟稿人', align: 'left', }, - { dataIndex: 'bDeptName', title: '拟稿人所属部门', align: 'left', }, - { dataIndex: 'dateAppro', title: '拟稿日期', align: 'left', }, - { dataIndex: 'file', title: '附件', align: 'left', }, + { dataIndex: 'code', title: '编号', align: 'left',width: 120 }, + { dataIndex: 'typeName', title: '签报类型', align: 'left',width: 100 }, + { dataIndex: 'empName', title: '拟稿人', align: 'left',width: 120 }, + { dataIndex: 'bDeptName', title: '拟稿人所属部门', align: 'left',width: 120 }, + { dataIndex: 'dateAppro', title: '拟稿日期', align: 'left', width: 120 }, + { dataIndex: 'file', title: '附件', align: 'left',width: 200 }, ]; @@ -51,7 +61,7 @@ const [registerTable, { getDataSource, setTableData, updateTableDataRecord, reload }] = useTable({ title: t('签报列表'), - api: getLngApproPage, + api: getLngApproPageFile, columns, bordered: true, @@ -71,6 +81,11 @@ onChange: onSelectChange }, }); + const handleDownload = (info) => { + const url = parseDownloadUrl(info.response ? info.response.data.fileUrl : info.fileUrl); + const fileName = info.response ? info.response.data.fileOrg : info.fileOrg; + downloadByUrl({ url, fileName: fileName}); + }; const handleVisibleChange = (visible: boolean) => { if (visible) { nextTick(() => { @@ -104,8 +119,20 @@ diff --git a/src/components/common/discountList.vue b/src/components/common/discountList.vue index cb3bc2a..e19f456 100644 --- a/src/components/common/discountList.vue +++ b/src/components/common/discountList.vue @@ -3,6 +3,9 @@ 新增行