From 1c1af9b0fc10778ae5ac13cc68fd4030affbcfe1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 10:59:53 +0800
Subject: [PATCH] feat(wm): 新增SN码管理和设备入库功能
---
src/views/wls/stocktaking/task/modules/form.vue | 58 ++++++++++++++--------------------------------------------
1 files changed, 14 insertions(+), 44 deletions(-)
diff --git a/src/views/wls/stocktaking/task/modules/form.vue b/src/views/wls/stocktaking/task/modules/form.vue
index ec1c5ba..05cfca2 100644
--- a/src/views/wls/stocktaking/task/modules/form.vue
+++ b/src/views/wls/stocktaking/task/modules/form.vue
@@ -14,7 +14,6 @@
import { useVbenForm } from '#/adapter/form';
import {
createStockTaking,
- finishStockTaking,
getStockTaking,
submitStockTaking,
updateStockTaking,
@@ -35,29 +34,23 @@
const isEditable = computed(() =>
['create', 'update'].includes(formType.value),
);
-const isExecute = computed(() => formType.value === 'execute'); // 鏄惁鎵ц鐩樼偣妯″紡
-const isSubmit = computed(() => formType.value === 'submit'); // 鏄惁鎻愪氦妯″紡
-const canSubmit = computed(
- () =>
- formType.value === 'update' &&
- formData.value?.status === MesWmStockTakingTaskStatusEnum.PREPARE,
+const isSubmit = computed(() => formType.value === 'submit'); // 鏄惁寮�濮嬬洏鐐规ā寮�
+const isResultEditable = computed(
+ // 鐩樼偣涓紙瀹℃壒涓級鍙淮鎶ょ洏鐐圭粨鏋�
+ () => formData.value?.status === MesWmStockTakingTaskStatusEnum.APPROVING,
);
const showLineTab = computed(() => !formData.value?.blindFlag); // 鐩茬洏涓嶅睍绀虹洏鐐规竻鍗�
const showResultTab = computed(
() =>
- isExecute.value ||
- (!!formData.value?.status &&
- formData.value.status !== MesWmStockTakingTaskStatusEnum.PREPARE),
+ !!formData.value?.status &&
+ formData.value.status !== MesWmStockTakingTaskStatusEnum.PREPARE,
);
const getTitle = computed(() => {
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['鐩樼偣浠诲姟']);
}
- if (formType.value === 'execute') {
- return '鎵ц鐩樼偣';
- }
if (formType.value === 'submit') {
- return '鎻愪氦鐩樼偣浠诲姟';
+ return '寮�濮嬬洏鐐�';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['鐩樼偣浠诲姟'])
@@ -78,7 +71,7 @@
wrapperClass: 'grid-cols-3',
});
-/** 鎻愪氦鐩樼偣浠诲姟锛氳〃鍗曟湁淇敼鏃跺厛淇濆瓨锛屽啀璋冪敤鎻愪氦鎺ュ彛 */
+/** 寮�濮嬬洏鐐癸細琛ㄥ崟鏈変慨鏀规椂鍏堜繚瀛橈紝鍐嶆彁浜� */
async function handleSubmit() {
const { valid } = await formApi.validate();
if (!valid || !formData.value?.id) {
@@ -94,23 +87,7 @@
originalSnapshot.value = current;
}
await submitStockTaking(formData.value.id);
- message.success('鎻愪氦鎴愬姛');
- await modalApi.close();
- emit('success');
- } finally {
- modalApi.unlock();
- }
-}
-
-/** 鎵ц鐩樼偣 */
-async function handleExecute() {
- if (!formData.value?.id) {
- return;
- }
- modalApi.lock();
- try {
- await finishStockTaking(formData.value.id);
- message.success('鎵ц鐩樼偣鎴愬姛');
+ message.success('寮�濮嬬洏鐐规垚鍔�');
await modalApi.close();
emit('success');
} finally {
@@ -163,7 +140,7 @@
// 鍔犺浇鏁版嵁
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
- subTabsName.value = data.formType === 'execute' ? 'results' : 'lines';
+ subTabsName.value = 'lines';
formApi.setState({ schema: useFormSchema(formType.value, formApi) });
formApi.setDisabled(!isEditable.value);
modalApi.setState({ showConfirmButton: isEditable.value });
@@ -199,7 +176,7 @@
</Tabs.TabPane>
<Tabs.TabPane v-if="showResultTab" key="results" tab="鐩樼偣缁撴灉">
<ResultList
- :form-type="isExecute ? 'execute' : 'detail'"
+ :form-type="isResultEditable ? 'execute' : 'detail'"
:task-id="formData.id"
/>
</Tabs.TabPane>
@@ -207,18 +184,11 @@
<template #prepend-footer>
<div class="flex flex-auto items-center gap-2">
<Popconfirm
- v-if="canSubmit || isSubmit"
- title="纭鎻愪氦璇ョ洏鐐逛换鍔★紵銆愭彁浜ゅ悗灏嗕笉鑳戒慨鏀广��"
+ v-if="isSubmit"
+ title="纭寮�濮嬬洏鐐癸紵寮�濮嬪悗灏嗗喕缁撳簱瀛樺苟鍙綍鍏�/瀵煎叆瀹炵洏鏁般��"
@confirm="handleSubmit"
>
- <Button type="primary">鎻愪氦</Button>
- </Popconfirm>
- <Popconfirm
- v-if="isExecute"
- title="纭鎵ц鐩樼偣鎿嶄綔锛�"
- @confirm="handleExecute"
- >
- <Button type="primary">鎵ц鐩樼偣</Button>
+ <Button type="primary">寮�濮嬬洏鐐�</Button>
</Popconfirm>
</div>
</template>
--
Gitblit v1.9.3