|
@@ -20,9 +20,13 @@
|
|
|
<span>{{receiptMsg.declarationLevel}}级</span>
|
|
|
</div>
|
|
|
<div class="danjuMsg_data">
|
|
|
+ <span class="data_tit">申报年度:</span>
|
|
|
+ <span>{{receiptMsg.year}}年</span>
|
|
|
+ </div>
|
|
|
+ <!-- <div class="danjuMsg_data">
|
|
|
<span class="data_tit">申报领导:</span>
|
|
|
<span>{{receiptMsg.deptLeaderName}}</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<div class="danjuMsg_data">
|
|
@@ -30,8 +34,8 @@
|
|
|
<span>{{receiptMsg.stage}}</span>
|
|
|
</div>
|
|
|
<div class="danjuMsg_data">
|
|
|
- <span class="data_tit">申报年度:</span>
|
|
|
- <span>{{receiptMsg.year}}年</span>
|
|
|
+ <span class="data_tit">申报月份:</span>
|
|
|
+ <span>{{receiptMsg.month}}月</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -39,10 +43,6 @@
|
|
|
<span class="data_tit">创建日期:</span>
|
|
|
<span>{{receiptMsg.createDate}}</span>
|
|
|
</div>
|
|
|
- <div class="danjuMsg_data">
|
|
|
- <span class="data_tit">申报月份:</span>
|
|
|
- <span>{{receiptMsg.month}}月</span>
|
|
|
- </div>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<div class="danjuMsg_data">
|
|
@@ -57,33 +57,31 @@
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <div class="btnASeach">
|
|
|
- <div class="detaTableBtns">
|
|
|
- <div class="tableBtn add" @click="addTableDetail" v-if="isShowFn(receiptMsg.stage)">
|
|
|
- <img :src="addIcon" alt="">
|
|
|
- <span>新增</span>
|
|
|
- </div>
|
|
|
- <div class="tableBtn save" @click="saveDetail" v-if="isShowFn(receiptMsg.stage)">
|
|
|
- <img :src="saveIcon" alt="">
|
|
|
- <span>保存</span>
|
|
|
+ <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
|
|
+ <el-tab-pane label="员工月度考核系数" name="first">
|
|
|
+ <div class="detaTableBtns">
|
|
|
+ <div class="tableBtn add" @click="addTableDetail" v-if="isShowFn(receiptMsg.stage)">
|
|
|
+ <img :src="addIcon" alt="">
|
|
|
+ <span>新增</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn save" @click="saveDetail" v-if="isShowFn(receiptMsg.stage)">
|
|
|
+ <img :src="saveIcon" alt="">
|
|
|
+ <span>保存</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn delete" @click="handleDelete" v-if="isShowFn(receiptMsg.stage)">
|
|
|
+ <img :src="deleteIcon" alt="">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="tableBtn import" @click="handleImport" v-if="isShowFn(receiptMsg.stage)">
|
|
|
+ <img :src="importIcon" alt="">
|
|
|
+ <span>导入</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn export" @click="handleExport">
|
|
|
+ <img :src="exportIcon" alt="">
|
|
|
+ <span>导出</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="tableBtn delete" @click="handleDelete" v-if="isShowFn(receiptMsg.stage)">
|
|
|
- <img :src="deleteIcon" alt="">
|
|
|
- <span>删除</span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="tableBtn import" @click="handleImport" v-if="isShowFn(receiptMsg.stage)">
|
|
|
- <img :src="importIcon" alt="">
|
|
|
- <span>导入</span>
|
|
|
- </div>
|
|
|
- <div class="tableBtn export" @click="handleExport">
|
|
|
- <img :src="exportIcon" alt="">
|
|
|
- <span>导出</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-tabs v-model="activeName" class="demo-tabs">
|
|
|
- <el-tab-pane label="考评指标项内容" name="first">
|
|
|
<el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)"
|
|
|
style="width: 100%" @select="rowClick" @select-all="rowClick">
|
|
|
<el-table-column type="selection" label="操作" align="center"></el-table-column>
|
|
@@ -132,6 +130,59 @@
|
|
|
:total="pageLeft.total">
|
|
|
</el-pagination>
|
|
|
</el-tab-pane>
|
|
|
+ <el-tab-pane label="本月主要工作完成情况" name="second">
|
|
|
+ <div class="detaTableBtns">
|
|
|
+ <div class="tableBtn add" @click="addSecondWork">
|
|
|
+ <img :src="addIcon" alt="">
|
|
|
+ <span>新增</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn save" @click="saveSecondWork">
|
|
|
+ <img :src="saveIcon" alt="">
|
|
|
+ <span>保存</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn delete" @click="handleSecondWork">
|
|
|
+ <img :src="deleteIcon" alt="">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table :data="secondWorkSituation.slice((pageRight.currentPage-1)*pageRight.pagesize, pageRight.currentPage*pageRight.pagesize)"
|
|
|
+ style="width: 100%" @select="rowSituationClick" @select-all="rowSituationClick">
|
|
|
+ <el-table-column type="selection" label="操作" align="center"></el-table-column>
|
|
|
+ <el-table-column label="序号" type="index" width="80" />
|
|
|
+ <el-table-column label="工作内容">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.jobContent" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="完成情况">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.completionStatus" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="相关处室">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.relatedOffice" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="经办人">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.handlePeopleName" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="排序" >
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input-number v-model="scope.row.serialNumber" :min="1" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @current-change="handleCurrentChangeRight"
|
|
|
+ :current-page="pageRight.currentPage"
|
|
|
+ :page-size="pageRight.pagesize"
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
+ :total="pageRight.total">
|
|
|
+ </el-pagination>
|
|
|
+ </el-tab-pane>
|
|
|
</el-tabs>
|
|
|
|
|
|
</div>
|
|
@@ -147,8 +198,8 @@
|
|
|
|
|
|
<script>
|
|
|
import importDailog from '../importPage/importDailog.vue'
|
|
|
-import {apiPostevaluationdeptadDetails,apiGetevaluationdeptadUpdate, apiGetevaluationdeptadDelete,
|
|
|
-apiPostevaluationdeptadDetailsHead, apiGetuserPageList} from '../../api/api'
|
|
|
+import {apiPostevaluationdeptadDetails,apiGetevaluationdeptadUpdate, apiGetevaluationdeptadDelete,apiGetevaluationdeptadUpdateComplete,
|
|
|
+apiPostevaluationdeptadDetailsHead, apiGetuserPageList,apiGetevaluationdeptadDeleteComplete} from '../../api/api'
|
|
|
import ExcelJS from 'exceljs'
|
|
|
import fileSave from 'file-saver'
|
|
|
import addIcon from '../../assets/btnIcon/add.png'
|
|
@@ -166,7 +217,9 @@ export default {
|
|
|
dialogVisible: false,
|
|
|
activeName: 'first',
|
|
|
quantifiedList: [],
|
|
|
+ secondWorkSituation: [],
|
|
|
changeDateSelect: [],
|
|
|
+ changeSituationSelect: [],
|
|
|
receiptMsg: {
|
|
|
code: '',
|
|
|
des: '',
|
|
@@ -229,6 +282,11 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ handleClick(val) {
|
|
|
+ this.changeDateSelect = []
|
|
|
+ this.changeSituationSelect = []
|
|
|
+ this.activeName = val.props.name
|
|
|
+ },
|
|
|
// 判断保存 导入按钮展示权限
|
|
|
isShowFn(val) {
|
|
|
let show = true
|
|
@@ -271,6 +329,9 @@ export default {
|
|
|
handleCurrentChangeLeft(val) {
|
|
|
this.pageLeft.currentPage = val
|
|
|
},
|
|
|
+ handleCurrentChangeRight(val) {
|
|
|
+ this.pageRight.currentPage = val
|
|
|
+ },
|
|
|
//获取详情头数据
|
|
|
getDetailsHeader(id) {
|
|
|
let that = this
|
|
@@ -295,13 +356,20 @@ export default {
|
|
|
getDetails(id) {
|
|
|
let that = this
|
|
|
that.quantifiedList = []
|
|
|
+ that.secondWorkSituation = []
|
|
|
apiPostevaluationdeptadDetails(id).then(datas =>{
|
|
|
if (datas && datas.data) {
|
|
|
- datas.data.forEach(it =>{
|
|
|
- it.serialNumber = it.serialNumber.toString()
|
|
|
- })
|
|
|
- that.quantifiedList = datas.data
|
|
|
- that.pageLeft.total = datas.data.length
|
|
|
+ if (datas.data['ygydkhxs'][0]) {
|
|
|
+ datas.data['ygydkhxs'][0].forEach(it =>{
|
|
|
+ it.serialNumber = it.serialNumber.toString()
|
|
|
+ })
|
|
|
+ that.quantifiedList = datas.data['ygydkhxs'][0]
|
|
|
+ that.pageLeft.total = datas.data['ygydkhxs'][0].length
|
|
|
+ }
|
|
|
+ if (datas.data['byzygzwcqk'][0]) {
|
|
|
+ that.secondWorkSituation = datas.data['byzygzwcqk'][0]
|
|
|
+ that.pageRight.total = datas.data['byzygzwcqk'][0].length
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -374,6 +442,7 @@ export default {
|
|
|
message: '保存成功',
|
|
|
type: 'success'
|
|
|
});
|
|
|
+ that.activeName = 'first'
|
|
|
that.getDetails(that.rowMsg.id)
|
|
|
} else {
|
|
|
that.$message({
|
|
@@ -400,6 +469,7 @@ export default {
|
|
|
type: 'success',
|
|
|
message: '删除成功!'
|
|
|
});
|
|
|
+ that.activeName = 'first'
|
|
|
that.getDetails(that.rowMsg.id)
|
|
|
}
|
|
|
})
|
|
@@ -447,6 +517,81 @@ export default {
|
|
|
fileSave(blob, `绩效结果考核申报数据导出.xlsx`)
|
|
|
})
|
|
|
},
|
|
|
+ rowSituationClick(selection, row) {
|
|
|
+ this.changeSituationSelect = selection
|
|
|
+ },
|
|
|
+ addSecondWork() {
|
|
|
+ this.pageRight.currentPage = 1
|
|
|
+ let obj = {
|
|
|
+ showInput: true,
|
|
|
+ assessmentDeclarationId: this.rowMsg.id,
|
|
|
+ jobContent: '',
|
|
|
+ completionStatus: '',
|
|
|
+ relatedOffice: '',
|
|
|
+ handlePeopleName: '',
|
|
|
+ serialNumber: 0
|
|
|
+ }
|
|
|
+ this.secondWorkSituation.unshift(obj)
|
|
|
+ },
|
|
|
+ saveSecondWork() {
|
|
|
+ let that = this
|
|
|
+ let params = []
|
|
|
+ that.secondWorkSituation.forEach(item =>{
|
|
|
+ let obj = {
|
|
|
+ assessmentDeclarationId: that.rowMsg.id,
|
|
|
+ jobContent: item.jobContent,
|
|
|
+ completionStatus: item.completionStatus,
|
|
|
+ relatedOffice: item.relatedOffice,
|
|
|
+ handlePeopleName: item.handlePeopleName,
|
|
|
+ serialNumber: item.serialNumber
|
|
|
+ }
|
|
|
+ if (!item.showInput) {
|
|
|
+ obj.id = item.id
|
|
|
+ }
|
|
|
+ params.push(obj)
|
|
|
+ })
|
|
|
+ apiGetevaluationdeptadUpdateComplete(params).then(datas =>{
|
|
|
+ if (datas) {
|
|
|
+ if (datas.success) {
|
|
|
+ that.$message({
|
|
|
+ message: '保存成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ that.activeName = 'second'
|
|
|
+ that.getDetails(that.rowMsg.id)
|
|
|
+ } else {
|
|
|
+ that.$message({
|
|
|
+ message: datas.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleSecondWork() {
|
|
|
+ this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ let that = this
|
|
|
+ let paramsArr = []
|
|
|
+ that.changeSituationSelect.forEach(it =>{
|
|
|
+ paramsArr.push(it.id)
|
|
|
+ })
|
|
|
+ apiGetevaluationdeptadDeleteComplete(paramsArr.join(',')).then(datas =>{
|
|
|
+ if (datas) {
|
|
|
+ that.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: '删除成功!'
|
|
|
+ });
|
|
|
+ that.activeName = 'second'
|
|
|
+ that.changeSituationSelect = []
|
|
|
+ that.getDetails(that.rowMsg.id)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -503,18 +648,12 @@ export default {
|
|
|
.el-select, .el-input{
|
|
|
width: 100%;
|
|
|
}
|
|
|
- .btnASeach{
|
|
|
- display: flex;
|
|
|
- z-index: 11111;
|
|
|
- justify-content: flex-end;
|
|
|
- position: relative;
|
|
|
- top: 32px;
|
|
|
- // left: 48vw;
|
|
|
- width: 100%;
|
|
|
+ .el-tabs{
|
|
|
+ margin-top: 20px;
|
|
|
.detaTableBtns{
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
- width: 410px;
|
|
|
+ width: 100%;
|
|
|
margin-top: 5px;
|
|
|
.tableBtn {
|
|
|
display: flex;
|
|
@@ -570,8 +709,6 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- .el-tabs{
|
|
|
.el-tabs__header{
|
|
|
.el-tabs__nav{
|
|
|
.el-tabs__item{
|
|
@@ -594,7 +731,7 @@ export default {
|
|
|
.el-table{
|
|
|
margin-bottom: 10px;
|
|
|
.el-table__body-wrapper{
|
|
|
- height: 50vh;
|
|
|
+ height: 45vh;
|
|
|
}
|
|
|
.el-table__row{
|
|
|
.cell{
|