From 1deae1d89a7039ef0b943be291f6c1b9aaa5ad2c Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期一, 17 八月 2026 10:30:33 +0800
Subject: [PATCH] feat(mes): 生产报工新增「可报工数量」展示 - `src/api/mes/pro/task/index.ts`: `MesProTaskApi.Task` 接口新增 `reportableQuantity` (可报工数量) 字段定义 - `src/views/mes/pro/feedback/data.ts`: - 生产报工弹框表单中新增「可报工数量」字段展示,设置为不可编辑,且仅在新建/编辑模式下显示 - 在生产任务选择弹框 (`ProTaskSelect`) 的 `onChange` 事件中,自动从选中的任务对象中提取并带入 `reportableQuantity` - 完善了表单联动的重置逻辑,确保更换工单等操作时正确清空此字段
---
src/views/mes/pd/project/modules/document-list.vue | 44 +++++++++++++++++++++-----------------------
1 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/src/views/mes/pd/project/modules/document-list.vue b/src/views/mes/pd/project/modules/document-list.vue
index cfb129f..71c10d8 100644
--- a/src/views/mes/pd/project/modules/document-list.vue
+++ b/src/views/mes/pd/project/modules/document-list.vue
@@ -7,7 +7,7 @@
import { computed, watch } from 'vue';
import { useVbenModal } from '#/packages/effects/common-ui/src';
-import { MesPdDocumentTypeEnum } from '#/packages/constants/src';
+import { MesPdDocumentTypeEnum, MesPdProjectStatusEnum } from '#/packages/constants/src';
import { message } from 'ant-design-vue';
@@ -29,6 +29,7 @@
formType: FormType;
gridHeight?: number | string;
projectId: number;
+ projectStatus?: number;
tableTitle?: string;
version?: string;
}>(),
@@ -38,8 +39,11 @@
},
);
-const isEditable = computed(() =>
- ['create', 'update'].includes(props.formType),
+/** 鏄惁鍏佽鏂板/缂栬緫/鍒犻櫎璧勬枡 */
+const canEdit = computed(() =>
+ props.projectStatus === undefined ||
+ props.projectStatus === MesPdProjectStatusEnum.PENDING_PUBLISH ||
+ props.projectStatus === MesPdProjectStatusEnum.PENDING_UPLOAD,
);
const [DocumentFormModal, documentFormModalApi] = useVbenModal({
@@ -66,21 +70,15 @@
async function handleDelete(row: MesPdDocumentApi.Document) {
const hideLoading = message.loading({
- content: $t('ui.actionMessage.deleting', [row.name]),
+ content: $t('ui.actionMessage.deleting', [row.documentName]),
duration: 0,
});
try {
await deletePdDocument(row.id!);
- message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
+ message.success($t('ui.actionMessage.deleteSuccess', [row.documentName]));
handleRefresh();
} finally {
hideLoading();
- }
-}
-
-function handlePreview(row: MesPdDocumentApi.Document) {
- if (row.fileUrl) {
- window.open(row.fileUrl, '_blank');
}
}
@@ -97,7 +95,7 @@
pageNo: page.currentPage,
pageSize: page.pageSize,
projectId: props.projectId,
- version: props.version,
+ documentVersion: props.version,
...formValues,
});
},
@@ -119,11 +117,11 @@
<template>
<DocumentFormModal @success="handleRefresh" />
<Grid :table-title="tableTitle">
- <template v-if="isEditable" #toolbar-tools>
+ <template v-if="canEdit" #toolbar-tools>
<TableAction
:actions="[
{
- label: '涓婁紶闄勪欢',
+ label: '涓婁紶璧勬枡',
type: 'primary',
icon: ACTION_ICON.ADD,
onClick: handleCreate,
@@ -131,20 +129,20 @@
]"
/>
</template>
+ <template #file="{ row }">
+ <a v-if="row.fileUrl" :href="row.fileUrl" target="_blank" class="text-primary">
+ {{ row.fileName || '鏌ョ湅鏂囦欢' }}
+ </a>
+ <span v-else class="text-gray-400">-</span>
+ </template>
<template #actions="{ row }">
<TableAction
:actions="[
{
- label: '棰勮',
- type: 'link',
- ifShow: !!row.fileUrl,
- onClick: handlePreview.bind(null, row),
- },
- {
label: $t('common.edit'),
type: 'link',
icon: ACTION_ICON.EDIT,
- ifShow: isEditable,
+ ifShow: canEdit,
onClick: handleEdit.bind(null, row),
},
{
@@ -152,9 +150,9 @@
type: 'link',
danger: true,
icon: ACTION_ICON.DELETE,
- ifShow: isEditable,
+ ifShow: canEdit,
popConfirm: {
- title: $t('ui.actionMessage.deleteConfirm', [row.name]),
+ title: $t('ui.actionMessage.deleteConfirm', [row.documentName]),
confirm: handleDelete.bind(null, row),
},
},
--
Gitblit v1.9.3