<template>
|
<GlobalWindow
|
:title="title"
|
width="100%"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-input v-model="val" placeholder="查询员工姓名" @keypress.enter.native="getList" style="margin-bottom: 15px;"></el-input>
|
<el-table
|
:data="list"
|
border
|
@selection-change="handleSelectionChange"
|
style="width: 100%">
|
<el-table-column
|
type="selection"
|
width="55">
|
</el-table-column>
|
<el-table-column label="序号" width="80px">
|
<template slot-scope="scope">
|
<span>{{scope.$index + 1}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="name"
|
label="姓名">
|
</el-table-column>
|
<el-table-column
|
prop="idcardNo"
|
label="身份证号">
|
</el-table-column>
|
<el-table-column
|
prop="duName"
|
label="派遣单位">
|
</el-table-column>
|
<el-table-column
|
prop="workTypeName"
|
label="所属工种">
|
</el-table-column>
|
</el-table>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { findListByDTO } from '@/api/business/member'
|
export default {
|
name: 'selectEmployees',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
type: '',
|
val: '',
|
list: [],
|
price: '',
|
insuranceApplyId: '',
|
notInInsuranceApplyId: '',
|
validTime: '',
|
seleData: [],
|
oldList: []
|
}
|
},
|
created () {
|
this.config({
|
api: '/business/dispatchUnit',
|
'field.id': 'id'
|
})
|
},
|
methods: {
|
open (title, obj) {
|
this.insuranceApplyId = ''
|
this.notInInsuranceApplyId = ''
|
this.val = ''
|
this.price = obj.price
|
this.oldList = obj.arr
|
if (obj.type) {
|
this.type = obj.type
|
}
|
this.list = []
|
if (obj.insuranceApplyId) {
|
this.insuranceApplyId = obj.insuranceApplyId
|
}
|
if (obj.notInInsuranceApplyId) {
|
this.notInInsuranceApplyId = obj.notInInsuranceApplyId
|
}
|
if (obj.validTime) {
|
this.validTime = obj.validTime
|
}
|
this.title = title
|
this.visible = true
|
this.getList()
|
},
|
confirm() {
|
if (this.seleData.length === 0) {
|
this.$message.warning('至少选择一项内容')
|
return
|
}
|
for (let i = 0; i < this.seleData.length; i++) {
|
for (let a = 0; a < this.oldList.length; a++) {
|
// this.seleData[i].name === this.oldList[a].memberName ||
|
if (this.seleData[i].idCard === this.oldList[a].idcardNo) {
|
this.$message.warning(`[${this.seleData[i].name}]员工重复`)
|
return
|
}
|
}
|
}
|
this.seleData.forEach(item => {
|
item.idCard = item.idcardNo
|
item.memberName = item.name
|
item.memberId = item.id
|
if (this.notInInsuranceApplyId || this.type == 1) {
|
item.workTypeName = ''
|
item.worktypeId = ''
|
item.duId = ''
|
item.duName = ''
|
}
|
item.fee = this.price
|
})
|
this.$emit('result', this.seleData)
|
this.visible = false
|
},
|
handleSelectionChange (e) {
|
this.seleData = e
|
},
|
getList() {
|
findListByDTO({
|
name: this.val,
|
insuranceApplyId: this.insuranceApplyId,
|
notInInsuranceApplyId: this.notInInsuranceApplyId,
|
validTime: this.validTime
|
}).then(res => {
|
res.forEach(item => {
|
item.fee = ''
|
})
|
this.list = res
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
|
</style>
|