| | |
| | | <template> |
| | | <view class="container"> |
| | | <search-bar @confirm="search" placeholder="输入员工姓名、手机号"></search-bar> |
| | | <view class="member-list flex align-center" v-for="(item, index) in list"> |
| | | <view class="member-list flex align-center" v-for="(item, index) in list" @click="checkOnchange(item)"> |
| | | <image :src="item.photo?item.photo:'../../static/images/default-avatar.png'" mode="" class="avatar"></image> |
| | | <view class="flex-1 flex align-center justify-between member-list-con"> |
| | | <view class="flex flex-v"> |
| | |
| | | <text class="font-13 gray mt-10" v-if="item.telphone">{{$utils.encryptAccount(item.telphone)}}</text> |
| | | </view> |
| | | <text class="iconfont" |
| | | :class="item.isCheck?'iconxuanzhong blue':'iconweixuanzhong gray'" |
| | | @click="checkOnchange(item)"></text> |
| | | :class="item.isCheck?'iconxuanzhong blue':'iconweixuanzhong gray'" ></text> |
| | | </view> |
| | | </view> |
| | | <no-record :isShow="!list.length"></no-record> |
| | | <view class="footer"> |
| | | <text>已选:{{selectId?1:0}}人</text> |
| | | <text>已选:{{selectItems.length?selectItems.length:0}}人</text> |
| | | <button class="blue-btn btn mr-0" @click="confirm">确定</button> |
| | | </view> |
| | | </view> |
| | |
| | | return { |
| | | queryKey: '', |
| | | list: [], |
| | | selectId: '', |
| | | selectName: '' |
| | | selectIds: '', |
| | | selectItems: [], |
| | | multiSelect: false, //单选/多选,默认多选 |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | | // 选中的id,逗号分隔 |
| | | if(options.selectId!='null'){ |
| | | this.selectId = options.selectId |
| | | this.selectIds = options.selectId |
| | | } |
| | | if(options.multiSelect){ |
| | | this.multiSelect = new Boolean(options.multiSelect); |
| | | } |
| | | this.loadMemberList() |
| | | }, |
| | |
| | | }, 'POST').then((res) => { |
| | | if(res.status == 200){ |
| | | this.list = res.rows.map((item) => { |
| | | if(this.selectId && this.selectId == item.id){ |
| | | this.selectName = item.name |
| | | let index = this.selectItems.findIndex((op) => { |
| | | return op.id == item.id |
| | | }); |
| | | if(this.selectIds && this.selectIds.indexOf(item.id) > -1){ |
| | | if(index == -1){ |
| | | this.selectItems.push(item); |
| | | } |
| | | return Object.assign(item, {isCheck: true}) |
| | | } |
| | | return Object.assign(item, {isCheck: false}) |
| | |
| | | }) |
| | | }, |
| | | checkOnchange(item){ |
| | | if(this.multiSelect){ |
| | | this.multiChange(item) |
| | | }else{ |
| | | this.singChange(item) |
| | | } |
| | | }, |
| | | singChange(item){ |
| | | if(!item.isCheck){ |
| | | this.list.forEach((item) => { |
| | | item.isCheck = false; |
| | | this.list.forEach((op) => { |
| | | op.isCheck = false; |
| | | }); |
| | | item.isCheck = true |
| | | this.selectId = item.id; |
| | | this.selectName = item.name; |
| | | item.isCheck = true; |
| | | this.selectItems = [item]; |
| | | }else{ |
| | | item.isCheck = false; |
| | | this.selectId = ''; |
| | | this.selectName = ''; |
| | | this.selectItems = []; |
| | | } |
| | | }, |
| | | multiChange(item){ |
| | | let index = this.selectItems.findIndex((op) => { |
| | | return op.id == item.id |
| | | }); |
| | | if(!item.isCheck){ |
| | | item.isCheck = true; |
| | | this.selectItems.push(item); |
| | | }else{ |
| | | item.isCheck = false; |
| | | this.selectItems.splice(index,1); |
| | | } |
| | | }, |
| | | confirm(){ |
| | | let pages = getCurrentPages(); |
| | | let prevPage = pages[ pages.length - 2 ]; |
| | | prevPage.$vm.setData && prevPage.$vm.setData({ |
| | | name: this.selectName, |
| | | id: this.selectId |
| | | }); |
| | | let pages = getCurrentPages(); |
| | | let prevPage = pages[ pages.length - 2 ]; |
| | | if(this.selectItems.length){ |
| | | prevPage.$vm.setData && prevPage.$vm.setData(this.selectItems); |
| | | } |
| | | uni.navigateBack() |
| | | } |
| | | }, |
| | |
| | | |
| | | <style scoped> |
| | | .container{ |
| | | padding: 10px 10px 0; |
| | | padding: 10px 10px 64px; |
| | | } |
| | | .sort-wrap{ |
| | | display: flex; |