宁夏万通需求:生产领料取消必填;设备台账批量删除;来料检验质检方案不绑定物料
1. 生产领料新增表单:生产订单、生产任务取消必填校验
2. 设备台账:列表新增勾选列与批量删除按钮(循环调用单条删除)
3. 来料检验:质检方案下拉改为直接加载全部启用的来料检验方案,不再按产品物料过滤、不再自动选中第一条
| | |
| | | export function useGridColumns(): VxeTableGridOptions<MesDvMachineryApi.Machinery>['columns'] { |
| | | return [ |
| | | { |
| | | type: 'checkbox', |
| | | width: 50, |
| | | fixed: 'left', |
| | | }, |
| | | { |
| | | field: 'code', |
| | | title: '设备编码', |
| | | minWidth: 140, |
| | |
| | | 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!); |
| | | } |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | | connectedComponent: Form, |
| | |
| | | try { |
| | | await deleteMachinery(row.id!); |
| | | message.success($t('ui.actionMessage.deleteSuccess', [row.name])); |
| | | handleRefresh(); |
| | | } finally { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | /** 批量删除设备 */ |
| | | async function handleDeleteBatch() { |
| | | const hideLoading = message.loading({ |
| | | content: $t('ui.actionMessage.deleting', [`${checkedIds.value.length} 台`]), |
| | | duration: 0, |
| | | }); |
| | | try { |
| | | await Promise.all(checkedIds.value.map((id) => deleteMachinery(id))); |
| | | message.success($t('ui.actionMessage.deleteSuccess', [''])); |
| | | checkedIds.value = []; |
| | | handleRefresh(); |
| | | } finally { |
| | | hideLoading(); |
| | |
| | | search: true, |
| | | }, |
| | | } as VxeTableGridOptions<MesDvMachineryApi.Machinery>, |
| | | gridEvents: { |
| | | checkboxAll: handleRowCheckboxChange, |
| | | checkboxChange: handleRowCheckboxChange, |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | |
| | | 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: { |
| | | title: $t('ui.actionMessage.deleteConfirm', [ |
| | | `${checkedIds.length} 台`, |
| | | ]), |
| | | confirm: handleDeleteBatch, |
| | | }, |
| | | }, |
| | | { |
| | | label: $t('ui.actionTitle.import'), |
| | | type: 'primary', |
| | | icon: ACTION_ICON.UPLOAD, |
| | |
| | | component: 'ApiSelect', |
| | | componentProps: { |
| | | api: getTemplateItemOptionList, |
| | | autoSelect: 'first', |
| | | labelField: 'templateName', |
| | | valueField: 'templateId', |
| | | placeholder: '请选择质检方案', |
| | | params: { qcType: 1 }, |
| | | disabled: formType !== 'create', |
| | | }, |
| | | rules: 'selectRequired', |
| | | dependencies: { |
| | | triggerFields: ['itemId'], |
| | | componentProps: (values) => ({ |
| | | api: getTemplateItemOptionList, |
| | | autoSelect: 'first', |
| | | labelField: 'templateName', |
| | | valueField: 'templateId', |
| | | disabled: formType !== 'create' || !values.itemId, |
| | | params: values.itemId |
| | | ? { itemId: values.itemId, qcType: 1 } |
| | | : {}, |
| | | placeholder: values.itemId ? '请选择质检方案' : '请先选择产品物料', |
| | | }), |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'vendorId', |
| | |
| | | await formApi?.setFieldValue('taskId', undefined); |
| | | }, |
| | | }, |
| | | rules: 'selectRequired', |
| | | }, |
| | | { |
| | | fieldName: 'taskId', |
| | |
| | | workOrderId: values.workOrderId, |
| | | }), |
| | | }, |
| | | rules: 'selectRequired', |
| | | }, |
| | | { |
| | | fieldName: 'workstationId', |