Переглянути джерело

考评规则配置页面增删改查服务联调,新增搜索功能;考评规则详情页面增删改查服务联调,新增搜索功能;

SunZehao 2 роки тому
батько
коміт
a36eacbbc5

+ 21 - 3
src/api/api.js

@@ -66,7 +66,7 @@ export function apiGetIndicatorSave(params) {
 export function apiGetIndicatorDelete(params) {
     return httpRequest({
         url: `indicator/remove/${params}`,
-        method: 'delete'
+        method: 'post'
     })
 }
 //----"指标项-查询"
@@ -85,7 +85,7 @@ export function apiGetIndicatordicsaveList(params) {
 export function apiGetIndicatordicdeleteList(params) {
     return httpRequest({
         url: `indicator-dictionary/remove/${params}`,
-        method: 'delete'
+        method: 'post'
     })
 }
 //----"指标项条目-查询"
@@ -112,7 +112,7 @@ export function apiGetevaluateRuleSaveList(params) {
 export function apiGetevaluateRuledeleteList(params) {
     return httpRequest({
         url: `evaluate-rule/remove/${params}`,
-        method: 'delete'
+        method: 'post'
     })
 }
 //----"规则模块,规则阶段数据"
@@ -131,4 +131,22 @@ export function apiGetevaluateRuleinfoList(params) {
         params: params
     })
 }
+//----"规则详情-保存/修改"
+export function apiGetevaluateRuleInfoSaveList(params) {
+    return httpRequest.post('evaluate-rule-info/save', params)
+}
+//----"规则详情-删除"
+export function apiGetevaluateRuleinfodeleteList(params) {
+    return httpRequest({
+        url: `evaluate-rule-info/remove/${params}`,
+        method: 'post'
+    })
+}
+//----"规则详情中指标数据-list"
+export function apiGetindicatorListAll() {
+    return httpRequest({
+        url: `indicator/listAll`,
+        method: 'get'
+    })
+}
 //----------------------------------------基础信息配置------------------------------------------------

+ 2 - 2
src/components/evaluationSystem/IndicatorItemPage.vue

@@ -57,14 +57,14 @@
                                 </template>
                             </el-table-column>
                         </el-table>
-                        <el-pagination
+                        <!-- <el-pagination
                             @size-change="handleSizeChange"
                             @current-change="handleCurrentChange"
                             :current-page="page.currentPage"
                             :page-size="page.pagesize"
                             layout="total, prev, pager, next, jumper"
                             :total="page.total">
-                        </el-pagination>
+                        </el-pagination> -->
                     </div>
                     <div class="onlyDialog">
                         <el-dialog :title="title" v-model="dialogVisible" width="600px" :close-on-click-modal="false">

+ 38 - 4
src/components/evaluationSystem/evaluationIndexPage.vue

@@ -107,11 +107,25 @@
                             <el-form-item label="指标单位" prop="indicatorUnit">
                                 <el-input v-model="ruleForm.indicatorUnit" placeholder="请输入指标单位"></el-input>
                             </el-form-item>
-                            <el-form-item label="业务板块" prop="binSection">
-                                <el-input v-model="ruleForm.binSection" placeholder="请输入业务板块"></el-input>
+                            <el-form-item label="业务模块" prop="binSection">
+                                <el-select v-model="ruleForm.binSection" placeholder="请选择业务模块">
+                                    <el-option
+                                    v-for="item in moduleData"
+                                    :key="item.keyValue"
+                                    :label="item.keyName"
+                                    :value="item.keyName">
+                                    </el-option>
+                                </el-select>
                             </el-form-item>
                             <el-form-item label="业务阶段" prop="binStage">
-                                <el-input v-model="ruleForm.binStage" placeholder="请输入业务阶段"></el-input>
+                                <el-select v-model="ruleForm.binStage" placeholder="请选择业务阶段">
+                                    <el-option
+                                    v-for="item in stageData"
+                                    :key="item.keyValue"
+                                    :label="item.keyName"
+                                    :value="item.keyName">
+                                    </el-option>
+                                </el-select>
                             </el-form-item>
                             <el-form-item label="是否量化">
                                 <el-radio-group v-model="ruleForm.isQuantified">
@@ -150,7 +164,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import indicatorItem from './IndicatorItemPage.vue'
-import {apiGetIndicatorList, apiGetIndicatorSave, apiGetIndicatorDelete, apiGetIndicatordictionaryList} from '../../api/api'
+import {apiGetIndicatorList, apiGetIndicatorSave, apiGetIndicatorDelete, apiGetIndicatordictionaryList, apiGetdatadictionaryList} from '../../api/api'
 export default {
   components: { importDailog, indicatorItem },
     data() {
@@ -162,6 +176,8 @@ export default {
             indicatoroptions: [],
             indicatorIdS: '',
             evaluationIndexData:[],
+            moduleData: [],
+            stageData: [],
             ruleForm: {
                 indicatorName: '',
                 indicatorCode: '',
@@ -208,6 +224,8 @@ export default {
     created() {
         this.getEvaluationData()
         this.getEvaluationOneData()
+        this.getDataDictionary('MK0001') //模块
+        this.getDataDictionary('JD0001') //阶段
     },
     methods:{
         // 查询指标数据
@@ -240,6 +258,22 @@ export default {
                 }
             })
         },
+        // 查询规则模块和阶段数据
+        getDataDictionary(val) {
+            let that = this
+            let params = {
+                superKey: val
+            }
+            apiGetdatadictionaryList(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (val === 'MK0001') {
+                        that.moduleData = datas.data
+                    } else {
+                        that.stageData = datas.data
+                    }
+                }
+            })
+        },
         // 新增区域信息
         handleAdd() {
             this.dialogVisible = true

+ 5 - 5
src/components/evaluationSystem/evaluationRulesPage.vue

@@ -4,8 +4,8 @@
             <p class="titleSty">考评规则管理</p>
             <div class="collectSeach">
                 <div class="exceed">
-                    <span class="exceedSpan" style="margin-top: 3px;">指标名称:</span>
-                    <el-input v-model="indicatorIdS" placeholder="请输入指标名称"></el-input>
+                    <span class="exceedSpan" style="margin-top: 3px;">模块名称:</span>
+                    <el-input v-model="moduleStr" placeholder="请输入模块名称"></el-input>
                 </div>
                 <el-button type="primary" style="margin-left: 10px;" @click="getSeachData">搜索</el-button>
                 <el-button style="margin-left: 10px;" @click="resetSeach">重置</el-button>
@@ -146,7 +146,7 @@ export default {
             changeDateSelect: [],
             moduleData: [],
             stageData: [],
-            indicatorIdS: '',
+            moduleStr: '',
             evaluationRuleData:[],
             ruleForm: {
                 binSection: '',
@@ -187,7 +187,7 @@ export default {
                 pageSize: this.page.pagesize,
             }
             if (type) {
-                params.indicatorName = that.indicatorIdS
+                params.binSection = that.moduleStr
             }
             apiGetevaluateRuleList(params).then(datas =>{
                 if (datas && datas.data) {
@@ -302,7 +302,7 @@ export default {
         },
         resetSeach() {
             this.page.currentPage = 1
-            this.indicatorIdS = ''
+            this.moduleStr = ''
             this.getEvalRuleData()
         },
         successImport(val) {

+ 80 - 53
src/components/evaluationSystem/ruleDetailPage.vue

@@ -1,12 +1,12 @@
 <template>
     <div class="ruleItem">
         <el-dialog title="规则详情" v-model="editEvaluaVisible" width="70vw" :close-on-click-modal="false">
-            <div class="indicatorItemAll">
-                <div class="indicatorItemBtn">
+            <div class="ruleItemAll">
+                <div class="ruleItemBtn">
                     <div class="collectSeach">
                         <div class="exceed">
-                            <span class="indicatorSpan">指标:</span>
-                            <el-input v-model="indicItem" placeholder="请输入指标名称"></el-input>
+                            <span class="indicatorSpan">指标:</span>
+                            <el-input v-model="indicItem" placeholder="请输入指标名称"></el-input>
                         </div>
                         <el-button type="primary" style="margin-left: 10px;" @click="getSeachData">搜索</el-button>
                         <el-button style="margin-left: 10px;" @click="resetSeach">重置</el-button>
@@ -44,11 +44,11 @@
                             </el-col>
                         </el-row>
                     </div>
-                    <div class="indicatorItemTableData">
+                    <div class="ruleItemTableData">
                         <el-table :data="ruleDetailData" border style="width: 100%" @select="rowClick" @select-all="rowClick">
                             <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                            <el-table-column label="指标项名称" prop="optionName" />
-                            <el-table-column label="指标项编码" prop="optionCode" />
+                            <el-table-column label="指标ID" prop="indicatorId" />
+                            <el-table-column label="考评规则id" prop="evaluateRuleId" />
                             <el-table-column label="创建者" prop="createBy" />
                             <el-table-column label="创建时间" prop="createTime" />
                             <el-table-column label="描述">
@@ -57,29 +57,32 @@
                                 </template>
                             </el-table-column>
                         </el-table>
-                        <el-pagination
+                        <!-- <el-pagination
                             @size-change="handleSizeChange"
                             @current-change="handleCurrentChange"
                             :current-page="page.currentPage"
                             :page-size="page.pagesize"
                             layout="total, prev, pager, next, jumper"
                             :total="page.total">
-                        </el-pagination>
+                        </el-pagination> -->
                     </div>
                     <div class="onlyDialog">
                         <el-dialog :title="title" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
                             <div class="periodFrom">
                                 <el-form :model="itemForm" :rules="rules" ref="itemForm" label-width="100px" :validate-on-rule-change="false">
-                                    <el-form-item label="指标项名称" prop="optionName">
-                                        <el-select v-model="itemForm.optionName" placeholder="请选择指标项名称">
+                                    <el-form-item label="指标名称" prop="indicator">
+                                        <el-select v-model="itemForm.indicator" placeholder="请选择指标名称">
                                             <el-option
                                             v-for="item in indicItemoptions"
-                                            :key="item.keyValue"
-                                            :label="item.keyName"
-                                            :value="item.keyValue">
+                                            :key="item.indicatorCode"
+                                            :label="item.indicatorName"
+                                            :value="item.indicatorName">
                                             </el-option>
                                         </el-select>
                                     </el-form-item>
+                                    <el-form-item label="指标顺序" prop="orderNum">
+                                        <el-input-number v-model="itemForm.orderNum" :min="1" />
+                                    </el-form-item>
                                     <el-form-item label="描述">
                                         <el-input v-model="itemForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
                                     </el-form-item>
@@ -88,7 +91,7 @@
                             <template #footer>
                                 <span class="dialog-footer">
                                     <el-button @click="dialogVisible = false">取 消</el-button>
-                                    <el-button type="primary" @click="saveindicatorItemMsg('itemForm')">确 定</el-button>
+                                    <el-button type="primary" @click="saveruleItemMsg('itemForm')">确 定</el-button>
                                 </span>
                             </template>
                         </el-dialog>
@@ -100,7 +103,7 @@
 </template>
 
 <script>
-import {apiGetevaluateRuleinfoList, apiGetIndicatordicsaveList, apiGetIndicatordicdeleteList} from '../../api/api'
+import {apiGetevaluateRuleinfoList, apiGetevaluateRuleInfoSaveList, apiGetevaluateRuleinfodeleteList, apiGetindicatorListAll} from '../../api/api'
 export default {
     data() {
         return {
@@ -112,11 +115,12 @@ export default {
             indicItem: '',
             evaluationIndexData:[],
             itemForm: {
-                optionName: '',
+                indicator: '',
+                orderNum: 1,
                 desc: ''
             },
             rules: {
-                optionName: [
+                indicator: [
                     { required: true, message: '请选择指标名称', trigger: 'change' }
                 ]
             },
@@ -137,33 +141,42 @@ export default {
             this.indicItemoptions = []
             this.rowevalradio = row
             this.getruleDetailData(row)
+            this.getEvaluationData()
         },
-        // 查询规则数据
+        // 查询规则详情数据
         getruleDetailData(row, type) {
             let that = this
             let params = {
-                pageNum: this.page.currentPage,
-                pageSize: this.page.pagesize,
-                indicatorId: row.id
+                evaluateRuleId: row.id
             }
             if (type) {
-                params.optionName = that.indicItem
+                params.indicatorId = that.indicItem
             }
             apiGetevaluateRuleinfoList(params).then(datas =>{
-                if (datas) {
-                    that.ruleDetailData = datas
+                if (datas && datas.data) {
+                    that.ruleDetailData = datas.data
                     that.changeDateSelect = []
                 }
             })
         },
+        // 查询指标数据
+        getEvaluationData() {
+            let that = this
+            apiGetindicatorListAll().then(datas =>{
+                if (datas && datas.data) {
+                    that.indicItemoptions = datas.data
+                }
+            })
+        },
         // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
-            this.title = '新增指标项管理'
+            this.title = '新增规则详情'
             this.$nextTick(() =>{
                 this.itemForm = {
-                    optionName: '',
+                    indicator: '',
+                    orderNum: 1,
                     desc: ''
                 }
                 // this.$refs['itemForm'].resetFields()
@@ -172,14 +185,15 @@ export default {
         handleEdit() {
             this.dialogVisible = true
             this.isSave = true
-            this.title = '修改指标项管理'
+            this.title = '修改规则详情'
             this.evalradio = this.changeDateSelect[0]
             this.itemForm = {
-                optionName: this.evalradio.optionCode,
+                indicator: this.evalradio.indicatorId,
+                orderNum: this.evalradio.orderNum,
                 desc: this.evalradio.des
             }
         },
-        saveindicatorItemMsg(formName) {
+        saveruleItemMsg(formName) {
             let that = this
             that.$refs[formName].validate((valid) => {
                 if (valid) {
@@ -191,27 +205,40 @@ export default {
         saveAndEditIndicatorData() {
             let that = this
             let params = {
-                indicatorId: that.rowevalradio.id,
-                optionCode: that.itemForm.optionName,
+                indicatorId: that.itemForm.indicator,
+                orderNum: that.itemForm.orderNum,
                 des: that.itemForm.desc
             }
             if (that.isSave) {
-                params.id = this.evalradio.id
+                params.id = that.evalradio.id
+            } else {
+                params.evaluateRuleId = that.rowevalradio.id
             }
-            apiGetIndicatordicsaveList(params).then(datas =>{
-                if (!that.isSave) {
-                    that.$message({
-                        message: '指标项新增成功',
-                        type: 'success'
-                    });
-                } else {
-                    that.$message({
-                        message: '指标项修改成功',
-                        type: 'success'
-                    });
+            apiGetevaluateRuleInfoSaveList(params).then(datas =>{
+                if (datas) {
+                    if (datas.success) {
+                        if (!that.isSave) {
+                            that.$message({
+                                message: '规则详情新增成功',
+                                type: 'success'
+                            });
+                        } else {
+                            that.$message({
+                                message: '规则详情修改成功',
+                                type: 'success'
+                            });
+                        }
+                        that.dialogVisible = false
+                        that.changeDateSelect = []
+                        that.getruleDetailData(that.rowevalradio)
+                    } else {
+                        that.$message({
+                            message: datas.message,
+                            type: 'error'
+                        })
+                    }
                 }
-                that.dialogVisible = false
-                that.getIndicatorItemData(that.rowevalradio)
+                
             })
         },
         //删除指标数据
@@ -226,12 +253,12 @@ export default {
                 this.changeDateSelect.forEach(it =>{
                     paramsArr.push(it.id)
                 })
-                await apiGetIndicatordicdeleteList(paramsArr.join(',')).then(datas =>{})
+                await apiGetevaluateRuleinfodeleteList(paramsArr.join(',')).then(datas =>{})
                 that.$message({
                     type: 'success',
                     message: '删除成功!'
                 });
-                that.getIndicatorItemData(that.rowevalradio)
+                that.getruleDetailData(that.rowevalradio)
             })
         },        
         rowClick(selection, row) {
@@ -239,12 +266,12 @@ export default {
         },
         getSeachData() {
             this.page.currentPage = 1
-            this.getIndicatorItemData(this.rowevalradio, 'seach')
+            this.getruleDetailData(this.rowevalradio, 'seach')
         },
         resetSeach() {
             this.page.currentPage = 1
             this.indicItem = ''
-            this.getIndicatorItemData(this.rowevalradio)
+            this.getruleDetailData(this.rowevalradio)
         },
         handleSizeChange(val){
             this.page.pagesize = val
@@ -263,11 +290,11 @@ export default {
             margin-top: 5vh !important;
             .el-dialog__body{
                 padding: 0 20px 30px 20px !important;
-                .indicatorItemAll{
+                .ruleItemAll{
                     .el-select, .el-input{
                         width: 100%;
                     }
-                    .indicatorItemBtn{
+                    .ruleItemBtn{
                         padding: 10px 20px 0 20px;
                         .collectSeach{
                             display: flex;
@@ -317,7 +344,7 @@ export default {
                             }
                         }
                     }
-                    .indicatorItemTableData{
+                    .ruleItemTableData{
                         padding: 10px 20px;
                         .el-table{
                             .el-table__body-wrapper{

+ 0 - 1
src/request/index.js

@@ -88,7 +88,6 @@ service.interceptors.response.use(
         // // 对响应错误做点什么
         // console.log(error)
         // return Promise.reject(error)
-
         let { message } = error;
         if (message) {
             let code = message.substr(message.length - 3, message.length)