refactor(mes): 重构物料管理状态变更功能
- 移除表格列中的状态变更回调参数
- 禁用状态切换控件的编辑功能
- 将状态列渲染方式从开关切换为字典显示
- 删除状态变更相关的API调用和确认弹窗逻辑
- 简化网格列配置函数的参数结构
- 调整状态列宽度以适应新的显示方式
| | |
| | | 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}`); |
| | |
| | | component: 'RadioGroup', |
| | | componentProps: { |
| | | buttonStyle: 'solid', |
| | | disabled: false, |
| | | disabled: true, |
| | | optionType: 'button', |
| | | options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), |
| | | }, |
| | |
| | | } |
| | | |
| | | /** 列表的字段 */ |
| | | 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', |
| | |
| | | { |
| | | 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 }, |
| | | }, |
| | | }, |
| | | { |
| | |
| | | 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"; |
| | |
| | | deleteItem, |
| | | exportItem, |
| | | getItemPage, |
| | | updateItemStatus, |
| | | } from "#/api/mes/md/item"; |
| | | import { $t } from "#/locales"; |
| | | import { MdItemTypeTree } from "#/views/mes/md/item/type/components"; |
| | |
| | | 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: { |