From f8d17ac2666198f513a4d5f83dce1135a911f2ee Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 02 四月 2025 17:15:07 +0800 Subject: [PATCH] Merge branch 'radio-frequency-cable' of http://114.132.189.42:9002/r/lims-ruoyi-before into radio-frequency-cable --- src/views/business/reliabilityPlan/plan.vue | 164 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 134 insertions(+), 30 deletions(-) diff --git a/src/views/business/reliabilityPlan/plan.vue b/src/views/business/reliabilityPlan/plan.vue index 7434c2c..54b38f9 100644 --- a/src/views/business/reliabilityPlan/plan.vue +++ b/src/views/business/reliabilityPlan/plan.vue @@ -10,32 +10,35 @@ </div> </div> <el-table :data="tableData" style="width: 100%"> - <el-table-column prop="date" label="妫�娴嬮」" width="180"> - </el-table-column> - <el-table-column prop="name" label="娴嬭瘯鏍囧噯" width="180"> + <el-table-column prop="inspectionItem" label="妫�娴嬮」" width="180"> <template slot-scope="scope"> - <el-select v-model="scope.row.name" placeholder="璇烽�夋嫨" v-if="isEdit" size="small"> - <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - <span v-else>{{ scope.row.name }}</span> + <span>{{ scope.row.inspectionItem }}</span> </template> </el-table-column> - <el-table-column prop="address" label="棰戞"> + <el-table-column prop="standard" label="娴嬭瘯鏍囧噯" width="180"> <template slot-scope="scope"> - <el-select v-model="scope.row.name" placeholder="璇烽�夋嫨" v-if="isEdit" size="small"> + <el-select v-model="scope.row.standard" placeholder="璇烽�夋嫨" v-if="isEdit" size="small"> + <el-option v-for="item in codeList" :key="item.id" :label="item.label" :value="item.standard"> + </el-option> + </el-select> + <span v-else>{{ scope.row.standard }}</span> + </template> + </el-table-column> + <el-table-column prop="frequency" label="棰戞"> + <template slot-scope="scope"> + <el-select v-model="scope.row.frequency" placeholder="璇烽�夋嫨" v-if="isEdit" size="small"> <el-option v-for="item in dict.type.planned_frequency" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> - <span v-else>{{ scope.row.name }}</span> + <dict-tag v-else :options="dict.type.planned_frequency" :value="scope.row.frequency" /> </template> </el-table-column> - <el-table-column prop="address" label="澶囨敞"> + <el-table-column prop="remark" label="澶囨敞"> <template slot-scope="scope"> - <el-input size="small" placeholder="璇疯緭鍏�" v-model="scope.row.address" v-if="isEdit"> + <el-input size="small" placeholder="璇疯緭鍏�" v-model="scope.row.remark" v-if="isEdit"> </el-input> - <span v-else>{{ scope.row.address }}</span> + <span v-else>{{ scope.row.remark }}</span> </template> </el-table-column> <el-table-column fixed="right" label="鎿嶄綔" width="100" v-if="planState == 0"> @@ -48,25 +51,26 @@ <el-form :model="addForm" ref="addForm" :rules="addRules" label-position="right" label-width="120px"> <el-form-item label="妫�楠岄」" prop="name"> <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> - <el-option v-for="item in itemList" :key="item.value" :label="item.label" :value="item.value"> + <el-option v-for="item in itemList" :key="item.id" :label="item.inspectionItem" + :value="item.inspectionItem"> </el-option> </el-select> </el-form-item> - <el-form-item label="娴嬭瘯鏍囧噯" prop="number"> - <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> - <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value"> + <el-form-item label="娴嬭瘯鏍囧噯" prop="standard"> + <el-select v-model="addForm.standard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="item in codeList" :key="item.id" :label="item.label" :value="item.standard"> </el-option> </el-select> </el-form-item> - <el-form-item label="棰戞" prop="number"> - <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-form-item label="棰戞" prop="frequency"> + <el-select v-model="addForm.frequency" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> <el-option v-for="item in dict.type.planned_frequency" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item label="澶囨敞" prop="number"> - <el-input size="small" placeholder="璇疯緭鍏�" v-model="addForm.address"> + <el-form-item label="澶囨敞" prop="remark"> + <el-input size="small" placeholder="璇疯緭鍏�" v-model="addForm.remark"> </el-input> </el-form-item> </el-form> @@ -79,15 +83,15 @@ </template> <script> +import { selectProductItem, itemList, codeList, addOrUpdateItem, deleteItem } from "@/api/business/reliabilityPlan"; + export default { dicts: ["planned_frequency"], data() { return { - tableData: [ - {} - ], + tableData: [], + codeList: [],//鏍囧噯鍒楄〃 isEdit: false, - standardList: [],//鏍囧噯鍒楄〃 saveLoading: false, addForm: {}, addRules: { @@ -104,15 +108,94 @@ const { id, type, state } = this.$route.query this.planId = id; this.planType = type; - this.planState = state + this.planState = state; + this.getTableData(); + this.getItemList(); + this.getCodeList(); }, methods: { + getTableData() { + selectProductItem({ rePlanId: this.planId }).then(res => { + if (res.code === 200) { + this.tableData = res.data || []; + } + }).catch(err => { + console.error('鑾峰彇鏁版嵁澶辫触:', err); + }); + }, + + // 鑾峰彇妫�楠岄」鍒楄〃 + getItemList() { + itemList({ rePlanId: this.planId }).then(res => { + if (res.code === 200) { + this.itemList = res.data.map(item => ({ + label: item.inspectionItem, // 淇敼涓� inspectionItem + value: item.id, + inspectionItem: item.inspectionItem // 娣诲姞 inspectionItem 瀛楁 + })) || []; + } + }).catch(err => { + console.error('鑾峰彇妫�楠岄」鍒楄〃澶辫触:', err); + }); + }, + + // 鑾峰彇娴嬭瘯鏍囧噯鍒楄〃 + getCodeList() { + codeList({ rePlanId: this.planId }).then(res => { + if (res.code === 200) { + this.codeList = res.data.map(item => ({ + label: item.standard, + value: item.id, + standard: item.standard + })) || []; + } + }).catch(err => { + console.error('鑾峰彇娴嬭瘯鏍囧噯鍒楄〃澶辫触:', err); + }); + }, // 鍒犻櫎 - handleDelete(row) { }, + handleDelete(row) { + this.$modal.confirm('鏄惁纭鍒犻櫎璇ユ楠岄」锛�').then(() => { + deleteItem({ id: row.id }).then(res => { + if (res.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getTableData(); + } + }).catch(err => { + console.error('鍒犻櫎澶辫触:', err); + }); + }).catch(() => { }); + }, // 淇濆瓨 save() { this.saveLoading = true; - this.isEdit = false + const promises = this.tableData.map(item => { + const params = { + id: item.id, + rePlanId: this.planId, + inspectionItem: item.inspectionItem, + standard: item.standard, + frequency: item.frequency, + remark: item.remark + }; + return addOrUpdateItem(params); + }); + + Promise.all(promises) + .then(responses => { + if (responses.every(res => res.code === 200)) { + this.$message.success('淇濆瓨鎴愬姛'); + this.isEdit = false; + this.getTableData(); + } + }) + .catch(err => { + console.error('淇濆瓨澶辫触:', err); + this.$message.error('淇濆瓨澶辫触'); + }) + .finally(() => { + this.saveLoading = false; + }); }, goback() { this.$tab.closePage(); @@ -121,7 +204,28 @@ this.addForm = {} this.addDia = true; }, - submitProduct() { } + submitProduct(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + const params = { + rePlanId: this.planId, + inspectionItem: this.addForm.name, + standard: this.addForm.standard, + frequency: this.addForm.frequency, + remark: this.addForm.remark + } + addOrUpdateItem(params).then(res => { + if (res.code === 200) { + this.$message.success('淇濆瓨鎴愬姛'); + this.addDia = false; + this.getTableData(); + } + }).catch(err => { + console.error('淇濆瓨澶辫触:', err); + }); + } + }); + } } } </script> -- Gitblit v1.9.3