gaoluyang
7 天以前 e4994fccfb49ebfb108ba62cbd82aea4e004f6d8
src/views/mes/dv/machinery/index.vue
@@ -5,14 +5,15 @@
import { ref } from 'vue';
import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
import { downloadFileFromBlobPart } from '../../../../packages/utils/src';
import { Page, useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart } from '@vben/utils';
import { Button, message } from 'ant-design-vue';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
  deleteMachinery,
  deleteMachineryList,
  exportMachinery,
  getMachineryPage,
} from '#/api/mes/dv/machinery';
@@ -24,6 +25,23 @@
import ImportForm from './modules/import-form.vue';
const selectedMachineryTypeId = ref<number>(); // 选中设备类型编号
const checkedIds = ref<number[]>([]);
function handleRowCheckboxChange({
  records,
}: {
  records: MesDvMachineryApi.Machinery[];
}) {
  checkedIds.value = records.map((item) => item.id!);
}
/**
 * 表格数据重载后(查询/翻页/刷新/切换设备类型)清空勾选,
 * 避免勾选了上一页的设备后,页面已刷新但仍按旧勾选删除
 */
function handleDataChange() {
  checkedIds.value = [];
  gridApi.grid.clearCheckboxRow();
}
const [FormModal, formModalApi] = useVbenModal({
  connectedComponent: Form,
@@ -66,6 +84,26 @@
    handleRefresh();
  } finally {
    hideLoading();
  }
}
/** 批量删除设备 */
async function handleDeleteBatch() {
  if (checkedIds.value.length === 0) {
    return;
  }
  const count = checkedIds.value.length;
  const hideLoading = message.loading({
    content: $t('ui.actionMessage.deleting', [`${count} 台`]),
    duration: 0,
  });
  try {
    await deleteMachineryList(checkedIds.value);
    message.success($t('ui.actionMessage.deleteSuccess', [`${count} 台`]));
  } finally {
    hideLoading();
    handleDataChange();
    handleRefresh();
  }
}
@@ -116,6 +154,11 @@
      search: true,
    },
  } as VxeTableGridOptions<MesDvMachineryApi.Machinery>,
  gridEvents: {
    checkboxAll: handleRowCheckboxChange,
    checkboxChange: handleRowCheckboxChange,
    dataChange: handleDataChange,
  },
});
</script>
@@ -139,6 +182,21 @@
                  onClick: handleCreate,
                },
                {
                  label: $t('ui.actionTitle.deleteBatch'),
                  type: 'primary',
                  danger: true,
                  icon: ACTION_ICON.DELETE,
                  auth: ['mes:dv-machinery:delete'],
                  disabled: checkedIds.length === 0,
                  popConfirm: {
                    disabled: checkedIds.length === 0,
                    title: $t('ui.actionMessage.deleteConfirm', [
                      `${checkedIds.length} 台`,
                    ]),
                    confirm: handleDeleteBatch,
                  },
                },
                {
                  label: $t('ui.actionTitle.import'),
                  type: 'primary',
                  icon: ACTION_ICON.UPLOAD,