liu
3 天以前 f11bd0d8d9c1190340a445a67df9e43cdbde0a3e
src/views/mes/process-design/parameter/index.vue
@@ -2,7 +2,7 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesPdParameterApi } from '#/api/mes/pro/processdesign/parameter';
import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
@@ -10,20 +10,35 @@
import {
  deleteParameter,
  getParameterPage,
  exportParameterExcel,
} from '#/api/mes/pro/processdesign/parameter';
import { $t } from '#/locales';
import { downloadFileFromBlobPart } from '@vben/utils';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
import ProcessLinkDialog from './modules/process-link-dialog.vue';
const [FormModal, formModalApi] = useVbenModal({
  connectedComponent: Form,
  destroyOnClose: true,
});
const [ProcessLinkModal, processLinkModalApi] = useVbenModal({
  connectedComponent: ProcessLinkDialog,
  destroyOnClose: true,
});
/** 刷新表格 */
function handleRefresh() {
  gridApi.query();
}
/** 查看该参数被哪些工序绑定 */
function handleViewProcessLink(row: MesPdParameterApi.Parameter) {
  processLinkModalApi
    .setData({ paramId: row.id, paramName: row.paramName })
    .open();
}
/** 创建工艺参数 */
@@ -44,16 +59,23 @@
/** 删除工艺参数 */
async function handleDelete(row: MesPdParameterApi.Parameter) {
  const hideLoading = message.loading({
    content: $t('ui.actionMessage.deleting', [row.name]),
    content: $t('ui.actionMessage.deleting', [row.paramName]),
    duration: 0,
  });
  try {
    await deleteParameter(row.id!);
    message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
    message.success($t('ui.actionMessage.deleteSuccess', [row.paramName]));
    handleRefresh();
  } finally {
    hideLoading();
  }
}
/** 导出工艺参数 */
async function handleExport() {
  const formValues = await gridApi.formApi.getValues();
  const data = await exportParameterExcel(formValues);
  downloadFileFromBlobPart({ fileName: '工艺参数.xlsx', source: data });
}
const [Grid, gridApi] = useVbenVxeGrid({
@@ -89,6 +111,7 @@
<template>
  <Page auto-content-height><FormModal @success="handleRefresh" />
    <ProcessLinkModal />
    <Grid table-title="工艺参数列表">
      <template #toolbar-tools>
        <TableAction
@@ -100,15 +123,29 @@
              auth: ['mes:pd:parameter:create'],
              onClick: handleCreate,
            },
            {
              label: $t('ui.actionTitle.export'),
              type: 'primary',
              icon: ACTION_ICON.DOWNLOAD,
              auth: ['mes:pd:parameter:export'],
              onClick: handleExport,
            },
          ]"
        />
      </template>
      <template #code="{ row }">
        <Button type="link" @click="handleDetail(row)">{{ row.code }}</Button>
      <template #paramCode="{ row }">
        <Button type="link" @click="handleDetail(row)">{{ row.paramCode }}</Button>
      </template>
      <template #actions="{ row }">
        <TableAction
          :actions="[
            {
              label: '关联工序',
              type: 'link',
              icon: ACTION_ICON.LINK,
              auth: ['mes:pd:parameter:update'],
              onClick: handleViewProcessLink.bind(null, row),
            },
            {
              label: $t('common.edit'),
              type: 'link',
@@ -123,7 +160,7 @@
              icon: ACTION_ICON.DELETE,
              auth: ['mes:pd:parameter:delete'],
              popConfirm: {
                title: $t('ui.actionMessage.deleteConfirm', [row.name]),
                title: $t('ui.actionMessage.deleteConfirm', [row.paramName]),
                confirm: handleDelete.bind(null, row),
              },
            },