From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化
---
h5/pages/staff/vehicle/applePeo.vue | 227 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 145 insertions(+), 82 deletions(-)
diff --git a/h5/pages/staff/vehicle/applePeo.vue b/h5/pages/staff/vehicle/applePeo.vue
index 2f62cce..42e4a0e 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"
@@ -15,30 +15,38 @@
/>
</view>
<view class="member_list">
- <checkbox-group v-model="selList" @change="changeMem">
- <view v-for="item in memberList" :key="item.id" class="line">
- <image
- :src="
- item.faceImgFull
- ? item.faceImgFull
- : require('@/static/logo@2x.png')
- "
- class="avatar"
- mode=""
- ></image>
- <view class="content">
- <view class="info">
- <text class="name">{{ item.name }}</text>
- <!-- <text class="tag">tag</text> -->
- </view>
- <view class="depart">{{ item.companyName }}</view>
+ <view v-for="(item, index) in memberList" :key="item.id" class="line">
+ <image
+ 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>
+ <!-- <text class="tag">tag</text> -->
</view>
- <label>
- <checkbox :checked="item.checked" :value="String(item.id)" class="checkbox" />
- </label>
- <text></text>
+ <view class="depart">{{ item.companyName }}</view>
</view>
- </checkbox-group>
+ <image
+ @click="changeMem(item, index)"
+ v-if="item.checked"
+ src="@/static/checkbox_sel@2x.png"
+ mode="widthFix"
+ class="checked"
+ ></image>
+ <image
+ @click="changeMem(item, index)"
+ v-if="!item.checked"
+ src="@/static/meeting/icon/ic_choose@2x.png"
+ mode="widthFix"
+ class="checked"
+ ></image>
+ <text></text>
+ </view>
+
<view class="empty"></view>
</view>
<!-- -->
@@ -49,45 +57,47 @@
<text v-for="(item, i) in selList" :key="i">{{ item.name }}锛�</text>
</view>
<image
- @click="isShowSelMem = true"
+ @click="openSeleter"
class="open_icon"
src="@/static/staff/renyuan_ic_open.png"
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="status">宸查�夋嫨锛歿{ selList.filter(i => i.checkedTemp).length }}浜�</text>
+ <text class="btn" @click="subSelMem">纭</text>
</view>
<view class="modal_mem_list">
- <view class="line" v-for="(item, i) in selList" :key="i">
- <image
- :src="
- item.faceImgFull
- ? item.faceImgFull
- : require('@/static/logo@2x.png')
- "
- class="avatar"
- mode=""
- ></image>
- <view class="content">
- <view class="info">
- <text class="name">{{ item.name }}</text>
- </view>
- <view class="depart">{{ item.componey }}</view>
- </view>
- <view class="btn" @click="handleRemove(item)">绉婚櫎</view>
- </view>
+ <template v-for="(item, i) in selList">
+ <view class="line" v-if="item.checkedTemp" :key="i">
+ <image
+ :src="
+ item.faceImgFull
+ ? item.faceImgFull
+ : require('@/static/logo@2x.png')
+ "
+ class="avatar"
+ mode=""
+ ></image>
+ <view class="content">
+ <view class="info">
+ <text class="name">{{ item.name }}</text>
+ </view>
+ <view class="depart">{{ item.componey }}</view>
+ </view>
+ <view class="btn" @click="handleRemove(i)">绉婚櫎</view>
+ </view>
+ </template>
</view>
</view>
</u-popup>
@@ -100,59 +110,105 @@
data() {
return {
memberList: [],
- selList: [],
param: {},
+ selList: [],
- isShowSelMem: false
+ isShowSelMem: false,
+ pagination: {
+ capacity: 20,
+ page: 1
+ },
}
},
onLoad() {
this.initData()
},
- methods: {
- onSubmit() {
- this.$eventBus.$emit('applePeo', this.selList)
- uni.navigateBack()
- },
- changeMem(e) {
- 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
+ onReachBottom() {
+ // if(){}
+ },
+ mounted() {
+ this.$eventBus.$on('applePeoDetail', (res) => {
+ res.forEach(item => {
+ this.memberList.forEach(mem => {
+ if (item.id === mem.id) {
+ mem.checked = !mem.checked
}
})
- return obj
})
- this.selList = arrTemp
- // this.$forceUpdate()
- },
- handleRemove(item) {
- const selIndex = this.selList.findIndex(i => i.id === item.id)
- this.selList.splice(selIndex, 1)
- this.memberList.forEach(ite => {
- if(item.id === ite.id){
- ite.checked = false
- }
+ this.selList = this.memberList.filter(i => i.checked)
+ this.$nextTick(() => {
+ this.$forceUpdate()
})
- // console.log(this.memberList);
- this.$forceUpdate()
- },
+ })
+ },
+ methods: {
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
+ const index = this.selList.findIndex(ite => ite.id === i.id)
+ i.checked = index > -1
})
})
- }
+ },
+ onSubmit() {
+ if (this.selList.length === 0) return uni.showToast({
+ title: '璇峰厛閫夋嫨浜哄憳',
+ icon: 'none'
+ })
+ this.$eventBus.$emit('applePeo', this.selList)
+ uni.navigateBack()
+ },
+ changeMem(item, index) {
+ // this.memberList.forEach(mem => {
+ // if(item.id === mem.id){
+ // item.checked = !item.checked
+ // }
+ // })
+ item.checked = !item.checked
+ const i = this.selList.findIndex(a => a.id === item.id)
+ if(item.checked && i === -1){
+ this.selList.push(item)
+ }else{
+ this.selList.splice(i, 1)
+ }
+ this.$forceUpdate()
+ },
+ openSeleter() {
+ this.isShowSelMem = true
+ this.selList.forEach(item => {
+ item.checkedTemp = true
+ })
+ this.$forceUpdate()
+ },
+ subSelMem() {
+ const { memberList } = this
+ this.selList = this.selList.filter(i => i.checkedTemp)
+ console.log('selList', this.selList);
+ memberList.forEach(ite => {
+ const index = this.selList.findIndex(i => i.id === ite.id)
+ ite.checked = index > -1
+ })
+ this.isShowSelMem = false
+ this.$forceUpdate()
+ },
+ closeModal() {
+ this.selList.forEach(item => {
+ item.checkedTemp = true
+ })
+ this.isShowSelMem = false
+ },
+ handleRemove(i) {
+ this.selList[i].checkedTemp = false
+ this.$forceUpdate()
+ },
}
};
</script>
@@ -160,18 +216,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;
@@ -225,7 +285,7 @@
align-items: center;
.members {
width: 500rpx;
- color: #4d98a7;
+ color: $uni-color-primary;
white-space: nowrap;
overflow: hidden; //鏂囨湰瓒呭嚭闅愯棌
text-overflow: ellipsis;
@@ -240,7 +300,7 @@
width: 690rpx;
height: 88rpx;
line-height: 88rpx;
- background: #279baa;
+ background: $uni-color-primary;
border-radius: 44rpx;
color: #fff;
text-align: center;
@@ -282,6 +342,9 @@
}
}
}
+ .checked {
+ width: 48rpx;
+ }
}
.empty {
width: 100%;
--
Gitblit v1.9.3