From 277eba70d2811e5ccf6932b55d6a20cf41e79dfc Mon Sep 17 00:00:00 2001 From: zhouhaibin Date: Thu, 17 Apr 2025 13:42:16 +0800 Subject: [PATCH] sjj --- .env.production | 2 +- .../documentReview/SjjDocumentTasks/index.ts | 60 + .../documentReview/SjjDocumentTasks/model.ts | 80 + .../sjjTender/DocumentTasks/DocsDrawer.vue | 55 + .../DocumentTasks/DocumentTasks.data.ts | 135 + .../DocumentTasks/DocumentTasksModal.vue | 76 + .../DocumentTasks/DocumentTasksTable.vue | 286 +++ .../DocumentTasks/SjjDocumentTasks.data.ts | 119 + .../DocumentTasks/SjjDocumentTasksModal.vue | 74 + .../sjjTender/DocumentTasks/caozuomiaoshu.md | 2248 +++++++++++++++++ src/views/sjjTender/DocumentTasks/index.vue | 206 ++ 11 files changed, 3340 insertions(+), 1 deletion(-) create mode 100644 src/api/documentReview/SjjDocumentTasks/index.ts create mode 100644 src/api/documentReview/SjjDocumentTasks/model.ts create mode 100644 src/views/sjjTender/DocumentTasks/DocsDrawer.vue create mode 100644 src/views/sjjTender/DocumentTasks/DocumentTasks.data.ts create mode 100644 src/views/sjjTender/DocumentTasks/DocumentTasksModal.vue create mode 100644 src/views/sjjTender/DocumentTasks/DocumentTasksTable.vue create mode 100644 src/views/sjjTender/DocumentTasks/SjjDocumentTasks.data.ts create mode 100644 src/views/sjjTender/DocumentTasks/SjjDocumentTasksModal.vue create mode 100644 src/views/sjjTender/DocumentTasks/caozuomiaoshu.md create mode 100644 src/views/sjjTender/DocumentTasks/index.vue diff --git a/.env.production b/.env.production index 8a1e23a..2a18f4d 100644 --- a/.env.production +++ b/.env.production @@ -9,7 +9,7 @@ VITE_BUILD_COMPRESS = 'gzip' VITE_DROP_CONSOLE = true # 后端路径 -VITE_GLOB_API_URL=/prod-api +VITE_GLOB_API_URL=/sjj # 全局加密开关(即开启了加解密功能才会生效 不是全部接口加密 需要和后端对应) VITE_GLOB_ENABLE_ENCRYPT=true diff --git a/src/api/documentReview/SjjDocumentTasks/index.ts b/src/api/documentReview/SjjDocumentTasks/index.ts new file mode 100644 index 0000000..c1f008a --- /dev/null +++ b/src/api/documentReview/SjjDocumentTasks/index.ts @@ -0,0 +1,60 @@ +import { defHttp } from '@/utils/http/axios'; +import { ID, IDS, commonExport } from '@/api/base'; +import { SjjDocumentTasksVO, SjjDocumentTasksForm, SjjDocumentTasksQuery } from './model'; + +/** + * 查询审计局标书任务列表 + * @param params + * @returns + */ +export function SjjDocumentTasksList(params?: SjjDocumentTasksQuery) { + return defHttp.get({ url: '/productManagement/SjjDocumentTasks/list', params }); +} + +/** + * 导出审计局标书任务列表 + * @param params + * @returns + */ +export function SjjDocumentTasksExport(params?: SjjDocumentTasksQuery) { + return commonExport('/productManagement/SjjDocumentTasks/export', params ?? {}); +} + +/** + * 查询审计局标书任务详细 + * @param id id + * @returns + */ +export function SjjDocumentTasksInfo(id: ID) { + return defHttp.get({ url: '/productManagement/SjjDocumentTasks/' + id }); +} + +/** + * 新增审计局标书任务 + * @param data + * @returns + */ +export function SjjDocumentTasksAdd(data: SjjDocumentTasksForm) { + return defHttp.postWithMsg({ url: '/productManagement/SjjDocumentTasks', data }); +} + +/** + * 更新审计局标书任务 + * @param data + * @returns + */ +export function SjjDocumentTasksUpdate(data: SjjDocumentTasksForm) { + return defHttp.putWithMsg({ url: '/productManagement/SjjDocumentTasks', data }); +} + +/** + * 删除审计局标书任务 + * @param id id + * @returns + */ +export function SjjDocumentTasksRemove(id: ID | IDS) { + return defHttp.deleteWithMsg({ url: '/productManagement/SjjDocumentTasks/' + id },); +} +export function SjjDocumentTasksOssRemoveById(id: ID|IDS) { + return defHttp.deleteWithMsg({ url: '/productManagement/SjjDocumentTasks/ossRemoveById/' + id },); +} diff --git a/src/api/documentReview/SjjDocumentTasks/model.ts b/src/api/documentReview/SjjDocumentTasks/model.ts new file mode 100644 index 0000000..2f4385b --- /dev/null +++ b/src/api/documentReview/SjjDocumentTasks/model.ts @@ -0,0 +1,80 @@ +import { BaseEntity, PageQuery } from '@/api/base'; + +export interface SjjDocumentTasksVO { + /** + * 任务名称 + */ + taskName: string; + + /** + * 招标文件名称 + */ + tenderDocumentName: string; + + /** + * 投标文件名称 + */ + bidDocumentName: string | number; + + /** + * 进度状态 + */ + progressStatus: string; + + /** + * 审核结果 + */ + resultType: string; + +} + +export interface SjjDocumentTasksForm extends BaseEntity { + /** + * 任务名称 + */ + taskName?: string; + + /** + * 招标文件名称 + */ + tenderDocumentName?: string; + + /** + * 投标文件名称 + */ + bidDocumentName?: string | number; + + /** + * 进度状态 + */ + progressStatus?: string; + +} + +export interface SjjDocumentTasksQuery extends PageQuery { + + /** + * 任务名称 + */ + taskName?: string; + + /** + * 招标文件名称 + */ + tenderDocumentName?: string; + + /** + * 投标文件名称 + */ + bidDocumentName?: string | number; + + /** + * 进度状态 + */ + progressStatus?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/views/sjjTender/DocumentTasks/DocsDrawer.vue b/src/views/sjjTender/DocumentTasks/DocsDrawer.vue new file mode 100644 index 0000000..6eba6d6 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/DocsDrawer.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/sjjTender/DocumentTasks/DocumentTasks.data.ts b/src/views/sjjTender/DocumentTasks/DocumentTasks.data.ts new file mode 100644 index 0000000..d836dc8 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/DocumentTasks.data.ts @@ -0,0 +1,135 @@ +import { BasicColumn } from '@/components/Table'; +import { FormSchema } from '@/components/Form'; +import { getDictOptions } from '@/utils/dict'; +import { useRender } from '@/hooks/component/useRender'; +import { uploadDocument } from '@/api/documentReview/DocumentTasks'; +import { useUserStore } from '@/store/modules/user'; +import { RoleEnum } from '@/enums/roleEnum'; + +const { roleList } = useUserStore(); + +export const formSchemas: FormSchema[] = [ + { + label: '任务名称', + field: 'taskNameList', + component: 'Select', + componentProps: { + options: getDictOptions('scheme_review'), + mode: 'multiple', + }, + }, + { + label: '文档名称', + field: 'documentName', + component: 'Input', + }, + // { + // label: '预计时间', + // field: 'estimatedCompletionTime', + // component: 'DatePicker', + // componentProps: { + // showTime: true, + // format: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'YYYY-MM-DD HH:mm:ss', + // }, + // }, + { + label: '状态', + field: 'progressStatus', + component: 'Select', + componentProps: { + options: getDictOptions('document_task_status'), + }, + }, +]; + +const { renderDict } = useRender(); +export const columns: BasicColumn[] = [ + { + title: '文档名称', + dataIndex: 'documentName', + }, + { + title: '模型所属区域', + dataIndex: 'taskRegion', + customRender: ({ value }) => renderDict(value, 'model_region'), + }, + { + title: '模型所属行业', + dataIndex: 'taskIndustry', + customRender: ({ value }) => renderDict(value, 'model_industry'), + }, + { + title: '上传时间', + dataIndex: 'createTime', + }, + { + title: '提交人', + dataIndex: 'createUser', + auth: 'documentReview:DocumentTasks:tableShow', + }, + { + title: '进度', + dataIndex: 'progress', + }, +]; +export const childColumns: BasicColumn[] = [ + { + title: '任务名称', + dataIndex: 'taskName', + customRender: ({ value,record }) => renderDict(value, record.taskType), + }, + { + title: '任务类型', + dataIndex: 'taskType', + ifShow: false, + customRender: ({ value }) => renderDict(value, 'task_type'), + }, + { + title: '任务耗时', + dataIndex: 'taskDuration', + }, + { + title: '状态', + dataIndex: 'progressStatus', + customRender: ({ value }) => renderDict(value, 'document_task_status'), + }, +]; +export const modalSchemas: FormSchema[] = [ + + { + label: '任务名称', + field: 'taskNameList', + required: true, + component: 'Select', + componentProps: () => { + const isSuperAdmin = roleList.includes(RoleEnum.SUPER_ADMIN); + let options = getDictOptions('scheme_review'); + return { + options: options, + mode: 'multiple', + }; + }, + }, + + // { + // label: '预计时间', + // field: 'estimatedCompletionTime', + // required: true, + // component: 'DatePicker', + // componentProps: { + // showTime: true, + // format: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'YYYY-MM-DD HH:mm:ss', + // }, + // }, + // { + // label: '状态', + // field: 'progressStatus', + // required: true, + // component: 'Select', + // componentProps: { + // options: getDictOptions('document_task_status') + // }, + // }, +]; diff --git a/src/views/sjjTender/DocumentTasks/DocumentTasksModal.vue b/src/views/sjjTender/DocumentTasks/DocumentTasksModal.vue new file mode 100644 index 0000000..d94e538 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/DocumentTasksModal.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/sjjTender/DocumentTasks/DocumentTasksTable.vue b/src/views/sjjTender/DocumentTasks/DocumentTasksTable.vue new file mode 100644 index 0000000..2ece077 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/DocumentTasksTable.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/views/sjjTender/DocumentTasks/SjjDocumentTasks.data.ts b/src/views/sjjTender/DocumentTasks/SjjDocumentTasks.data.ts new file mode 100644 index 0000000..0bba74f --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/SjjDocumentTasks.data.ts @@ -0,0 +1,119 @@ +import { BasicColumn } from '@/components/Table'; +import { FormSchema } from '@/components/Form'; +import { getDictOptions } from '@/utils/dict'; +import { useRender } from '@/hooks/component/useRender'; +import { uploadDocument } from '@/api/documentReview/DocumentTasks'; +export const formSchemas: FormSchema[] = [ + { + label: '任务名称', + field: 'taskName', + component: 'Select', + componentProps: { + options: [{ + label: '招标文件审核', + value: 'sjjbidAnalysis', + }] + }, + }, + { + label: '招标文件名称', + field: 'tenderDocumentName', + component: 'Input', + }, + { + label: '投标文件名称', + field: 'bidDocumentName', + component: 'Input', + }, + { + label: '进度状态', + field: 'progressStatus', + component: 'Select', + componentProps: { + options: getDictOptions('document_task_status') + }, + }, + { + label: '文件是否已删除', + field: 'deleteFlag', + component: 'Select', + componentProps: { + options: getDictOptions('sys_yes_no') + }, + }, +]; + +const { renderDict } = useRender(); +export const columns: BasicColumn[] = [ + { + title: '任务ID', + dataIndex: 'id', + ifShow: false, + }, + { + title: '任务名称', + dataIndex: 'taskName', + customRender: ({ value }) => "招标文件审核", + + }, + { + title: '招标文件名称', + dataIndex: 'tenderDocumentName', + }, + { + title: '投标文件名称', + dataIndex: 'bidDocumentName', + }, + { + title: '进度状态', + dataIndex: 'progressStatus', + customRender: ({ value }) => renderDict(value, 'document_task_status'), + }, + { + title: '文件是否已删除', + dataIndex: 'deleteFlag', + customRender: ({ value }) => renderDict(value, 'sys_yes_no'), + }, +]; + +export const modalSchemas: FormSchema[] = [ + { + label: '任务名称', + field: 'taskName', + required: true, + component: 'Select', + componentProps: { + options: [{ + label: '招标文件审核', + value: 'sjjbidAnalysis', + }] + }, + }, + { + label: '招标文件', + field: 'tenderDocOssId', + component: 'Upload', + componentProps: { + accept: ['.docx', '.pdf'], + maxSize: 500, + multiple: false, + resultField: 'ossId', + api: uploadDocument, + beforeUploadPrompt:"严禁在本互联网非涉密平台处理、传输国家秘密。请再次确认您上传的文件资料不涉及国家秘密。" + }, + }, + { + label: '投标文件集', + field: 'bidDocOssId', + required: true, + component: 'Upload', + componentProps: { + accept: ['.zip'], + maxSize: 500, + multiple: false, + resultField: 'ossId', + api: uploadDocument, + beforeUploadPrompt:"严禁在本互联网非涉密平台处理、传输国家秘密。请再次确认您上传的文件资料不涉及国家秘密。" + }, + }, +]; diff --git a/src/views/sjjTender/DocumentTasks/SjjDocumentTasksModal.vue b/src/views/sjjTender/DocumentTasks/SjjDocumentTasksModal.vue new file mode 100644 index 0000000..623245e --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/SjjDocumentTasksModal.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/views/sjjTender/DocumentTasks/caozuomiaoshu.md b/src/views/sjjTender/DocumentTasks/caozuomiaoshu.md new file mode 100644 index 0000000..df39fd6 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/caozuomiaoshu.md @@ -0,0 +1,2248 @@ +## 第一步:新增任务 + + + +## 第二步:选择需要的任务 + + + + + +## 第三步:上传文件,文件支持doc,wps,docx + + + +## 第四步:点击确认,开始任务 + + \ No newline at end of file diff --git a/src/views/sjjTender/DocumentTasks/index.vue b/src/views/sjjTender/DocumentTasks/index.vue new file mode 100644 index 0000000..663f324 --- /dev/null +++ b/src/views/sjjTender/DocumentTasks/index.vue @@ -0,0 +1,206 @@ + + + + +