This commit is contained in:
熊成强 2020-11-02 10:31:38 +08:00
parent aa260e486f
commit 45de6d1bd9
3 changed files with 209 additions and 4 deletions

View File

@ -0,0 +1,192 @@
<!-- -->
<template>
<popup-right
v-if="showChooseList"
@cancel="hundlePopupHide"
@submit="handleSubmitPopup"
:title="popupRightTitle"
:subumitText='subumitText'
class="popup"
>
<div slot="content">
<div class="popup-search">
<el-input
v-model="rqAssessmentParameter.searchName"
@change="handlePopupSearchChange"
prefix-icon="el-icon-search"
clearable
placeholder="搜索考评组"
size="mini"
></el-input>
</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">{{scope.row.name}}</template></el-table-column>
<el-table-column
width="80"
align="right"
><template slot-scope="scope">{{scope.row.counts}}</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-button
@click="handlePopupCreat"
type="text"
>新建考评组</el-button>
</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'
import { getWorkList } from '@/api/workbench'
export default {
props: {
subumitText: {
type: String,
default: '确 定'
},
popupRightTitle: {
type: String,
default: '选择考评组(月度)考核'
},
showChooseList: {
type: Boolean,
default: false
},
options: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
// showChooseList: true,
popupData: {
tableList: [],
selectedList: []
},
rqAssessmentParameter: {
currPage: 1,
pageSize: 100,
searchName: '',
totalCount: 1,
totalPage: 1
}
}
},
components: {
PopupRight
},
computed: {},
beforeMount () {},
mounted () {
this.handleGainAssessmentGroupList()
console.log('showChooseList: ', this.showChooseList)
},
methods: {
handlePopupCreat () {
this.$emit('update:showChooseList', false)
//
this.$router.push({ name: 'workbench-edit-group' })
},
hundlePopupHide () {
this.popupData.selectedList = []
if (this.$refs.popupMultipleTable) {
this.$refs.popupMultipleTable.clearSelection()
}
this.$emit('update:showChooseList', false)
},
handlePopupSearchChange (val) {
//
this.handleGainAssessmentGroupList()
},
handleSelectionChange (val) {
//
this.popupData.selectedList = val
},
handleGetRowKeys (row) {
return row.id
},
handleSubmitPopup () {
const list = this.popupData.selectedList
const id = list.map((item, index) => {
return item.id
}).join(',')
if (this.$listeners.cb) {
this.$emit('cb', {value: id, list})
} else {
this.$emit('update:list', id)
this.$emit('update:showChooseList', false)
}
},
//
handleGainAssessmentGroupList (currPage) {
currPage = currPage > 0 ? currPage : this.rqAssessmentParameter.currPage
let para = {
pageSize: this.rqAssessmentParameter.pageSize,
currPage: currPage,
name: this.rqAssessmentParameter.searchName
}
getWorkList(Object.assign({}, para, this.options)).then(res => {
this.rqAssessmentParameter.totalPage = res.data.totalPage
this.rqAssessmentParameter.totalCount = res.data.totalCount
this.currPage = res.data.currPage
this.popupData.tableList = res.data.list
})
},
handleCurrentChange (val) {
this.handleGainAssessmentGroupList(val)
}
},
watch: {}
}
</script>
<style lang='less' scoped>
.popup-search{
margin: 10px 0;
}
</style>

View File

@ -12,7 +12,7 @@
</div> </div>
<div> <div>
<el-button size="small" @click="$emit('cancel')"> </el-button> <el-button size="small" @click="$emit('cancel')"> </el-button>
<el-button size="small" type="primary" @click="$emit('submit')"> </el-button> <el-button size="small" type="primary" @click="$emit('submit')">{{subumitText}}</el-button>
<slot name="footer"></slot> <slot name="footer"></slot>
</div> </div>
</div> </div>
@ -27,6 +27,10 @@
export default { export default {
props: { props: {
subumitText: {
type: String,
default: '确 定'
},
title: { title: {
type: String, type: String,
default: '' default: ''

View File

@ -20,7 +20,7 @@
<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-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>
<div class="step-content-top-right"> <div class="step-content-top-right">
<el-button size="small" type="primary">开始评分</el-button> <el-button size="small" @click="showChooseList= true" type="primary">开始评分</el-button>
<!-- handleGetList handleChoose --> <!-- handleGetList handleChoose -->
<el-button size="small" @click="handleGetList" plain>更多</el-button> <el-button size="small" @click="handleGetList" plain>更多</el-button>
</div> </div>
@ -98,6 +98,7 @@
</div> </div>
</div> </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'/> <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'/> <getPersonnel v-if="form.isShowPersonnel" :value.sync='params.staffIds' :isShow.sync='form.isShowPersonnel' :showDataList.sync='form.personnelList'/>
</div> </div>
@ -108,14 +109,18 @@ import SmallNav from '@/components/kpi-layout/SmallNav'
import getPersonnel from '@/components/getPersonnel' import getPersonnel from '@/components/getPersonnel'
import PopupRight from '@/components/PopupRight' import PopupRight from '@/components/PopupRight'
import EvaluationTeamFilter from '@/components/EvaluationTeamFilter' import EvaluationTeamFilter from '@/components/EvaluationTeamFilter'
import ChooseInitiate from '@/components/ChooseInitiate'
import { apiManagerDetail, apiChartList } from '@/api/assessment' import { apiManagerDetail, apiChartList } from '@/api/assessment'
import {getWorkList} from '@/api/workbench'
import { getStartsData } from '@/api/report' import { getStartsData } from '@/api/report'
let id = 0 let id = 0
export default { export default {
data () { data () {
return { return {
options: {
startId: this.$route.query.id || ''
},
showChooseList: false,
dialogVisible: false, dialogVisible: false,
form: { form: {
isShowPersonnel: false, isShowPersonnel: false,
@ -158,7 +163,8 @@ export default {
SmallNav, SmallNav,
getPersonnel, getPersonnel,
PopupRight, PopupRight,
EvaluationTeamFilter EvaluationTeamFilter,
ChooseInitiate
}, },
computed: { computed: {
formTitle () { formTitle () {
@ -171,6 +177,9 @@ export default {
await this.handleStartsReq() await this.handleStartsReq()
}, },
methods: { methods: {
handleCallBackChoose (item) {
console.log('item: ', item)
},
submitClick (item) { submitClick (item) {
this.params.evaluationIds = item.value this.params.evaluationIds = item.value
this.params.title = item.title this.params.title = item.title