| | |
| | | <div slot="footer" class="foot"> |
| | | <el-button v-if="operationType !== 'review'" @click="closeProDia">取 消</el-button> |
| | | <el-button v-if="operationType !== 'review' && operationType !== 'submit'" type="primary" |
| | | :loading="submitProLoading" @click="submitProForm">保 |
| | | :loading="submitProLoading" @click="submitProForm(0)">保 |
| | | 存</el-button> |
| | | <el-button v-if="operationType == 'submit'" type="primary" :loading="submitProLoading" |
| | | @click="submitProForm(1)">提 交</el-button> |
| | |
| | | <el-form :model="materialForm" ref="materialForm" :rules="materialRules" label-width="90px" size="small"> |
| | | <el-form-item label="原辅材名称" prop="materialName"> |
| | | <el-cascader v-model="materialForm.materialName" :options="itemParameterData.cascaderField.sample.tree" |
| | | :props="{ value: 'name', label: 'name', checkStrictly: false, multiple: false }" :show-all-levels="false" |
| | | clearable filterable placeholder="请选择原辅材名称" size="small" style="width: 100%;" |
| | | :disabled="operationType === 'review' || operationType === 'submit'"></el-cascader> |
| | | :props="{ value: 'name', label: 'name', checkStrictly: false, multiple: false, emitPath: false }" |
| | | :show-all-levels="false" clearable filterable placeholder="请选择原辅材名称" size="small" style="width: 100%;" |
| | | :disabled="operationType === 'review' || operationType === 'submit'" @change="handleMaterialNameChange"> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="零件号" prop="partNo"> |
| | | <el-input v-model="materialForm.partNo" placeholder="请填写零件号" |
| | | :disabled="operationType === 'review' || operationType === 'submit'"></el-input> |
| | | <el-select v-model="materialForm.partNo" placeholder="请选择" clearable filterable |
| | | :disabled="operationType === 'review' || !materialForm.materialName || operationType === 'submit'" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in materialPartNoOption" :key="item.id" :label="item.partNo" :value="item.partNo"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="审核人" prop="reviewerId"> |
| | | <el-select v-model="proPlanForm.reviewerId" clearable filterable size="small" style="width: 50%;" |
| | |
| | | <el-button v-if="operationType !== 'review'" @click="closeMaterialRulesDia">取 |
| | | 消</el-button> |
| | | <el-button v-if="operationType !== 'review' && operationType !== 'submit'" type="primary" |
| | | :loading="submitMatLoading" @click="submitMaterialRulesForm">保 存</el-button> |
| | | :loading="submitMatLoading" @click="submitMaterialRulesForm(0)">保 存</el-button> |
| | | <el-button v-if="operationType == 'submit'" type="primary" :loading="submitProLoading" |
| | | @click="submitMaterialRulesForm(1)">提 交</el-button> |
| | | <el-button v-if="operationType === 'review'" :loading="submitMatLoading" |
| | |
| | | tableData: [], |
| | | typeOption: [], |
| | | partNoOption: [], // 添加产品型号选项数据 |
| | | materialPartNoOption:[], |
| | | tableLoading: false, |
| | | itemParameterData: { |
| | | cascaderField: { |
| | |
| | | // 打开新增弹框 |
| | | openAddDia(type, row) { |
| | | this.operationType = type |
| | | this.getTypeOptions() |
| | | this.getPartNoOptions() |
| | | // this.getUserList() |
| | | if (this.tabIndex === 0) { |
| | | this.proPlanDia = true |
| | | if (this.operationType === 'add') { |
| | |
| | | } |
| | | } else { |
| | | this.proPlanForm = { ...row } |
| | | // 编辑时获取选中节点的ID并加载相关数据 |
| | | const selectedNode = this.findNodeById(this.itemParameterData.cascaderField.sample.tree, row.productName) |
| | | if (selectedNode) { |
| | | this.getTypeOptions(selectedNode.id) |
| | | this.getPartNoOptions(selectedNode.id) |
| | | } |
| | | } |
| | | } else { |
| | | this.materialDia = true |
| | | if (this.operationType === 'add') { |
| | | this.materialForm = { |
| | | id: '', |
| | | materialName: '', |
| | | partNo: '', |
| | | state: '', |
| | | reviewerId: '' |
| | | if (this.operationType === 'add') { |
| | | this.materialForm = { |
| | | id: '', |
| | | materialName: '', |
| | | partNo: '', |
| | | state: '', |
| | | reviewerId: '' |
| | | } |
| | | } else { |
| | | this.materialForm = { ...row } |
| | | // 编辑时获取选中节点的ID并加载相关数据 |
| | | const selectedNode = this.findNodeById(this.itemParameterData.cascaderField.sample.tree, row.materialName) |
| | | if (selectedNode) { |
| | | this.getMaterialPartNoOptions(selectedNode.id) |
| | | } |
| | | } |
| | | } else { |
| | | this.materialForm = { ...row } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //原辅材零件号选择 |
| | | handleMaterialNameChange(value) { |
| | | if (value) { |
| | | const selectedNode = this.findNodeById(this.itemParameterData.cascaderField.sample.tree, value) |
| | | if (selectedNode) { |
| | | this.getMaterialPartNoOptions(selectedNode.id) |
| | | } |
| | | } else { |
| | | this.materialPartNoOption = [] |
| | | this.materialForm.partNo = '' |
| | | } |
| | | }, |
| | | |
| | | // 获取原辅材零件号列表 |
| | | getMaterialPartNoOptions(materialId) { |
| | | if (!materialId) { |
| | | this.materialPartNoOption = [] |
| | | return |
| | | } |
| | | getPartNoList({ productId: materialId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.materialPartNoOption = res.data || [] |
| | | if (this.materialPartNoOption.length === 0) { |
| | | this.materialForm.partNo = '' |
| | | } |
| | | } |
| | | }).catch(() => { |
| | | this.materialPartNoOption = [] |
| | | this.materialForm.partNo = '' |
| | | }) |
| | | }, |
| | | // 成品信息提交 |
| | | submitProForm(state) { |
| | | this.submitProLoading = true |
| | | if (this.operationType === 'add') { |
| | | this.proPlanForm.state = '' |
| | | } else { |
| | | this.proPlanForm.state = state |
| | | } |
| | | // 获取选中节点的ID |
| | | const selectedNode = this.findNodeById(this.itemParameterData.cascaderField.sample.tree, this.proPlanForm.productName) |
| | | if (selectedNode) { |
| | | this.proPlanForm.productId = selectedNode.id |
| | | const params = { |
| | | ...this.proPlanForm, |
| | | state: state === undefined ? null : parseInt(state), |
| | | productId: selectedNode?.id, |
| | | itemType: ['成品', '原辅材'][this.tabIndex] // 0成品1原辅材 |
| | | } |
| | | |
| | | addOrUpdateProduct(this.proPlanForm).then(res => { |
| | | addOrUpdateProduct(params).then(res => { |
| | | if (res.code === 200) { |
| | | this.closeProDia() |
| | | this.$message.success('操作成功') |
| | |
| | | // 原辅材信息提交 |
| | | submitMaterialRulesForm(state) { |
| | | this.submitMatLoading = true |
| | | if (this.operationType === 'add') { |
| | | this.materialForm.state = '' |
| | | } else { |
| | | this.materialForm.state = state |
| | | // 获取选中节点的ID |
| | | const selectedNode = this.findNodeById(this.itemParameterData.cascaderField.sample.tree, this.materialForm.materialName) |
| | | const params = { |
| | | ...this.materialForm, |
| | | state: state === undefined ? null : parseInt(state), |
| | | materialId: selectedNode?.id |
| | | } |
| | | addOrUpdateMaterial(this.materialForm).then(res => { |
| | | addOrUpdateMaterial(params).then(res => { |
| | | if (res.code === 200) { |
| | | this.closeMaterialRulesDia() |
| | | this.$message.success('操作成功') |