From 787ccc59ba89bacc075562a161ecf02bc76ebadc Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 24 七月 2026 17:15:53 +0800
Subject: [PATCH] 银川 1.采购申请添加入库状态查询条件
---
src/views/mes/md/item/index.vue | 289 ++++++++++++++++++++++++++++-----------------------------
1 files changed, 142 insertions(+), 147 deletions(-)
diff --git a/src/views/mes/md/item/index.vue b/src/views/mes/md/item/index.vue
index 5a9253c..66c6421 100644
--- a/src/views/mes/md/item/index.vue
+++ b/src/views/mes/md/item/index.vue
@@ -1,149 +1,156 @@
<script lang="ts" setup>
-import type { VxeTableGridOptions } from '#/adapter/vxe-table';
-import type { MesMdItemApi } from '#/api/mes/md/item';
-import type { MesMdItemTypeApi } from '#/api/mes/md/item/type';
+ import type { VxeTableGridOptions } from "#/adapter/vxe-table";
+ import type { MesMdItemApi } from "#/api/mes/md/item";
+ import type { MesMdItemTypeApi } from "#/api/mes/md/item/type";
-import { ref } from 'vue';
+ import { ref } from "vue";
-import { confirm, Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
-import { DICT_TYPE } from '../../../../packages/constants/src';
-import { getDictLabel } from '../../../../packages/effects/hooks/src';
-import { downloadFileFromBlobPart } from '../../../../packages/utils/src';
+ import {
+ confirm,
+ Page,
+ useVbenModal,
+ } from "@vben/common-ui";
+ import { DICT_TYPE } from "@vben/constants";
+ import { getDictLabel } from "@vben/hooks";
+ import { downloadFileFromBlobPart } from "@vben/utils";
-import { Button, Card, message } from 'ant-design-vue';
+ import { Button, Card, message } from "ant-design-vue";
-import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
-import {
- deleteItem,
- exportItem,
- getItemPage,
- updateItemStatus,
-} from '#/api/mes/md/item';
-import { $t } from '#/locales';
-import { MdItemTypeTree } from '#/views/mes/md/item/type/components';
-import { PrinterLabel } from '#/views/mes/wm/barcode/components';
+ import { ACTION_ICON, TableAction, useVbenVxeGrid } from "#/adapter/vxe-table";
+ import {
+ deleteItem,
+ exportItem,
+ getItemPage,
+ updateItemStatus,
+ } from "#/api/mes/md/item";
+ import { $t } from "#/locales";
+ import { MdItemTypeTree } from "#/views/mes/md/item/type/components";
+ import { PrinterLabel } from "#/views/wls/barcode/components";
-import { useGridColumns, useGridFormSchema } from './data';
-import Form from './modules/form.vue';
-import ImportForm from './modules/import-form.vue';
+ import { useGridColumns, useGridFormSchema } from "./data";
+ import Form from "./modules/form.vue";
+ import ImportForm from "./modules/import-form.vue";
-const selectedItemTypeId = ref<number>(); // 褰撳墠閫変腑鐨勭墿鏂欏垎绫荤紪鍙�
+ const selectedItemTypeId = ref<number>(); // 褰撳墠閫変腑鐨勭墿鏂欏垎绫荤紪鍙�
-const [FormModal, formModalApi] = useVbenModal({
- connectedComponent: Form,
- destroyOnClose: true,
-});
-
-const [ImportModal, importModalApi] = useVbenModal({
- connectedComponent: ImportForm,
- destroyOnClose: true,
-});
-
-/** 鍒锋柊琛ㄦ牸 */
-function handleRefresh() {
- gridApi.query();
-}
-
-/** 鍒涘缓鐗╂枡 */
-function handleCreate() {
- formModalApi.setData({ formType: 'create' }).open();
-}
-
-/** 鏌ョ湅鐗╂枡 */
-function handleDetail(row: MesMdItemApi.Item) {
- formModalApi.setData({ id: row.id, formType: 'detail' }).open();
-}
-
-/** 缂栬緫鐗╂枡 */
-function handleEdit(row: MesMdItemApi.Item) {
- formModalApi.setData({ id: row.id, formType: 'update' }).open();
-}
-
-/** 鍒犻櫎鐗╂枡 */
-async function handleDelete(row: MesMdItemApi.Item) {
- const hideLoading = message.loading({
- content: $t('ui.actionMessage.deleting', [row.name]),
- duration: 0,
+ const [FormModal, formModalApi] = useVbenModal({
+ connectedComponent: Form,
+ destroyOnClose: true,
});
- try {
- await deleteItem(row.id!);
- message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
+
+ const [ImportModal, importModalApi] = useVbenModal({
+ connectedComponent: ImportForm,
+ destroyOnClose: true,
+ });
+
+ /** 鍒锋柊琛ㄦ牸 */
+ function handleRefresh() {
+ gridApi.query();
+ }
+
+ /** 鍒涘缓鐗╂枡 */
+ function handleCreate() {
+ formModalApi.setData({ formType: "create" }).open();
+ }
+
+ /** 鏌ョ湅鐗╂枡 */
+ function handleDetail(row: MesMdItemApi.Item) {
+ formModalApi.setData({ id: row.id, formType: "detail" }).open();
+ }
+
+ /** 缂栬緫鐗╂枡 */
+ function handleEdit(row: MesMdItemApi.Item) {
+ formModalApi.setData({ id: row.id, formType: "update" }).open();
+ }
+
+ /** 鍒犻櫎鐗╂枡 */
+ async function handleDelete(row: MesMdItemApi.Item) {
+ const hideLoading = message.loading({
+ content: $t("ui.actionMessage.deleting", [row.name]),
+ duration: 0,
+ });
+ try {
+ await deleteItem(row.id!);
+ message.success($t("ui.actionMessage.deleteSuccess", [row.name]));
+ handleRefresh();
+ } finally {
+ hideLoading();
+ }
+ }
+
+ /** 瀵煎嚭鐗╂枡 */
+ async function handleExport() {
+ const data = await exportItem(await gridApi.formApi.getValues());
+ downloadFileFromBlobPart({ fileName: "鐗╂枡浜у搧.xls", source: data });
+ }
+
+ /** 瀵煎叆鐗╂枡 */
+ function handleImport() {
+ importModalApi.open();
+ }
+
+ /** 鍒嗙被鏍戠偣鍑� */
+ function handleTypeNodeClick(row: MesMdItemTypeApi.ItemType | undefined) {
+ selectedItemTypeId.value = row?.id;
handleRefresh();
- } finally {
- hideLoading();
}
-}
-/** 瀵煎嚭鐗╂枡 */
-async function handleExport() {
- const data = await exportItem(await gridApi.formApi.getValues());
- downloadFileFromBlobPart({ fileName: '鐗╂枡浜у搧.xls', source: data });
-}
-
-/** 瀵煎叆鐗╂枡 */
-function handleImport() {
- importModalApi.open();
-}
-
-/** 鍒嗙被鏍戠偣鍑� */
-function handleTypeNodeClick(row: MesMdItemTypeApi.ItemType | undefined) {
- selectedItemTypeId.value = row?.id;
- handleRefresh();
-}
-
-/** 鏇存柊鐗╂枡鐘舵�� */
-async function handleStatusChange(
- newStatus: number,
- row: MesMdItemApi.Item,
-): Promise<boolean | undefined> {
- try {
- await confirm(
- `纭瑕佸皢"${row.name}"鐗╂枡鍒囨崲涓恒��${getDictLabel(DICT_TYPE.COMMON_STATUS, newStatus)}銆戝悧锛焋,
- );
- } catch {
- return false;
+ /** 鏇存柊鐗╂枡鐘舵�� */
+ async function handleStatusChange(
+ newStatus: number,
+ row: MesMdItemApi.Item
+ ): Promise<boolean | undefined> {
+ try {
+ await confirm(
+ `纭瑕佸皢"${row.name}"鐗╂枡鍒囨崲涓恒��${getDictLabel(
+ DICT_TYPE.COMMON_STATUS,
+ newStatus
+ )}銆戝悧锛焋
+ );
+ } catch {
+ return false;
+ }
+ await updateItemStatus(row.id!, newStatus);
+ message.success($t("ui.actionMessage.operationSuccess"));
+ return true;
}
- await updateItemStatus(row.id!, newStatus);
- message.success($t('ui.actionMessage.operationSuccess'));
- return true;
-}
-const [Grid, gridApi] = useVbenVxeGrid({
- formOptions: {
- schema: useGridFormSchema(),
- },
- gridOptions: {
- columns: useGridColumns(handleStatusChange),
- height: 'auto',
- keepSource: true,
- proxyConfig: {
- ajax: {
- query: async ({ page }, formValues) => {
- return await getItemPage({
- pageNo: page.currentPage,
- pageSize: page.pageSize,
- ...formValues,
- itemTypeId: selectedItemTypeId.value,
- });
+ const [Grid, gridApi] = useVbenVxeGrid({
+ formOptions: {
+ schema: useGridFormSchema(),
+ },
+ gridOptions: {
+ columns: useGridColumns(handleStatusChange),
+ height: "auto",
+ keepSource: true,
+ proxyConfig: {
+ ajax: {
+ query: async ({ page }, formValues) => {
+ return await getItemPage({
+ pageNo: page.currentPage,
+ pageSize: page.pageSize,
+ ...formValues,
+ itemTypeId: selectedItemTypeId.value,
+ });
+ },
},
},
- },
- rowConfig: {
- keyField: 'id',
- isHover: true,
- },
- toolbarConfig: {
- refresh: true,
- search: true,
- },
- } as VxeTableGridOptions<MesMdItemApi.Item>,
-});
+ rowConfig: {
+ keyField: "id",
+ isHover: true,
+ },
+ toolbarConfig: {
+ refresh: true,
+ search: true,
+ },
+ } as VxeTableGridOptions<MesMdItemApi.Item>,
+ });
</script>
<template>
- <Page auto-content-height><FormModal @success="handleRefresh" />
+ <Page auto-content-height>
+ <FormModal @success="handleRefresh" />
<ImportModal @success="handleRefresh" />
-
<div class="flex h-full w-full">
<Card class="mr-4 h-full w-1/6">
<MdItemTypeTree @node-click="handleTypeNodeClick" />
@@ -151,15 +158,7 @@
<div class="w-5/6">
<Grid table-title="鐗╂枡浜у搧鍒楄〃">
<template #toolbar-tools>
- <TableAction
- :actions="[
- {
- label: $t('ui.actionTitle.create', ['鐗╂枡']),
- type: 'primary',
- icon: ACTION_ICON.ADD,
- auth: ['mes:md-item:create'],
- onClick: handleCreate,
- },
+ <TableAction :actions="[
{
label: $t('ui.actionTitle.import'),
type: 'primary',
@@ -174,18 +173,17 @@
auth: ['mes:md-item:export'],
onClick: handleExport,
},
- ]"
- />
+ ]" />
</template>
<template #code="{ row }">
- <Button type="link" @click="handleDetail(row)">
+ <Button type="link"
+ @click="handleDetail(row)">
{{ row.code }}
</Button>
</template>
<template #actions="{ row }">
<div class="flex items-center justify-center">
- <TableAction
- :actions="[
+ <TableAction :actions="[
{
label: $t('common.edit'),
type: 'link',
@@ -204,13 +202,10 @@
confirm: handleDelete.bind(null, row),
},
},
- ]"
- />
- <PrinterLabel
- :biz-id="row.id"
- :biz-code="row.code"
- biz-type="ITEM"
- />
+ ]" />
+ <PrinterLabel :biz-id="row.id"
+ :biz-code="row.code"
+ biz-type="ITEM" />
</div>
</template>
</Grid>
--
Gitblit v1.9.3