feat(mes): 迁移 wm 里的 return-* 系列(优化代码)

pull/350/head
YunaiV 2026-05-30 11:08:37 +08:00
parent 2fd44246f8
commit f5fbd85e26
8 changed files with 169 additions and 97 deletions

View File

@ -0,0 +1,52 @@
<script lang="ts" setup>
import type { MesWmBatchApi } from '#/api/mes/wm/batch';
import { ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { getBatch } from '#/api/mes/wm/batch';
import { useDescription } from '#/components/description';
import { useDetailSchema } from '../data';
const detailData = ref<MesWmBatchApi.Batch>(); //
const [Descriptions] = useDescription({
bordered: true,
column: 3,
schema: useDetailSchema(),
useCard: false,
});
const [Modal, modalApi] = useVbenModal({
showCancelButton: false,
showConfirmButton: false,
async onOpenChange(isOpen) {
if (!isOpen) {
detailData.value = undefined;
return;
}
const data = modalApi.getData<{ id?: number }>();
if (!data?.id) {
return;
}
modalApi.lock();
try {
detailData.value = await getBatch(data.id);
} finally {
modalApi.unlock();
}
},
});
defineExpose({
open: (id: number) => modalApi.setData({ id }).open(),
});
</script>
<template>
<Modal title="批次详情" class="w-3/5">
<Descriptions class="mx-4" :data="detailData" />
</Modal>
</template>

View File

@ -37,25 +37,19 @@ const canSubmit = computed(() => // 是否可提交
formType.value === 'update' &&
formData.value?.status === MesWmReturnIssueStatusEnum.PREPARE,
);
// TODO @AI
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['生产退料单']);
}
case 'finish': {
return '执行退料';
}
case 'stock': {
return '入库上架';
}
case 'update': {
return $t('ui.actionTitle.edit', ['生产退料单']);
}
default: {
return $t('ui.actionTitle.create', ['生产退料单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['生产退料单']);
}
if (formType.value === 'stock') {
return '入库上架';
}
if (formType.value === 'finish') {
return '执行退料';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['生产退料单'])
: $t('ui.actionTitle.create', ['生产退料单']);
});
const [Form, formApi] = useVbenForm({

View File

@ -38,23 +38,18 @@ const canSubmit = computed(() => // 是否可提交
formData.value?.status === MesWmReturnSalesStatusEnum.PREPARE,
);
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['销售退货单']);
}
case 'finish': {
return '执行退货';
}
case 'stock': {
return '执行上架';
}
case 'update': {
return $t('ui.actionTitle.edit', ['销售退货单']);
}
default: {
return $t('ui.actionTitle.create', ['销售退货单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['销售退货单']);
}
if (formType.value === 'stock') {
return '执行上架';
}
if (formType.value === 'finish') {
return '执行退货';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['销售退货单'])
: $t('ui.actionTitle.create', ['销售退货单']);
});
const [Form, formApi] = useVbenForm({

View File

@ -39,23 +39,18 @@ const canSubmit = computed(() => // 是否可提交
formData.value?.status === MesWmReturnVendorStatusEnum.PREPARE,
);
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['供应商退货单']);
}
case 'finish': {
return '完成退货';
}
case 'stock': {
return '执行拣货';
}
case 'update': {
return $t('ui.actionTitle.edit', ['供应商退货单']);
}
default: {
return $t('ui.actionTitle.create', ['供应商退货单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['供应商退货单']);
}
if (formType.value === 'stock') {
return '执行拣货';
}
if (formType.value === 'finish') {
return '完成退货';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['供应商退货单'])
: $t('ui.actionTitle.create', ['供应商退货单']);
});
const [Form, formApi] = useVbenForm({

View File

@ -0,0 +1,51 @@
<script lang="ts" setup>
import type { MesWmBatchApi } from '#/api/mes/wm/batch';
import { ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { getBatch } from '#/api/mes/wm/batch';
import { useDescription } from '#/components/description';
import { useDetailSchema } from '../data';
const detailData = ref<MesWmBatchApi.Batch>(); //
const [Descriptions] = useDescription({
border: true,
column: 3,
schema: useDetailSchema(),
});
const [Modal, modalApi] = useVbenModal({
showCancelButton: false,
showConfirmButton: false,
async onOpenChange(isOpen) {
if (!isOpen) {
detailData.value = undefined;
return;
}
const data = modalApi.getData<{ id?: number }>();
if (!data?.id) {
return;
}
modalApi.lock();
try {
detailData.value = await getBatch(data.id);
} finally {
modalApi.unlock();
}
},
});
defineExpose({
open: (id: number) => modalApi.setData({ id }).open(),
});
</script>
<template>
<Modal title="批次详情" class="w-3/5">
<Descriptions class="mx-4" :data="detailData" />
</Modal>
</template>

View File

@ -38,23 +38,18 @@ const canSubmit = computed(() => // 是否可提交
formData.value?.status === MesWmReturnIssueStatusEnum.PREPARE,
);
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['生产退料单']);
}
case 'finish': {
return '执行退料';
}
case 'stock': {
return '入库上架';
}
case 'update': {
return $t('ui.actionTitle.edit', ['生产退料单']);
}
default: {
return $t('ui.actionTitle.create', ['生产退料单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['生产退料单']);
}
if (formType.value === 'stock') {
return '入库上架';
}
if (formType.value === 'finish') {
return '执行退料';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['生产退料单'])
: $t('ui.actionTitle.create', ['生产退料单']);
});
const [Form, formApi] = useVbenForm({

View File

@ -38,23 +38,18 @@ const canSubmit = computed(() => // 是否可提交
formData.value?.status === MesWmReturnSalesStatusEnum.PREPARE,
);
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['销售退货单']);
}
case 'finish': {
return '执行退货';
}
case 'stock': {
return '执行上架';
}
case 'update': {
return $t('ui.actionTitle.edit', ['销售退货单']);
}
default: {
return $t('ui.actionTitle.create', ['销售退货单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['销售退货单']);
}
if (formType.value === 'stock') {
return '执行上架';
}
if (formType.value === 'finish') {
return '执行退货';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['销售退货单'])
: $t('ui.actionTitle.create', ['销售退货单']);
});
const [Form, formApi] = useVbenForm({

View File

@ -39,23 +39,18 @@ const canSubmit = computed(() => // 是否可提交
formData.value?.status === MesWmReturnVendorStatusEnum.PREPARE,
);
const getTitle = computed(() => {
switch (formType.value) {
case 'detail': {
return $t('ui.actionTitle.view', ['供应商退货单']);
}
case 'finish': {
return '完成退货';
}
case 'stock': {
return '执行拣货';
}
case 'update': {
return $t('ui.actionTitle.edit', ['供应商退货单']);
}
default: {
return $t('ui.actionTitle.create', ['供应商退货单']);
}
if (formType.value === 'detail') {
return $t('ui.actionTitle.view', ['供应商退货单']);
}
if (formType.value === 'stock') {
return '执行拣货';
}
if (formType.value === 'finish') {
return '完成退货';
}
return formType.value === 'update'
? $t('ui.actionTitle.edit', ['供应商退货单'])
: $t('ui.actionTitle.create', ['供应商退货单']);
});
const [Form, formApi] = useVbenForm({