This commit is contained in:
sean yu 2020-10-28 09:58:47 +08:00
commit 0ba57d6885
10 changed files with 271 additions and 76 deletions

View File

@ -17,3 +17,21 @@ export function apiDeleteAssessList (query) {
params: query
})
}
// 获取考核详情列表人数统计
export function apiChartList (query) {
return request({
url: '/lz_management/performance/assess/manager/chart',
method: 'post',
data: query
})
}
// 获取考核详情列表
export function apiManagerDetail (query) {
return request({
url: '/lz_management/performance/assess/manager/detail',
method: 'post',
data: query
})
}

View File

@ -1,5 +1,6 @@
import request from '@/utils/request'
// 发起考核
export function apiInitiateAssessmentInfo (query) {
return request({

10
src/api/toDo.js Normal file
View File

@ -0,0 +1,10 @@
import requestFuc from '@/utils/request'
// 获取考核组列表
export function apiGetWaitList (query) {
return requestFuc({
url: '/lz_management/performance/task/list',
method: 'POST',
data: query
})
}

View File

@ -10,6 +10,10 @@
font-size: 16px;
color: #52575b;
}
.common-main {
background-color: white;
padding: 40px 20px;
}
.noSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;

View File

@ -47,3 +47,6 @@ a:hover img{ border:none;}
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
div{
box-sizing: border-box;
}

View File

@ -164,7 +164,7 @@ export default {
this.handleGetData(Object.assign({}, this.form, this.params))
},
handlePush (id) {
this.$router.push({name: 'assessment-stepList', query: {id: 10, name: 'workbench-home'}})
this.$router.push({name: 'assessment-stepList', query: {id: 10}})
},
async handleGetData (parmas = this.params) {
try {

View File

@ -3,24 +3,25 @@
<div class="step">
<small-nav :showTitle='false'>
<div slot="content">
<el-cascader size="small" :props="props"></el-cascader>
<el-cascader size="mini" :props="props" :options="timeOptions" @change="handleChange"></el-cascader>
</div>
</small-nav>
<div class="step-content boderAndRadius">
<div class="step-content-top">
<div class="step-content-top-left">
<el-button size="small" plain>选择部门<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-button size="small" plain>选择考评组<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-button size="small" @click="handleChoose" plain>{{formTitle}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-button size="small" @click="kaopingFrom.showRight = true" plain>选择考评组<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-input size="small" style="margin-left:10px;" v-model="formInline.user" prefix-icon="el-icon-search" placeholder="请输入姓名搜索"></el-input>
</div>
<div class="step-content-top-right">
<el-button size="small" type="primary">开始评分</el-button>
<el-button size="small" plain>更多</el-button>
<!-- handleGetList handleChoose -->
<el-button size="small" @click="handleGetList" plain>更多</el-button>
</div>
</div>
<div class="step-content-center boderAndRadius">
<div class="step-content-center-item commonFont" v-for="(i,index) in titleList" :key="i.id">
<span class="hover" style="cursor: pointer;">{{i.name}}({{i.number}})</span>
<span class="hover" :class="{active:i.active}" @click="handleActive(i)" style="cursor: pointer;">{{i.desc}}( {{i.num}} )</span>
<div v-if="index<titleList.length-1" class="step-content-center-item-img">
<div v-if="titleList.length>2 && index===0" class='shuxian'></div>
<i v-else class="el-icon-arrow-right"></i>
@ -57,15 +58,60 @@
</el-table>
</div>
</div>
<popup-right v-if="kaopingFrom.showRight" @cancel='handleCancel' @submit="handleSubmit" title="考评组筛选">
<div slot="content" class="chooseManage">
66
<!-- <div v-for="i in GroundList" :key="i.staffId" class="chooseManage-item" >
<el-checkbox :true-label='1' :false-label='0' :disabled='i.isDisable===1' :checked='i.isDisable===1' v-model='i.isSelect'></el-checkbox><span class='commonFont' style="margin:0 0 0 10px;">{{i.staffName}} </span>
</div> -->
</div>
</popup-right>
<getPersonnel v-if="form.isShowPersonnel" :value.sync='params.staffIds' :isShow.sync='form.isShowPersonnel' :showDataList.sync='form.personnelList'/>
</div>
</template>
<script>
import SmallNav from '@/components/kpi-layout/SmallNav'
import getPersonnel from '@/components/getPersonnel'
import PopupRight from '@/components/PopupRight'
import { apiManagerDetail, apiChartList } from '@/api/assessment'
import { getStartsData } from '@/api/report'
let id = 0
export default {
data () {
return {
kaopingFrom: {
showRight: false
},
form: {
isShowPersonnel: false,
personnelList: {
list: []
}
},
params: {
'currPage': 1,
// 'evaluationIds': '',
'flowProcess': 0,
'pageSize': 10,
// 'staffIds': '',
// 'staffName': '',
'startId': 10
},
timeOptions: [{
startId: 0,
time: '月底',
children: []
}, {
startId: 1,
time: '自定义',
children: []
}],
//
props: {
value: 'startId',
label: 'time'
},
tableData: [{
date: '2016-05-02',
name: '王小虎',
@ -84,62 +130,79 @@ export default {
address: '上海市普陀区金沙江路 1516 弄'
}],
formInline: {},
titleList: [{
id: 10,
name: '全部',
number: 5
}, {
id: 11,
name: '全部',
number: 5
}, {
id: 12,
name: '全部',
number: 5
}, {
id: 13,
name: '全部',
number: 5
}, {
id: 14,
name: '全部',
number: 5
}, {
id: 15,
name: '全部',
number: 5
}, {
id: 10,
name: '全部',
number: 5
}],
props: {
lazy: true,
lazyLoad: (node, resolve) => {
console.log(this)
console.log('node: ', node)
const { level } = node
setTimeout(() => {
const nodes = Array.from({ length: level + 1 })
.map(item => ({
value: ++id,
label: `选项${id}`,
leaf: level >= 2
}))
// resolve
resolve(nodes)
}, 1000)
}
}
titleList: []
}
},
components: {
SmallNav
SmallNav,
getPersonnel,
PopupRight
},
computed: {
formTitle () {
return this.form.personnelList.list.length > 0 ? this.form.personnelList.title + '等' + this.form.personnelList.list.length + '人' : '选择部门'
}
},
computed: {},
beforeMount () {},
mounted () {},
methods: {},
mounted () {
this.handleGetChartList()
this.handleStartsReq()
},
methods: {
// 999
async handleStartsReq (type, handleNode) {
let params = {
currentPage: 1,
cycleType: type,
pageSize: 999
}
for (let j in this.timeOptions) {
try {
let res = await getStartsData({
currentPage: 1,
cycleType: this.timeOptions[j].startId,
pageSize: 999
})
res = res.data
console.log('res: ', res)
this.timeOptions[j].children = res.list
} catch (error) {
console.log(error)
}
}
},
handleChange (item) {
console.log('item: ', item)
},
handleSubmit () {
this.kaopingFrom.showRight = false
},
handleCancel () {
this.kaopingFrom.showRight = false
},
//
handleChoose () {
this.form.isShowPersonnel = true
},
handleGetList () {
console.log('1', this.form.personnelList)
},
handleActive (i) {
this.titleList = this.titleList.map(j => {
j.active = false
return j
})
i.active = true
},
// tabbar
async handleGetChartList (params = this.params) {
let res = await apiChartList(params)
if (res.code !== 200) return
this.titleList = res.data
this.titleList[0].active = true
console.log('res: ', res)
}
},
watch: {}
}
@ -187,7 +250,7 @@ export default {
&-img{
.center();
height: 20px;
margin: 0 56px;
margin: 0 40px;
img{
width: 100%;
height: 100%;

View File

@ -1,6 +1,6 @@
<!-- -->
<template>
<div class="set-mian commonFont">
<div class="set-mian commonFont common-main">
<el-menu
:default-active="activeIndex"
mode="horizontal"
@ -47,8 +47,7 @@ export default {
<style lang='less' scoped>
.set-mian {
background-color: white;
min-height: 600px;
padding: 25px;
padding-top: 0px;
min-height: 600px;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div class="initiate-assessment commonFont">
<div class="initiate-assessment commonFont common-main">
<el-form
:model="formData"
:rules="formRules"
@ -340,14 +340,12 @@ export default {
</script>
<style lang="less" scoped>
.initiate-assessment {
padding: 25px;
background-color: white;
min-height: 600px;
.title {
margin-bottom: 25px;
}
.choose-group {
margin-top: 150px;
margin-top: 200px;
}
.line-space {
margin-top: 20px;

View File

@ -1,28 +1,116 @@
<!-- -->
<template>
<div class="todo">
<small-nav />
<div class="todo-content boderAndRadius">
待办事项
<div class="todo commonFont">
<small-nav />
<div class="todo-content boderAndRadius">
<div class="todo-content-left">
<el-menu
@select="handleMenuSeledt"
:default-active="activeIndex"
style=" width: 200px; height: 100%;"
>
<el-menu-item index="0">待处理{{waitCount>0?'' +waitCount + '':''}}</el-menu-item>
<el-menu-item index="1">已处理</el-menu-item>
</el-menu>
</div>
<div class="todo-content-right">
<!-- <div v-if=""></div> -->
<el-table
:data="waitTableList"
:show-header="false"
style="border-top: 1px solid #ebebeb;"
max-height="500"
>
<el-table-column
prop="imgStr"
width="100"
></el-table-column>
<el-table-column prop="name"></el-table-column>
<el-table-column
width="200"
align="right"
>
<template slot-scope="scope">
{{scope.row.dateTime}}<i class="el-icon-arrow-right"></i>
</template>
</el-table-column>
</el-table>
<el-pagination
:hide-on-single-page="true"
:current-page.sync="rqParameter.currPage"
:page-size="rqParameter.pageSize"
:total="rqParameter.totalCount"
:page-count="rqParameter.totalPage"
@current-change="handleCurrentChange"
layout="total, prev, pager, next, jumper"
></el-pagination> </div>
</div>
</div>
</template>
<script>
import SmallNav from '@/components/kpi-layout/SmallNav'
import { apiGetWaitList } from '@/api/toDo'
export default {
data () {
return {
activeIndex: '0',
waitCount: 0,
rqParameter: {
currPage: 1,
pageSize: 20,
status: 0,
totalCount: 1,
totalPage: 1
},
waitTableList: [{ imgStr: '', name: '咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩', dateTime: '2020-22-22 02:22:22' }, { imgStr: '', name: '咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩', dateTime: '2020-22-22 02:22:22' }, { imgStr: '', name: '咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩扩', dateTime: '2020-22-22 02:22:22' }]
}
},
components: {
SmallNav
},
computed: {},
beforeMount () {},
mounted () {},
beforeMount () { },
mounted () {
this.activeIndex = '0'
this.rqParameter = {
currPage: 1,
pageSize: 20,
status: this.activeIndex,
totalCount: 1,
totalPage: 1
}
this.handleGetList()
},
methods: {
handleGetList () {
apiGetWaitList(this.rqParameter).then(res => {
this.rqParameter.currPage = res.data.currPage
this.rqParameter.totalCount = res.data.totalCount
this.rqParameter.totalPage = res.data.totalPage
if (this.activeIndex === 0) {
//
this.waitCount = res.data.totalCount
}
this.waitTableList = res.data.list
console.log('待处理', res)
})
},
handleMenuSeledt () {
this.rqParameter = {
currPage: 1,
pageSize: 20,
status: this.activeIndex,
totalCount: 1,
totalPage: 1
}
this.waitTableList = []
this.handleGetList()
},
handleCurrentChange (val) {
this.rqParameter.currPage = val
this.handleGetList()
}
},
watch: {}
@ -31,11 +119,22 @@ export default {
</script>
<style lang='less' scoped>
.todo{
&-content{
.todo {
&-content {
width: 1252px;
min-height: 537px;
// min-height: 537px;
padding: 28px;
display: flex;
&-left {
width: 200px;
float: left;
}
&-right {
// border-left: 2px solid @borderColor;
// padding-left: 20px;
padding: 20px;
flex: 1;
}
}
}
</style>