spring
2026-07-03 081f242ea3c019f4eddd0fe342c5cf6189da1468
src/views/mes/process-design/process/index.vue
文件名从 src/views/mes/md/unitmeasure/index.vue 修改
@@ -1,18 +1,18 @@
<script lang="ts" setup>
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesMdUnitMeasureApi } from '#/api/mes/md/unitmeasure';
import type { MesProProcessApi } from '#/api/mes/pro/process';
import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
import { downloadFileFromBlobPart } from '../../../../packages/utils/src';
import { message } from 'ant-design-vue';
import { Button, message } from 'ant-design-vue';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
  deleteUnitMeasure,
  exportUnitMeasure,
  getUnitMeasurePage,
} from '#/api/mes/md/unitmeasure';
  deleteProcess,
  exportProcess,
  getProcessPage,
} from '#/api/mes/pro/process';
import { $t } from '#/locales';
import { useGridColumns, useGridFormSchema } from './data';
@@ -28,35 +28,40 @@
  gridApi.query();
}
/** 瀵煎嚭琛ㄦ牸 */
async function handleExport() {
  const data = await exportUnitMeasure(await gridApi.formApi.getValues());
  downloadFileFromBlobPart({ fileName: '璁¢噺鍗曚綅.xls', source: data });
}
/** 鍒涘缓璁¢噺鍗曚綅 */
/** 鍒涘缓鐢熶骇宸ュ簭 */
function handleCreate() {
  formModalApi.setData(null).open();
  formModalApi.setData({ formType: 'create' }).open();
}
/** 缂栬緫璁¢噺鍗曚綅 */
function handleEdit(row: MesMdUnitMeasureApi.UnitMeasure) {
  formModalApi.setData(row).open();
/** 缂栬緫鐢熶骇宸ュ簭 */
function handleEdit(row: MesProProcessApi.Process) {
  formModalApi.setData({ id: row.id, formType: 'update' }).open();
}
/** 鍒犻櫎璁¢噺鍗曚綅 */
async function handleDelete(row: MesMdUnitMeasureApi.UnitMeasure) {
/** 鏌ョ湅鐢熶骇宸ュ簭璇︽儏 */
function handleDetail(row: MesProProcessApi.Process) {
  formModalApi.setData({ id: row.id, formType: 'detail' }).open();
}
/** 鍒犻櫎鐢熶骇宸ュ簭 */
async function handleDelete(row: MesProProcessApi.Process) {
  const hideLoading = message.loading({
    content: $t('ui.actionMessage.deleting', [row.name]),
    duration: 0,
  });
  try {
    await deleteUnitMeasure(row.id!);
    await deleteProcess(row.id!);
    message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
    handleRefresh();
  } finally {
    hideLoading();
  }
}
/** 瀵煎嚭鐢熶骇宸ュ簭 */
async function handleExport() {
  const data = await exportProcess(await gridApi.formApi.getValues());
  downloadFileFromBlobPart({ fileName: '鐢熶骇宸ュ簭.xls', source: data });
}
const [Grid, gridApi] = useVbenVxeGrid({
@@ -70,7 +75,7 @@
    proxyConfig: {
      ajax: {
        query: async ({ page }, formValues) => {
          return await getUnitMeasurePage({
          return await getProcessPage({
            pageNo: page.currentPage,
            pageSize: page.pageSize,
            ...formValues,
@@ -79,39 +84,42 @@
      },
    },
    rowConfig: {
      keyField: 'id',
      isHover: true,
      keyField: 'id',
    },
    toolbarConfig: {
      refresh: true,
      search: true,
    },
  } as VxeTableGridOptions<MesMdUnitMeasureApi.UnitMeasure>,
  } as VxeTableGridOptions<MesProProcessApi.Process>,
});
</script>
<template>
  <Page auto-content-height><FormModal @success="handleRefresh" />
    <Grid table-title="璁¢噺鍗曚綅鍒楄〃">
    <Grid table-title="鐢熶骇宸ュ簭鍒楄〃">
      <template #toolbar-tools>
        <TableAction
          :actions="[
            {
              label: $t('ui.actionTitle.create', ['璁¢噺鍗曚綅']),
              label: $t('ui.actionTitle.create', ['宸ュ簭']),
              type: 'primary',
              icon: ACTION_ICON.ADD,
              auth: ['mes:md-unit-measure:create'],
              auth: ['mes:pro-process:create'],
              onClick: handleCreate,
            },
            {
              label: $t('ui.actionTitle.export'),
              type: 'primary',
              icon: ACTION_ICON.DOWNLOAD,
              auth: ['mes:md-unit-measure:export'],
              auth: ['mes:pro-process:export'],
              onClick: handleExport,
            },
          ]"
        />
      </template>
      <template #code="{ row }">
        <Button type="link" @click="handleDetail(row)">{{ row.code }}</Button>
      </template>
      <template #actions="{ row }">
        <TableAction
@@ -120,7 +128,7 @@
              label: $t('common.edit'),
              type: 'link',
              icon: ACTION_ICON.EDIT,
              auth: ['mes:md-unit-measure:update'],
              auth: ['mes:pro-process:update'],
              onClick: handleEdit.bind(null, row),
            },
            {
@@ -128,7 +136,7 @@
              type: 'link',
              danger: true,
              icon: ACTION_ICON.DELETE,
              auth: ['mes:md-unit-measure:delete'],
              auth: ['mes:pro-process:delete'],
              popConfirm: {
                title: $t('ui.actionMessage.deleteConfirm', [row.name]),
                confirm: handleDelete.bind(null, row),