From b7eb1da8220f5b72f6891c3c6471ca386604cce4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 10:38:21 +0800
Subject: [PATCH] feat(dashboard): 添加一袋一码首页并重构相关枚举常量
---
src/views/mes/md/item/components/select-dialog.vue | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/src/views/mes/md/item/components/select-dialog.vue b/src/views/mes/md/item/components/select-dialog.vue
index 30622bf..f30fedb 100644
--- a/src/views/mes/md/item/components/select-dialog.vue
+++ b/src/views/mes/md/item/components/select-dialog.vue
@@ -5,7 +5,7 @@
import { nextTick, ref } from "vue";
- import { CommonStatusEnum } from "../../../../../packages/constants/src";
+ import { CommonStatusEnum } from "@vben/constants";
import { Card, message, Modal } from "ant-design-vue";
@@ -23,10 +23,11 @@
const open = ref(false); // 寮圭獥鏄惁鎵撳紑
const multiple = ref(true); // 鏄惁澶氶��
- const selectedRows = ref<MesMdItemApi.Item[]>([]); // 宸查�夌墿鏂欏垪琛�
+ const selectedRows = ref<MesMdItemApi.Item[]>([]); // 宸查�夊搧绉嶅垪琛�
const selectedItemTypeId = ref<number>(); // 褰撳墠绛涢�夊垎绫荤紪鍙�
- const preSelectedIds = ref<number[]>([]); // 棰勯�夌墿鏂欑紪鍙峰垪琛�
- const typeTreeRef = ref<InstanceType<typeof MdItemTypeTree>>(); // 鐗╂枡鍒嗙被鏍�
+ const preSelectedIds = ref<number[]>([]); // 棰勯�夊搧绉嶇紪鍙峰垪琛�
+ const productIds = ref<number[]>([]); // 闄愬畾鍙�夌殑鍝佺缂栧彿鍒楄〃锛堜负绌哄垯涓嶉檺鍒讹級
+ const typeTreeRef = ref<InstanceType<typeof MdItemTypeTree>>(); // 鍝佺鍒嗙被鏍�
/** 鑾峰彇褰撳墠琛ㄦ牸鏁版嵁 */
function getTableRows() {
@@ -77,13 +78,13 @@
handleConfirm();
}
- /** 鎸夊垎绫荤瓫閫夌墿鏂� */
+ /** 鎸夊垎绫荤瓫閫夊搧绉� */
function handleItemTypeNodeClick(row: MesMdItemTypeApi.ItemType | undefined) {
selectedItemTypeId.value = row?.id;
gridApi.query();
}
- /** 鍥炴樉棰勯�夌墿鏂� */
+ /** 鍥炴樉棰勯�夊搧绉� */
async function applyPreSelection() {
if (preSelectedIds.value.length === 0) {
return;
@@ -130,13 +131,20 @@
proxyConfig: {
ajax: {
query: async ({ page }, formValues) => {
- return await getItemPage({
+ const params: Record<string, unknown> = {
pageNo: page.currentPage,
pageSize: page.pageSize,
...formValues,
itemTypeId: selectedItemTypeId.value,
status: CommonStatusEnum.ENABLE,
- });
+ };
+ // 闄愬畾鍙�夊搧绉嶈寖鍥�
+ if (productIds.value.length > 0) {
+ params.pageSize = 1000;
+ params.ids = productIds.value.join(',');
+ }
+ const result = await getItemPage(params as never);
+ return result;
},
},
},
@@ -170,14 +178,15 @@
await gridApi.formApi.resetForm();
}
- /** 鎵撳紑鐗╂枡閫夋嫨寮圭獥 */
+ /** 鎵撳紑鍝佺閫夋嫨寮圭獥 */
async function openModal(
selectedIds?: number[],
- options?: { multiple?: boolean }
+ options?: { multiple?: boolean; productIds?: number[] }
) {
open.value = true;
multiple.value = options?.multiple ?? true;
preSelectedIds.value = selectedIds || [];
+ productIds.value = options?.productIds || [];
await nextTick();
gridApi.setGridOptions({
columns: useItemSelectGridColumns(multiple.value),
@@ -188,13 +197,13 @@
await applyPreSelection();
}
- /** 鍏抽棴鐗╂枡閫夋嫨寮圭獥 */
+ /** 鍏抽棴鍝佺閫夋嫨寮圭獥 */
async function closeModal() {
open.value = false;
await resetQueryState();
}
- /** 纭閫夋嫨鐗╂枡 */
+ /** 纭閫夋嫨鍝佺 */
function handleConfirm() {
const rows = multiple.value ? getMultipleSelectedRows() : selectedRows.value;
if (rows.length === 0) {
@@ -210,7 +219,7 @@
<template>
<Modal v-model:open="open"
- title="鐗╂枡浜у搧閫夋嫨"
+ title="鍝佺浜у搧閫夋嫨"
width="80%"
:destroy-on-close="true"
@ok="handleConfirm"
@@ -221,7 +230,7 @@
@node-click="handleItemTypeNodeClick" />
</Card>
<div class="w-4/5">
- <Grid table-title="鐗╂枡浜у搧鍒楄〃" />
+ <Grid table-title="鍝佺浜у搧鍒楄〃" />
</div>
</div>
</Modal>
--
Gitblit v1.9.3