This commit is contained in:
杜建超 2020-09-23 18:15:20 +08:00
parent cb135f413f
commit 5bd66acc90
3 changed files with 318 additions and 2 deletions

View File

@ -1,6 +1,11 @@
import http from '../utils/http'
// 业绩报表
// 业绩看板
export const apiReportChart = data => {
return http({ url: '/lz_management/report/chart', method: 'get', params: data })
return http({ url: '/lz_management/result/chart', method: 'get', params: data })
}
// 业绩列表
export const apiReportList = data => {
return http({ url: '/lz_management/result/report', method: 'post', params: data })
}

View File

@ -0,0 +1,148 @@
<!-- -->
<template>
<div>
<div class="staff-archives-title"></div>
<el-form :inline="true" :model="formInline" class="demo-form-inline staff-archives-form">
<el-form-item label="选择部门">
<el-input
placeholder="请选择部门"
@focus="isChoose=true"
readonly
:value="formInline.departmentName"
></el-input>
</el-form-item>
<el-form-item :label="`选择月份`">
<el-date-picker
type="month"
placeholder="选择月份"
v-model="selectMonthTime"
value-format="yyyy-MM"
@change="changeApplyMonth"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
<el-button type="primary" @click="restValue">重置</el-button>
</el-form-item>
</el-form>
<el-dialog title="选择部门" :visible.sync="isChoose" width="30%">
<el-tree :data="menuList" :props="defaultProps" @node-click="handleNodeClick">
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ data.departmentName }}</span>
<span>({{ data.memberCount }})</span>
</span>
</el-tree>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="isChoose = false"> </el-button>
<el-button type="primary" size="mini" @click="onsumbit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { apiOrganizationList } from '@/api/api_staff'
export default {
props: {
monthTime: {
type: String,
default: ''
}
},
data: function () {
return {
selectMonthTime: this.nowDate(),
isChooseObj: {},
isChoose: false,
menuList: [],
defaultProps: {
children: 'list',
label: 'name'
},
formInline: {
value: []
}
}
},
computed: {},
beforeMount () { },
created () {
this.handleGetMenuList()
this.handleChangeData()
},
mounted () {},
beforeUpdate () {
// this.selectMonthTime = this.monthTime
},
methods: {
async handleChangeData () {
this.onSubmit()
},
//
async handleGetMenuList () {
let result = await apiOrganizationList()
this.menuList = result
},
//
changeApplyMonth (val) {
this.selectMonthTime = val
console.log(val)
},
onSubmit () {
let obj = {
departmentId: this.formInline.departmentId,
selectMonthTime: this.selectMonthTime
}
this.$emit('submit', obj)
},
restValue () {
this.formInline = {}
this.selectMonthTime = ''
},
onsumbit () {
this.formInline = Object.assign({}, this.formInline, this.isChooseObj)
this.isChoose = false
},
handleNodeClick (a, b) {
this.isChooseObj = {
departmentId: a.departmentId,
departmentName: a.departmentName
}
},
nowDate () {
var data = new Date()
var month = data.getMonth() < 9 ? '0' + (data.getMonth() + 1) : data.getMonth() + 1
return data.getFullYear() + '-' + month
}
},
watch: {}
}
</script>
<style lang='scss'>
.el-range-separator {
width: 7% !important;
}
.el-input__icon {
transition: all 0.5s;
}
.staff-archives-choose {
margin: 2px;
height: 200px;
overflow: auto;
transition: all 0.3s;
position: relative;
border: 1px solid #dcdfe6;
}
.staff-archives-choose1 {
height: 0px;
opacity: 0;
overflow: hidden;
}
</style>

View File

@ -0,0 +1,163 @@
<template>
<div class="mod-log">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="handleGetTableList()">
<el-card>
<query-form @submit="submit"/>
</el-card>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
prop="staffName"
header-align="center"
align="center"
width="100"
label="姓名">
</el-table-column>
<el-table-column
prop="status"
header-align="center"
align="center"
width="100"
label="当前进度">
<template slot-scope="scope">
<el-tag v-if="scope.row.status === 0" size="small" type="danger">未提交</el-tag>
<el-tag v-if="scope.row.status === 4" size="small" type="success">已完成</el-tag>
<el-tag v-if="scope.row.status === 1 || scope.row.status === 3 || scope.row.status === 5 || scope.row.status === 6" size="small" type="primary">审核中</el-tag>
</template>
</el-table-column>
<el-table-column
prop="departmentName"
header-align="center"
align="center"
width="200"
label="部门">
</el-table-column>
<el-table-column
prop="position"
header-align="center"
align="center"
width="200"
:show-overflow-tooltip="true"
label="职位">
</el-table-column>
<el-table-column
prop="version"
header-align="center"
align="center"
width="100"
:show-overflow-tooltip="true"
label="业务得分70%">
</el-table-column>
<el-table-column
prop="deployTime"
header-align="center"
align="center"
width="100"
label="价值观得分30%">
</el-table-column>
<el-table-column
header-align="center"
align="center"
width="100"
label="总分">
</el-table-column>
<el-table-column
header-align="center"
align="center"
width="100"
label="等级">
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
</template>
<script>
import { apiReportList } from '@/api/api_report'
import queryForm from './componments/query-form'
export default {
data () {
return {
dataForm: {
key: ''
},
imageSrc: '',
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
selectionDataList: [],
departmentId: '',
selectMonthTime: '',
status: 0,
type: 1
}
},
created () {
this.handleGetTableList()
},
components: {
queryForm
},
methods: {
//
handleGetTableList () {
apiReportList({
'currPage': this.pageIndex,
'pageSize': this.pageSize,
'departmentId': this.departmentId,
'selectMonthTime': this.selectMonthTime,
'status': this.status,
'type': this.type
}).then(res => {
if (res && res.code === 0) {
this.dataList = res.page.list
this.totalPage = res.page.totalCount
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.handleGetTableList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.handleGetTableList()
},
submit (data) {
this.departmentId = data.departmentId
this.selectMonthTime = data.selectMonthTime
this.handleGetTableList()
}
}
}
</script>
<style>
</style>