From 45fb4b11ad51bb38306765b11a6747402e382cee Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 20 Feb 2021 17:37:33 +0800
Subject: [PATCH] fix

---
 hive-app/pages/manager/selectEmployee.vue |   72 ++++++++++++++++++++++++-----------
 1 files changed, 49 insertions(+), 23 deletions(-)

diff --git a/hive-app/pages/manager/selectEmployee.vue b/hive-app/pages/manager/selectEmployee.vue
index 6127198..a6ccb67 100644
--- a/hive-app/pages/manager/selectEmployee.vue
+++ b/hive-app/pages/manager/selectEmployee.vue
@@ -1,7 +1,7 @@
 <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">
@@ -12,13 +12,12 @@
 					<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>
@@ -34,13 +33,18 @@
 			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()
 		},
@@ -50,13 +54,19 @@
 				this.loadMemberList();
 			},
 			loadMemberList(){
+				let selectedArr = this.selectIds?this.selectIds.split(','):[];
 				this.$httpUtils.request('/api/user/findAllUsers', {
 					queryKey: this.queryKey
 				}, '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 && selectedArr.includes(item.id.toString())){
+								if(index == -1){
+									this.selectItems.push(item);
+								}
 								return Object.assign(item, {isCheck: true})
 							}
 							return Object.assign(item, {isCheck: false})
@@ -65,26 +75,42 @@
 				})
 			},
 			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()
 			}
 		},
@@ -102,7 +128,7 @@
 
 <style scoped>
 	.container{
-		padding: 10px 10px 0;
+		padding: 10px 10px 64px;
 	}
 	.sort-wrap{
 		display: flex;

--
Gitblit v1.9.1