密炼生产计划优化

This commit is contained in:
2026-06-17 15:47:53 +08:00
parent e28352f8ea
commit 7d7198b802
44 changed files with 2074 additions and 16 deletions

View File

@@ -51,7 +51,12 @@ export const formSchema: FormSchema[] = [
},
{ label: '生产车间', field: 'productionWorkshop', component: 'Input' },
{ label: '加工段数', field: 'processSegmentCount', component: 'InputNumber', componentProps: { min: 0, precision: 0 } },
{ label: '物料编号', field: 'materialCode', component: 'Input' },
{
label: '物料编号',
field: 'materialCode',
component: 'Input',
slot: 'materialCodeSlot',
},
{ label: 'MES胶料名称', field: 'mesMaterialName', component: 'Input' },
{ label: '金蝶物料名称', field: 'kingdeeMaterialName', component: 'Input' },
{ label: '金蝶物料规格', field: 'kingdeeMaterialSpec', component: 'Input' },

View File

@@ -1,19 +1,32 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="title" width="860px" @ok="handleSubmit">
<BasicForm @register="registerForm" />
<BasicForm @register="registerForm">
<template #materialCodeSlot="{ model }">
<a-input
:value="model.materialCode"
readonly
placeholder="点击选择胶料"
@click="openMaterialPicker"
/>
</template>
</BasicForm>
</BasicModal>
<MesMaterialSelectModal @register="registerMaterialModal" @select="onMaterialSelected" />
</template>
<script lang="ts" setup>
import { computed, ref, unref } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { useModal } from '/@/components/Modal';
import { formSchema } from '../MesXslProductionOrder.data';
import { saveOrUpdate } from '../MesXslProductionOrder.api';
import MesMaterialSelectModal from '/@/views/mes/material/modules/MesMaterialSelectModal.vue';
const emit = defineEmits(['register', 'success']);
const isUpdate = ref(true);
const isDetail = ref(false);
const [registerMaterialModal, { openModal: openMaterialModal }] = useModal();
const [registerForm, { resetFields, setFieldsValue, validate, setProps }] = useForm({
labelWidth: 110,
@@ -50,4 +63,22 @@
setModalProps({ confirmLoading: false });
}
}
function openMaterialPicker() {
if (isDetail.value) {
return;
}
openMaterialModal(true, {
materialId: '',
excludeProductionFB1: true,
});
}
async function onMaterialSelected(payload: Recordable) {
const materialName = payload?.materialName || payload?.material_name || '';
await setFieldsValue({
materialCode: materialName,
mesMaterialName: materialName,
});
}
</script>