| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-input v-model="val" placeholder="查询员工姓名" @keypress.enter.native="getList" style="margin-bottom: 15px;"></el-input> |
| | | <div style="display: inline-block;padding: 20px 10px;color: red" class="el-upload__tip" > |
| | | 操作提示: 请在下面搜索框内输入员工姓名或身份证号进行员工信息搜索,并选择员工进行操作 |
| | | </div> |
| | | <el-select |
| | | value-key="id" |
| | | v-model="seleData" |
| | | filterable |
| | | multiple |
| | | remote |
| | | style="margin-bottom: 15px;width: 100%;margin-right: 10px" |
| | | placeholder="请输入员工姓名或身份证号进行选择" |
| | | :remote-method="searchSelData" |
| | | :loading="loading"> |
| | | <el-option |
| | | v-for="item in memberList" |
| | | :key="item.id" |
| | | :label="item.name+' ' +(item.idcardNo||'')" |
| | | :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- |
| | | <el-input v-model="val" placeholder="请输入员工姓名后,点击搜索按钮或者按下enter键进行查询" @keypress.enter.native="getList" style="margin-bottom: 15px;width: 50%;margin-right: 10px"></el-input> |
| | | --> |
| | | <!-- <el-button type="primary" @click="getList" style="width: 100px;">搜索</el-button>--> |
| | | <el-table |
| | | :data="list" |
| | | :data="seleData" |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | selection-change1="handleSelectionChange" |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | type="selection" |
| | | width="55"> |
| | | </el-table-column> |
| | | </el-table-column>--> |
| | | <el-table-column label="序号" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.$index + 1}}</span> |
| | |
| | | label="所属工种"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <template v-slot:footer> |
| | | <el-button type="primary" :loading="confirming" @click="confirm">确定</el-button> |
| | | <el-button @click="visible=false">返回</el-button> |
| | | </template> |
| | | </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++) { |
| | | if (this.seleData[i].name === this.oldList[a].memberName || 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 |
| | | }) |
| | | } |
| | | } |
| | | 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 { |
| | | confirming:false, |
| | | type: '', |
| | | val: '', |
| | | memberIds:[], |
| | | loading:false, |
| | | memberList:[], |
| | | 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.confirming=false |
| | | this.oldList = obj.arr |
| | | // this.seleData = obj.arr || [] |
| | | this.memberIds=[] |
| | | this.seleData=[] |
| | | this.memberList=[] |
| | | this.confirming=false |
| | | 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.confirming){ |
| | | return |
| | | } |
| | | this.confirming=true |
| | | if (this.seleData.length === 0) { |
| | | this.$message.warning('至少搜索选择一位员工进行操作') |
| | | this.confirming=false |
| | | 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].idcardNo === this.oldList[a].idCard) { |
| | | this.$message.warning(`[${this.seleData[i].name}]员工重复`) |
| | | this.confirming=false |
| | | return |
| | | } |
| | | } |
| | | } |
| | | this.seleData.forEach(item => { |
| | | item.idCard = item.idcardNo |
| | | item.memberName = item.name |
| | | item.memberId = item.id |
| | | item.reducePrice = item.fee |
| | | if (this.notInInsuranceApplyId || this.type == 1) { |
| | | item.workTypeName = '' |
| | | item.worktypeId = '' |
| | | item.duId = '' |
| | | item.duName = '' |
| | | } |
| | | item.fee = this.price |
| | | }) |
| | | |
| | | console.log(this.oldList) |
| | | console.log(this.seleData) |
| | | this.confirming=false |
| | | this.$emit('result', this.seleData) |
| | | this.seleData=[] |
| | | this.visible = false |
| | | }, |
| | | handleSelectionChange (e) { |
| | | this.seleData = e |
| | | }, |
| | | getList () { |
| | | if(this.memberIds ==null || !this.memberIds.length){ |
| | | this.$message.error('请搜索框检查人员信息后进行搜索!') |
| | | return; |
| | | } |
| | | findListByDTO({ |
| | | name: this.val, |
| | | subtractMemberIds:this.memberIds, |
| | | insuranceApplyId: this.insuranceApplyId, |
| | | notInInsuranceApplyId: this.notInInsuranceApplyId, |
| | | validTime: this.validTime |
| | | }).then(res => { |
| | | res.forEach(item => { |
| | | item.reducePrice = item.fee |
| | | item.fee = '' |
| | | }) |
| | | this.list = res |
| | | }) |
| | | }, |
| | | searchSelData (query) { |
| | | if (query !== '') { |
| | | this.loading = true; |
| | | findListByDTO({ |
| | | name: query, |
| | | insuranceApplyId: this.insuranceApplyId, |
| | | notInInsuranceApplyId: this.notInInsuranceApplyId, |
| | | validTime: this.validTime |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.memberList = res |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |