Bläddra i källkod

考评得分规则页面增删改查服务联调,增加搜索功能;得分规则详情页面增删改查服务联调;

SunZehao 2 år sedan
förälder
incheckning
ca337eaa1f

+ 41 - 6
src/api/api.js

@@ -188,6 +188,22 @@ export function apiGetpersonneldeleteList(params) {
         method: 'post'
     })
 }
+//-----组织结构-查询
+export function apiGetorganizationgetTree(params) {
+    return httpRequest({
+        url: 'organization-structure/getTree',
+        method: 'get',
+        params: params
+    })
+}
+//-----人员-查询
+export function apiGetuserListAll(params) {
+    return httpRequest({
+        url: 'user/listAll',
+        method: 'get',
+        params: params
+    })
+}
 //----------------------------------------考评知识库------------------------------------------------
 //----考评得分规则列表查询-list
 export function apiGetevaluationscoringruleList(params) {
@@ -201,20 +217,39 @@ export function apiGetevaluationscoringruleList(params) {
 export function apiGetevaluationscoringSaveList(params) {
     return httpRequest.post('evaluation-scoring-rule/saveOrUpdate', params)
 }
-//-----组织结构-查询
-export function apiGetorganizationgetTree(params) {
+//----"考评得分规则批量删除"
+export function apiGetevaluationruleRemove(params) {
     return httpRequest({
-        url: 'organization-structure/getTree',
+        url: `evaluation-scoring-rule/remove/${params}`,
+        method: 'post'
+    })
+}
+
+//----区间评分详情查询-list
+export function apiGetintervaltableList(params) {
+    return httpRequest({
+        url: 'interval-scoring-table/list',
         method: 'get',
         params: params
     })
 }
-//-----人员-查询
-export function apiGetuserListAll(params) {
+// -------根据指标查询指标项
+export function apiGetindicatorselectByCode(params) {
     return httpRequest({
-        url: 'user/listAll',
+        url: 'indicator/selectByCode',
         method: 'get',
         params: params
     })
 }
+//----"区间评分新增和修改"
+export function apiGetintervalscoringsaveOrUpdate(params) {
+    return httpRequest.post('interval-scoring-table/saveOrUpdate', params)
+}
+// //----"考评得分规则批量删除"
+export function apiGetintervalscoringRemove(params) {
+    return httpRequest({
+        url: `interval-scoring-table/remove/${params}`,
+        method: 'post'
+    })
+}
 //----------------------------------------基础信息配置------------------------------------------------

+ 0 - 1
src/components/assessment/evaluationStartPage.vue

@@ -196,7 +196,6 @@ export default {
                 })
             }
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.title = '新建表单填报'

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

@@ -169,7 +169,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -336,7 +335,7 @@ export default {
                         padding: 10px 20px;
                         .el-table{
                             .el-table__body-wrapper{
-                                height: 55vh !important;
+                                max-height: 55vh !important;
                             }
                             .el-input__inner{
                                 height: 30px !important;

+ 6 - 7
src/components/evaluationSystem/evaluationCompanyPage.vue

@@ -69,8 +69,8 @@
                     <el-table-column label="考评类别" prop="organizationType" />
                     <el-table-column label="考评周期" prop="evaluationCycle" />
                     <el-table-column label="考评规则ID" prop="evaluateRuleId" />
-                    <el-table-column label="业务版块" prop="binSection" />
-                    <el-table-column label="业务阶段" prop="binStage" />
+                    <el-table-column label="业务版块" prop="binSectionName" />
+                    <el-table-column label="业务阶段" prop="binStageName" />
                     <el-table-column label="年" prop="year" />
                     <el-table-column label="月" prop="month" />
                     <el-table-column label="创建时间" prop="createTime" />
@@ -101,8 +101,8 @@
                                     </el-option>
                                 </el-select>
                             </el-form-item>
-                            <el-form-item label="业务块">
-                                <el-select v-model="ruleForm.binSection" placeholder="请选择业务块" disabled>
+                            <el-form-item label="业务块">
+                                <el-select v-model="ruleForm.binSection" placeholder="请选择业务块" disabled>
                                     <el-option
                                     v-for="item in moduleData"
                                     :key="item.keyValue"
@@ -198,7 +198,7 @@ export default {
                     { required: true, message: '请选择考评规则', trigger: 'change' }
                 ],
                 binSection: [
-                    { required: true, message: '请选择业务块', trigger: 'change' }
+                    { required: true, message: '请选择业务块', trigger: 'change' }
                 ],
                 binStage: [
                     { required: true, message: '请输入业务阶段', trigger: 'change' }
@@ -289,7 +289,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -507,7 +506,7 @@ export default {
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;

+ 6 - 7
src/components/evaluationSystem/evaluationDepartmentPage.vue

@@ -69,8 +69,8 @@
                     <el-table-column label="考评类别" prop="organizationType" />
                     <el-table-column label="考评周期" prop="evaluationCycle" />
                     <el-table-column label="考评规则ID" prop="evaluateRuleId" />
-                    <el-table-column label="业务版块" prop="binSection" />
-                    <el-table-column label="业务阶段" prop="binStage" />
+                    <el-table-column label="业务版块" prop="binSectionName" />
+                    <el-table-column label="业务阶段" prop="binStageName" />
                     <!-- <el-table-column label="年" prop="year" />
                     <el-table-column label="月" prop="month" /> -->
                     <el-table-column label="创建时间" prop="createTime" />
@@ -101,8 +101,8 @@
                                     </el-option>
                                 </el-select>
                             </el-form-item>
-                            <el-form-item label="业务块">
-                                <el-select v-model="ruleForm.binSection" placeholder="请选择业务块" disabled>
+                            <el-form-item label="业务块">
+                                <el-select v-model="ruleForm.binSection" placeholder="请选择业务块" disabled>
                                     <el-option
                                     v-for="item in moduleData"
                                     :key="item.keyValue"
@@ -188,7 +188,7 @@ export default {
                     { required: true, message: '请选择考评规则', trigger: 'change' }
                 ],
                 binSection: [
-                    { required: true, message: '请选择业务块', trigger: 'change' }
+                    { required: true, message: '请选择业务块', trigger: 'change' }
                 ],
                 binStage: [
                     { required: true, message: '请输入业务阶段', trigger: 'change' }
@@ -276,7 +276,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -485,7 +484,7 @@ export default {
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;

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

@@ -274,7 +274,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -494,7 +493,7 @@ export default {
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;

+ 6 - 4
src/components/evaluationSystem/evaluationPersonnelPage.vue

@@ -363,11 +363,13 @@ export default {
         },
         changeCompany(val) {
             this.getOrganizetionData(val, 3, 'BM')
+            this.ruleForm.deptName = ''
+            this.ruleForm.personnelName = ''
         },
         changeDepartment(val) {
             this.getDepartMentPerson(val)
+            this.ruleForm.personnelName = ''
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -407,8 +409,8 @@ export default {
                 year: this.evalradio.year,
                 month: this.evalradio.month
             }
-            this.changeCompany(this.evalradio.companyId, 3, 'BM')
-            this.changeDepartment(this.evalradio.deptId)
+            this.getOrganizetionData(this.evalradio.companyId, 3, 'BM')
+            this.getDepartMentPerson(this.evalradio.deptId)
         },
         saveevaluationPersonMsg(formName) {
             let that = this
@@ -616,7 +618,7 @@ export default {
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;

+ 3 - 4
src/components/evaluationSystem/evaluationRulesPage.vue

@@ -66,8 +66,8 @@
                 <el-table :data="evaluationRuleData" 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="ruleName" />
-                    <el-table-column label="业务板块" prop="binSection" />
-                    <el-table-column label="业务阶段" prop="binStage" />
+                    <el-table-column label="业务板块" prop="binSectionName" />
+                    <el-table-column label="业务阶段" prop="binStageName" />
                     <el-table-column label="创建者" prop="createBy" />
                     <el-table-column label="创建时间" prop="createTime" />
                     <el-table-column label="描述">
@@ -220,7 +220,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -425,7 +424,7 @@ export default {
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;

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

@@ -168,7 +168,6 @@ export default {
                 }
             })
         },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -350,7 +349,7 @@ export default {
                         padding: 10px 20px;
                         .el-table{
                             .el-table__body-wrapper{
-                                height: 55vh !important;
+                                max-height: 55vh !important;
                             }
                             .el-input__inner{
                                 height: 30px !important;

+ 174 - 154
src/components/knowledgePage/scoringRulesDetailPage.vue

@@ -39,13 +39,13 @@
                     <div class="rulesDetailTableData">
                         <el-table :data="indicatoroptions" 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="创建者" prop="createBy" />
-                            <el-table-column label="创建时间" prop="createTime" />
-                            <el-table-column label="描述">
+                            <el-table-column label="规则公式" prop="regularExpression" />
+                            <el-table-column label="规则区间" prop="range" />
+                            <!-- <el-table-column label="创建者" prop="createBy" />
+                            <el-table-column label="创建时间" prop="createTime" /> -->
+                            <el-table-column label="规则描述" width="500">
                                 <template #default="scope">
-                                    <span>{{scope.row.des}}</span>
+                                    <span>{{scope.row.ruleDescription}}</span>
                                 </template>
                             </el-table-column>
                         </el-table>
@@ -60,122 +60,118 @@
                     </div>
                     <div class="onlyDialog">
                         <el-dialog :title="title" v-model="dialogVisible" width="50vw" :close-on-click-modal="false">
-                                <el-form :model="itemForm" :rules="rules" ref="itemForm" label-width="50px" :validate-on-rule-change="false">
-                                    <div class="periodFrom">
-                                        <div class="fromLeft">
-                                            <el-tabs type="border-card">
-                                                <el-tab-pane label="指标名称">
-                                                    <el-table
-                                                        size="mini"
-                                                        fit
-                                                        :show-header="false"
-                                                        :highlight-current-row="true"
-                                                        :stripe="false"
-                                                        :border="false"
-                                                        height="240"
-                                                        :data="[]"
-                                                    >
-                                                        <el-table-column prop="uniformCode" />
-                                                        <el-table-column prop="name" />
-                                                    </el-table>
-                                                </el-tab-pane>
-                                                <el-tab-pane label="指标项名称">
-                                                    <el-table
-                                                        size="mini"
-                                                        fit
-                                                        :show-header="false"
-                                                        :highlight-current-row="true"
-                                                        :stripe="false"
-                                                        :border="false"
-                                                        height="240"
-                                                        :data="[]"
-                                                    >
-                                                        <el-table-column prop="uniformCode" />
-                                                        <el-table-column prop="name" />
-                                                    </el-table>
-                                                </el-tab-pane>
-                                                <el-tab-pane label="函数">
-                                                    <el-table
-                                                        size="mini"
-                                                        fit
-                                                        :show-header="false"
-                                                        :highlight-current-row="true"
-                                                        :stripe="false"
-                                                        :border="false"
-                                                        :height="270"
-                                                        :data="[]"
-                                                    >
-                                                        <el-table-column min-width="60%">
-                                                        <template #default="scope">
-                                                            <el-popover trigger="hover" placement="bottom">
-                                                            <p>描述:{{ scope.row.describe }}</p>
-                                                            <p>参数:{{ scope.row.param }}</p>
-                                                            <template #reference>
-                                                                <span size="medium" transition="fade-in-linear">{{
-                                                                scope.row.lab
-                                                                }}</span>
-                                                            </template>
-                                                            </el-popover>
-                                                        </template>
-                                                        </el-table-column>
-                                                        <el-table-column min-width="40%">
-                                                        <template #default="scope">
-                                                            <el-popover trigger="hover" placement="bottom">
-                                                            <p>描述:{{ scope.row.describe }}</p>
-                                                            <p>参数:{{ scope.row.param }}</p>
-                                                            <template #reference>
-                                                                <span size="medium" transition="fade-in-linear">{{
-                                                                scope.row.name
-                                                                }}</span>
-                                                            </template>
-                                                            </el-popover>
-                                                        </template>
-                                                        </el-table-column>
-                                                    </el-table>
-                                                </el-tab-pane>
-                                                <el-tab-pane label="运算符">
-                                                    <!-- <el-button-group>
-                                                        <el-button
-                                                        v-for="item in operator"
-                                                        :key="item"
-                                                        plain
-                                                        type="primary"
-                                                        @click="elInputSplit(item)"
-                                                        style="width: 60px; margin: 7px 12px; height: 40px"
-                                                        >
-                                                        {{ item }}
-                                                        </el-button>
-                                                    </el-button-group> -->
-                                                </el-tab-pane>
-                                            </el-tabs>
+                            <div class="periodFrom">
+                                <div class="fromLeft">
+                                    <el-tabs type="border-card">
+                                        <el-tab-pane label="指标项名称">
+                                            <el-table
+                                                size="mini"
+                                                :show-header="false"
+                                                :highlight-current-row="true"
+                                                :stripe="false"
+                                                :border="false"
+                                                height="240"
+                                                @row-dblclick="rowDbclick"
+                                                :data="indicItemoptions"
+                                            >
+                                                <el-table-column prop="optionName" />
+                                                <el-table-column prop="optionCode" />
+                                            </el-table>
+                                        </el-tab-pane>
+                                        <el-tab-pane label="函数">
+                                            <el-table
+                                                size="mini"
+                                                fit
+                                                :show-header="false"
+                                                :highlight-current-row="true"
+                                                :stripe="false"
+                                                :border="false"
+                                                height="240"
+                                                :data="[]"
+                                            >
+                                                <el-table-column min-width="60%">
+                                                <template #default="scope">
+                                                    <el-popover trigger="hover" placement="bottom">
+                                                    <p>描述:{{ scope.row.describe }}</p>
+                                                    <p>参数:{{ scope.row.param }}</p>
+                                                    <template #reference>
+                                                        <span size="medium" transition="fade-in-linear">{{
+                                                        scope.row.lab
+                                                        }}</span>
+                                                    </template>
+                                                    </el-popover>
+                                                </template>
+                                                </el-table-column>
+                                                <el-table-column min-width="40%">
+                                                <template #default="scope">
+                                                    <el-popover trigger="hover" placement="bottom">
+                                                    <p>描述:{{ scope.row.describe }}</p>
+                                                    <p>参数:{{ scope.row.param }}</p>
+                                                    <template #reference>
+                                                        <span size="medium" transition="fade-in-linear">{{
+                                                        scope.row.name
+                                                        }}</span>
+                                                    </template>
+                                                    </el-popover>
+                                                </template>
+                                                </el-table-column>
+                                            </el-table>
+                                        </el-tab-pane>
+                                        <el-tab-pane label="运算符">
+                                            <!-- <el-button-group>
+                                                <el-button
+                                                v-for="item in operator"
+                                                :key="item"
+                                                plain
+                                                type="primary"
+                                                @click="elInputSplit(item)"
+                                                style="width: 60px; margin: 7px 12px; height: 40px"
+                                                >
+                                                {{ item }}
+                                                </el-button>
+                                            </el-button-group> -->
+                                        </el-tab-pane>
+                                    </el-tabs>
+                                </div>
+                                <div class="fromRight">
+                                    <div>
+                                        <div style="display:flex">
+                                            <el-checkbox style="margin-right: 10px" v-model="isrepresentation" @change="changeRep" />
+                                            <el-tag style="margin-bottom: 5px">表达式</el-tag>
                                         </div>
-                                        <div class="fromRight">
-                                            <div>
-                                                <p>表达式</p>
-                                                <el-input
-                                                type="textarea"
-                                                rows="10"
-                                                v-model="itemForm.desc"
-                                                />
-                                            </div>
-                                            <div>
-                                                <p>表达式</p>
-                                                <el-input
-                                                type="textarea"
-                                                rows="4"
-                                                v-model="itemForm.desc"
-                                                />
-                                            </div>
+                                        <el-input
+                                        type="textarea"
+                                        rows="10"
+                                        v-model="itemForm.representation"
+                                        id="representation"
+                                        />
+                                    </div>
+                                    <div style="margin-top: 10px">
+                                        <div style="display:flex">
+                                            <el-checkbox style="margin-right: 10px" v-model="isrange" @change="changeRank" />
+                                            <el-tag style="margin-bottom: 5px">区间</el-tag>
                                         </div>
+                                        <el-input
+                                        type="textarea"
+                                        rows="4"
+                                        v-model="itemForm.range"
+                                        id="range"
+                                        />
                                     </div>
-                                    <el-form-item label="描述">
-                                        <el-input v-model="itemForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
-                                    </el-form-item>
-                                </el-form>
+                                </div>
+                            </div>
+                            <div style="margin-top: 10px">
+                                <el-tag style="margin-bottom: 5px">描述</el-tag>
+                                <el-input
+                                type="textarea"
+                                rows="4"
+                                v-model="itemForm.desc"
+                                />
+                            </div>
                             <template #footer>
                                 <span class="dialog-footer">
                                     <el-button @click="dialogVisible = false">取 消</el-button>
-                                    <el-button type="primary" @click="saverulesDetailMsg('itemForm')">确 定</el-button>
+                                    <el-button type="primary" @click="saverulesDetailMsg()">确 定</el-button>
                                 </span>
                             </template>
                         </el-dialog>
@@ -187,7 +183,7 @@
 </template>
 
 <script>
-import {apiGetIndicatordictionaryList, apiGetdataDictionaryList, apiGetIndicatordicsaveList, apiGetIndicatordicdeleteList} from '../../api/api'
+import {apiGetintervaltableList, apiGetindicatorselectByCode, apiGetintervalscoringsaveOrUpdate, apiGetintervalscoringRemove} from '../../api/api'
 export default {
     data() {
         return {
@@ -197,16 +193,13 @@ export default {
             indicatoroptions: [],
             indicItemoptions: [],
             indicItem: '',
-            evaluationIndexData:[],
+            isrepresentation: true,
+            isrange: false,
             itemForm: {
-                optionName: '',
+                representation: '',
+                range: '',
                 desc: ''
             },
-            rules: {
-                optionName: [
-                    { required: true, message: '请选择指标名称', trigger: 'change' }
-                ]
-            },
             page:{
                 pagesize: 12,
                 currentPage: 1,
@@ -224,46 +217,71 @@ export default {
             this.indicItemoptions = []
             this.rowevalradio = row
             this.getrulesDetailData(row)
-            this.getindicItemData()
+            this.getindicItemData(row)
         },
-        // 查询指标项数据
+        // 查询考评得分规则详情列表
         getrulesDetailData(row, type) {
             let that = this
             let params = {
-                pageNum: this.page.currentPage,
-                pageSize: this.page.pagesize,
-                indicatorId: row.id
+                ruleId: row.id
             }
             if (type) {
                 params.optionName = that.indicItem
             }
-            apiGetIndicatordictionaryList(params).then(datas =>{
-                if (datas) {
-                    that.indicatoroptions = datas
+            apiGetintervaltableList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.indicatoroptions = datas.data
                     that.changeDateSelect = []
                 }
             })
         },
         // 查询指标项条目
-        getindicItemData() {
+        getindicItemData(row) {
             let that = this
-            apiGetdataDictionaryList().then(datas =>{
+            let params = {
+                indicatorCede: row.indicatorId
+            }
+            apiGetindicatorselectByCode(params).then(datas =>{
                 if (datas && datas.data) {
-                    that.indicItemoptions = datas.data
+                    that.indicItemoptions = datas.data[row.indicatorId]
                 }
             })
         },
-        // 新增区域信息
+        changeRep(val) {
+            this.isrange = !val
+        },
+        changeRank(val) {
+            this.isrepresentation = !val
+        },
+        rowDbclick(row) {
+            let optionCode = row.optionCode
+            let elInput = null
+            if (this.isrepresentation) {
+                elInput = document.getElementById("representation");
+            } else {
+                elInput = document.getElementById("range");
+            }
+            let startPos = elInput.selectionStart;
+            let endPos = elInput.selectionEnd;
+            if (startPos === undefined || endPos === undefined) return;
+            let txt = elInput.value;
+            let txtSplit = optionCode;
+            let result = txt.substring(0, startPos) + txtSplit + txt.substring(endPos);
+            elInput.value = result;
+            elInput.focus();
+            elInput.selectionStart = startPos + txtSplit.length;
+            elInput.selectionEnd = startPos + txtSplit.length;
+        },
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
             this.title = '新增指标项管理'
             this.$nextTick(() =>{
                 this.itemForm = {
-                    optionName: '',
+                    representation: '',
+                    range: '',
                     desc: ''
                 }
-                // this.$refs['itemForm'].resetFields()
             })
         },
         handleEdit() {
@@ -272,30 +290,29 @@ export default {
             this.title = '修改指标项管理'
             this.evalradio = this.changeDateSelect[0]
             this.itemForm = {
-                optionName: this.evalradio.optionCode,
-                desc: this.evalradio.des
+                representation: this.evalradio.regularExpression,
+                range: this.evalradio.range,
+                desc: this.evalradio.ruleDescription
             }
         },
-        saverulesDetailMsg(formName) {
+        saverulesDetailMsg() {
             let that = this
-            that.$refs[formName].validate((valid) => {
-                if (valid) {
-                    that.saveAndEditIndicatorData()
-                }
-            });
+            if (that.itemForm.representation === '' || that.itemForm.range === '' || that.itemForm.desc === '') return
+            that.saveAndEditIndicatorData()
         },
         //新增/修改指标数据
         saveAndEditIndicatorData() {
             let that = this
             let params = {
-                indicatorId: that.rowevalradio.id,
-                optionCode: that.itemForm.optionName,
-                des: that.itemForm.desc
+                ruleId: that.rowevalradio.id,
+                regularExpression: document.getElementById("representation").value,
+                range: document.getElementById("range").value,
+                ruleDescription: that.itemForm.desc
             }
             if (that.isSave) {
                 params.id = this.evalradio.id
             }
-            apiGetIndicatordicsaveList(params).then(datas =>{
+            apiGetintervalscoringsaveOrUpdate(params).then(datas =>{
                 if (!that.isSave) {
                     that.$message({
                         message: '指标项新增成功',
@@ -323,7 +340,7 @@ export default {
                 that.changeDateSelect.forEach(it =>{
                     paramsArr.push(it.id)
                 })
-                apiGetIndicatordicdeleteList(paramsArr.join(',')).then(datas =>{
+                apiGetintervalscoringRemove(paramsArr.join(',')).then(datas =>{
                     that.$message({
                         type: 'success',
                         message: '删除成功!'
@@ -373,7 +390,7 @@ export default {
                         padding: 10px 20px;
                         .el-table{
                             .el-table__body-wrapper{
-                                height: 55vh !important;
+                                max-height: 55vh !important;
                             }
                             .el-input__inner{
                                 height: 30px !important;
@@ -398,11 +415,14 @@ export default {
                                 .periodFrom{
                                     display: flex;
                                     .fromLeft{
-                                        width: 65%;
+                                        width: 55%;
                                         margin-right: 20px;
+                                        .el-tabs{
+                                            height: 100%;
+                                        }
                                     }
                                     .fromRight{
-                                        width: 33%;
+                                        width: 43%;
                                     }
                                 }
                             }

+ 81 - 171
src/components/knowledgePage/scoringRulesPage.vue

@@ -19,9 +19,6 @@
             </div>
             <div style="display:flex;justify-content: space-between;padding: 10px;">
                 <el-row :gutter="10" class="PeriodBtn">
-                    
-                        <!-- @click="handleAdd"
-                        @click="handleUpdate" -->
                     <el-col :span="1.5">
                         <el-button
                         type="primary"
@@ -37,6 +34,7 @@
                         plain
                         icon="Edit"
                         size="mini"
+                        @click="handleEdit"
                         :disabled="changeDateSelect.length === 0 || changeDateSelect.length > 1"
                         >修改</el-button>
                     </el-col>
@@ -74,9 +72,11 @@
             <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 label="指标名称" prop="indicatorUnit" width="150" />
-                    <el-table-column label="业务板块" prop="businessPhase" width="150" />
-                    <el-table-column label="业务阶段" prop="type" width="150" />
+                    <el-table-column label="指标名称" width="300">
+                        <template #default="scope">
+                            <span>{{scope.row.indicatorNames.join(',')}}</span>
+                        </template>
+                    </el-table-column>
                     <el-table-column label="描述" prop="describe" />
                     <el-table-column label="操作" width="100">
                         <template #default="scope">
@@ -97,51 +97,15 @@
                 <div class="periodFrom">
                     <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
                         <el-form-item label="指标名称" prop="indicatorId">
-                            <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称" @change="chooseIndic">
+                            <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称" :disabled="isSave">
                                 <el-option
                                 v-for="item in indicItemoptions"
-                                :key="item.id"
+                                :key="item.indicatorCode"
                                 :label="item.indicatorName"
-                                :value="item.id">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="指标项名称" prop="optionName">
-                            <el-select v-model="ruleForm.optionName" placeholder="请选择指标项名称" multiple collapse-tags>
-                                <el-option
-                                v-for="item in indicatorItems"
-                                :key="item.optionCode"
-                                :label="item.optionName"
-                                :value="item.optionCode">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <!-- <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.keyValue">
+                                :value="item.indicatorCode">
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="业务阶段" prop="binStage">
-                            <el-select v-model="ruleForm.binStage" placeholder="请选择业务阶段">
-                                <el-option
-                                v-for="item in stageData"
-                                :key="item.keyValue"
-                                :label="item.keyName"
-                                :value="item.keyValue">
-                                </el-option>
-                                </el-select>
-                        </el-form-item> -->
-                        <!-- <el-form-item label="取值范围" prop="optionOrder">
-                            <el-input v-model="ruleForm.optionOrder" placeholder="请输入取值范围"></el-input>
-                        </el-form-item>
-                        <el-form-item label="计算公式" prop="optionName">
-                            <div class="counterSx" @click="showCounter">{{ruleForm.optionName}}</div>
-                        </el-form-item> -->
                         <el-form-item label="描述" prop="desc">
                             <el-input v-model="ruleForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
                         </el-form-item>
@@ -163,7 +127,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import scoringRulesDetailPage from './scoringRulesDetailPage.vue'
-import {apiGetevaluationscoringruleList, apiGetindicatorListAll, apiGetdatadictionaryList, apiGetevaluationscoringSaveList, apiGetIndicatordictionaryList} from '../../api/api'
+import {apiGetevaluationscoringruleList, apiGetindicatorListAll, apiGetevaluationscoringSaveList, apiGetevaluationruleRemove} from '../../api/api'
 export default {
   components: { importDailog, scoringRulesDetailPage },
     data() {
@@ -176,28 +140,14 @@ export default {
             rowdataMsg: {},
             changeDateSelect: [],
             isSave: false,
-            moduleData: [],
-            stageData: [],
             ruleForm: {
                 indicatorId: '',
-                optionName: '',
-                // binSection: '',
-                // binStage: '',
                 desc: ''
             },
             rules: {
                 indicatorId: [
                     { required: true, message: '请选择指标名称', trigger: 'change' }
                 ],
-                optionName: [
-                    { required: true, message: '请选择指标项名称', trigger: 'change' }
-                ],
-                // binSection: [
-                //     { required: true, message: '请选择业务模块', trigger: 'change' }
-                // ],
-                // binStage: [
-                //     { required: true, message: '请选择业务阶段', trigger: 'change' }
-                // ],
                 desc: [
                     { required: true, message: '请输入描述', trigger: 'blur' }
                 ]
@@ -212,25 +162,23 @@ export default {
         }
     },
     created() {
-        this.getEvalpersonData()
+        this.getEvalscoringData()
         this.getEvaluationData()
-        // this.getDataDictionary('MK0001') //模块
-        // this.getDataDictionary('JD0001') //阶段
     },
     methods:{
         // 查询得分规则数据
-        getEvalpersonData(type) {
+        getEvalscoringData(type) {
             let that = this
             let params = {
                 pageNum: this.page.currentPage,
                 pageSize: this.page.pagesize
             }
             if (type) {
-                params.organizationName = that.companyS
+                params.indicatorId = that.indicatorStr
             }
             apiGetevaluationscoringruleList(params).then(datas =>{
                 if (datas && datas.data) {
-                    that.scoringRulesData = datas.data
+                    that.scoringRulesData = datas.data.records
                     that.page.total = datas.data.total
                 }
             })
@@ -244,40 +192,6 @@ export default {
                 }
             })
         },
-        // 查询指标项数据
-        getIndicatorItemData(id) {
-            let that = this
-            let params = {
-                pageNum: 1,
-                pageSize: 50,
-                indicatorId: id
-            }
-            apiGetIndicatordictionaryList(params).then(datas =>{
-                if (datas) {
-                    that.indicatorItems = datas
-                }
-            })
-        },
-        // 查询规则模块和阶段数据
-        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
-                    }
-                }
-            })
-        },
-        chooseIndic(val) {
-            this.getIndicatorItemData(val)
-        },
-        // 新增区域信息
         handleAdd() {
             this.dialogVisible = true
             this.isSave = false
@@ -285,9 +199,6 @@ export default {
             this.$nextTick(() =>{
                 this.ruleForm = {
                     indicatorId: '',
-                    optionName: '',
-                    // binSection: '',
-                    // binStage: '',
                     desc: ''
                 }
             })
@@ -298,14 +209,8 @@ export default {
             this.title = '修改考评得分规则'
             let evalradio = this.changeDateSelect[0]
             this.ruleForm = {
-                companyName: evalradio.companyName,
-                deptName: evalradio.deptName,
-                personnelName: evalradio.personnelName,
-                rank: evalradio.rank,
-                deptName: evalradio.deptName,
-                isCheck: '否',
-                evaluateRule: evalradio.evaluateRuleId,
-                evaluationCycle: evalradio.evaluationCycle
+                indicatorId: evalradio.indicatorId,
+                desc: evalradio.describe
             }
         },
         saveevaluscoringruleMsg(formName) {
@@ -321,27 +226,27 @@ export default {
             let that = this
             let params = {
                 indicatorId: that.ruleForm.indicatorId,
-                optionCode: that.ruleForm.optionName,
-                des: that.ruleForm.desc
+                describe: that.ruleForm.desc
             }
             if (that.isSave) {
-                params.id = this.evalradio.id
+                let evalradio = this.changeDateSelect[0]
+                params.id = evalradio.id
             }
-            apiGetpersonnelSaveList(params).then(datas =>{
+            apiGetevaluationscoringSaveList(params).then(datas =>{
                 if (!that.isSave) {
                     that.$message({
-                        message: '考评人员新增成功',
+                        message: '考评得分规则新增成功',
                         type: 'success'
                     });
                 } else {
                     that.$message({
-                        message: '考评人员修改成功',
+                        message: '考评得分规则修改成功',
                         type: 'success'
                     });
                 }
                 that.dialogVisible = false
                 that.changeDateSelect = []
-                that.getEvalpersonData()
+                that.getEvalscoringData()
             })
         },
         //删除指标数据
@@ -350,20 +255,20 @@ export default {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
-            }).then(async() => {
+            }).then(() => {
                 let that = this
                 let paramsArr = []
                 that.changeDateSelect.forEach(it =>{
                     paramsArr.push(it.id)
                 })
-                await apiGetpersonneldeleteList(paramsArr.join(',')).then(datas =>{
+                apiGetevaluationruleRemove(paramsArr.join(',')).then(datas =>{
                     if (datas) {
                         that.$message({
                             type: 'success',
                             message: '删除成功!'
                         });
                         that.changeDateSelect = []
-                        that.getEvalpersonData()
+                        that.getEvalscoringData()
                     }
                 })
             })
@@ -379,11 +284,16 @@ export default {
         },
         getSeachData() {
             this.page.currentPage = 1
-            this.getCollectorwireprojectList('seach')
+            this.getEvalscoringData('seach')
+        },
+        reset() {
+            this.page.currentPage = 1
+            this.indicatorStr = ''
+            this.getEvalscoringData()
         },
         successImport(val) {
             this.loadingImport = false
-            this.getCollectorwireprojectList()
+            this.getEvalscoringData()
         },
         importLoading(val) {
             this.loadingImport = true
@@ -407,15 +317,27 @@ export default {
 
 <style lang="less">
 .scoringRules{
-  .scoringRulesBtn{
-    //   background: #fff;
-      padding: 10px 20px 0 20px;
-      .collectSeach{
-          display: flex;
-          margin: 20px 20px 10px;
-            .exceed{
-                display: flex;
-                .el-input{
+    .scoringRulesBtn{
+        //   background: #fff;
+        padding: 10px 20px 0 20px;
+        .collectSeach{
+            display: flex;
+            margin: 20px 20px 10px;
+                .exceed{
+                    display: flex;
+                    .el-input{
+                        margin-right:10px;
+                        .el-input__inner{
+                            height:30px;
+                        }
+                        .el-input__suffix{
+                            .el-select__caret{
+                                line-height:30px;
+                            }
+                        }
+                    }
+                }
+                .el-select{
                     margin-right:10px;
                     .el-input__inner{
                         height:30px;
@@ -426,48 +348,36 @@ export default {
                         }
                     }
                 }
+        }
+        .titleSty{
+            border-left: 4px solid #007aab;
+            padding-left: 5px;
+            font-size: 16px;
+            font-weight: bold;
+            font-family: '微软雅黑';
+            margin-left:20px;
+        }
+        span{
+            font-size:14px;
+        }
+        .PeriodBtn{
+            padding-left: 10px;
+        }
+        .el-button{
+            height: 30px;
+            // width:100px;
+            padding: 0 30px ;
+            // padding-top: 8px;
+            span{
+                margin:0;
             }
-            .el-select{
-                margin-right:10px;
-                .el-input__inner{
-                    height:30px;
-                }
-                .el-input__suffix{
-                    .el-select__caret{
-                        line-height:30px;
-                    }
-                }
-            }
-      }
-      .titleSty{
-          border-left: 4px solid #007aab;
-          padding-left: 5px;
-          font-size: 16px;
-          font-weight: bold;
-          font-family: '微软雅黑';
-          margin-left:20px;
-      }
-      span{
-          font-size:14px;
-      }
-      .PeriodBtn{
-          padding-left: 10px;
-      }
-      .el-button{
-          height: 30px;
-          // width:100px;
-          padding: 0 30px ;
-          // padding-top: 8px;
-          span{
-              margin:0;
-          }
-      }
-  }
-  .scoringRulesTableData{
+        }
+    }
+    .scoringRulesTableData{
     padding: 10px 20px;
     .el-table{
         .el-table__body-wrapper{
-            height: 64vh !important;
+            max-height: 64vh !important;
         }
         .el-input__inner{
             height: 30px !important;
@@ -494,7 +404,7 @@ export default {
     .el-overlay{
         .el-dialog{
             .el-dialog__body{
-                padding: 30px 60px 30px 20px !important;
+                padding: 30px 60px 30px 20px;
                 .periodFrom{
                     .counterSx{
                         width: 420px;

+ 23 - 3
src/views/homePage.vue

@@ -45,7 +45,8 @@
                         <span>{{ tag.name }}</span>
                     </el-tag>
                 </div>
-                <div class="mainMessage" :style="$route.path === '/home'? 'background: #f3f7f8;': 'background: #fff;padding-top: 10px'">
+                <!-- :style="$route.path === '/home'? 'background: #f3f7f8;': 'background: #fff;padding-top: 10px'" -->
+                <div class="mainMessage" :style="viewHeight">
                     <router-view></router-view>
                 </div>
             </div>
@@ -355,7 +356,7 @@ export default {
         mainHeight() {
             return {
                 // 'height': document.documentElement.clientHeight-50 + 'px'
-                'width': '84%',
+                'width': '86%',
                 'height': '95vh'
             }
         },
@@ -366,6 +367,24 @@ export default {
                 'height': '96vh'
             }
         },
+        viewHeight() {
+            let back = ''
+            let pad = ''
+            if (this.$route.path === '/home') {
+                back = '#f3f7f8;'
+                pad = '0'
+            } else {
+                back = '#fff'
+                pad = '10px'
+            }
+            return {
+                'width': '100%',
+                // 'height': document.documentElement.clientHeight-40 + 'px'
+                'height': '91vh',
+                'background': back,
+                'padding-top': pad
+            }
+        }
     },
     methods:{
         getBac(val) {
@@ -541,7 +560,8 @@ export default {
                 cursor: pointer;
             }
             .mainMessage{
-                width: 85vw;
+                // width: 85vw;
+                // height: 91vh;
                 // padding-top: 10px;
                 // background: #fff;
                 border-radius: 20px;