From d1faa4f23135dabad9e2948842ba415eddfcc08b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 08 四月 2025 14:00:37 +0800
Subject: [PATCH] 修改检验对象
---
src/views/business/reliabilityPlan/index.vue | 245 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 184 insertions(+), 61 deletions(-)
diff --git a/src/views/business/reliabilityPlan/index.vue b/src/views/business/reliabilityPlan/index.vue
index 393f7ff..a0d9c30 100644
--- a/src/views/business/reliabilityPlan/index.vue
+++ b/src/views/business/reliabilityPlan/index.vue
@@ -49,19 +49,21 @@
<el-cascader v-model="proPlanForm.productName" :options="itemParameterData.cascaderField.sample.tree"
: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'" @change="handleProductNameChange">
+ :disabled="operationType === 'review' || operationType === 'submit'" @change="handleProductNameChange">
</el-cascader>
</el-form-item>
<el-form-item label="浜у搧鍨嬪彿" prop="productType">
<el-select v-model="proPlanForm.productType" clearable filterable placeholder="璇烽�夋嫨浜у搧鍨嬪彿"
- :disabled="operationType === 'review' || !proPlanForm.productName" style="width: 100%;">
+ :disabled="operationType === 'review' || !proPlanForm.productName || operationType === 'submit'"
+ style="width: 100%;">
<el-option v-for="item in typeOption" :key="item.id" :label="item.modelName" :value="item.modelName">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="闆朵欢鍙�" prop="partNo">
<el-select v-model="proPlanForm.partNo" placeholder="璇烽�夋嫨" clearable filterable
- :disabled="operationType === 'review' || !proPlanForm.productName" style="width: 100%;">
+ :disabled="operationType === 'review' || !proPlanForm.productName || operationType === 'submit'"
+ style="width: 100%;">
<el-option v-for="item in partNoOption" :key="item.id" :label="item.partNo" :value="item.partNo">
</el-option>
</el-select>
@@ -76,25 +78,35 @@
</el-form>
<div slot="footer" class="foot">
<el-button v-if="operationType !== 'review'" @click="closeProDia">鍙� 娑�</el-button>
- <el-button v-if="operationType !== 'review'" type="primary" :loading="submitProLoading" @click="submitProForm">淇�
+ <el-button v-if="operationType !== 'review' && operationType !== 'submit'" type="primary"
+ :loading="submitProLoading" @click="submitProForm(0)">淇�
瀛�</el-button>
+ <el-button v-if="operationType == 'submit'" type="primary" :loading="submitProLoading"
+ @click="submitProForm(1)">鎻� 浜�</el-button>
<el-button v-if="operationType === 'review'" :loading="submitProLoading"
- @click="submitProForm(0)">涓嶉�氳繃</el-button>
+ @click="submitProForm(3)">涓嶉�氳繃</el-button>
<el-button v-if="operationType === 'review'" type="primary" :loading="submitProLoading"
- @click="submitProForm(1)">閫氳繃</el-button>
+ @click="submitProForm(2)">閫氳繃</el-button>
+ <el-button v-if="operationType === 'review'" type="primary" :loading="submitMatLoading"
+ @click="submitProForm(0)">鍙� 鏇�</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="materialDia" title="鍘熻緟鏉愯鍒�">
<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'"></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'"></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%;"
@@ -105,13 +117,18 @@
</el-form-item> -->
</el-form>
<div slot="footer" class="foot">
- <el-button v-if="operationType !== 'review'" @click="closeMaterialRulesDia">鍙� 娑�</el-button>
- <el-button v-if="operationType !== 'review'" type="primary" :loading="submitMatLoading"
- @click="submitMaterialRulesForm">淇� 瀛�</el-button>
+ <el-button v-if="operationType !== 'review'" @click="closeMaterialRulesDia">鍙�
+ 娑�</el-button>
+ <el-button v-if="operationType !== 'review' && operationType !== 'submit'" type="primary"
+ :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"
- @click="submitMaterialRulesForm(0)">涓嶉�氳繃</el-button>
+ @click="submitMaterialRulesForm(3)">涓嶉�氳繃</el-button>
<el-button v-if="operationType === 'review'" type="primary" :loading="submitMatLoading"
- @click="submitMaterialRulesForm(1)">閫氳繃</el-button>
+ @click="submitMaterialRulesForm(2)">閫� 杩�</el-button>
+ <el-button v-if="operationType === 'review'" type="primary" :loading="submitMatLoading"
+ @click="submitMaterialRulesForm(0)">鍙� 鏇�</el-button>
</div>
</el-dialog>
</div>
@@ -146,6 +163,7 @@
tableData: [],
typeOption: [],
partNoOption: [], // 娣诲姞浜у搧鍨嬪彿閫夐」鏁版嵁
+ materialPartNoOption:[],
tableLoading: false,
itemParameterData: {
cascaderField: {
@@ -163,21 +181,25 @@
label: '瀹℃牳鐘舵��',
prop: 'state',
formatData: (params) => {
- if (params == 1) {
+ if (params == 0 || !params) {
+ return '寰呮彁浜�'
+ } else if (params == 1) {
+ return '寰呭鏍�'
+ } else if (params == 2) {
return '閫氳繃'
- } else if (params == 0) {
+ } else if (params == 3) {
return '涓嶉�氳繃'
- } else {
- return null
}
},
formatType: (params) => {
- if (params == 1) {
- return 'success'
- } else if (params == 0) {
+ if (params == 0 || !params) {
+ return 'warning'
+ } else if (params == 1) {
return 'danger'
- } else {
- return null
+ } else if (params == 2) {
+ return 'success'
+ } else if (params == 3) {
+ return 'danger'
}
}
},
@@ -191,7 +213,33 @@
type: 'text',
clickFun: (row) => {
this.openAddDia('edit', row);
- }
+ },
+ disabled: (row) => {
+ return row.state > 0
+ },
+ },
+ {
+ name: '璁″垝',
+ type: 'text',
+ clickFun: (row) => {
+ this.$router.push({
+ path: "/reliabilityPlan/plan", query: {
+ id: row.id,
+ type: '鎴愬搧',
+ state: row.state
+ }
+ });
+ },
+ },
+ {
+ name: '鎻愪氦',
+ type: 'text',
+ clickFun: (row) => {
+ this.openAddDia('submit', row);
+ },
+ disabled: (row) => {
+ return row.state > 0
+ },
},
{
name: '瀹℃牳',
@@ -207,7 +255,7 @@
this.handleDelete(row);
},
disabled: (row) => {
- return row.state == 1
+ return row.state > 0
},
},
]
@@ -230,21 +278,25 @@
label: '瀹℃牳鐘舵��',
prop: 'state',
formatData: (params) => {
- if (params == 1) {
+ if (params == 0 || !params) {
+ return '寰呮彁浜�'
+ } else if (params == 1) {
+ return '寰呭鏍�'
+ } else if (params == 2) {
return '閫氳繃'
- } else if (params == 0) {
+ } else if (params == 3) {
return '涓嶉�氳繃'
- } else {
- return null
}
},
formatType: (params) => {
- if (params == 1) {
- return 'success'
- } else if (params == 0) {
+ if (params == 0 || !params) {
+ return 'warning'
+ } else if (params == 1) {
return 'danger'
- } else {
- return null
+ } else if (params == 2) {
+ return 'success'
+ } else if (params == 3) {
+ return 'danger'
}
}
},
@@ -258,7 +310,33 @@
type: 'text',
clickFun: (row) => {
this.openAddDia('edit', row);
- }
+ },
+ disabled: (row) => {
+ return row.state > 0
+ },
+ },
+ {
+ name: '璁″垝',
+ type: 'text',
+ clickFun: (row) => {
+ this.$router.push({
+ path: "/reliabilityPlan/plan", query: {
+ id: row.id,
+ type: '鍘熻緟鏉�',
+ state: row.state
+ }
+ });
+ },
+ },
+ {
+ name: '鎻愪氦',
+ type: 'text',
+ clickFun: (row) => {
+ this.openAddDia('submit', row);
+ },
+ disabled: (row) => {
+ return row.state > 0
+ },
},
{
name: '瀹℃牳',
@@ -274,7 +352,7 @@
this.handleDeleteM(row);
},
disabled: (row) => {
- return row.state == 1
+ return row.state > 0
},
},
]
@@ -376,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') {
@@ -391,31 +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)
+ 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('鎿嶄綔鎴愬姛')
@@ -435,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