| | |
| | | v-model="form.npsNo" |
| | | class="form-input" /> |
| | | </el-form-item> |
| | | <el-form-item label="班组" |
| | | prop="teamName" |
| | | required |
| | | class="form-item"> |
| | | <el-select v-model="form.teamName" |
| | | placeholder="请选择班组" |
| | | class="form-select"> |
| | | <el-option label="白班" |
| | | value="白班" /> |
| | | <el-option label="夜班" |
| | | value="夜班" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="产品编码" |
| | | prop="materialCode" |
| | | class="form-item"> |
| | |
| | | v-model="form.specification" |
| | | class="form-input" /> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" |
| | | prop="createTime" |
| | | class="form-item"> |
| | | <el-date-picker disabled |
| | | v-model="form.createTime" |
| | | type="datetime" |
| | | placeholder="请选择创建时间" |
| | | class="form-input" /> |
| | | </el-form-item> |
| | | <el-form-item label="班组" |
| | | prop="teamName" |
| | | required |
| | | class="form-item"> |
| | | <el-select v-model="form.teamName" |
| | | placeholder="请选择班组" |
| | | class="form-select"> |
| | | <el-option label="白班" |
| | | value="白班" /> |
| | | <el-option label="夜班" |
| | | value="夜班" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="创建人" |
| | | prop="createBy" |
| | | required |
| | |
| | | :label="user.nickName || user.userName" |
| | | :value="user.nickName || user.userName" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" |
| | | prop="createTime" |
| | | class="form-item"> |
| | | <el-date-picker disabled |
| | | v-model="form.createTime" |
| | | type="datetime" |
| | | placeholder="请选择创建时间" |
| | | class="form-input" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | |
| | | @click="handleProcessClick(process.processId)"> |
| | | <span class="process-name">{{ process.processName }}</span> |
| | | <span class="process-badge" |
| | | v-if="getProcessInfo(parseInt(process.processId)).postPersonnel"> |
| | | {{ getProcessInfo(parseInt(process.processId)).postPersonnel }} |
| | | v-if="getProcessInfo(parseInt(process.processId)).postName"> |
| | | {{ getProcessInfo(parseInt(process.processId)).postName }} |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="form-grid"> |
| | | <el-form-item label="岗位人员" |
| | | class="form-item"> |
| | | <el-select v-model="getProcessInfo(parseInt(activeProcessId)).postPersonnel" |
| | | <el-select v-model="getProcessInfo(parseInt(activeProcessId)).postName" |
| | | placeholder="请选择岗位人员" |
| | | class="form-select" |
| | | :loading="userLoading"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="设备异常情况" |
| | | class="form-item"> |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).equipmentAbnormality" |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).equipmentMalfunction" |
| | | placeholder="请输入设备异常情况" |
| | | type="textarea" |
| | | :rows="2" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="当班设备处置" |
| | | class="form-item"> |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).equipmentHandling" |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).equipmentDisposal" |
| | | placeholder="请输入当班设备处置" |
| | | type="textarea" |
| | | :rows="2" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="工艺人员交待" |
| | | class="form-item"> |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).processInstructions" |
| | | <el-input v-model="getProcessInfo(parseInt(activeProcessId)).processExplained" |
| | | placeholder="请输入工艺人员交待" |
| | | type="textarea" |
| | | :rows="2" |
| | |
| | | :label="`${item.productName} ${item.model}`" |
| | | class="form-item"> |
| | | <div class="consumable-input-group"> |
| | | <el-input-number v-model="getProcessInfo(parseInt(activeProcessId)).consumables[item.id]" |
| | | <el-input-number v-model="getProcessInfo(parseInt(activeProcessId)).consumables[item.bomId]" |
| | | :min="0" |
| | | :model-value="getConsumableValue(parseInt(activeProcessId), item.id)" |
| | | @change="val => getProcessInfo(parseInt(activeProcessId)).consumables[item.id] = val" |
| | | :model-value="getConsumableValue(parseInt(activeProcessId), item.bomId)" |
| | | @change="val => getProcessInfo(parseInt(activeProcessId)).consumables[item.bomId] = val" |
| | | class="consumable-input" /> |
| | | <span class="consumable-unit">{{ item.unit }}</span> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="card-body"> |
| | | <div class="param-grid"> |
| | | <el-form-item v-for="param in params" |
| | | <el-form-item v-for="param in params[activeProcessId] || []" |
| | | :key="param.id" |
| | | :label="param.paramName" |
| | | :label-width="120" |
| | | :prop="`paramGroups.${activeProcessId}.${index}.${param.id}`" |
| | | class="param-item"> |
| | | <template v-if="param.paramType == '1'"> |
| | | <!-- 数字类型 --> |
| | | <div class="param-input-group"> |
| | | <!-- :precision="getPrecision(param.paramFormat)" --> |
| | | <el-input-number v-model="form.paramGroups[activeProcessId][index][param.id]" |
| | | controls-position="right" |
| | | :precision="getPrecision(param.paramFormat)" |
| | | :key="param.id" |
| | | class="param-input" /> |
| | | <span v-if="param.unit && param.unit != '/'" |
| | | class="param-unit"> |
| | |
| | | <!-- 文本类型 --> |
| | | <div class="param-input-group"> |
| | | <el-input v-model="form.paramGroups[activeProcessId][index][param.id]" |
| | | :key="param.id" |
| | | class="param-input" /> |
| | | <span v-if="param.unit && param.unit != '/'" |
| | | class="param-unit"> |
| | |
| | | <div class="param-input-group"> |
| | | <el-select v-model="form.paramGroups[activeProcessId][index][param.id]" |
| | | placeholder="请选择" |
| | | :key="param.id" |
| | | class="param-select" |
| | | style="width: 100%"> |
| | | <el-option v-for="option in dictOptions[param.paramFormat] || []" |
| | |
| | | <div class="param-input-group"> |
| | | <el-date-picker :value-format="param.paramFormat" |
| | | :format="param.paramFormat" |
| | | :key="param.id" |
| | | :type="param.paramFormat=='YYYY-MM-DD'?'date':'datetime'" |
| | | v-model="form.paramGroups[activeProcessId][index][param.id]" |
| | | class="param-input" /> |
| | |
| | | <!-- 其他类型 --> |
| | | <div class="param-input-group"> |
| | | <el-input v-model="form.paramGroups[activeProcessId][index][param.id]" |
| | | :key="param.id" |
| | | class="param-input" /> |
| | | <span v-if="param.unit && param.unit != '/'" |
| | | class="param-unit"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <!-- 参数列 --> |
| | | <el-table-column v-for="param in params" |
| | | <el-table-column v-for="param in params[activeProcessId] || []" |
| | | :key="param.id" |
| | | :label="param.paramName" |
| | | min-width="200"> |
| | | :min-width="200"> |
| | | <template #header> |
| | | <span>{{ param.paramName }}</span> |
| | | </template> |
| | | <template #default="{ row }"> |
| | | <template v-if="param.paramType == '1'"> |
| | | <!-- 数字类型 --> |
| | | <!-- :precision="getPrecision(param.paramFormat)" --> |
| | | <el-input-number v-model="row[param.id]" |
| | | controls-position="right" |
| | | :precision="getPrecision(param.paramFormat)" |
| | | :key="param.id" |
| | | class="table-input" /> |
| | | </template> |
| | | <template v-else-if="param.paramType == '2'"> |
| | | <!-- 文本类型 --> |
| | | <el-input v-model="row[param.id]" |
| | | :key="param.id" |
| | | class="table-input" /> |
| | | </template> |
| | | <template v-else-if="param.paramType == '3'"> |
| | | <!-- 字典类型 --> |
| | | <el-select v-model="row[param.id]" |
| | | placeholder="请选择" |
| | | :key="param.id" |
| | | class="table-select"> |
| | | <el-option v-for="option in dictOptions[param.paramFormat] || []" |
| | | :key="option.dictValue" |
| | |
| | | <!-- 日期类型 --> |
| | | <el-date-picker :value-format="param.paramFormat" |
| | | :format="param.paramFormat" |
| | | :key="param.id" |
| | | width="100%" |
| | | :type="param.paramFormat=='YYYY-MM-DD'?'date':'datetime'" |
| | | v-model="row[param.id]" |
| | |
| | | <el-input-number v-model="form.outputVolume" |
| | | :min="0" |
| | | :precision="2" |
| | | @change="handleVolumeChange" |
| | | class="volume-input" /> |
| | | <span class="volume-unit">方</span> |
| | | </div> |
| | |
| | | <el-input-number v-model="form.unqualifiedVolume" |
| | | :min="0" |
| | | :precision="2" |
| | | @change="handleVolumeChange" |
| | | class="volume-input" /> |
| | | <span class="volume-unit">方</span> |
| | | </div> |
| | |
| | | import { useRouter, useRoute } from "vue-router"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import { productOrderListPage } from "@/api/productionManagement/productionOrder.js"; |
| | | import { productionRecordAdd } from "@/api/productionManagement/productProcessRoute.js"; |
| | | import { |
| | | productionRecordAdd, |
| | | productionRecordAddSubmit, |
| | | productionRecordEditSubmit, |
| | | } from "@/api/productionManagement/productProcessRoute.js"; |
| | | import { userListNoPage } from "@/api/system/user.js"; |
| | | import { getInfo } from "@/api/login.js"; |
| | | import { |
| | | Check, |
| | | Close, |
| | | Delete, |
| | | Plus, |
| | | ArrowLeft, |
| | | ArrowRight, |
| | | Loading, |
| | | Upload, |
| | | } from "@element-plus/icons-vue"; |
| | | import request from "@/utils/request"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import dayjs from "dayjs"; |
| | | |
| | | const router = useRouter(); |
| | | |
| | |
| | | const route = useRoute(); |
| | | const data = route.query.data ? JSON.parse(route.query.data) : {}; |
| | | |
| | | const dialogTitle = computed(() => (data.id ? "编辑报工" : "新增报工")); |
| | | const dialogTitle = computed(() => |
| | | form.type === "edit" ? "编辑报工" : "新增报工" |
| | | ); |
| | | |
| | | const formRef = ref(null); |
| | | const isSubmitting = ref(false); |
| | |
| | | const useTableView = ref(false); // 控制是否使用表格视图 |
| | | |
| | | const form = reactive({ |
| | | type: data.type || "add", |
| | | id: data.id || undefined, |
| | | orderId: data.orderId || "", |
| | | orderId: data.productOrderId || "", |
| | | npsNo: data.npsNo || "", |
| | | teamName: data.teamName || "", |
| | | teamName: data.schedule || data.teamName || "白班", |
| | | materialCode: data.materialCode || "", |
| | | productName: data.productName || "", |
| | | specification: data.specification || "", |
| | | outputVolume: data.outputVolume || 0, |
| | | unqualifiedVolume: data.unqualifiedVolume || 0, |
| | | completedVolume: data.completedVolume || 0, |
| | | createBy: data.createBy || "当前登录人", |
| | | specification: data.productModelName || "", |
| | | outputVolume: data.totalQuantity || data.outputVolume || 0, |
| | | unqualifiedVolume: data.scrapQty || data.unqualifiedQuantity || 0, |
| | | completedVolume: data.quantity || data.completedVolume || 0, |
| | | createBy: data.createBy || data.postName || "当前登录人", |
| | | createTime: data.createTime || new Date(), |
| | | paramGroups: data.paramGroups || {}, // 存储每个工序的参数组 |
| | | processInfo: data.processInfo || {}, // 存储每个工序的基本信息 |
| | | productionProductRouteItemDtoList: |
| | | data.productionProductRouteItemDtoList || [], // 工序信息 |
| | | }); |
| | | |
| | | const rules = { |
| | |
| | | .finally(() => { |
| | | orderLoading.value = false; |
| | | }); |
| | | }; |
| | | const handleVolumeChange = () => { |
| | | form.completedVolume = form.outputVolume - form.unqualifiedVolume; |
| | | }; |
| | | |
| | | // 处理生产订单选择 |
| | |
| | | processList.value.forEach(process => { |
| | | form.processStructures[process.processId] = |
| | | process.orderStructureVos || []; |
| | | loadParams(process.processId, orderId); |
| | | }); |
| | | // 如果有工序,默认选择第一个 |
| | | if (processList.value.length > 0) { |
| | |
| | | processId.value = firstProcess.processId; |
| | | form.processId = firstProcess.processId; |
| | | // 加载第一个工序的参数 |
| | | loadParams(firstProcess.processId, orderId); |
| | | // loadParams(firstProcess.processId, orderId); |
| | | } |
| | | } |
| | | }) |
| | |
| | | } |
| | | if (!form.processInfo[processId]) { |
| | | form.processInfo[processId] = { |
| | | postPersonnel: "", |
| | | equipmentAbnormality: "", |
| | | equipmentHandling: "", |
| | | processInstructions: "", |
| | | postName: "", |
| | | equipmentMalfunction: "", |
| | | equipmentDisposal: "", |
| | | processExplained: "", |
| | | files: [], |
| | | consumables: {}, |
| | | delFileIds: [], // 存储要删除的文件id |
| | | }; |
| | | } |
| | | return form.processInfo[processId]; |
| | |
| | | }; |
| | | |
| | | // 获取消耗品数量,默认为0 |
| | | const getConsumableValue = (processId, itemId) => { |
| | | const getConsumableValue = (processId, bomId) => { |
| | | const processInfo = getProcessInfo(processId); |
| | | if (!processInfo.consumables[itemId]) { |
| | | processInfo.consumables[itemId] = 0; |
| | | if (!processInfo.consumables[bomId]) { |
| | | processInfo.consumables[bomId] = 0; |
| | | } |
| | | return processInfo.consumables[itemId]; |
| | | return processInfo.consumables[bomId]; |
| | | }; |
| | | |
| | | // 处理文件预览 |
| | |
| | | const processId = parseInt(activeProcessId.value); |
| | | if (processId) { |
| | | const processInfo = getProcessInfo(processId); |
| | | // 记录被删除的文件id(只有编辑模式下的现有文件才需要记录) |
| | | if (file.uid && !file.tempId) { |
| | | processInfo.delFileIds.push(file.uid); |
| | | } |
| | | processInfo.files = fileList; |
| | | } |
| | | }; |
| | | |
| | | // 处理文件变更 |
| | | const handleFileChange = (file, fileList) => { |
| | | const handleFileChange = async (file, fileList) => { |
| | | const formData = new FormData(); |
| | | formData.append("file", file.raw); |
| | | |
| | | const uploadRes = await request({ |
| | | url: "/file/upload", |
| | | method: "post", |
| | | data: formData, |
| | | headers: { |
| | | "Content-Type": "multipart/form-data", |
| | | Authorization: `Bearer ${getToken()}`, |
| | | }, |
| | | }); |
| | | if (uploadRes.code === 200) { |
| | | const tempId = uploadRes.data.tempId; |
| | | // 将tempId存储到file对象中 |
| | | file.tempId = tempId; |
| | | } |
| | | const processId = parseInt(activeProcessId.value); |
| | | if (processId) { |
| | | const processInfo = getProcessInfo(processId); |
| | |
| | | p => p.processId === parseInt(processId) |
| | | ); |
| | | if (process) { |
| | | params.value = process.orderRouteItemParaVos || []; |
| | | params.value[processId] = process.orderRouteItemParaVos || []; |
| | | |
| | | // 初始化参数组 |
| | | if (!form.paramGroups[processId]) { |
| | | form.paramGroups[processId] = []; |
| | | } |
| | | |
| | | // 检查是否有编辑数据 |
| | | if ( |
| | | form.productionProductRouteItemDtoList && |
| | | form.productionProductRouteItemDtoList.length > 0 |
| | | ) { |
| | | const editProcess = form.productionProductRouteItemDtoList.find( |
| | | p => p.processId === parseInt(processId) |
| | | ); |
| | | if (editProcess && editProcess.productionProductRouteItemParamDtoList) { |
| | | // 按sourceSort分组参数 |
| | | const paramGroups = {}; |
| | | editProcess.productionProductRouteItemParamDtoList.forEach(param => { |
| | | if (!param.bomId) { |
| | | // 只处理非BOM参数 |
| | | const sort = param.sourceSort || 1; |
| | | if (!paramGroups[sort]) { |
| | | paramGroups[sort] = {}; |
| | | } |
| | | paramGroups[sort][param.orderItemParamId] = param.paramValue || ""; |
| | | // 如果是字典类型参数,获取字典数据 |
| | | if (param.paramType == "3" && param.paramFormat) { |
| | | getDictOptions(param.paramFormat); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 转换为数组 |
| | | form.paramGroups[processId] = Object.values(paramGroups); |
| | | |
| | | // 初始化工序基本信息 |
| | | if (editProcess) { |
| | | const processInfo = getProcessInfo(parseInt(processId)); |
| | | processInfo.postName = editProcess.postName || ""; |
| | | processInfo.equipmentMalfunction = |
| | | editProcess.equipmentMalfunction || ""; |
| | | processInfo.equipmentDisposal = editProcess.equipmentDisposal || ""; |
| | | processInfo.id = editProcess.id || ""; |
| | | processInfo.processExplained = editProcess.processExplained || ""; |
| | | // 处理文件 |
| | | if (editProcess.fileList) { |
| | | processInfo.files = editProcess.fileList.map(file => ({ |
| | | name: file.fileName, |
| | | url: file.fileUrl, |
| | | uid: file.id, |
| | | })); |
| | | } |
| | | // 处理BOM信息 |
| | | if (editProcess.productionProductRouteItemParamDtoList) { |
| | | editProcess.productionProductRouteItemParamDtoList.forEach( |
| | | param => { |
| | | if (param.bomId) { |
| | | // 使用bomId作为key,因为getProcessStructures返回的item.id是bomId |
| | | processInfo.consumables[param.bomId] = |
| | | param.productValue || 0; |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 如果没有参数组,添加一个默认参数组 |
| | | if (form.paramGroups[processId].length === 0) { |
| | | const defaultGroup = {}; |
| | | for (const param of params.value) { |
| | | for (const param of params.value[processId]) { |
| | | defaultGroup[param.id] = param.standardValue || ""; |
| | | // 如果是字典类型参数,获取字典数据 |
| | | if (param.paramType == "3" && param.paramFormat) { |
| | |
| | | } |
| | | }); |
| | | } else if (activeStep.value === 2) { |
| | | // 第三步:直接进入第四步 |
| | | activeStep.value = 3; |
| | | } |
| | | }; |
| | |
| | | formRef.value.validate(valid => { |
| | | if (valid) { |
| | | isSubmitting.value = true; |
| | | // 这里可以调用API进行提交 |
| | | setTimeout(() => { |
| | | ElMessage.success(data.id ? "修改成功" : "新增成功"); |
| | | router.back(); |
| | | isSubmitting.value = false; |
| | | }, 1000); |
| | | |
| | | // 构建请求参数 |
| | | const order = orderList.value.find(item => item.id === form.orderId); |
| | | const submitParams = { |
| | | productOrderId: form.orderId, |
| | | productId: order ? order.productId : null, |
| | | postName: form.createBy, |
| | | schedule: form.teamName, |
| | | // reportingTime: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"), |
| | | qualifiedQuantity: form.outputVolume - form.unqualifiedVolume, |
| | | unqualifiedQuantity: form.unqualifiedVolume, |
| | | quantity: form.outputVolume, |
| | | productionProductRouteItemDtoList: processList.value.map(process => { |
| | | const processInfo = getProcessInfo(process.processId); |
| | | const paramGroups = form.paramGroups[process.processId] || []; |
| | | const productionProductRouteItemParamDtoList = []; |
| | | // 添加参数组 |
| | | paramGroups.forEach((group, index) => { |
| | | Object.entries(group).forEach(([paramId, value]) => { |
| | | // 从当前工序的参数列表中查找参数 |
| | | const processData = processList.value.find( |
| | | p => p.processId === process.processId |
| | | ); |
| | | const param = processData |
| | | ? processData.orderRouteItemParaVos.find( |
| | | p => p.id === parseInt(paramId) |
| | | ) |
| | | : null; |
| | | if (param) { |
| | | console.log(param, "param"); |
| | | productionProductRouteItemParamDtoList.push({ |
| | | id: parseInt(paramId), |
| | | // standardValue: param.standardValue, |
| | | // minValue: param.minValue, |
| | | // maxValue: param.maxValue, |
| | | productId: param.productId, |
| | | paramValue: value, |
| | | // productValue: value, |
| | | sourceSort: index + 1, |
| | | unit: param.unit, |
| | | // isRequired: param.isRequired, |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | // 添加BOM信息 |
| | | const structures = getProcessStructures(process.processId); |
| | | structures.forEach(structure => { |
| | | const consumableValue = getConsumableValue( |
| | | process.processId, |
| | | structure.bomId |
| | | ); |
| | | if (consumableValue > 0) { |
| | | productionProductRouteItemParamDtoList.push({ |
| | | productId: structure.productModelId, |
| | | bomId: structure.bomId, |
| | | id: null, |
| | | productValue: consumableValue, |
| | | unit: structure.unit, |
| | | }); |
| | | } |
| | | }); |
| | | const fileIds = []; |
| | | processInfo.files.forEach(file => { |
| | | if (file.tempId) { |
| | | fileIds.push(file.tempId); |
| | | } |
| | | }); |
| | | console.log(processInfo, "processInfo"); |
| | | return { |
| | | postName: processInfo.postName, |
| | | id: processInfo.id, |
| | | equipmentMalfunction: processInfo.equipmentMalfunction, |
| | | equipmentDisposal: processInfo.equipmentDisposal, |
| | | processExplained: processInfo.processExplained, |
| | | processId: process.processId, |
| | | delFileIds: [...(processInfo.delFileIds || [])], |
| | | productionProductRouteItemParamDtoList, |
| | | // files: processInfo.files.map(file => file.tempId || file.uid), |
| | | files: fileIds, |
| | | }; |
| | | }), |
| | | }; |
| | | console.log(submitParams, "submitParams"); |
| | | isSubmitting.value = false; |
| | | // 调用API进行提交 |
| | | if (form.type === "edit") { |
| | | submitParams.productMainId = form.id; |
| | | productionRecordEditSubmit(submitParams) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | ElMessage.success(form.type === "edit" ? "修改成功" : "新增成功"); |
| | | router.back(); |
| | | } else { |
| | | ElMessage.error(res.msg || "提交失败"); |
| | | } |
| | | }) |
| | | .catch(error => { |
| | | ElMessage.error("提交失败,请稍后重试"); |
| | | console.error("提交错误:", error); |
| | | }) |
| | | .finally(() => { |
| | | isSubmitting.value = false; |
| | | }); |
| | | } else { |
| | | productionRecordAddSubmit(submitParams) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | ElMessage.success(form.type === "edit" ? "修改成功" : "新增成功"); |
| | | router.back(); |
| | | } else { |
| | | ElMessage.error(res.msg || "提交失败"); |
| | | } |
| | | }) |
| | | .catch(error => { |
| | | ElMessage.error("提交失败,请稍后重试"); |
| | | console.error("提交错误:", error); |
| | | }) |
| | | .finally(() => { |
| | | isSubmitting.value = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }; |
| | |
| | | } |
| | | // 创建一个新的参数组,使用默认值 |
| | | const newGroup = {}; |
| | | params.value.forEach(param => { |
| | | newGroup[param.id] = param.standardValue || ""; |
| | | }); |
| | | // 从当前工序的参数列表中获取参数信息 |
| | | const process = processList.value.find( |
| | | p => p.processId === parseInt(processId) |
| | | ); |
| | | if (process) { |
| | | const processParams = process.orderRouteItemParaVos || []; |
| | | processParams.forEach(param => { |
| | | newGroup[param.id] = param.standardValue || ""; |
| | | }); |
| | | } |
| | | form.paramGroups[processId].push(newGroup); |
| | | }; |
| | | |
| | |
| | | loadUsers(); |
| | | getCurrentUser(); |
| | | |
| | | if (data.id) { |
| | | if (form.type === "edit") { |
| | | // 编辑时设置表单数据 |
| | | Object.assign(form, data); |
| | | // 设置orderId |
| | | orderId.value = data.orderId || ""; |
| | | orderId.value = form.orderId || ""; |
| | | // 如果有订单ID,加载工序和参数 |
| | | if (data.orderId) { |
| | | if (form.orderId) { |
| | | // 模拟选择订单的操作,触发数据加载 |
| | | setTimeout(() => { |
| | | handleOrderChange(data.orderId); |
| | | handleOrderChange(form.orderId); |
| | | }, 100); |
| | | } |
| | | } else { |