美文网首页
微信小程序自定义checkbox选择用户显示头像

微信小程序自定义checkbox选择用户显示头像

作者: CenyH | 来源:发表于2020-04-03 11:23 被阅读0次
个人微信小程序开发笔记,转载告知
先上效果
小程序checkbox选择用户显示头像.gif
HTML

我引用了vant toast,如引入错误自行修改

<scroll-view class="perBox" bindscroll="">
    <view class="perBox-top">
        <view class="perBox-top-b1">
            <image class="seleImg" mode="aspectFit" lazy-load="false" wx:for="{{seleArr}}" src="{{item.avatar}}" wx:key="index" style="transform:translateX({{-index*8}}rpx)"></image>
        </view>
        <view class="perBox-top-b2">已选{{seleArr.length}}人</view>
        <view class="perBox-top-b3" bindtap="allseleFun">全选</view>
    </view>
    <view class="perBox-list">
        <checkbox-group class="perCBox" bindchange="selectedFun">
            <label class="perCBox-list" wx:for="{{members}}" wx:key="index">
                <checkbox value="{{item.id}}" checked="{{item.checked}}"/>
                <view class="perl">
                    <image class="perlImg" src="{{item.avatar}}" mode="aspectFit" lazy-load="false"></image>
                    <view class="perl-box">
                        <text class="sty1tt">{{item.nickname}}</text>
                        <text class="sty2tt">{{item.realname}}</text>
                    </view>
                </view>
            </label>
        </checkbox-group>
    </view>
    <view class="perBox-btn" bindtap="selecTem">选择模板</view>
</scroll-view>
<van-toast id="van-toast" />  // 我引用了vant toast,如引入错误自行修改
wxss
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
    background: #FF6E7D;
    color: #fff;
    border: 1px solid #FF6E7D;
}

button::after {
    border: none;
}

.sty1tt {
    font-size: 16px;
    font-weight: 500;
    color: rgba(51, 51, 51, 1);
}

.sty2tt {
    font-size: 12px;
    font-weight: 400;
    color: rgba(102, 102, 102, 1);
}

.perBox {
    width: 100%;
    height: 100%;
}

.perBox-btn {
    position: fixed;
    width: 560rpx;
    height: 88rpx;
    line-height: 88rpx;
    bottom: 60rpx;
    left: calc(50% - 280rpx);
    background: rgba(255, 110, 125, 1);
    box-shadow: 2px 3px 10px 0px rgba(255, 110, 125, 0.12);
    border-radius: 22px;
    font-size: 36rpx;
    font-weight: 500;
    color: rgba(255, 255, 255, 1);
    text-align: center;
}

.perBox-top {
    width: 100%;
    height: 120rpx;
    background: #f2f2f2;
    position: relative;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 0 24rpx;
}

.perBox-top-b1 {
    min-width: 84rpx;
    height: 100%;
    display: flex;
    align-items: center;
}

.seleImg {
    width: 60rpx;
    height: 60rpx;
    background: #fff;
    border-radius: 50%;
    position: relative;
    box-shadow: 0px 2px 5px 0px rgba(65, 3, 39, 0.05);
}

.perBox-top-b2 {
    flex: 1;
    font-size: 24rpx;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.3);
}

.perBox-top-b3 {
    position: absolute;
    right: 24rpx;
    top: 0;
    height: 120rpx;
    line-height: 120rpx;
    font-size: 28rpx;
    font-weight: 500;
    color: rgba(255, 110, 125, 1);
}

.perBox-list {
    width: 100%;
}

.perCBox {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.perCBox-list {
    width: 100%;
    height: 120rpx;
    display: flex;
    align-items: center;
    padding: 0 24rpx;
    box-sizing: border-box;
}

.perl {
    flex: 1;
    display: flex;
    height: 100%;
    align-items: center;
}

.perlImg {
    width: 80rpx;
    height: 80rpx;
    border-radius: 50%;
    background: #f2f2f2;
    margin: 0 20rpx;
    box-shadow: 0px 2px 5px 0px rgba(65, 3, 39, 0.05);
}

.perl-box {
    flex: 1;
    border-bottom: #f2f2f2 1rpx solid;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
JS
  data: {
    seleArr: [], // 选中的用户
    members: [], // 获取到的用户数据
  },
  // 全选
  allseleFun(){
    var that = this;
    let members = that.data.members // 原数组
    for (let i = 0; i < members.length; i++) {
      members[i].checked = true
    }
    that.setData({
      members: members,
      seleArr: members
    })
  },
  // 单个选中
  selectedFun(e){
    let that = this
    let dArr = e.detail.value // 选中的数组
    console.log(dArr)
    if (dArr.length == 0){return that.setData({seleArr: []})}
    let members = this.data.members // 原数组
    let seleArr = []
    for (let i = 0; i < dArr.length; i++) {
      for (let y = 0; y < members.length; y++){
        if(members[y].id == dArr[i]){
          seleArr.push(members[y])
          that.setData({
            seleArr: seleArr
          })
        }
      }
    }
    console.log(that.data.seleArr)
  },

相关文章

网友评论

      本文标题:微信小程序自定义checkbox选择用户显示头像

      本文链接:https://www.haomeiwen.com/subject/aoxhphtx.html