Quellcode durchsuchen

任务中心关于单位考评月,季,年详情页面根据甲方需求进行重新设计并开发,与后端服务联调(进行中);任务中心关于部门考评指标计划详情修改,部门考评指标计划详情修改

SunZehao vor 1 Jahr
Ursprung
Commit
c5264f34e1

+ 8 - 0
src/api/api.js

@@ -283,6 +283,14 @@ export function apideptModifyState(params) {
         params: params
     })
 }
+//----"部门考评目标启动-保存or修改"----新增后修改状态
+export function apideptAdState(params) {
+    return httpRequest({
+        url: 'evaluation-dept-ad/targetStart',
+        method: 'post',
+        params: params
+    })
+}
 //----"部门考评指标考核-保存or修改"----新增后修改状态
 export function apideptModifyassessmentState(params) {
     return httpRequest({

+ 2 - 2
src/components/assessment/assessmentApplicationPage.vue

@@ -163,7 +163,7 @@ import seachs from '../seachGroup.vue'
 import { saveAs } from 'file-saver'
 import {apiGetevaluatiodeptadList, apiPostevaluationdeptadSave,apiGetdoAction,apiGetuserPageList,
 apiGetworkflowgetOpinion,apiGetevaluationdeptadReport,apiGetevaluationdownloadReport,
-apideptModifyState, apiGetorganizationstructureFromTree, apiPostevaluationdeptadDelete} from '../../api/api'
+apideptAdState, apiGetorganizationstructureFromTree, apiPostevaluationdeptadDelete} from '../../api/api'
 export default {
     components: {
         startFromList,
@@ -366,7 +366,7 @@ export default {
                             id: row.id,
                             stage: '流程已开始'
                         }
-                        apideptModifyState(params).then(values =>{
+                        apideptAdState(params).then(values =>{
                             if (values.success) {
                                 that.getassessmentApplicationList()
                             } else {

+ 41 - 27
src/components/assessment/evaluationAmendmentNewFrom.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="startFrom">
+    <div class="amendmentFrom">
         <el-dialog title="考评详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
             <div class="startDetail">
                 <p class="starttitleSty">单据信息:</p>
@@ -84,10 +84,19 @@
                                 <el-table-column type="index" label="排名" align="center"></el-table-column>
                                 <el-table-column label="考评单位" prop="organizationShortName" width="300" />
                                 <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
-                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key"
+                                     align="center" :width="iv.code === 'state'?'150':''">
                                         <template #default="scope">
-                                            <el-input v-model="scope.row[iv.code]" v-if="!scope.row['IS_LH_'+iv.code]"></el-input>
-                                            <el-input-number v-model="scope.row[iv.code]" v-else />
+                                            <el-select v-model="scope.row[iv.code]" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
+                                                <el-option
+                                                v-for="item in statusData"
+                                                :key="item.id"
+                                                :label="item.name"
+                                                :value="item.id">
+                                                </el-option>
+                                            </el-select>
+                                            <el-input v-model="scope.row[iv.code]" v-else-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
+                                            <el-input-number v-model="scope.row[iv.code]" :precision="2" :step="0.1" v-else />
                                         </template>
                                     </el-table-column>
                                 </el-table-column>
@@ -116,7 +125,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,
+import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,apiGetExportMsg,
 apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo} from '../../api/api'
 import * as XLSX from 'xlsx'
 import { saveAs } from 'file-saver'
@@ -157,6 +166,7 @@ export default {
             moduleData: [],
             stageData: [],
             titleMsgArr: [],
+            statusData: [],
             binSectionStr: '',
             addIcon: addIcon,
             saveIcon: saveIcon,
@@ -167,6 +177,20 @@ export default {
         }
     },
     created() {
+        this.statusData = [
+            {
+                name: '已确认',
+                id: '1'
+            },
+            {
+                name: '待确认',
+                id: '0'
+            },
+            {
+                name: '不合格',
+                id: '-1'
+            }
+        ]
     },
     methods: {
         init(row, type) {
@@ -409,35 +433,25 @@ export default {
             that.getTableData(that.isClickTagId)
         },
         handleExport() {
-            let indexvs = 0
-            this.stageData.forEach((it, index) =>{
-                if (it.stageCode === this.activeName) {
-                    indexvs = index
-                }
-            })
-            let $e = this.$refs.monthQuarterYearTT[indexvs].$el
-            try {
-                let $table = $e.querySelector('.el-table__fixed')
-                if(!$table) {
-                    $table = $e
-                }
-                const wb = XLSX.utils.table_to_book($table, {raw:true})
-
-                const wbout = XLSXD.write(wb, {bookType: 'xlsx', bookSST:true, type: 'array'})
-                saveAs(
-                    new Blob([wbout],{type: 'application/octet-stream'}),
-                    `考评详情数据导出.xlsx`,
-                )
-            } catch (e) {
-                if (typeof console !== 'undefined') console.error(e)
+            let that = this
+            let url = 'organization-evaluation-info/download-excel'
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: that.isClickTagId
             }
+            apiGetExportMsg(url,params).then(datas =>{
+                let blob = new Blob([datas])
+                saveAs(blob, '考评详情数据导出.xlsx')
+            }).catch((r) => {
+                console.error(r)
+            })
         },
     }
 }
 </script>
 
 <style lang="less">
-.startFrom{
+.amendmentFrom{
     .el-overlay{
         .el-dialog{
             // margin-top: 7vh;

+ 3 - 3
src/components/assessment/evaluationDeptStartFrom.vue

@@ -366,14 +366,14 @@ export default {
             colums = [
                 { header: 'ID', key: 'id', width: 26 },
                 { header: '业务ID', key: 'businessPlanId', width: 26 },
-                { header: '部门ID', key: 'deptId', width: 26 },
+                { header: '部门编码', key: 'deptId', width: 26 },
                 { header: '部门名称', key: 'deptName', width: 26 },
-                { header: '部门编码', key: 'deptCode', width: 26 },
+                // { header: '部门编码', key: 'deptCode', width: 26 },
                 { header: '排序', key: 'serialNumber', width: 26 },
                 { header: '指标名称', key: 'targetName', width: 18 },
                 { header: '目标值', key: 'targetValue', width: 18 },
+                { header: '评价标准', key: 'evaluationCriteria', width: 18 },
                 { header: '基础分', key: 'baseScore', width: 18 },
-                { header: '评价标准', key: 'evaluationCriteria', width: 18 }
             ]
             worksheet.columns = colums
             worksheet.getRow(1).font = {

+ 43 - 28
src/components/assessment/monthQuarterYearFrom.vue

@@ -56,6 +56,10 @@
                                     </el-tag>
                                 </div>
                                 <div class="headerRight">
+                                    <div class="seachFor">
+                                        <el-input v-model="compNameSa" placeholder="请输入单位名称"></el-input>
+                                        <el-icon :size="20" color="#3B7AD1" @click="getTableData(isClickTagId)"><Search /></el-icon>
+                                    </div>
                                     <div class="tableBtn add" @click="addTableDetail"
                                      v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
                                         <img :src="addIcon" alt="">
@@ -84,7 +88,8 @@
                                 <el-table-column type="index" label="排名" align="center"></el-table-column>
                                 <el-table-column label="考评单位" prop="organizationShortName" width="300" />
                                 <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
-                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key"
+                                     align="center" :width="iv.code === 'state'?'150':''">
                                         <template #default="scope">
                                             <el-select v-model="scope.row[iv.code]" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
                                                 <el-option
@@ -95,7 +100,7 @@
                                                 </el-option>
                                             </el-select>
                                             <el-input v-model="scope.row[iv.code]" v-else-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
-                                            <el-input-number v-model="scope.row[iv.code]" v-else />
+                                            <el-input-number v-model="scope.row[iv.code]" :precision="2" :step="0.1" v-else />
                                         </template>
                                     </el-table-column>
                                 </el-table-column>
@@ -124,7 +129,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,
+import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,apiGetExportMsg,
 apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo} from '../../api/api'
 import * as XLSX from 'xlsx'
 import { saveAs } from 'file-saver'
@@ -151,6 +156,7 @@ export default {
             monthQuarterYearHeader: [],
             indicatorList: [],
             isClickTagId: '',
+            compNameSa: '',
             receiptMsg: {
                 code: '',
                 des: '',
@@ -284,7 +290,8 @@ export default {
             let that = this
             let params = {
                 organizationEvaluationId: that.rowMsg.id,
-                indicatorId: id
+                indicatorId: id,
+                organizationShortName: that.compNameSa
             }
             apiGetgetEvaluationInfoDataList(params).then(datas =>{
                 if (datas && datas.data) {
@@ -432,28 +439,18 @@ export default {
             that.getTableData(that.isClickTagId)
         },
         handleExport() {
-            let indexvs = 0
-            this.stageData.forEach((it, index) =>{
-                if (it.stageCode === this.activeName) {
-                    indexvs = index
-                }
-            })
-            let $e = this.$refs.monthQuarterYearTT[indexvs].$el
-            try {
-                let $table = $e.querySelector('.el-table__fixed')
-                if(!$table) {
-                    $table = $e
-                }
-                const wb = XLSX.utils.table_to_book($table, {raw:true})
-
-                const wbout = XLSXD.write(wb, {bookType: 'xlsx', bookSST:true, type: 'array'})
-                saveAs(
-                    new Blob([wbout],{type: 'application/octet-stream'}),
-                    `考评详情数据导出.xlsx`,
-                )
-            } catch (e) {
-                if (typeof console !== 'undefined') console.error(e)
+            let that = this
+            let url = 'organization-evaluation-info/download-excel'
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: that.isClickTagId
             }
+            apiGetExportMsg(url,params).then(datas =>{
+                let blob = new Blob([datas])
+                saveAs(blob, '考评详情数据导出.xlsx')
+            }).catch((r) => {
+                console.error(r)
+            })
         },
     }
 }
@@ -541,7 +538,7 @@ export default {
                                 justify-content: space-between;
                                 .headerLeft{
                                     display: flex;
-                                    width: 80%;
+                                    width: 70%;
                                     .tagArr {
                                         height: 33px;
                                         margin-right: 10px;
@@ -567,12 +564,30 @@ export default {
                                 .headerRight{
                                     display: flex;
                                     justify-content: end;
-                                    width: 20%;
+                                    width: 30%;
                                     margin-bottom: 5px;
+                                    .seachFor{
+                                        display: flex;
+                                        .el-input{
+                                            height: 30px;
+                                            .el-input__inner{
+                                                height:30px;
+                                            }
+                                            .el-input__suffix{
+                                                .el-select__caret{
+                                                    line-height:30px;
+                                                }
+                                            }
+                                        }
+                                        .el-icon{
+                                            margin: 5px 10px 0 10px;
+                                            cursor: pointer;
+                                        }
+                                    }
                                     .tableBtn {
                                         display: flex;
                                         height: 20px;
-                                        margin: 0 10px;
+                                        margin: 5px 10px 0 10px;
                                         img{
                                             margin-right: 5px;
                                             margin-top: 1px;

+ 3 - 3
src/components/taskCenter/taskCenterDeptStartFrom.vue

@@ -438,14 +438,14 @@ export default {
             colums = [
                 { header: 'ID', key: 'id', width: 26 },
                 { header: '业务ID', key: 'businessPlanId', width: 26 },
-                { header: '部门ID', key: 'deptId', width: 26 },
+                { header: '部门编码', key: 'deptId', width: 26 },
                 { header: '部门名称', key: 'deptName', width: 26 },
-                { header: '部门编码', key: 'deptCode', width: 26 },
+                // { header: '部门编码', key: 'deptCode', width: 26 },
                 { header: '排序', key: 'serialNumber', width: 26 },
                 { header: '指标名称', key: 'targetName', width: 18 },
                 { header: '目标值', key: 'targetValue', width: 18 },
+                { header: '评价标准', key: 'evaluationCriteria', width: 18 },
                 { header: '基础分', key: 'baseScore', width: 18 },
-                { header: '评价标准', key: 'evaluationCriteria', width: 18 }
             ]
             worksheet.columns = colums
             worksheet.getRow(1).font = {

+ 41 - 26
src/components/taskCenter/taskCenterEvlNewFrom.vue

@@ -56,6 +56,10 @@
                                     </el-tag>
                                 </div>
                                 <div class="headerRight">
+                                    <div class="seachFor">
+                                        <el-input v-model="compNameSa" placeholder="请输入单位名称"></el-input>
+                                        <el-icon :size="20" color="#3B7AD1" @click="getTableData(isClickTagId)"><Search /></el-icon>
+                                    </div>
                                     <div class="tableBtn add" @click="addTableDetail"
                                      v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
                                         <img :src="addIcon" alt="">
@@ -84,7 +88,8 @@
                                 <el-table-column type="index" label="排名" align="center"></el-table-column>
                                 <el-table-column label="考评单位" prop="organizationShortName" width="300" />
                                 <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
-                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key"
+                                     align="center" :width="iv.code === 'state'?'150':''">
                                         <template #default="scope">
                                             <el-select v-model="scope.row[iv.code]" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
                                                 <el-option
@@ -95,7 +100,7 @@
                                                 </el-option>
                                             </el-select>
                                             <el-input v-model="scope.row[iv.code]" v-else-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
-                                            <el-input-number v-model="scope.row[iv.code]" v-else />
+                                            <el-input-number v-model="scope.row[iv.code]" :precision="2" :step="0.1" v-else />
                                         </template>
                                     </el-table-column>
                                 </el-table-column>
@@ -134,7 +139,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,
+import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,apiGetExportMsg,
 apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo,apiGetHeaderOrganizationEvaluation,
 apiGetHeaderDeptResponsibility, apiPostgetInstanceAndChildren, apiPostIsdoAction} from '../../api/api'
 import * as XLSX from 'xlsx'
@@ -162,6 +167,7 @@ export default {
             monthQuarterYearHeader: [],
             indicatorList: [],
             isClickTagId: '',
+            compNameSa: '',
             receiptMsg: {
                 code: '',
                 des: '',
@@ -337,7 +343,8 @@ export default {
             let that = this
             let params = {
                 organizationEvaluationId: that.tastbizKey,
-                indicatorId: id
+                indicatorId: id,
+                organizationShortName: that.compNameSa
             }
             apiGetgetEvaluationInfoDataList(params).then(datas =>{
                 if (datas && datas.data) {
@@ -484,28 +491,18 @@ export default {
             that.getTableData(that.isClickTagId)
         },
         handleExport() {
-            let indexvs = 0
-            this.stageData.forEach((it, index) =>{
-                if (it.stageCode === this.activeName) {
-                    indexvs = index
-                }
-            })
-            let $e = this.$refs.monthQuarterYearTT[indexvs].$el
-            try {
-                let $table = $e.querySelector('.el-table__fixed')
-                if(!$table) {
-                    $table = $e
-                }
-                const wb = XLSX.utils.table_to_book($table, {raw:true})
-
-                const wbout = XLSXD.write(wb, {bookType: 'xlsx', bookSST:true, type: 'array'})
-                saveAs(
-                    new Blob([wbout],{type: 'application/octet-stream'}),
-                    `考评详情数据导出.xlsx`,
-                )
-            } catch (e) {
-                if (typeof console !== 'undefined') console.error(e)
+            let that = this
+            let url = 'organization-evaluation-info/download-excel'
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: that.isClickTagId
             }
+            apiGetExportMsg(url,params).then(datas =>{
+                let blob = new Blob([datas])
+                saveAs(blob, '考评详情数据导出.xlsx')
+            }).catch((r) => {
+                console.error(r)
+            })
         },
         examineAndApprove(type) {
             let that = this
@@ -666,10 +663,28 @@ export default {
                                     justify-content: end;
                                     width: 20%;
                                     margin-bottom: 5px;
+                                    .seachFor{
+                                        display: flex;
+                                        .el-input{
+                                            height: 30px;
+                                            .el-input__inner{
+                                                height:30px;
+                                            }
+                                            .el-input__suffix{
+                                                .el-select__caret{
+                                                    line-height:30px;
+                                                }
+                                            }
+                                        }
+                                        .el-icon{
+                                            margin: 5px 10px 0 10px;
+                                            cursor: pointer;
+                                        }
+                                    }
                                     .tableBtn {
                                         display: flex;
                                         height: 20px;
-                                        margin: 0 10px;
+                                        margin: 5px 10px 0 10px;
                                         img{
                                             margin-right: 5px;
                                             margin-top: 1px;