feat(mes):重构 tm-tool-type-tree.vue 为 list.vue 更合理

pull/348/head
YunaiV 2026-05-24 20:00:22 +08:00
parent 48547bc53b
commit 858011bfab
6 changed files with 24 additions and 24 deletions

View File

@ -13,7 +13,7 @@ import { Button, Card, message } from 'ant-design-vue';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { deleteTool, exportTool, getToolPage } from '#/api/mes/tm/tool'; import { deleteTool, exportTool, getToolPage } from '#/api/mes/tm/tool';
import { $t } from '#/locales'; import { $t } from '#/locales';
import { TmToolTypeTree } from '#/views/mes/tm/tool/type/components'; import { TmToolTypeList } from '#/views/mes/tm/tool/type/components';
import { useGridColumns, useGridFormSchema } from './data'; import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue'; import Form from './modules/form.vue';
@ -66,8 +66,8 @@ async function handleExport() {
downloadFileFromBlobPart({ fileName: '工具.xls', source: data }); downloadFileFromBlobPart({ fileName: '工具.xls', source: data });
} }
/** 工具类型树点击 */ /** 工具类型选中变化 */
function handleToolTypeNodeClick(row: MesTmToolTypeApi.ToolType | undefined) { function handleToolTypeSelect(row: MesTmToolTypeApi.ToolType | undefined) {
selectedToolTypeId.value = row?.id; selectedToolTypeId.value = row?.id;
handleRefresh(); handleRefresh();
} }
@ -116,7 +116,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
<FormModal @success="handleRefresh" /> <FormModal @success="handleRefresh" />
<div class="flex h-full w-full"> <div class="flex h-full w-full">
<Card class="mr-4 h-full w-1/6"> <Card class="mr-4 h-full w-1/6">
<TmToolTypeTree @node-click="handleToolTypeNodeClick" /> <TmToolTypeList @select="handleToolTypeSelect" />
</Card> </Card>
<div class="w-5/6"> <div class="w-5/6">
<Grid table-title=""> <Grid table-title="">

View File

@ -1,2 +1,2 @@
export { default as TmToolTypeList } from './tm-tool-type-list.vue';
export { default as TmToolTypeSelect } from './tm-tool-type-select.vue'; export { default as TmToolTypeSelect } from './tm-tool-type-select.vue';
export { default as TmToolTypeTree } from './tm-tool-type-tree.vue';

View File

@ -11,10 +11,10 @@ import { Input } from 'ant-design-vue';
import { useVbenVxeGrid } from '#/adapter/vxe-table'; import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getToolTypeSimpleList } from '#/api/mes/tm/tool/type'; import { getToolTypeSimpleList } from '#/api/mes/tm/tool/type';
defineOptions({ name: 'TmToolTypeTree' }); defineOptions({ name: 'TmToolTypeList' });
const emit = defineEmits<{ const emit = defineEmits<{
nodeClick: [row?: MesTmToolTypeApi.ToolType]; select: [row?: MesTmToolTypeApi.ToolType];
}>(); }>();
const selectedId = ref<number>(); // const selectedId = ref<number>(); //
const filterText = ref(''); // const filterText = ref(''); //
@ -47,15 +47,15 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<MesTmToolTypeApi.ToolType>, } as VxeTableGridOptions<MesTmToolTypeApi.ToolType>,
gridEvents: { gridEvents: {
cellClick: ({ row }: { row: MesTmToolTypeApi.ToolType }) => { cellClick: ({ row }: { row: MesTmToolTypeApi.ToolType }) => {
// //
if (selectedId.value === row.id) { if (selectedId.value === row.id) {
selectedId.value = undefined; selectedId.value = undefined;
gridApi.grid.clearCurrentRow(); gridApi.grid.clearCurrentRow();
emit('nodeClick', undefined); emit('select', undefined);
return; return;
} }
selectedId.value = row.id; selectedId.value = row.id;
emit('nodeClick', row); emit('select', row);
}, },
}, },
}); });
@ -71,12 +71,12 @@ async function loadList() {
refreshGridData(); refreshGridData();
} }
/** 重置工具类型 */ /** 重置工具类型列表 */
function reset() { function reset() {
selectedId.value = undefined; selectedId.value = undefined;
filterText.value = ''; filterText.value = '';
gridApi.grid.clearCurrentRow(); gridApi.grid.clearCurrentRow();
emit('nodeClick', undefined); emit('select', undefined);
refreshGridData(); refreshGridData();
} }

