no message

This commit is contained in:
leave 2020-11-02 18:16:35 +08:00
parent 588e366e13
commit 7bc7e27b60
5 changed files with 492 additions and 246 deletions

View File

@ -1,18 +1,34 @@
<template>
<!-- <transition name="popupfade"> -->
<div class="taskDetailRight" @click="getRight">
<div class="taskDetailRight-contant" @click.stop="aa">
<div class="taskDetailRight-contant-title commonFont" >{{title}}</div>
<div class="taskDetailRight-contant-content" >
<div
class="taskDetailRight"
@click="getRight"
>
<div
class="taskDetailRight-contant"
@click.stop="aa"
>
<div class="taskDetailRight-contant-title commonFont">{{title}}</div>
<div class="taskDetailRight-contant-content">
<slot name="content"></slot>
</div>
<div v-if="footer" class="taskDetailRight-contant-footer" >
<div
v-if="footer"
class="taskDetailRight-contant-footer"
>
<div>
<slot name="footer-left"></slot>
</div>
<div>
<el-button size="small" @click="$emit('cancel')"> </el-button>
<el-button size="small" type="primary" @click="$emit('submit')">{{subumitText}}</el-button>
<el-button
size="small"
@click="$emit('cancel')"
> </el-button>
<el-button
size="small"
type="primary"
@click="$emit('submit')"
>{{subumitText}}</el-button>
<slot name="footer"></slot>
</div>
</div>
@ -51,7 +67,7 @@ export default {
mounted () {
},
methods: {
aa () {},
aa () { },
onSubmit () {
console.log('submit!')
this.isShow = false
@ -68,21 +84,22 @@ export default {
</script>
<style lang='less' scoped>
.popupfade-enter{
.popupfade-enter {
transform: translateX(-100%);
}
.fade-leave {
transform: translateX(0);
}
.popupfade-leave-to{
.popupfade-leave-to {
transform: translateX(60%);
}
}
.fade-enter-to{
.fade-enter-to {
transform: translateX(-100%);
}
.popupfade-leave-active,.fade-enter-active {
transition:all 40s;
}
.popupfade-leave-active,
.fade-enter-active {
transition: all 40s;
}
.taskDetailRight {
@ -91,7 +108,7 @@ export default {
height: 100vh;
width: 100%;
min-width: 200px;
background: rgba(0,0,0,.12);
background: rgba(0, 0, 0, 0.12);
top: 0;
right: 0;
transition: all 1s;
@ -99,20 +116,20 @@ export default {
min-width: 100px;
height: 100%;
float: right;
background:#fff;
box-shadow: 0 1px 6px 0 rgba(0,0,0,.12), 0 1px 6px 0 rgba(0,0,0,.12);
background: #fff;
box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
display: flex;
flex-direction: column;
&-title{
&-title {
border-bottom: 1px solid @borderColor;
padding:10px 20px;
padding: 10px 20px;
}
&-content{
&-content {
flex: 1;
padding:20px 20px;
padding: 20px 20px;
overflow: auto;
}
&-footer{
&-footer {
display: flex;
justify-content: space-between;
padding: 10px 20px;

View File

@ -1,27 +1,29 @@
<template>
<div>
<popup-right
v-if="showChooseList"
v-if="showPopup"
@cancel="hundlePopupHide"
@submit="handleSubmitPopup"
:title="popupRightTitle"
:subumitText='subumitText'
class="popup commonFont"
>
<div slot="content">
<div class="popup-selection">
<div class="comonTitle row">变更参与考核人员9</div>
<div
slot="content"
class="popup-content"
>
<div class="popup-content-selection">
<div class="row popup-content-selection-title">变更参与考核人员9</div>
<div class="row">
<el-button
type="text"
icon="el-icon-circle-plus-outline"
@click="handleAdd"
plain
>添加</el-button>
<el-button
type="text"
icon="el-icon-remove-outline"
@click="handleDelete"
plain
>删除</el-button>
</div>
</div>
@ -81,15 +83,18 @@
>设置</el-button>
</div>
</div> -->
</div>
</popup-right>
<popupRemovePerson :showPopup.sync='showPerson' />
</div>
</template>
<script>
import PopupRight from '@/components/PopupRight'
import popupRemovePerson from '@/components/popupPerson'
export default {
props: {
showChooseList: {
showPopup: {
type: Boolean,
default: false
},
@ -104,26 +109,28 @@ export default {
},
data () {
return {
showPerson: false,
permissionsRadio: '0', //
permissionsPrompt: '被考核人的目标完成确认后,管理员和部门主管都可以调整目标'
}
},
components: {
PopupRight,
popupRemovePerson
},
watch: {
},
methods: {
hundlePopupHide () {
this.showChooseList = false
this.$emit('update:showChooseList', false)
this.$emit('update:showPopup', false)
},
handleSubmitPopup () {
this.$emit('cb', {})
},
handleAdd () { },
handleDelete () {
this.showPerson = true
}
// handlePermissionsRadio () {
// this.permissionsPrompt = this.permissionsRadio === '0' ? '' : ''
@ -134,10 +141,18 @@ export default {
</script>
<style lang="less" scoped>
.popup {
&-content {
width: 440px;
&-selection {
border-bottom: 1px solid @borderColor;
padding: 0px 0px 10px 0px;
&-title {
line-height: 30px;
}
.row {
height: 50px;
display: flex;
align-content: center;
}
}
}
}

View File

@ -0,0 +1,183 @@
<template>
<popup-right
v-if="showPopup"
@cancel="hundlePopupHide"
@submit="handleSubmitPopup"
:title="title"
class="popup"
>
<div slot="content">
<div class="line-space ">
<div class="line-space ">
<el-input
v-model="rqAssessmentParameter.searchName"
@change="handlePopupSearchChange"
prefix-icon="el-icon-search"
placeholder="按姓名搜索"
size="small"
></el-input>
</div>
<div>
<el-button
@click="handleChooseDepartment"
size="small"
>选择部门<i class="el-icon-arrow-down"></i></el-button>
<el-button
@click="handleChooseGroup"
size="small"
>选择考评组<i class="el-icon-arrow-down"></i></el-button>
</div>
</div>
<div class="popup-table">
<el-table
v-if="popupData.tableList.length"
ref="popupMultipleTable"
:data="popupData.tableList"
@selection-change="handleSelectionChange"
tooltip-effect="dark"
:row-key="handleGetRowKeys"
>
<el-table-column
type="selection"
width="40"
:reserve-selection="true"
></el-table-column>
<el-table-column
label="姓名"
width="250"
><template slot-scope="scope"><img
src="xx"
class="popup-table-img"
/>{{scope.row.name}}</template></el-table-column>
</el-table>
<div
v-else
class="popup-empty comonPromptFont"
>
<img
src=""
style="height: 150px; width: 150px;"
/>
<div>暂无数据</div>
</div>
</div>
<el-pagination
:hide-on-single-page="true"
:current-page.sync="rqAssessmentParameter.currPage"
:page-size="rqAssessmentParameter.pageSize"
:total="rqAssessmentParameter.totalCount"
:page-count="rqAssessmentParameter.totalPage"
@current-change="handleCurrentChange"
layout="total, prev, pager, next, jumper"
></el-pagination>
</div>
<div
slot="footer-left"
class="popup-footer-left"
>已选择{{popupData.selectedList.length}}</div>
</popup-right>
</template>
<script>
import PopupRight from '@/components/PopupRight'
export default {
props: {
title: {
type: String,
default: '请选择开始评分的考评组'
},
showPopup: {
type: Boolean,
default: false
}
},
data () {
return {
popupData: {
tableList: [],
selectedList: []
},
rqAssessmentParameter: {
currPage: 1,
pageSize: 100,
searchName: '',
totalCount: 1,
totalPage: 1
}
}
},
components: {
PopupRight
},
computed: {},
beforeMount () { },
mounted () { },
methods: {
handlePopupSearchChange (val) {
//
this.handleGainAssessmentGroupList()
},
handleChooseDepartment () {
},
handleChooseGroup () {
},
handleSelectionChange (val) {
//
this.popupData.selectedList = val
},
handleEmpty () {
this.showChooseList = false
//
// this.$router.push({ name: 'workbench-edit-group' })
},
handleSubmitPopup () {
const list = this.popupData.selectedList
},
hundlePopupHide () {
this.$emit('update:showPopup', false)
},
handleCurrentChange (val) {
this.handleGainAssessmentGroupList(val)
},
//
handleGainAssessmentGroupList (currPage) {
}
},
watch: {}
}
</script>
<style lang='less' scoped>
.popup {
.line-space {
margin-bottom: 20px;
}
&-table {
&-img {
width: 34px;
height: 34px;
border-radius: 17px;
}
}
&-empty {
padding-top: 100px;
height: 500px;
width: 440px;
font-size: 14px;
text-align: center;
display: block;
align-content: center;
justify-content: center;
}
&-footer-left {
color: @fontBlue;
}
}
</style>

View File

@ -1,63 +0,0 @@
<!-- -->
<template>
<div>
<popup-right v-if="show" @cancel='handleCancel' @submit="handleSubmit" title="添加维度">
<div slot='content'>
<el-input v-model="searchTxt"
@click="handleSearch"
placeholder="搜索考评组"
style="margin-top:40px">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
<div>
<el-checkbox>全选</el-checkbox>
</div>
</div>
</popup-right>
</div>
</template>
<script>
import PopupRight from '@/components/PopupRight'
export default {
props: {
show: {
type: Boolean,
default: false
}
},
data () {
return {
//
searchTxt: '',
//
form: {}
}
},
components: {
PopupRight
},
computed: {},
beforeMount () {},
mounted () {},
methods: {
handleSearch () {
},
handleCancel () {
this.$emit('update:show', false)
},
handleSubmit () {
this.$emit('update:show', false)
}
},
watch: {}
}
</script>
<style lang='' scoped>
</style>

View File

@ -9,35 +9,86 @@
size="mini"
:props="props"
:options="timeOptions"
@change="handleChange"></el-cascader>
@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" @click="handleChoose" plain>{{formTitle}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-button size="small" @click="handleKaoping" plain>{{params.evaluationIds?params.title:'选择考评组'}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
<el-input clearable @change="handleChangeInput" @keyup.enter="handleChangeInput" size="small" style="margin-left:10px;" v-model="params.name" prefix-icon="el-icon-search" placeholder="请输入姓名搜索"></el-input>
<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="handleKaoping"
plain
>{{params.evaluationIds?params.title:'选择考评组'}}<i
style="margin-left:10px;"
class="el-icon-arrow-down"
></i></el-button>
<el-input
clearable
@change="handleChangeInput"
@keyup.enter="handleChangeInput"
size="small"
style="margin-left:10px;"
v-model="params.name"
prefix-icon="el-icon-search"
placeholder="请输入姓名搜索"
></el-input>
</div>
<div class="step-content-top-right">
<el-button size="small" @click="showChooseList= true" type="primary">开始评分</el-button>
<el-button
size="small"
@click="showChooseList= true"
type="primary"
>开始评分</el-button>
<!-- handleGetList handleChoose -->
<el-button size="small" @click="handleGetList" plain>更多</el-button>
<el-button
size="small"
@click="handleMore"
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" :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>
<div
class="step-content-center-item commonFont"
v-for="(i,index) in titleList"
:key="i.id"
>
<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>
</div>
</div>
</div>
<div>
<el-table
:data="tableData"
style="width: 100%">
style="width: 100%"
>
<el-table-column
prop="staffName"
label="姓名"
@ -71,13 +122,15 @@
<el-table-column
prop="address"
align='center'
label="操作">
label="操作"
>
<template slot-scope="scope">
<div>
<el-button
@click="handleLook(scope.row.id)"
type="text"
size="small">
size="small"
>
</el-button>
</div>
@ -93,23 +146,53 @@
layout="prev, pager, next"
:page-size.sync='params.pageSize'
:current-page.sync='params.currPage'
:total="params.totalCount">
:total="params.totalCount"
>
</el-pagination>
</div>
</div>
</div>
<ChooseInitiate @cb='handleCallBackChoose' subumitText='开始评分' popupRightTitle='请选择开始评分的考评组' :options='options' :showChooseList.sync='showChooseList'/>
<EvaluationTeamFilter v-if="dialogVisible" :value='params.evaluationIds' :filtersDic="{startId: this.params.startId }" :dialogVisible.sync='dialogVisible' @submitClick='submitClick' @close='dialogVisible = false'/>
<getPersonnel v-if="form.isShowPersonnel" :value.sync='params.staffIds' :isShow.sync='form.isShowPersonnel' :showDataList.sync='form.personnelList'/>
<ChooseInitiate
@cb='handleCallBackChoose'
subumitText='开始评分'
popupRightTitle='请选择开始评分的考评组'
:options='options'
:showChooseList.sync='showChooseList'
/>
<EvaluationTeamFilter
v-if="dialogVisible"
:value='params.evaluationIds'
:filtersDic="{startId: this.params.startId }"
:dialogVisible.sync='dialogVisible'
@submitClick='submitClick'
@close='dialogVisible = false'
/>
<getPersonnel
v-if="form.isShowPersonnel"
:value.sync='params.staffIds'
:isShow.sync='form.isShowPersonnel'
:showDataList.sync='form.personnelList'
/>
<popupMange
:showPopup.sync="showPopupMange"
popupRightTitle="管理绩效考核"
@cb="handlePopupMangeSubmit"
/>
<popupRemovePerson
:showPopup="showPopupPerson"
title="删除被考核人员"
></popupRemovePerson>
</div>
</template>
<script>
import SmallNav from '@/components/kpi-layout/SmallNav'
import getPersonnel from '@/components/getPersonnel'
import popupMange from '@/components/popupMange'
import PopupRight from '@/components/PopupRight'
import EvaluationTeamFilter from '@/components/EvaluationTeamFilter'
import ChooseInitiate from '@/components/ChooseInitiate'
import popupRemovePerson from '@/components/popupPerson'
import { apiManagerDetail, apiChartList } from '@/api/assessment'
import { getStartsData } from '@/api/report'
@ -120,6 +203,8 @@ export default {
options: {
startId: this.$route.query.id || ''
},
showPopupMange: false, //
showPopupPerson: false,
showChooseList: false,
dialogVisible: false,
form: {
@ -162,6 +247,8 @@ export default {
components: {
SmallNav,
getPersonnel,
popupMange,
popupRemovePerson,
PopupRight,
EvaluationTeamFilter,
ChooseInitiate
@ -171,7 +258,7 @@ export default {
return this.form.personnelList.list.length > 0 ? this.form.personnelList.title + '等' + this.form.personnelList.list.length + '人' : '选择部门'
}
},
beforeMount () {},
beforeMount () { },
async mounted () {
this.params.startId = Number(this.$route.query.id)
await this.handleStartsReq()
@ -195,7 +282,7 @@ export default {
// this.handleKaoping()
this.$router.push({
name: 'assessment-performance',
query: {id: 267}
query: { id: 267 }
})
console.log('id: ', id)
},
@ -305,6 +392,13 @@ export default {
this.params.flowProcess = this.titleList[0].flowProcess
}
this.handleGetListContent()
},
handleMore () {
// this.showPopupPerson = true
this.showPopupMange = true
},
handlePopupMangeSubmit () {
this.showPopupMange = false
}
},
watch: {
@ -318,8 +412,8 @@ export default {
</script>
<style lang='less' scoped>
.step-content{
.footer{
.step-content {
.footer {
text-align: right;
margin: 20px 0 0 0;
}
@ -329,41 +423,41 @@ export default {
min-height: 537px;
background: #fff;
width: 100%;
&-top{
&-top {
display: flex;
align-items: center;
justify-content: space-between;
&-left{
&-left {
display: flex;
align-items: center;
}
}
.shuxian{
.shuxian {
width: 1px;
height: 16px;
background: #52575b;
}
&-center{
&-center {
margin: 30px 0 10px 0;
padding: 0 40px;
min-height: 40px;
background: #f6f6f6;
display: flex;
flex-wrap: wrap;
&-item{
&-item {
height: 40px;
.hover:hover{
.hover:hover {
color: @fontBlue;
}
.active{
.active {
color: @fontBlue;
}
.center();
&-img{
&-img {
.center();
height: 20px;
margin: 0 40px;
img{
img {
width: 100%;
height: 100%;
}