| | |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | </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: { |
| | |
| | | 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(); |
| | |
| | | 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> |