| | |
| | | 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> |
| | |
| | | :key="param.id" |
| | | :label="param.paramName" |
| | | :label-width="120" |
| | | :required="param.isRequired" |
| | | :prop="`paramGroups.${activeProcessId}.${index}.${param.id}`" |
| | | :rules="param.isRequired ? [{ required: true, message: `请输入${param.paramName}`, trigger: 'blur' }] : []" |
| | | class="param-item"> |
| | | <template v-if="param.paramType == '1'"> |
| | | <!-- 数字类型 --> |
| | |
| | | <!-- 参数列 --> |
| | | <el-table-column v-for="param in params" |
| | | :key="param.id" |
| | | :label="param.paramName" |
| | | min-width="200"> |
| | | :min-width="200"> |
| | | <template #header> |
| | | <span :class="{ 'required-label': param.isRequired }">{{ param.paramName }}</span> |
| | | </template> |
| | | <template #default="{ row }"> |
| | | <template v-if="param.paramType == '1'"> |
| | | <!-- 数字类型 --> |
| | |
| | | <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> |
| | |
| | | id: data.id || undefined, |
| | | orderId: data.orderId || "", |
| | | npsNo: data.npsNo || "", |
| | | teamName: data.teamName || "", |
| | | teamName: data.teamName || "白班", |
| | | materialCode: data.materialCode || "", |
| | | productName: data.productName || "", |
| | | specification: data.specification || "", |
| | |
| | | .finally(() => { |
| | | orderLoading.value = false; |
| | | }); |
| | | }; |
| | | const handleVolumeChange = () => { |
| | | form.completedVolume = form.outputVolume - form.unqualifiedVolume; |
| | | }; |
| | | |
| | | // 处理生产订单选择 |
| | |
| | | } |
| | | }); |
| | | } else if (activeStep.value === 2) { |
| | | // 第三步:直接进入第四步 |
| | | // 第三步:验证参数必填项 |
| | | let isValid = true; |
| | | let errorMessage = ""; |
| | | |
| | | // 遍历所有工序 |
| | | for (const process of processList.value) { |
| | | const processId = process.processId; |
| | | const paramGroups = form.paramGroups[processId] || []; |
| | | const processParams = process.orderRouteItemParaVos || []; |
| | | |
| | | // 获取必填参数 |
| | | const requiredParams = processParams.filter(p => p.isRequired); |
| | | |
| | | if (requiredParams.length > 0) { |
| | | // 检查每个参数组中的必填参数 |
| | | for ( |
| | | let groupIndex = 0; |
| | | groupIndex < paramGroups.length; |
| | | groupIndex++ |
| | | ) { |
| | | const group = paramGroups[groupIndex]; |
| | | for (const param of requiredParams) { |
| | | const value = group[param.id]; |
| | | if (value === undefined || value === null || value === "") { |
| | | isValid = false; |
| | | errorMessage = `工序【${process.processName}】参数组${ |
| | | groupIndex + 1 |
| | | }的【${param.paramName}】为必填项`; |
| | | break; |
| | | } |
| | | } |
| | | if (!isValid) break; |
| | | } |
| | | } |
| | | if (!isValid) break; |
| | | } |
| | | |
| | | if (!isValid) { |
| | | ElMessage.error(errorMessage); |
| | | return; |
| | | } |
| | | |
| | | activeStep.value = 3; |
| | | } |
| | | }; |
| | |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | /* 必填标识样式 */ |
| | | .required-label::before { |
| | | content: "*"; |
| | | color: #f56c6c; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | .form-grid { |
| | | display: grid; |
| | | grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); |