From 3a05fd672f3cf6fcd847e28d93ad3e3b9c01fea2 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 16 四月 2025 15:58:32 +0800 Subject: [PATCH] 网络分析仪 --- src/views/business/reliabilityPlan/index.vue | 111 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 81 insertions(+), 30 deletions(-) diff --git a/src/views/business/reliabilityPlan/index.vue b/src/views/business/reliabilityPlan/index.vue index 0ff4d4e..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,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('鎿嶄綔鎴愬姛') @@ -507,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