2025-11-04 15:16:22 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<uni-popup ref="showPersonChooser" type="bottom" round background-color="#fff">
|
|
|
|
|
|
<view style="width: 100%;position: relative;z-index: 100;box-sizing: border-box;background: #fff;padding-top: 10px;">
|
|
|
|
|
|
<input class="search" @change="searchChange" placeholder="搜索选择人员" v-model="searchPerson"/>
|
|
|
|
|
|
<scroll-view style="height: 500rpx;padding: 0 32rpx;box-sizing: border-box;" :scroll-y="true">
|
|
|
|
|
|
<view v-for="(item, index) in personList" :key="index" @click="bindPerson(item)"
|
|
|
|
|
|
class="person-list" :class="{active: activePerson.id == item.id}">
|
|
|
|
|
|
<template v-if="choiceType==3">
|
|
|
|
|
|
<view>{{ item.personName }}</view>
|
|
|
|
|
|
<view style="color: #8492a6;margin-top: 7rpx;">期望工种:{{item.jobWorkTypeName}}</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template v-else-if="choiceType==4">
|
|
|
|
|
|
<view>{{ item.personName }}</view>
|
|
|
|
|
|
<view style="color: #8492a6;margin-top: 7rpx;">意愿培训工种:{{item.trainingIntentionWorkTypeName}}</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template v-else>
|
|
|
|
|
|
<view style="display: flex;justify-content: space-between;font-size: 32rpx;font-weight: bold;">{{ item.name }}
|
|
|
|
|
|
<view style="color: #8492a6; font-size: 13px;width: 50%;text-align: right;">{{ item.phone }}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view style="color: #8492a6;margin-top: 7rpx;">现居住地:{{item.currentResidentialAddress}}</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
<view class="button-area" style="position: relative;">
|
|
|
|
|
|
<view class="btn" @click="closeshowPersonChooser">取消</view>
|
|
|
|
|
|
<view class="btn reset" @click="resetData">重置</view>
|
|
|
|
|
|
<view class="btn save" @click="saveInfo">确定</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</uni-popup>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2025-11-07 18:38:01 +08:00
|
|
|
|
import {getPersonList} from '@/packageRc/apiRc/needs/person'
|
|
|
|
|
|
import { listJobService } from "@/packageRc/apiRc/needs/jobService";
|
|
|
|
|
|
import { listTrainService } from "@/packageRc/apiRc/needs/trainService";
|
2025-11-04 15:16:22 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
props: {
|
|
|
|
|
|
choiceType: {
|
|
|
|
|
|
default: 1
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
this.doSearch()
|
|
|
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
showPersonChooser: false,
|
|
|
|
|
|
activePerson: {},
|
|
|
|
|
|
searchPerson: '',
|
|
|
|
|
|
personList: [],
|
|
|
|
|
|
searcher: '',
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
open() {
|
|
|
|
|
|
this.$refs.showPersonChooser.open();
|
|
|
|
|
|
this.activePerson = {}
|
|
|
|
|
|
},
|
|
|
|
|
|
closeshowPersonChooser() {
|
|
|
|
|
|
this.$refs.showPersonChooser.close()
|
|
|
|
|
|
},
|
|
|
|
|
|
saveInfo() {
|
|
|
|
|
|
this.$emit('confirm', this.activePerson)
|
|
|
|
|
|
this.$refs.showPersonChooser.close()
|
|
|
|
|
|
},
|
|
|
|
|
|
searchChange(){
|
|
|
|
|
|
console.log('搜索内容:' + this.searchPerson);
|
|
|
|
|
|
if(this.searcher){
|
|
|
|
|
|
clearTimeout(this.searcher)
|
|
|
|
|
|
this.doSearch()
|
|
|
|
|
|
}else{
|
|
|
|
|
|
this.doSearch()
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
doSearch() {
|
|
|
|
|
|
this.searcher = setTimeout(() => {
|
|
|
|
|
|
uni.showLoading('加载中...');
|
|
|
|
|
|
// alert("选择的choiceType:" + this.choiceType );
|
|
|
|
|
|
if(this.choiceType == 3) {
|
|
|
|
|
|
listJobService({personName: this.searchPerson, pageSize: 100, pageNum: 1}).then(res => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
this.personList = res.rows
|
|
|
|
|
|
clearTimeout(this.searcher)
|
|
|
|
|
|
})
|
|
|
|
|
|
}else if(this.choiceType == 4) {
|
|
|
|
|
|
listTrainService({personName: this.searchPerson, pageSize: 100, pageNum: 1}).then(res => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
this.personList = res.rows
|
|
|
|
|
|
clearTimeout(this.searcher)
|
|
|
|
|
|
})
|
|
|
|
|
|
}else{
|
|
|
|
|
|
getPersonList({name: this.searchPerson, pageSize: 100, pageNum: 1}).then(res => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
this.personList = res.rows
|
|
|
|
|
|
clearTimeout(this.searcher)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
}, 200)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
resetData(){
|
|
|
|
|
|
this.searchPerson = '';
|
|
|
|
|
|
this.personList = [];
|
|
|
|
|
|
this.activePerson = {}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
bindPerson(item) {
|
|
|
|
|
|
this.activePerson = item;
|
|
|
|
|
|
this.$forceUpdate();
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.person-list{
|
|
|
|
|
|
padding: 24rpx 32rpx;
|
|
|
|
|
|
border-radius: 8rpx;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border: 1px solid #e4e4e4;
|
|
|
|
|
|
margin-top: 32rpx;
|
|
|
|
|
|
&.active{
|
|
|
|
|
|
border: 1px solid #1890ff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.search{
|
|
|
|
|
|
margin: 0 32rpx;
|
|
|
|
|
|
border: 1px solid #e4e4e4;
|
|
|
|
|
|
border-radius: 50rpx;
|
|
|
|
|
|
height: 64rpx;
|
|
|
|
|
|
padding: 0 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|