gaoluyang
2026-10-16 268b3e77f3beaba03a1273d643d8aa4fa5db1c10
src/views/mes/tm/tool/index.vue
@@ -11,9 +11,17 @@
import { Button, Card, message } from 'ant-design-vue';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { deleteTool, exportTool, getToolPage } from '#/api/mes/tm/tool';
import {
  deleteTool,
  exportTool,
  getToolPage,
  importTool,
  importToolTemplate,
} from '#/api/mes/tm/tool';
import { $t } from '#/locales';
import { TmToolTypeList } from '#/views/mes/tm/tool/type/components';
import ImportModalComponent from '#/components/import-modal';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
@@ -25,9 +33,26 @@
  destroyOnClose: true,
});
const [ImportModal, importModalApi] = useVbenModal({
  connectedComponent: ImportModalComponent,
  destroyOnClose: true,
});
/** 刷新表格 */
function handleRefresh() {
  gridApi.query();
}
/** 导入工具 */
function handleImport() {
  importModalApi
    .setData({
      title: $t('ui.actionTitle.import', ['工具']),
      fileName: '工具导入模板.xls',
      importFn: importTool,
      templateFn: importToolTemplate,
    })
    .open();
}
/** 创建工具 */
@@ -106,6 +131,7 @@
<template>
  <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">
        <TmToolTypeList @select="handleToolTypeSelect" />
@@ -129,6 +155,13 @@
                  auth: ['mes:tm-tool:export'],
                  onClick: handleExport,
                },
                {
                  label: $t('ui.actionTitle.import', ['工具']),
                  type: 'primary',
                  icon: ACTION_ICON.UPLOAD,
                  auth: ['mes:tm-tool:import'],
                  onClick: handleImport,
                },
              ]"
            />
          </template>