diff --git a/apps/web-antd/src/api/license/project/index.ts b/apps/web-antd/src/api/license/project/index.ts index 5f2fbf6..b6d189f 100644 --- a/apps/web-antd/src/api/license/project/index.ts +++ b/apps/web-antd/src/api/license/project/index.ts @@ -26,6 +26,8 @@ export namespace ProjectApi { softwareVersion: number; // 软件版本信息 remark: string; // 备注 serialNo?: string; // 序列号 + file?: any; // 上传的文件 + fileUrl?: string; // 文件访问地址 } } diff --git a/apps/web-antd/src/locales/langs/en-US/project.json b/apps/web-antd/src/locales/langs/en-US/project.json index 3627b65..116800f 100644 --- a/apps/web-antd/src/locales/langs/en-US/project.json +++ b/apps/web-antd/src/locales/langs/en-US/project.json @@ -24,5 +24,8 @@ "updateTime": "Last Modified Time", "commentNum": "Comment Count", "softwareVersion": "Software Version", - "operatingSystem": "Operating System Platform" + "operatingSystem": "Operating System Platform", + "networkChart": "Network Chart", + "uploadFile": "Click to Upload File", + "uploadRule": "Please upload {0}" } diff --git a/apps/web-antd/src/locales/langs/zh-CN/project.json b/apps/web-antd/src/locales/langs/zh-CN/project.json index 4e00cec..4fa3dc1 100644 --- a/apps/web-antd/src/locales/langs/zh-CN/project.json +++ b/apps/web-antd/src/locales/langs/zh-CN/project.json @@ -24,5 +24,8 @@ "updateTime": "最后修改时间", "commentNum": "进展记录数", "softwareVersion": "软件版本", - "operatingSystem": "操作系统平台" + "operatingSystem": "操作系统平台", + "networkChart": "网路图", + "uploadFile": "点击上传文件", + "uploadRule": "请上传{0}" } diff --git a/apps/web-antd/src/views/license/project/data.ts b/apps/web-antd/src/views/license/project/data.ts index d022345..2f4842b 100644 --- a/apps/web-antd/src/views/license/project/data.ts +++ b/apps/web-antd/src/views/license/project/data.ts @@ -247,6 +247,29 @@ export function useFormSchema(): VbenFormSchema[] { options: getDictOptions(DICT_TYPE.LIC_SOFTWARE_VERSION, 'number'), }, }, + { + component: 'Upload', + fieldName: 'file', + label: $t('project.networkChart'), + help: '提供对应项目的组网图,且不超过 5MB', + dependencies: { + triggerFields: ['customerId'], + rules: (values) => { + return z.any().refine( + (file) => { + if (values.customerId === 13) { + // 编辑状态且没有更改图片时,不校验 + return true; + } + return file instanceof File; + }, + { + message: $t('project.uploadRule', [$t('project.networkChart')]), + }, + ); + }, + }, + }, { fieldName: 'remark', label: $t('project.remarks'), @@ -520,6 +543,12 @@ export function useGridColumns( props: { type: DICT_TYPE.LIC_SOFTWARE_VERSION }, }, }, + { + field: 'file-content', + title: $t('project.networkChart'), + minWidth: 120, + slots: { default: 'file-content' }, + }, { field: 'remark', title: $t('project.remarks'), diff --git a/apps/web-antd/src/views/license/project/index.vue b/apps/web-antd/src/views/license/project/index.vue index 1b5c61b..7a07890 100644 --- a/apps/web-antd/src/views/license/project/index.vue +++ b/apps/web-antd/src/views/license/project/index.vue @@ -6,9 +6,9 @@ import type { import type { ProjectApi } from '#/api/license/project'; import { Page, useVbenDrawer, useVbenModal } from '@vben/common-ui'; -import { downloadFileFromBlobPart } from '@vben/utils'; +import { downloadFileFromBlobPart, openWindow } from '@vben/utils'; -import { message } from 'ant-design-vue'; +import { Button, Image, message } from 'ant-design-vue'; import dayjs from 'dayjs'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; @@ -213,6 +213,23 @@ const [Grid, gridApi] = useVbenVxeGrid({ ]" /> + diff --git a/apps/web-antd/src/views/license/project/modules/form.vue b/apps/web-antd/src/views/license/project/modules/form.vue index 0e2ce56..f2ac01d 100644 --- a/apps/web-antd/src/views/license/project/modules/form.vue +++ b/apps/web-antd/src/views/license/project/modules/form.vue @@ -1,11 +1,14 @@