SunZehao 1 год назад
Родитель
Сommit
86a37e6b73

+ 5 - 0
src/api/api.js

@@ -1741,4 +1741,9 @@ export function apiGetbenchmarkingupdateData(params) {
 //生成规则
 export function apiorganizationratinggrade(params) {
     return httpRequest.post('organization-rating/grade', params)
+}
+
+//计算评级保存
+export function apiorganizationratingsaveInfo(params) {
+    return httpRequest.post('organization-rating/save-info', params)
 }

+ 574 - 539
src/components/assessment/evaluationUnitRatingDialog.vue

@@ -20,11 +20,16 @@
                         style="margin-left: 10px">
                         <span>数据生成</span>
                     </el-button> -->
-                    <el-button size="mini" color="#3B7AD1" icon="CopyDocument" @click="unitRuleFn" :disabled="rowObj.stage === '流程已结束'"
-                        style="margin-left: 10px">
+                    <el-button size="mini" color="#3B7AD1" icon="CopyDocument" @click="unitRuleFn"
+                        :disabled="rowObj.stage === '流程已结束'" style="margin-left: 10px">
                         <span>计算评级</span>
                     </el-button>
-                    <el-button type="success" icon="Upload" size="mini" @click="handleImport" :disabled="rowObj.stage === '流程已结束'">导入</el-button>
+                    <el-button size="mini" color="#3B7AD1" icon="Wallet" @click="saveInfoFn"
+                        :disabled="rowObj.stage === '流程已结束'" style="margin-left: 10px">
+                        <span>保存</span>
+                    </el-button>
+                    <el-button type="success" icon="Upload" size="mini" @click="handleImport"
+                        :disabled="rowObj.stage === '流程已结束'">导入</el-button>
                     <el-button type="warning" icon="Download" size="mini" @click="handleExport">导出</el-button>
                 </div>
                 <!-- <div class="PeriodBtn" :style="$utils.PeriodBtnSty()">
@@ -65,26 +70,32 @@
                             <el-table-column label="生产经营评级" align="center">
                                 <el-table-column label="年度安全环保评级" width="150">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.safetyEnvProtection" :min="0" />
+                                        <el-input-number v-if="userId === '23031009'"
+                                            v-model="scope.row.safetyEnvProtection" :min="0" />
+                                        <span v-else>{{scope.row.safetyEnvProtection}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="否决事项" width="140">
                                     <template #default="scope">
                                         <el-select v-model="scope.row.veto" placeholder="请选择" size="large"
-                                            style="width: 100px">
+                                            style="width: 100px" v-if="userId === '23031009'">
                                             <el-option v-for="item in isPgoptions" :key="item.value" :label="item.label"
                                                 :value="item.value" />
                                         </el-select>
+                                        <span v-else>{{scope.row.veto === 1 ? '是' : '否'}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="净利润" width="150">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.netProfit" />
+                                        <el-input-number v-if="userId === '23031009'" v-model="scope.row.netProfit" />
+                                        <span v-else>{{scope.row.netProfit}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="经营业绩考核综合得分%" width="180" align="center">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.compositeScore" :min="0" :max="100" />
+                                        <el-input-number v-if="userId === '23031009'" v-model="scope.row.compositeScore"
+                                            :min="0" :max="100" />
+                                        <span v-else>{{scope.row.compositeScore}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="生产经营评级" prop="scjyRate" width="120" />
@@ -92,16 +103,19 @@
                             <el-table-column label="前期评级" align="center">
                                 <el-table-column label="年度项目进度目标完成率" width="150">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.annualTarget" :min="0" />
+                                        <el-input-number v-if="userId === '23031009'" v-model="scope.row.annualTarget"
+                                            :min="0" />
+                                        <span v-else>{{scope.row.annualTarget}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="先进性指标考核得分有无加分" width="150">
                                     <template #default="scope">
-                                        <el-select v-model="scope.row.bonusPoint" placeholder="请选择" size="large"
-                                            style="width: 100px">
+                                        <el-select v-if="userId === '23031009'" v-model="scope.row.bonusPoint"
+                                            placeholder="请选择" size="large" style="width: 100px">
                                             <el-option v-for="item in isPgoptions" :key="item.value" :label="item.label"
                                                 :value="item.value" />
                                         </el-select>
+                                        <span v-else>{{scope.row.bonusPoint === 1 ? '是' : '否'}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="前期评级" prop="qqRate" width="100" />
@@ -109,12 +123,16 @@
                             <el-table-column label="基建评级" align="center">
                                 <el-table-column label="基建工程综合得分排名" width="160">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.compositeScoreRaking" :min="0" />
+                                        <el-input-number v-if="userId === '23031009'"
+                                            v-model="scope.row.compositeScoreRaking" :min="0" />
+                                        <span v-else>{{scope.row.compositeScoreRaking}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="基建工程项目等级" width="150">
                                     <template #default="scope">
-                                        <el-input-number v-model="scope.row.projectLevel" :min="0" />
+                                        <el-input-number v-if="userId === '23031009'" v-model="scope.row.projectLevel"
+                                            :min="0" />
+                                        <span v-else>{{scope.row.projectLevel}}</span>
                                     </template>
                                 </el-table-column>
                                 <el-table-column label="基建评级" prop="jjRate" width="100" />
@@ -122,7 +140,7 @@
                             <el-table-column label="综合得分" prop="score" />
                             <el-table-column label="年度评级" prop="yearRate" />
                             <!-- fixed="right" align="center" -->
-                            <el-table-column label="操作" width="160">
+                            <el-table-column label="操作" width="160" v-if="rowObj.stage !== '流程已结束'">
                                 <template #default="scope">
                                     <span class="indicitem" @click="unitRule(scope.row)">计算评级</span>
                                 </template>
@@ -145,8 +163,8 @@
                 <el-dialog :title="title" custom-class="startToDia" v-model="dialogVisible" width="600px"
                     :close-on-click-modal="false">
                     <div class="periodFrom">
-                        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"
-                            :validate-on-rule-change="false">
+                        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"
+                            class="demo-ruleForm" :validate-on-rule-change="false">
                             <el-form-item label="考评单位" prop="companyRuleF">
                                 <el-select v-model="ruleForm.companyRuleF" placeholder="请选择考评单位" :disabled="isSave">
                                     <el-option v-for="item in companyData" :key="item.organizationId"
@@ -162,8 +180,8 @@
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="年份" prop="year">
-                                <el-date-picker v-model="ruleForm.year" :disabled="isSave" type="year" value-format="YYYY"
-                                    placeholder="请选择年份" />
+                                <el-date-picker v-model="ruleForm.year" :disabled="isSave" type="year"
+                                    value-format="YYYY" placeholder="请选择年份" />
                             </el-form-item>
                             <el-form-item label="生成经营评级">
                                 <el-select v-model="ruleForm.scjyRate" placeholder="请选择评级">
@@ -218,431 +236,463 @@
 </template>
 
 <script>
-import importDailog from '../importPage/importDailog.vue'
-import btns from '../elbuttonS.vue'
-import seachs from '../seachGroup.vue'
-import {
-    saveAs
-} from 'file-saver'
-import sectionDef from '../../assets/benchmarkImg/sectionDef.png'
-import sectionCha from '../../assets/benchmarkImg/sectionCha.png'
-import {
-    apiGetExportMsg,
-    apiGetorganizationratinglist,
-    apiorganizationratinggrade,
-    apiGetorganizationratingsave,
-    apiGetOrganizationListAll,
-    apiGetorganizationsectionList,
-    apiPostorganizationratingDelete,
-    apiGetorganizationratingGenerateRating
-} from '../../api/api'
-export default {
-    components: {
-        importDailog,
-        btns,
-        seachs
-    },
-    data() {
-        return {
-            dialogVisible: false,
-            ratingdialogVisible: false,
-            isSave: false,
-            title: '',
-            evalradio: {},
-            changeDateSelect: [],
-            evaluationRatingDiaData: [],
-            companyData: [],
-            binSectionoptions: [],
-            ruleForm: {
-                companyRuleF: '',
-                year: '',
-                binSection: '',
-                scjyRate: '',
-                qqRate: '',
-                jjRate: '',
-                yearRate: '',
-                remark: ''
-            },
-            rules: {
-                companyRuleF: [{
-                    required: true,
-                    message: '请选择考评单位',
-                    trigger: 'change'
-                }],
-                binSection: [{
-                    required: true,
-                    message: '请选择考评单位',
-                    trigger: 'change'
-                }],
-                year: [{
-                    required: true,
-                    message: '请选择年份',
-                    trigger: 'change'
-                }]
-            },
-            page: {
-                pagesize: 12,
-                currentPage: 1,
-                total: 0
-            },
-            resCompanyName: '',
-            businessStr: '',
-            monthArr: [],
-            ratingArr: [],
-            winPix: window.devicePixelRatio,
-            innerWidth: window.innerWidth,
-            rowObj: {},
-            titleMsgArr: [],
-            isPgoptions: []
-        }
-    },
-    created() {
-        this.ratingArr = [{
-            label: 'A级',
-            value: 'A'
-        },
-        {
-            label: 'B级',
-            value: 'B'
+    import importDailog from '../importPage/importDailog.vue'
+    import btns from '../elbuttonS.vue'
+    import seachs from '../seachGroup.vue'
+    import {
+        saveAs
+    } from 'file-saver'
+    import sectionDef from '../../assets/benchmarkImg/sectionDef.png'
+    import sectionCha from '../../assets/benchmarkImg/sectionCha.png'
+    import {
+        apiGetExportMsg,
+        apiGetorganizationratinglist,
+        apiorganizationratinggrade,
+        apiorganizationratingsaveInfo,
+        apiGetorganizationratingsave,
+        apiGetOrganizationListAll,
+        apiGetorganizationsectionList,
+        apiPostorganizationratingDelete,
+        apiGetorganizationratingGenerateRating
+    } from '../../api/api'
+    export default {
+        components: {
+            importDailog,
+            btns,
+            seachs
         },
-        {
-            label: 'C级',
-            value: 'C'
-        }
-        ]
-        this.isPgoptions = [{
-            value: '1',
-            label: '是'
-        },
-        {
-            value: '0',
-            label: '否'
-        }
-        ]
-    },
-    methods: {
-        init(row) {
-            this.$refs.importPage.year = row.year
-            this.ratingdialogVisible = true
-            this.rowObj = row
-            this.getOrganizetionData()
-            this.getDataDictionary()
-        },
-        unitRule(row) {
-            let that = this
-            let params = [row]
-            apiorganizationratinggrade(params).then(res => {
-                if (res && res.code === 200) {
-                    that.$message({
-                        message: '计算评级' + res.message,
-                        type: 'success'
-                    });
-                    that.getevaluRatingDiaList(that.rowObj)
-                }
-            })
+        data() {
+            return {
+                dialogVisible: false,
+                ratingdialogVisible: false,
+                isSave: false,
+                title: '',
+                evalradio: {},
+                changeDateSelect: [],
+                evaluationRatingDiaData: [],
+                companyData: [],
+                binSectionoptions: [],
+                ruleForm: {
+                    companyRuleF: '',
+                    year: '',
+                    binSection: '',
+                    scjyRate: '',
+                    qqRate: '',
+                    jjRate: '',
+                    yearRate: '',
+                    remark: ''
+                },
+                rules: {
+                    companyRuleF: [{
+                        required: true,
+                        message: '请选择考评单位',
+                        trigger: 'change'
+                    }],
+                    binSection: [{
+                        required: true,
+                        message: '请选择考评单位',
+                        trigger: 'change'
+                    }],
+                    year: [{
+                        required: true,
+                        message: '请选择年份',
+                        trigger: 'change'
+                    }]
+                },
+                page: {
+                    pagesize: 12,
+                    currentPage: 1,
+                    total: 0
+                },
+                resCompanyName: '',
+                businessStr: '',
+                monthArr: [],
+                ratingArr: [],
+                winPix: window.devicePixelRatio,
+                innerWidth: window.innerWidth,
+                rowObj: {},
+                titleMsgArr: [],
+                isPgoptions: [],
+                userId: '23031009'
+            }
         },
-        unitRuleFn() {
-            let that = this
-            let params = that.evaluationRatingDiaData
-            apiorganizationratinggrade(params).then(res => {
-                if (res && res.code === 200) {
-                    that.$message({
-                        message: '计算评级' + res.message,
-                        type: 'success'
-                    });
-                    that.getevaluRatingDiaList(that.rowObj)
+        created() {
+            this.ratingArr = [{
+                    label: 'A级',
+                    value: 'A'
+                },
+                {
+                    label: 'B级',
+                    value: 'B'
+                },
+                {
+                    label: 'C级',
+                    value: 'C'
                 }
-            })
-        },
-        // 查询列表页面
-        getevaluRatingDiaList(row) {
-            let that = this
-            that.evaluationRatingDiaData = []
-            let params = {
-                pageNum: that.page.currentPage,
-                pageSize: that.page.pagesize,
-                organizationYearRatingId: row.id,
-                organizationShortName: that.resCompanyName,
-                binSection: that.businessStr,
-                // binSection: 'HD',
-                year: row.year
-            }
-            apiGetorganizationratinglist(params).then(datas => {
-                if (datas && datas.data.records) {
-                    that.evaluationRatingDiaData = datas.data.records
-                    that.page.total = datas.data.total
+            ]
+            this.isPgoptions = [{
+                    value: '1',
+                    label: '是'
+                },
+                {
+                    value: '0',
+                    label: '否'
                 }
-            })
+            ]
         },
-        dataGenerator() {
-            let that = this
-            let params = {
-                id: that.rowObj.id,
-                year: that.rowObj.year
-            }
-            apiGetorganizationratingGenerateRating(params).then(datas => {
-                if (datas && datas.success) {
-                    that.getevaluRatingDiaList(that.rowObj)
+        methods: {
+            init(row) {
+                this.$refs.importPage.year = row.year
+                // let userMes = JSON.parse(window.sessionStorage.getItem('user'))
+                // this.userId = userMes.deptId
+                this.ratingdialogVisible = true
+                this.rowObj = row
+                this.getOrganizetionData()
+                this.getDataDictionary()
+            },
+            unitRule(row) {
+                let that = this
+                let params = [row]
+                apiorganizationratinggrade(params).then(res => {
+                    if (res && res.code === 200) {
+                        that.$message({
+                            message: '计算评级' + res.message,
+                            type: 'success'
+                        });
+                        that.getevaluRatingDiaList(that.rowObj)
+                    }
+                })
+            },
+            unitRuleFn() {
+                let that = this
+                let params = that.evaluationRatingDiaData
+                apiorganizationratinggrade(params).then(res => {
+                    if (res && res.code === 200) {
+                        that.$message({
+                            message: '计算评级' + res.message,
+                            type: 'success'
+                        });
+                        that.getevaluRatingDiaList(that.rowObj)
+                    }
+                })
+            },
+            saveInfoFn() {
+                let that = this
+                let params = that.evaluationRatingDiaData
+                apiorganizationratingsaveInfo(params).then(res => {
+                    if (res && res.code === 200) {
+                        that.$message({
+                            message: '保存' + res.message,
+                            type: 'success'
+                        });
+                        that.getevaluRatingDiaList(that.rowObj)
+                    }
+                })
+            },
+            // 查询列表页面
+            getevaluRatingDiaList(row) {
+                let that = this
+                that.evaluationRatingDiaData = []
+                let params = {
+                    pageNum: that.page.currentPage,
+                    pageSize: that.page.pagesize,
+                    organizationYearRatingId: row.id,
+                    organizationShortName: that.resCompanyName,
+                    binSection: that.businessStr,
+                    // binSection: 'HD',
+                    year: row.year
                 }
-            })
-        },
-        //查询单位数据
-        getOrganizetionData() {
-            let that = this
-            let params = {
-                evaluationCycle: 'NDKP',
-                organizationType: 'DWKP'
-            }
-            apiGetOrganizationListAll(params).then(datas => {
-                if (datas && datas.data) {
-                    that.companyData = datas.data
+                apiGetorganizationratinglist(params).then(datas => {
+                    if (datas && datas.data.records) {
+                        that.evaluationRatingDiaData = datas.data.records
+                        that.page.total = datas.data.total
+                    }
+                })
+            },
+            dataGenerator() {
+                let that = this
+                let params = {
+                    id: that.rowObj.id,
+                    year: that.rowObj.year
                 }
-            })
-        },
-        // 查询属性和阶段
-        getDataDictionary() {
-            let that = this
-            let params = {
-                organizationYearRatingId: that.rowObj.id
-            }
-            that.titleMsgArr = []
-            apiGetorganizationsectionList(params).then(datas => {
-                if (datas && datas.data) {
-                    // that.binSectionoptions = datas.data
-                    datas.data.forEach(item => {
-                        let obj = {
-                            id: item.id,
-                            isName: item.sectionName === '新能源(光电)' ? '新能源光电' : item
-                                .sectionName === '新能源(风电)' ? '新能源风电' : item.sectionName,
-                            isNameEn: item.sectionCode,
-                            showClick: false,
-                            isClass: 'sectionDef',
-                            img: sectionDef,
-                            isClassC: 'sectionCha',
-                            clickImg: sectionCha
-                        }
-                        that.titleMsgArr.push(obj)
-                    })
-                    that.titleMsgArr[0].showClick = true
-                    that.businessStr = that.titleMsgArr[0].isNameEn
-                    that.$refs.importPage.binSection = that.titleMsgArr[0].isNameEn
-                    that.getevaluRatingDiaList(this.rowObj)
-
+                apiGetorganizationratingGenerateRating(params).then(datas => {
+                    if (datas && datas.success) {
+                        that.getevaluRatingDiaList(that.rowObj)
+                    }
+                })
+            },
+            //查询单位数据
+            getOrganizetionData() {
+                let that = this
+                let params = {
+                    evaluationCycle: 'NDKP',
+                    organizationType: 'DWKP'
                 }
-            })
-        },
-        changType(data) {
-            this.$refs.importPage.binSection = data.isNameEn
-            this.titleMsgArr.forEach(it => {
-                it.showClick = false
-                if (it.isName === data.isName) {
-                    it.showClick = true
-                    this.businessStr = it.isNameEn
+                apiGetOrganizationListAll(params).then(datas => {
+                    if (datas && datas.data) {
+                        that.companyData = datas.data
+                    }
+                })
+            },
+            // 查询属性和阶段
+            getDataDictionary() {
+                let that = this
+                let params = {
+                    organizationYearRatingId: that.rowObj.id
                 }
-            })
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        saveevaluaStart(formName) {
-            let that = this
-            that.$refs[formName].validate((valid) => {
-                if (valid) {
-                    that.saveAndEditIndicatorData()
+                that.titleMsgArr = []
+                apiGetorganizationsectionList(params).then(datas => {
+                    if (datas && datas.data) {
+                        // that.binSectionoptions = datas.data
+                        datas.data.forEach(item => {
+                            let obj = {
+                                id: item.id,
+                                isName: item.sectionName === '新能源(光电)' ? '新能源光电' : item
+                                    .sectionName === '新能源(风电)' ? '新能源风电' : item.sectionName,
+                                isNameEn: item.sectionCode,
+                                showClick: false,
+                                isClass: 'sectionDef',
+                                img: sectionDef,
+                                isClassC: 'sectionCha',
+                                clickImg: sectionCha
+                            }
+                            that.titleMsgArr.push(obj)
+                        })
+                        that.titleMsgArr[0].showClick = true
+                        that.businessStr = that.titleMsgArr[0].isNameEn
+                        that.$refs.importPage.binSection = that.titleMsgArr[0].isNameEn
+                        that.getevaluRatingDiaList(this.rowObj)
+
+                    }
+                })
+            },
+            changType(data) {
+                this.$refs.importPage.binSection = data.isNameEn
+                this.titleMsgArr.forEach(it => {
+                    it.showClick = false
+                    if (it.isName === data.isName) {
+                        it.showClick = true
+                        this.businessStr = it.isNameEn
+                    }
+                })
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            saveevaluaStart(formName) {
+                let that = this
+                that.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        that.saveAndEditIndicatorData()
+                    }
+                });
+            },
+            //新增/修改考评启动数据
+            saveAndEditIndicatorData() {
+                let that = this
+                let orgName = ''
+                this.companyData.forEach(item => {
+                    if (item.organizationId === that.ruleForm.companyRuleF) {
+                        orgName = item.organizationShortName
+                    }
+                })
+                let params = {
+                    organizationId: that.ruleForm.companyRuleF,
+                    organizationShortName: orgName,
+                    year: that.ruleForm.year,
+                    binSection: that.ruleForm.binSection,
+                    scjyRate: that.ruleForm.scjyRate,
+                    qqRate: that.ruleForm.qqRate,
+                    jjRate: that.ruleForm.jjRate,
+                    yearRate: that.ruleForm.yearRate,
+                    remark: that.ruleForm.remark
                 }
-            });
-        },
-        //新增/修改考评启动数据
-        saveAndEditIndicatorData() {
-            let that = this
-            let orgName = ''
-            this.companyData.forEach(item => {
-                if (item.organizationId === that.ruleForm.companyRuleF) {
-                    orgName = item.organizationShortName
+                if (that.isSave) {
+                    params.id = that.evalradio.id
                 }
-            })
-            let params = {
-                organizationId: that.ruleForm.companyRuleF,
-                organizationShortName: orgName,
-                year: that.ruleForm.year,
-                binSection: that.ruleForm.binSection,
-                scjyRate: that.ruleForm.scjyRate,
-                qqRate: that.ruleForm.qqRate,
-                jjRate: that.ruleForm.jjRate,
-                yearRate: that.ruleForm.yearRate,
-                remark: that.ruleForm.remark
-            }
-            if (that.isSave) {
-                params.id = that.evalradio.id
-            }
-            apiGetorganizationratingsave(params).then(datas => {
-                if (!datas.success) {
-                    that.$message({
-                        message: datas.message,
-                        type: 'error'
-                    });
-                } else {
-                    if (!that.isSave) {
+                apiGetorganizationratingsave(params).then(datas => {
+                    if (!datas.success) {
                         that.$message({
-                            message: '单位绩效考核评级新增成功',
-                            type: 'success'
+                            message: datas.message,
+                            type: 'error'
                         });
                     } else {
-                        that.$message({
-                            message: '单位绩效考核评级修改成功',
-                            type: 'success'
-                        });
+                        if (!that.isSave) {
+                            that.$message({
+                                message: '单位绩效考核评级新增成功',
+                                type: 'success'
+                            });
+                        } else {
+                            that.$message({
+                                message: '单位绩效考核评级修改成功',
+                                type: 'success'
+                            });
+                        }
+                        that.dialogVisible = false
+                        that.changeDateSelect = []
+                        that.getevaluRatingDiaList(this.rowObj)
                     }
-                    that.dialogVisible = false
-                    that.changeDateSelect = []
-                    that.getevaluRatingDiaList(this.rowObj)
-                }
-            })
-        },
-        getSeachData() {
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        resetSeach() {
-            this.resCompanyName = ''
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        handleSizeChange(val) {
-            this.page.pagesize = val
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        handleCurrentChange(val) {
-            this.page.currentPage = val
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        rowClick(selection, row) {
-            this.changeDateSelect = selection
-        },
-        // rowClickToggle(row) {
-        //     this.$refs.tableSS.toggleRowSelection(row)
-        // },
-        handleAdd() {
-            this.dialogVisible = true
-            this.isSave = false
-            this.title = '新建单位绩效考核评级'
-            this.$nextTick(() => {
+                })
+            },
+            getSeachData() {
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            resetSeach() {
+                this.resCompanyName = ''
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            handleSizeChange(val) {
+                this.page.pagesize = val
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            handleCurrentChange(val) {
+                this.page.currentPage = val
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            rowClick(selection, row) {
+                this.changeDateSelect = selection
+            },
+            // rowClickToggle(row) {
+            //     this.$refs.tableSS.toggleRowSelection(row)
+            // },
+            handleAdd() {
+                this.dialogVisible = true
+                this.isSave = false
+                this.title = '新建单位绩效考核评级'
+                this.$nextTick(() => {
+                    this.ruleForm = {
+                        companyRuleF: '',
+                        year: '',
+                        binSection: '',
+                        scjyRate: '',
+                        qqRate: '',
+                        jjRate: '',
+                        yearRate: '',
+                        remark: ''
+                    }
+                })
+            },
+            handleEdit() {
+                this.dialogVisible = true
+                this.isSave = true
+                this.title = '修改单位绩效考核评级'
+                this.evalradio = this.changeDateSelect[0]
                 this.ruleForm = {
-                    companyRuleF: '',
-                    year: '',
-                    binSection: '',
-                    scjyRate: '',
-                    qqRate: '',
-                    jjRate: '',
-                    yearRate: '',
-                    remark: ''
+                    companyRuleF: this.evalradio.organizationId,
+                    year: this.evalradio.year,
+                    binSection: this.evalradio.binSection,
+                    scjyRate: this.evalradio.scjyRate,
+                    qqRate: this.evalradio.qqRate,
+                    jjRate: this.evalradio.jjRate,
+                    yearRate: this.evalradio.yearRate,
+                    remark: this.evalradio.remark
                 }
-            })
-        },
-        handleEdit() {
-            this.dialogVisible = true
-            this.isSave = true
-            this.title = '修改单位绩效考核评级'
-            this.evalradio = this.changeDateSelect[0]
-            this.ruleForm = {
-                companyRuleF: this.evalradio.organizationId,
-                year: this.evalradio.year,
-                binSection: this.evalradio.binSection,
-                scjyRate: this.evalradio.scjyRate,
-                qqRate: this.evalradio.qqRate,
-                jjRate: this.evalradio.jjRate,
-                yearRate: this.evalradio.yearRate,
-                remark: this.evalradio.remark
-            }
-        },
-        //删除
-        handleDelete() {
-            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                let that = this
-                let paramsArr = []
-                that.changeDateSelect.forEach(it => {
-                    paramsArr.push(it.id)
+            },
+            //删除
+            handleDelete() {
+                this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    let that = this
+                    let paramsArr = []
+                    that.changeDateSelect.forEach(it => {
+                        paramsArr.push(it.id)
+                    })
+                    apiPostorganizationratingDelete(paramsArr.join(',')).then(datas => {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.getevaluRatingDiaList(this.rowObj)
+                        that.changeDateSelect = []
+                    })
                 })
-                apiPostorganizationratingDelete(paramsArr.join(',')).then(datas => {
-                    that.$message({
-                        type: 'success',
-                        message: '删除成功!'
-                    });
-                    that.getevaluRatingDiaList(this.rowObj)
-                    that.changeDateSelect = []
+            },
+            handleImport() {
+                this.$refs.importPage.upload.title = "单位考评评级详情导入"
+                this.$refs.importPage.upload.open = true
+                this.$refs.importPage.upload.url = `/organization-rating/importExcel`
+                this.$refs.importPage.upload.url = `/organization-rating/importExcel`
+            },
+            handleExport() {
+                let that = this
+                let url = 'organization-rating/exportExcel'
+                let params = {
+                    organizationYearRatingId: that.rowObj.id,
+                    binSection: that.businessStr,
+                    year: that.rowObj.year
+                }
+                apiGetExportMsg(url, params).then(datas => {
+                    let blob = new Blob([datas])
+                    saveAs(blob, '单位考评评级详情导出.xlsx')
+                }).catch((r) => {
+                    console.error(r)
                 })
-            })
-        },
-        handleImport() {
-            this.$refs.importPage.upload.title = "单位考评评级详情导入"
-            this.$refs.importPage.upload.open = true
-            this.$refs.importPage.upload.url = `/organization-rating/importExcel`
-            this.$refs.importPage.upload.url = `/organization-rating/importExcel`
-        },
-        handleExport() {
-            let that = this
-            let url = 'organization-rating/exportExcel'
-            let params = {
-                organizationYearRatingId: that.rowObj.id,
-                binSection: that.businessStr,
-                year: that.rowObj.year
-            }
-            apiGetExportMsg(url, params).then(datas => {
-                let blob = new Blob([datas])
-                saveAs(blob, '单位考评评级详情导出.xlsx')
-            }).catch((r) => {
-                console.error(r)
-            })
-        },
-        successImport(val) {
-            this.getevaluRatingDiaList(this.rowObj)
-        },
-        unitRatingTableSty() {
-            if (this.winPix === 1.25 || this.innerWidth < 1800) {
-                return 'unitRating125Table'
-            } else {
-                return 'unitRating100Table'
+            },
+            successImport(val) {
+                this.getevaluRatingDiaList(this.rowObj)
+            },
+            unitRatingTableSty() {
+                if (this.winPix === 1.25 || this.innerWidth < 1800) {
+                    return 'unitRating125Table'
+                } else {
+                    return 'unitRating100Table'
+                }
             }
         }
     }
-}
 </script>
 
 <style lang="less">
-.evaluationUnitRatingDialog {
-    .el-overlay {
-        .el-dialog {
+    .evaluationUnitRatingDialog {
+        .el-overlay {
+            .el-dialog {
 
-            // margin-top: 7vh;
-            .el-dialog__body {
-                padding: 0 20px !important;
+                // margin-top: 7vh;
+                .el-dialog__body {
+                    padding: 0 20px !important;
 
-                .evaluationUnitRatingBtn {
-                    .collectSeach {
-                        display: flex;
-                        padding: 24px 20px;
-                        border-bottom: 1px solid#D6DBEA;
-
-                        .exceed {
+                    .evaluationUnitRatingBtn {
+                        .collectSeach {
                             display: flex;
+                            padding: 24px 20px;
+                            border-bottom: 1px solid#D6DBEA;
+
+                            .exceed {
+                                display: flex;
 
-                            .exceedSpan {
-                                width: 100px;
-                                height: 12px;
-                                font-size: 14px;
-                                font-family: Microsoft YaHei;
-                                font-weight: 400;
-                                color: #8991B0;
-                                line-height: 12px;
-                                margin-top: 14px;
+                                .exceedSpan {
+                                    width: 100px;
+                                    height: 12px;
+                                    font-size: 14px;
+                                    font-family: Microsoft YaHei;
+                                    font-weight: 400;
+                                    color: #8991B0;
+                                    line-height: 12px;
+                                    margin-top: 14px;
+                                }
+
+                                .el-input {
+                                    margin-right: 10px;
+                                    height: 40px;
+
+                                    .el-input__inner {
+                                        height: 40px;
+                                    }
+
+                                    .el-input__suffix {
+                                        .el-select__caret {
+                                            line-height: 30px;
+                                        }
+                                    }
+                                }
                             }
 
-                            .el-input {
+                            .el-select {
                                 margin-right: 10px;
-                                height: 40px;
 
                                 .el-input__inner {
-                                    height: 40px;
+                                    height: 30px;
                                 }
 
                                 .el-input__suffix {
@@ -653,182 +703,167 @@ export default {
                             }
                         }
 
-                        .el-select {
-                            margin-right: 10px;
-
-                            .el-input__inner {
-                                height: 30px;
-                            }
-
-                            .el-input__suffix {
-                                .el-select__caret {
-                                    line-height: 30px;
-                                }
-                            }
+                        span {
+                            font-size: 14px;
                         }
-                    }
-
-                    span {
-                        font-size: 14px;
-                    }
 
-                    .PeriodBtn {
-                        display: flex;
-                        justify-content: flex-end;
-                        padding: 20px 0;
-                    }
+                        .PeriodBtn {
+                            display: flex;
+                            justify-content: flex-end;
+                            padding: 20px 0;
+                        }
 
-                    .el-button {
-                        height: 30px;
-                        // width:100px;
-                        padding: 0 20px;
+                        .el-button {
+                            height: 30px;
+                            // width:100px;
+                            padding: 0 20px;
 
-                        // padding-top: 8px;
-                        span {
-                            margin: 0;
+                            // padding-top: 8px;
+                            span {
+                                margin: 0;
+                            }
                         }
-                    }
 
-                    .evaluationUnitRatingTableData {
-                        display: flex;
-                        width: 100%;
-                        margin-top: 20px;
+                        .evaluationUnitRatingTableData {
+                            display: flex;
+                            width: 100%;
+                            margin-top: 20px;
 
-                        .tableMain {
-                            width: calc(100% - 100px);
+                            .tableMain {
+                                width: calc(100% - 100px);
 
-                            .unitRating125Table {
-                                .el-table__body-wrapper {
-                                    height: 62vh !important;
+                                .unitRating125Table {
+                                    .el-table__body-wrapper {
+                                        height: 62vh !important;
+                                    }
                                 }
-                            }
 
-                            .unitRating100Table {
-                                .el-table__body-wrapper {
-                                    height: 64vh !important;
+                                .unitRating100Table {
+                                    .el-table__body-wrapper {
+                                        height: 64vh !important;
+                                    }
                                 }
-                            }
 
-                            .el-table {
-                                .el-input__inner {
-                                    height: 30px !important;
-                                }
+                                .el-table {
+                                    .el-input__inner {
+                                        height: 30px !important;
+                                    }
 
-                                .el-radio__label {
-                                    display: none;
-                                }
+                                    .el-radio__label {
+                                        display: none;
+                                    }
 
-                                .tooltipCC {
-                                    width: 300px !important;
-                                    display: inline-block;
-                                    overflow: hidden;
-                                    text-overflow: ellipsis;
-                                    white-space: nowrap;
-                                }
+                                    .tooltipCC {
+                                        width: 300px !important;
+                                        display: inline-block;
+                                        overflow: hidden;
+                                        text-overflow: ellipsis;
+                                        white-space: nowrap;
+                                    }
 
-                                .tooltipCCDes {
-                                    width: 50px;
-                                    display: inline-block;
-                                    overflow: hidden;
-                                    text-overflow: ellipsis;
-                                    white-space: nowrap;
-                                }
+                                    .tooltipCCDes {
+                                        width: 50px;
+                                        display: inline-block;
+                                        overflow: hidden;
+                                        text-overflow: ellipsis;
+                                        white-space: nowrap;
+                                    }
 
-                                .indicitem {
-                                    color: #409EFF;
-                                    font-size: 12px;
-                                    margin-right: 20px;
-                                    cursor: pointer;
+                                    .indicitem {
+                                        color: #409EFF;
+                                        font-size: 12px;
+                                        margin-right: 20px;
+                                        cursor: pointer;
 
-                                    &:hover {
-                                        text-decoration: underline;
+                                        &:hover {
+                                            text-decoration: underline;
+                                        }
                                     }
                                 }
-                            }
 
-                            .el-pagination {
-                                margin-top: 20px;
-                                text-align: end;
-                                position: relative;
+                                .el-pagination {
+                                    margin-top: 20px;
+                                    text-align: end;
+                                    position: relative;
+                                }
                             }
-                        }
 
-                        .tableSeach {
-                            width: 83px;
-                            height: 70vh;
-                            overflow-y: auto;
-                            overflow-x: hidden;
-                            margin-left: 10px;
-                            border: 1px solid #D6DBEA;
-                            padding: 5px 0;
-                            border-radius: 5px;
-
-                            .seachType {
-                                width: 78px;
-                                height: 78px;
-                                cursor: pointer;
-                                border-left: 3px solid transparent;
-
-                                img {
-                                    margin-top: 17px;
-                                    margin-left: 27px;
+                            .tableSeach {
+                                width: 83px;
+                                height: 70vh;
+                                overflow-y: auto;
+                                overflow-x: hidden;
+                                margin-left: 10px;
+                                border: 1px solid #D6DBEA;
+                                padding: 5px 0;
+                                border-radius: 5px;
+
+                                .seachType {
+                                    width: 78px;
+                                    height: 78px;
+                                    cursor: pointer;
+                                    border-left: 3px solid transparent;
+
+                                    img {
+                                        margin-top: 17px;
+                                        margin-left: 27px;
+                                    }
+
+                                    p {
+                                        text-align: center;
+                                        font-size: 14px;
+                                    }
                                 }
 
-                                p {
-                                    text-align: center;
-                                    font-size: 14px;
+                                .seachTypeCha {
+                                    background: #E6EBF5;
+                                    cursor: pointer;
+                                    border-left: 3px solid #3B7AD1;
                                 }
                             }
 
-                            .seachTypeCha {
-                                background: #E6EBF5;
-                                cursor: pointer;
-                                border-left: 3px solid #3B7AD1;
-                            }
                         }
 
-                    }
+                        .el-overlay {
+                            .startToDia {
+                                .el-dialog__body {
+                                    padding: 30px 60px 30px 20px !important;
 
-                    .el-overlay {
-                        .startToDia {
-                            .el-dialog__body {
-                                padding: 30px 60px 30px 20px !important;
+                                    .periodFrom {
 
-                                .periodFrom {
+                                        .el-select,
+                                        .el-input {
+                                            width: 100%;
+                                        }
 
-                                    .el-select,
-                                    .el-input {
-                                        width: 100%;
+                                        .el-input {
+                                            height: 30px;
+                                        }
                                     }
 
-                                    .el-input {
-                                        height: 30px;
+                                    .flowSty {
+                                        width: 100%;
+                                        height: 70vh;
                                     }
                                 }
-
-                                .flowSty {
-                                    width: 100%;
-                                    height: 70vh;
-                                }
                             }
                         }
                     }
                 }
-            }
 
-            .el-dialog__footer {
-                .dialog-footer {
-                    display: flex;
-                    justify-content: center;
+                .el-dialog__footer {
+                    .dialog-footer {
+                        display: flex;
+                        justify-content: center;
 
-                    .el-button {
-                        width: 180px !important;
-                        height: 40px !important;
+                        .el-button {
+                            width: 180px !important;
+                            height: 40px !important;
+                        }
                     }
                 }
             }
         }
-    }
 
-}
+    }
 </style>

+ 17 - 2
src/components/assessment/monthQuarterYearFrom.vue

@@ -355,14 +355,15 @@ export default {
         getStageData(type) {
             let that = this
             let params = {
-                type: '3'
+                type: type === '年度' ? '4' : '3'
             }
             apiGetbinstageList(params).then(datas => {
                 if (datas && datas.data) {
                     that.stageData = datas.data
                     that.activeName = datas.data[0].stageCode
-                    this.setShowCalcBtn(datas.data[0].stageCode)
+                    that.setShowCalcBtn(datas.data[0].stageCode)
                     that.getTableHeaderData(datas.data[0].id)
+                    that.addstageId = datas.data[0].id
                 }
             })
         },
@@ -411,6 +412,11 @@ export default {
                         it.showClick = true
                         this.binSectionStr = it.id
                     }
+                } else if (val.props.name === 'KJCX') {
+                    if (it.isNameEn === 'KJCX') {
+                        it.showClick = true
+                        this.binSectionStr = it.id
+                    }
                 } else {
                     if (it.isNameEn === 'HD') {
                         it.showClick = true
@@ -485,6 +491,8 @@ export default {
                 this.activeName = 'GLSX'
             } else if (data.isNameEn === 'ZDZX') {
                 this.activeName = 'ZDZX'
+            } else if (data.isNameEn === 'KJCX') {
+                this.activeName = 'KJCX'
             } else {
                 this.activeName = 'SCJY'
             }
@@ -608,6 +616,13 @@ export default {
             this.$refs.importPage.upload.title = "考评详情信息导入"
             this.$refs.importPage.upload.open = true
             this.$refs.importPage.upload.url = '/organization-evaluation-info/import-excel'
+            this.$refs.importPage.hasuploadData = true
+            this.$refs.importPage.uploadData = {
+                organizationEvaluationId: this.rowMsg.id,
+                indicatorId: this.isClickTagId,
+                binStage: this.addstageId,
+            }
+            this.$refs.importPage.binSection = this.binSectionStr
         },
         successImport(val) {
             that.getTableData(that.isClickTagId)

+ 12 - 0
src/components/importPage/importDailog.vue

@@ -77,6 +77,13 @@ export default {
             binSection: "",
             year: "",
             id: "",
+            hasuploadData: false,
+            uploadData: {
+                organizationEvaluationId: '',
+                indicatorId: '',
+                binSection: '',
+                binStage: ''
+            }
         }
     },
     methods: {
@@ -133,6 +140,11 @@ export default {
             formData.append("id", this.id || "");
             formData.append("userId", userInfo.importExcelId || "");
             formData.append("userName", userInfo.importExcelName || "");
+            if (this.hasuploadData) {
+                formData.append("organizationEvaluationId", this.uploadData.organizationEvaluationId);
+                formData.append("indicatorId", this.uploadData.indicatorId);
+                formData.append("binStage", this.uploadData.binStage);
+            }
             axios.post(`${this.upload.processurl}${this.upload.url}`, formData, {
                 headers: {
                     "Content-Type": "application/octet-stream"

+ 16 - 1
src/components/taskCenter/taskCenterEvlNewFrom.vue

@@ -382,13 +382,14 @@
             getStageData(type) {
                 let that = this
                 let params = {
-                    type: '3'
+                    type: type === 'nddwkplc' ? '4' : '3'
                 }
                 apiGetbinstageList(params).then(datas => {
                     if (datas && datas.data) {
                         that.stageData = datas.data
                         that.activeName = datas.data[0].stageCode
                         that.getTableHeaderData(datas.data[0].id)
+                        that.addstageId = datas.data[0].id
                     }
                 })
             },
@@ -441,6 +442,11 @@
                             it.showClick = true
                             this.binSectionStr = it.id
                         }
+                    } else if (val.props.name === 'KJCX') {
+                        if (it.isNameEn === 'KJCX') {
+                            it.showClick = true
+                            this.binSectionStr = it.id
+                        }
                     } else {
                         if (it.isNameEn === 'HD') {
                             it.showClick = true
@@ -496,6 +502,8 @@
                     this.activeName = 'GLSX'
                 } else if (data.isNameEn === 'ZDZX') {
                     this.activeName = 'ZDZX'
+                } else if (data.isNameEn === 'KJCX') {
+                    this.activeName = 'KJCX'
                 } else {
                     this.activeName = 'SCJY'
                 }
@@ -616,6 +624,13 @@
                 this.$refs.importPage.upload.title = "考评详情信息导入"
                 this.$refs.importPage.upload.open = true
                 this.$refs.importPage.upload.url = '/organization-evaluation-info/import-excel'
+                this.$refs.importPage.hasuploadData = true
+                this.$refs.importPage.uploadData = {
+                    organizationEvaluationId: this.tastbizKey,
+                    indicatorId: this.isClickTagId,
+                    binStage: this.addstageId,
+                }
+                this.$refs.importPage.binSection = this.binSectionStr
             },
             successImport(val) {
                 that.getTableData(that.isClickTagId)

+ 16 - 8
src/components/taskCenter/taskUnitRatingFrom.vue

@@ -120,26 +120,30 @@
                                 <el-table-column label="生产经营评级" align="center">
                                     <el-table-column label="年度安全环保评级" width="150">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.safetyEnvProtection" :min="0" />
+                                            <el-input-number  v-if="userMes.deptId === '23031009'" v-model="scope.row.safetyEnvProtection" :min="0" />
+                                            <span v-else>{{scope.row.safetyEnvProtection}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="否决事项" width="140">
                                         <template #default="scope">
                                             <el-select v-model="scope.row.veto" placeholder="请选择" size="large"
-                                                style="width: 100px">
+                                                style="width: 100px"  v-if="userMes.deptId === '23031009'">
                                                 <el-option v-for="item in isPgoptions" :key="item.value"
                                                     :label="item.label" :value="item.value" />
                                             </el-select>
+                                            <span v-else>{{scope.row.veto === 1 ? '是' : '否'}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="净利润" width="150">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.netProfit" />
+                                            <el-input-number v-if="userMes.deptId === '23031009'" v-model="scope.row.netProfit" />
+                                            <span v-else>{{scope.row.netProfit}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="经营业绩考核综合得分%" width="180" align="center">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.compositeScore" :min="0" :max="100" />
+                                            <el-input-number  v-if="userMes.deptId === '23031009'" v-model="scope.row.compositeScore" :min="0" :max="100" />
+                                            <span v-else>{{scope.row.compositeScore}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="生产经营评级" prop="scjyRate" width="120" />
@@ -147,16 +151,18 @@
                                 <el-table-column label="前期评级" align="center">
                                     <el-table-column label="年度项目进度目标完成率" width="150">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.annualTarget" :min="0" />
+                                            <el-input-number v-if="userMes.deptId === '23031009'" v-model="scope.row.annualTarget" :min="0" />
+                                            <span v-else>{{scope.row.annualTarget}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="先进性指标考核得分有无加分" width="150">
                                         <template #default="scope">
                                             <el-select v-model="scope.row.bonusPoint" placeholder="请选择" size="large"
-                                                style="width: 100px">
+                                                style="width: 100px" v-if="userMes.deptId === '23031009'">
                                                 <el-option v-for="item in isPgoptions" :key="item.value"
                                                     :label="item.label" :value="item.value" />
                                             </el-select>
+                                            <span v-else>{{scope.row.bonusPoint === 1 ? '是' : '否'}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="前期评级" prop="qqRate" width="100" />
@@ -164,12 +170,14 @@
                                 <el-table-column label="基建评级" align="center">
                                     <el-table-column label="基建工程综合得分排名" width="160">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.compositeScoreRaking" :min="0" />
+                                            <el-input-number v-if="userMes.deptId === '23031009'" v-model="scope.row.compositeScoreRaking" :min="0" />
+                                            <span v-else>{{scope.row.compositeScoreRaking}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="基建工程项目等级" width="150">
                                         <template #default="scope">
-                                            <el-input-number v-model="scope.row.projectLevel" :min="0" />
+                                            <el-input-number v-if="userMes.deptId === '23031009'" v-model="scope.row.projectLevel" :min="0" />
+                                            <span v-else>{{scope.row.projectLevel}}</span>
                                         </template>
                                     </el-table-column>
                                     <el-table-column label="基建评级" prop="jjRate" width="100" />