From fcbba75febaa36d23c6c49473ab5bcee0e1a2c04 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 08 四月 2025 09:37:11 +0800
Subject: [PATCH] 检验项目新增是否委托要求字段
---
src/views/business/reliabilityPlan/index.vue | 111 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 78 insertions(+), 33 deletions(-)
diff --git a/src/views/business/reliabilityPlan/index.vue b/src/views/business/reliabilityPlan/index.vue
index 6d0694e..a0d9c30 100644
--- a/src/views/business/reliabilityPlan/index.vue
+++ b/src/views/business/reliabilityPlan/index.vue
@@ -79,7 +79,7 @@
<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>
@@ -95,13 +95,18 @@
<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%;"
@@ -115,7 +120,7 @@
<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"
@@ -158,6 +163,7 @@
tableData: [],
typeOption: [],
partNoOption: [], // 娣诲姞浜у搧鍨嬪彿閫夐」鏁版嵁
+ materialPartNoOption:[],
tableLoading: false,
itemParameterData: {
cascaderField: {
@@ -448,9 +454,6 @@
// 鎵撳紑鏂板寮规
openAddDia(type, row) {
this.operationType = type
- this.getTypeOptions()
- this.getPartNoOptions()
- // this.getUserList()
if (this.tabIndex === 0) {
this.proPlanDia = true
if (this.operationType === 'add') {
@@ -463,37 +466,77 @@
}
} else {
this.proPlanForm = { ...row }
+ // 缂栬緫鏃惰幏鍙栭�変腑鑺傜偣鐨処D骞跺姞杞界浉鍏虫暟鎹�
+ 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 }
+ // 缂栬緫鏃惰幏鍙栭�変腑鑺傜偣鐨処D骞跺姞杞界浉鍏虫暟鎹�
+ 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
- }
// 鑾峰彇閫変腑鑺傜偣鐨処D
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
}
- addOrUpdateProduct(this.proPlanForm).then(res => {
+ addOrUpdateProduct(params).then(res => {
if (res.code === 200) {
this.closeProDia()
this.$message.success('鎿嶄綔鎴愬姛')
@@ -513,12 +556,14 @@
// 鍘熻緟鏉愪俊鎭彁浜�
submitMaterialRulesForm(state) {
this.submitMatLoading = true
- if (this.operationType === 'add') {
- this.materialForm.state = ''
- } else {
- this.materialForm.state = state
+ // 鑾峰彇閫変腑鑺傜偣鐨処D
+ 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('鎿嶄綔鎴愬姛')
--
Gitblit v1.9.3