From e23a1db0b60437f17d09d65c65f8fd0c8a5d88c7 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 26 八月 2024 18:11:07 +0800
Subject: [PATCH] 最新版本

---
 h5/pages/staff/vehicle/applePeo.vue |  129 +++++++++++++++++++++++++-----------------
 1 files changed, 77 insertions(+), 52 deletions(-)

diff --git a/h5/pages/staff/vehicle/applePeo.vue b/h5/pages/staff/vehicle/applePeo.vue
index 54e7a5d..ec74350 100644
--- a/h5/pages/staff/vehicle/applePeo.vue
+++ b/h5/pages/staff/vehicle/applePeo.vue
@@ -1,5 +1,5 @@
 <template>
-  <view class="main_app">
+  <view class="main_app" :class="{ popupShow: isShowSelMem }">
     <view class="search_inp df_ac">
       <image
         class="mr12 search"
@@ -17,14 +17,12 @@
     <view class="member_list">
       <view v-for="(item, index) in memberList" :key="item.id" class="line">
         <image
-          :src="
-            item.faceImgFull
-              ? item.faceImgFull
-              : require('@/static/logo@2x.png')
-          "
+          v-if="item.faceImgFull"
+          :src="item.faceImgFull"
           class="avatar"
           mode=""
         ></image>
+        <view v-else class="avatar">{{ item.name.slice(0, 1) }}</view>
         <view class="content">
           <view class="info">
             <text class="name">{{ item.name }}</text>
@@ -35,7 +33,7 @@
         <image
           @click="changeMem(item, index)"
           v-if="item.checked"
-          src="@/static/meeting/icon/ic_choose_sel@2x.png"
+          src="@/static/checkbox_sel@2x.png"
           mode="widthFix"
           class="checked"
         ></image>
@@ -65,19 +63,19 @@
           mode=""
         ></image>
       </view>
-      <view class="btn" @click="onSubmit">纭({{ selList.length }}/20)</view>
+      <view class="btn" @click="onSubmit">纭</view>
     </view>
     <!--  -->
     <u-popup
       :show="isShowSelMem"
       :round="12"
       mode="bottom"
-      @close="isShowSelMem = false"
+      @close="closeModal"
     >
       <view class="modal">
         <view class="modal_header">
           <text class="status">宸查�夋嫨锛歿{ selList.length }}浜�</text>
-          <text class="btn" @click="isShowSelMem = false">纭</text>
+          <text class="btn" @click="subSelMem">纭</text>
         </view>
         <view class="modal_mem_list">
           <view class="line" v-for="(item, i) in selList" :key="i">
@@ -96,7 +94,7 @@
               </view>
               <view class="depart">{{ item.componey }}</view>
             </view>
-            <view class="btn" @click="handleRemove(item)">绉婚櫎</view>
+            <view class="btn" @click="handleRemove(i)">绉婚櫎</view>
           </view>
         </view>
       </view>
@@ -113,66 +111,89 @@
       param: {},
       selList: [],
 
-      isShowSelMem: false
+      isShowSelMem: false,
+      pagination: {
+        capacity: 20,
+        page: 1
+      },
     }
   },
   onLoad() {
     this.initData()
   },
+  onReachBottom() {
+    // if(){}
+  },
   mounted() {
-    this.$eventBus.$on('applePeoDetail', (res)=>{
+    this.$eventBus.$on('applePeoDetail', (res) => {
       res.forEach(item => {
-        this.changeMem(item)
+        this.memberList.forEach(mem => {
+          if (item.id === mem.id) {
+            mem.checked = !mem.checked
+          }
+        })
       })
-      this.$nextnick(() => {
+      this.selList = this.memberList.filter(i => i.checked)
+      this.$nextTick(() => {
         this.$forceUpdate()
       })
     })
   },
   methods: {
-    onSubmit() {
-      this.$eventBus.$emit('applePeo', this.selList)
-      uni.navigateBack()
-    },
-    changeMem(item, index) {
-      item.checked = !item.checked
-      this.selList = this.memberList.filter(i => i.checked)
-      // const arr = e.detail.value
-      // let arrTemp = arr.map(item => {
-      //   let obj = {}
-      //   this.memberList.forEach(ite => {
-      //     if (item == ite.id) {
-      //       obj.name = ite.name.split('-')[0]
-      //       obj.componey = ite.name.split('-')[1] || ''
-      //       obj.id = ite.id
-      //     }
-      //   })
-      //   return obj
-      // })
-      // this.selList = arrTemp
-      this.$forceUpdate()
-    },
-    handleRemove(item) {
-      this.memberList.forEach(ite => {
-        if (item.id === ite.id) {
-          ite.checked = false
-        }
-      })
-      // console.log(this.memberList);
-      this.$forceUpdate()
-    },
     initData() {
       const { param } = this
       findTypeMemberInfo({
+        // model: {
         name: param.name,
-        type: '2'
+        // },
+        type: '2',
+        companyType: 1,
       }).then(res => {
         this.memberList = res.data || []
         this.memberList.forEach(i => {
           i.checked = false
         })
       })
-    }
+    },
+    onSubmit() {
+      if (this.selList.length === 0) return uni.showToast({
+        title: '璇峰厛閫夋嫨浜哄憳',
+        icon: 'none'
+      })
+      this.$eventBus.$emit('applePeo', this.selList)
+      uni.navigateBack()
+    },
+    closeModal() {
+      this.selList = this.memberList.filter(i => i.checked)
+      this.isShowSelMem = false
+    },
+    subSelMem() {
+      const { selList, memberList } = this
+      memberList.forEach(ite => {
+        ite.checked = false
+        selList.forEach(item => {
+          if (ite.id === item.id) {
+            ite.checked = true
+          } else { }
+        })
+      })
+      this.isShowSelMem = false
+      this.$forceUpdate()
+    },
+    changeMem(item, index) {
+      // this.memberList.forEach(mem => {
+      //   if(item.id === mem.id){
+      //     item.checked = !item.checked
+      //   }
+      // })
+      item.checked = !item.checked
+      this.selList = this.memberList.filter(i => i.checked)
+      this.$forceUpdate()
+    },
+    handleRemove(i) {
+      this.selList.splice(i, 1)
+      this.$forceUpdate()
+    },
   }
 };
 </script>
@@ -180,18 +201,22 @@
 <style lang="scss">
 .modal {
   padding: 40rpx 30rpx;
+  max-height: 1000rpx;
   .modal_header {
     display: flex;
     justify-content: space-between;
     align-items: center;
+    padding-bottom: 20rpx;
     .status {
       font-weight: 600;
     }
     .btn {
-      color: #279baa;
+      color: $uni-color-primary;
     }
   }
   .modal_mem_list {
+    max-height: 860rpx;
+    overflow: auto;
     .line {
       display: flex;
       align-items: center;
@@ -245,7 +270,7 @@
     align-items: center;
     .members {
       width: 500rpx;
-      color: #4d98a7;
+      color: $uni-color-primary;
       white-space: nowrap;
       overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
       text-overflow: ellipsis;
@@ -260,7 +285,7 @@
     width: 690rpx;
     height: 88rpx;
     line-height: 88rpx;
-    background: #279baa;
+    background: $uni-color-primary;
     border-radius: 44rpx;
     color: #fff;
     text-align: center;
@@ -302,7 +327,7 @@
         }
       }
     }
-    .checked{
+    .checked {
       width: 48rpx;
     }
   }

--
Gitblit v1.9.3