10 天以前 07d414cd2187ff966fe46145f0a72ff405fb4bef
refactor(mes): 重构物料管理状态变更功能

- 移除表格列中的状态变更回调参数
- 禁用状态切换控件的编辑功能
- 将状态列渲染方式从开关切换为字典显示
- 删除状态变更相关的API调用和确认弹窗逻辑
- 简化网格列配置函数的参数结构
- 调整状态列宽度以适应新的显示方式
已修改3个文件
52 ■■■■ 文件已修改
src/api/mes/md/item/index.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/md/item/data.ts 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/md/item/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mes/md/item/index.ts
@@ -54,13 +54,6 @@
  return requestClient.put('/mes/md/item/update', data);
}
/** 修改物料产品状态 */
export function updateItemStatus(id: number, status: number) {
  return requestClient.put('/mes/md/item/update-status', undefined, {
    params: { id, status },
  });
}
/** 删除物料产品 */
export function deleteItem(id: number) {
  return requestClient.delete(`/mes/md/item/delete?id=${id}`);
src/views/mes/md/item/data.ts
@@ -111,7 +111,7 @@
      component: 'RadioGroup',
      componentProps: {
        buttonStyle: 'solid',
        disabled: false,
        disabled: true,
        optionType: 'button',
        options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'),
      },
@@ -257,12 +257,7 @@
}
/** 列表的字段 */
export function useGridColumns(
  onStatusChange?: (
    newStatus: number,
    row: MesMdItemApi.Item,
  ) => PromiseLike<boolean | undefined>,
): VxeTableGridOptions<MesMdItemApi.Item>['columns'] {
export function useGridColumns(): VxeTableGridOptions<MesMdItemApi.Item>['columns'] {
  return [
    {
      field: 'code',
@@ -315,15 +310,11 @@
    {
      field: 'status',
      title: '状态',
      width: 120,
      width: 100,
      align: 'center',
      cellRender: {
        attrs: { beforeChange: onStatusChange },
        name: 'CellSwitch',
        props: {
          checkedValue: CommonStatusEnum.ENABLE,
          unCheckedValue: CommonStatusEnum.DISABLE,
        },
        name: 'CellDict',
        props: { type: DICT_TYPE.COMMON_STATUS },
      },
    },
    {
src/views/mes/md/item/index.vue
@@ -6,12 +6,9 @@
  import { ref } from "vue";
  import {
    confirm,
    Page,
    useVbenModal,
  } from "@vben/common-ui";
  import { DICT_TYPE } from "@vben/constants";
  import { getDictLabel } from "@vben/hooks";
  import { downloadFileFromBlobPart } from "@vben/utils";
  import { Button, Card, message } from "ant-design-vue";
@@ -21,7 +18,6 @@
    deleteItem,
    exportItem,
    getItemPage,
    updateItemStatus,
  } from "#/api/mes/md/item";
  import { $t } from "#/locales";
  import { MdItemTypeTree } from "#/views/mes/md/item/type/components";
@@ -95,32 +91,12 @@
    handleRefresh();
  }
  /** 更新物料状态 */
  async function handleStatusChange(
    newStatus: number,
    row: MesMdItemApi.Item
  ): Promise<boolean | undefined> {
    try {
      await confirm(
        `确认要将"${row.name}"物料切换为【${getDictLabel(
          DICT_TYPE.COMMON_STATUS,
          newStatus
        )}】吗?`
      );
    } catch {
      return false;
    }
    await updateItemStatus(row.id!, newStatus);
    message.success($t("ui.actionMessage.operationSuccess"));
    return true;
  }
  const [Grid, gridApi] = useVbenVxeGrid({
    formOptions: {
      schema: useGridFormSchema(),
    },
    gridOptions: {
      columns: useGridColumns(handleStatusChange),
      columns: useGridColumns(),
      height: "auto",
      keepSource: true,
      proxyConfig: {