Browse Source

考评指标配置页面新增无子指标情况;测试,修改,校验;

SunZehao 2 years ago
parent
commit
cd10225ac7

+ 8 - 0
src/api/api.js

@@ -77,6 +77,14 @@ export function apiGetIndicatordictionaryList(params) {
         params: params
     })
 }
+//----"指标项-根据指标查询"
+export function apiGetIndidicList(params) {
+    return httpRequest({
+        url: 'indicator-dictionary/list',
+        method: 'get',
+        params: params
+    })
+}
 //----"指标项-保存/修改"
 export function apiGetIndicatordicsaveList(params) {
     return httpRequest.post('indicator-dictionary/saveBatch', params)

+ 73 - 48
src/components/evaluationSystem/IndicatorItemPage.vue

@@ -11,6 +11,7 @@
                                 plain
                                 icon="Plus"
                                 size="mini"
+                                :disabled="!isChild"
                                 @click="handleAdd"
                                 >新增</el-button>
                             </el-col>
@@ -81,7 +82,7 @@
                                             </el-table-column>
                                             <el-table-column label="操作" width="100">
                                                 <template #default="scope">
-                                                    <p class="indicitem" @click="handleDelete(scope.row)">删除</p>
+                                                    <p class="indicitem" @click="handleDelete(item, scope.row)">删除</p>
                                                 </template>
                                             </el-table-column>
                                         </el-table>
@@ -100,7 +101,7 @@
 </template>
 
 <script>
-import {apiGetIndicatordictionaryList, apiGetdataZBXList, apiGetIndicatordicsaveList, apiGetIndicatordicdeleteList} from '../../api/api'
+import {apiGetIndicatordictionaryList, apiGetdataZBXList,apiGetindicatorselectByCode, apiGetIndicatordicsaveList, apiGetIndicatordicdeleteList} from '../../api/api'
 export default {
     data() {
         return {
@@ -111,6 +112,7 @@ export default {
             expends: [],
             indicItemoptions: [],
             evaluationIndexData:[],
+            isChild: false,
             itemForm: {
                 childName: '',
                 childCode: '',
@@ -132,7 +134,6 @@ export default {
                 currentPage: 1,
                 total: 0
             },
-            evalradio: {},
             rowevalradio: {}
         }
     },
@@ -142,15 +143,20 @@ export default {
             this.indicatoroptions = []
             this.indicItemoptions = []
             this.rowevalradio = row
+            if (!row.isChild) {
+                this.isChild = false
+            } else {
+                this.isChild = true
+            }
             this.getIndicatorItemData(row)
             this.getindicItemData()
         },
-        // 查询指标项数据
+        // 查询指标数据
         getIndicatorItemData(row, type) {
             let that = this
             let params = {
-                pageNum: this.page.currentPage,
-                pageSize: this.page.pagesize,
+                pageNum: 1,
+                pageSize: 50,
                 indicatorId: row.id
             }
             if (type) {
@@ -160,12 +166,12 @@ export default {
                 if (datas) {
                     that.indicatoroptions = datas
                     that.changeDateSelect = []
+                    if (!this.isChild && datas.length === 0) {
+                        this.getItemFromIndic(row)
+                    }
                 }
             })
         },
-        getRowKeys(row) {
-            return row.id
-        },
         // 查询指标项条目
         getindicItemData() {
             let that = this
@@ -178,8 +184,14 @@ export default {
                 }
             })
         },
-        cellClick(row, column, cell, event) {
-
+        //根据指标查询指标项
+        getItemFromIndic(row) {
+            let childitemForm = {
+                childName: row.indicatorName,
+                childCode: row.indicatorCode,
+                list: []
+            }
+            this.indicatoroptions.push(childitemForm)
         },
         //新增子指标
         handleAdd() {
@@ -213,53 +225,66 @@ export default {
         //新增/修改指标数据
         handleSave() {
             let that = this
-            let params = that.indicatoroptions
-            if (that.isSave) {
-                params.id = this.evalradio.id
-            }
-            apiGetIndicatordicsaveList(params).then(datas =>{
-                if (!that.isSave) {
-                    that.$message({
-                        message: '指标项新增成功',
-                        type: 'success'
-                    });
-                } else {
-                    that.$message({
-                        message: '指标项修改成功',
-                        type: 'success'
-                    });
+            let startFn = false
+            that.indicatoroptions.forEach(item =>{
+                if (item.childName === '' || item.childCode === '') {
+                    if (item.list.length>0) {
+                        startFn = true
+                    }
                 }
-                that.getIndicatorItemData(that.rowevalradio)
             })
+            if (!startFn) {
+                let params = that.indicatoroptions
+                apiGetIndicatordicsaveList(params).then(datas =>{
+                    if (!that.isSave) {
+                        that.$message({
+                            message: '指标项新增成功',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message({
+                            message: '指标项修改成功',
+                            type: 'success'
+                        });
+                    }
+                    that.getIndicatorItemData(that.rowevalradio)
+                })
+            } else {
+                that.$message({
+                    message: '请输入子指标名称和子指标编码',
+                    type: 'error'
+                });
+            }
         },
         //删除指标数据
-        handleDelete(row) {
+        handleDelete(data, row) {
             this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
-                let that = this
-                let paramsArr = [row.id]
-                apiGetIndicatordicdeleteList(paramsArr.join(',')).then(datas =>{
-                    that.$message({
-                        type: 'success',
-                        message: '删除成功!'
-                    });
-                    that.changeDateSelect = []
-                    that.getIndicatorItemData(that.rowevalradio)
-                })
+                if (row.id) {
+                    let that = this
+                    let paramsArr = [row.id]
+                    apiGetIndicatordicdeleteList(paramsArr.join(',')).then(datas =>{
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.changeDateSelect = []
+                        that.getIndicatorItemData(that.rowevalradio)
+                    })
+                } else {
+                    if (data.list && data.list.length>0) {
+                        data.list.forEach((it,index) =>{
+                            if (it.optionCode === row.optionCode) {
+                                data.list.splice(index, 1)
+                            }
+                        })
+                    }
+                }
             })
-        },        
-        rowClick(selection, row) {
-            this.changeDateSelect = selection
-        },
-        handleSizeChange(val){
-            this.page.pagesize = val
-        },
-        handleCurrentChange(val){
-            this.page.currentPage =val
-        },
+        }
     }
 }
 </script>

+ 2 - 1
src/components/evaluationSystem/evaluationIndexPage.vue

@@ -321,11 +321,12 @@ export default {
                 indicatorName: this.evalradio.indicatorName,
                 indicatorCode: this.evalradio.indicatorCode,
                 indicatorUnit: this.evalradio.unit,
-                department: '',
+                department: this.evalradio.dept,
                 binSection: this.evalradio.binSection,
                 binStage: this.evalradio.binStage,
                 isQuantified: this.evalradio.isQuantified,
                 isAdditional: this.evalradio.isAdditional,
+                isChild: this.evalradio.isChild === true? '是': '否',
                 orderNum: this.evalradio.orderNum,
                 desc: this.evalradio.des
             }

+ 15 - 5
src/components/knowledgePage/scoringRulesPage.vue

@@ -71,7 +71,9 @@
             </div>
             <div class="scoringRulesTableData">
                 <el-table :data="scoringRulesData" border style="width: 100%" @select="rowClick" @select-all="allSelect">
-                    <el-table-column type="selection" label="操作" align="center"></el-table-column>
+                    <el-table-column type="selection" label="操作" align="center" />
+                    <el-table-column label="规则名称" prop="scoreRuleName" width="200" />
+                    <el-table-column label="业务属性" prop="businessName"  width="200" />
                     <el-table-column label="指标名称" width="300">
                         <template #default="scope">
                             <span>{{scope.row.indicatorNames.join(',')}}</span>
@@ -99,8 +101,8 @@
                         <el-form-item label="规则名称" prop="ruleName">
                             <el-input v-model="ruleForm.ruleName" placeholder="请输入规则名称"></el-input>
                         </el-form-item>
-                        <el-form-item label="业务板块" prop="binSection">
-                            <el-select v-model="ruleForm.binSection" placeholder="请选择业务板块" :disabled="isSave" @change="changeBinstation">
+                        <el-form-item label="业务属性" prop="binSection">
+                            <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" :disabled="isSave" @change="changeBinstation">
                                 <el-option
                                 v-for="item in binSectionoptions"
                                 :key="item.keyValue"
@@ -111,7 +113,7 @@
                         </el-form-item>
                         <el-form-item label="指标名称" prop="indicatorId">
                              <!-- multiple collapse-tags -->
-                            <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称" multiple collapse-tags :disabled="isSave">
+                            <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称" :disabled="isSave">
                                 <el-option
                                 v-for="item in indicItemoptions"
                                 :key="item.indicatorCode"
@@ -157,6 +159,7 @@ export default {
             isSave: false,
             ruleForm: {
                 ruleName: '',
+                binSection: '',
                 indicatorId: '',
                 desc: ''
             },
@@ -164,6 +167,9 @@ export default {
                 ruleName: [
                     { required: true, message: '请输入规则名称', trigger: 'blur' }
                 ],
+                binSection: [
+                    { required: true, message: '请选择业务属性', trigger: 'change' }
+                ],
                 indicatorId: [
                     { required: true, message: '请选择指标名称', trigger: 'change' }
                 ],
@@ -236,6 +242,7 @@ export default {
             this.$nextTick(() =>{
                 this.ruleForm = {
                     ruleName: '',
+                    binSection: '',
                     indicatorId: '',
                     desc: ''
                 }
@@ -247,7 +254,8 @@ export default {
             this.title = '修改考评得分规则'
             let evalradio = this.changeDateSelect[0]
             this.ruleForm = {
-                ruleName: '',
+                ruleName: evalradio.scoreRuleName,
+                binSection: evalradio.businessPhase,
                 indicatorId: evalradio.indicatorId,
                 desc: evalradio.describe
             }
@@ -264,6 +272,8 @@ export default {
         saveAndEditIndicatorData() {
             let that = this
             let params = {
+                scoreRuleName: that.ruleForm.ruleName,
+                businessPhase: that.ruleForm.binSection,
                 indicatorId: that.ruleForm.indicatorId,
                 describe: that.ruleForm.desc
             }