View File

@ -13,7 +13,7 @@ import { ElButton, ElCard, ElLoading, ElMessage } from 'element-plus';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { deleteTool, exportTool, getToolPage } from '#/api/mes/tm/tool'; import { deleteTool, exportTool, getToolPage } from '#/api/mes/tm/tool';
import { $t } from '#/locales'; import { $t } from '#/locales';
import { TmToolTypeTree } from '#/views/mes/tm/tool/type/components'; import { TmToolTypeList } from '#/views/mes/tm/tool/type/components';
import { useGridColumns, useGridFormSchema } from './data'; import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue'; import Form from './modules/form.vue';
@ -63,8 +63,8 @@ async function handleExport() {
downloadFileFromBlobPart({ fileName: '工具.xls', source: data }); downloadFileFromBlobPart({ fileName: '工具.xls', source: data });
} }
/** 工具类型树点击 */ /** 工具类型选中变化 */
function handleToolTypeNodeClick(row: MesTmToolTypeApi.ToolType | undefined) { function handleToolTypeSelect(row: MesTmToolTypeApi.ToolType | undefined) {
selectedToolTypeId.value = row?.id; selectedToolTypeId.value = row?.id;
handleRefresh(); handleRefresh();
} }
@ -113,7 +113,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
<FormModal @success="handleRefresh" /> <FormModal @success="handleRefresh" />
<div class="flex h-full w-full"> <div class="flex h-full w-full">
<ElCard class="mr-4 h-full w-1/6"> <ElCard class="mr-4 h-full w-1/6">
<TmToolTypeTree @node-click="handleToolTypeNodeClick" /> <TmToolTypeList @select="handleToolTypeSelect" />
</ElCard> </ElCard>
<div class="w-5/6"> <div class="w-5/6">
<Grid table-title=""> <Grid table-title="">

View File

@ -1,2 +1,2 @@
export { default as TmToolTypeList } from './tm-tool-type-list.vue';
export { default as TmToolTypeSelect } from './tm-tool-type-select.vue'; export { default as TmToolTypeSelect } from './tm-tool-type-select.vue';
export { default as TmToolTypeTree } from './tm-tool-type-tree.vue';

View File

@ -11,10 +11,10 @@ import { ElInput } from 'element-plus';
import { useVbenVxeGrid } from '#/adapter/vxe-table'; import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getToolTypeSimpleList } from '#/api/mes/tm/tool/type'; import { getToolTypeSimpleList } from '#/api/mes/tm/tool/type';
defineOptions({ name: 'TmToolTypeTree' }); defineOptions({ name: 'TmToolTypeList' });
const emit = defineEmits<{ const emit = defineEmits<{
nodeClick: [row?: MesTmToolTypeApi.ToolType]; select: [row?: MesTmToolTypeApi.ToolType];
}>(); }>();
const selectedId = ref<number>(); // const selectedId = ref<number>(); //
const filterText = ref(''); // const filterText = ref(''); //
@ -47,15 +47,15 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<MesTmToolTypeApi.ToolType>, } as VxeTableGridOptions<MesTmToolTypeApi.ToolType>,
gridEvents: { gridEvents: {
cellClick: ({ row }: { row: MesTmToolTypeApi.ToolType }) => { cellClick: ({ row }: { row: MesTmToolTypeApi.ToolType }) => {
// //
if (selectedId.value === row.id) { if (selectedId.value === row.id) {
selectedId.value = undefined; selectedId.value = undefined;
gridApi.grid.clearCurrentRow(); gridApi.grid.clearCurrentRow();
emit('nodeClick', undefined); emit('select', undefined);
return; return;
} }
selectedId.value = row.id; selectedId.value = row.id;
emit('nodeClick', row); emit('select', row);
}, },
}, },
}); });
@ -71,12 +71,12 @@ async function loadList() {
refreshGridData(); refreshGridData();
} }
/** 重置工具类型 */ /** 重置工具类型列表 */
function reset() { function reset() {
selectedId.value = undefined; selectedId.value = undefined;
filterText.value = ''; filterText.value = '';
gridApi.grid.clearCurrentRow(); gridApi.grid.clearCurrentRow();
emit('nodeClick', undefined); emit('select', undefined);
refreshGridData(); refreshGridData();
} }