当前位置:   article > 正文

uniapp实现---类似购物车全选

uniapp实现---类似购物车全选

目录

一、实现思路

二、实现步骤

        ①view部分展示

        ②JavaScript 内容

        ③css中样式展示

三、效果展示

四、小结 + 注意事项


一、实现思路


        点击商家复选框,可选中当前商家下的所有商品。点击全选,选中全部商家的商品

添加单个多选框,在将多选框绑定到全选按钮上。

uniapp内置的checkbox以及checkbox-group:

        无法依赖其事件实现全选,样式固定,难以修改。
 

二、实现步骤

        ①view部分展示

               

  1. <view>
  2. <view class="checkboxAll">
  3. <u-checkbox-group @change="selectAll">
  4. <u-checkbox :checked="allChecked" shape="circle" activeColor="#FF6C47"></u-checkbox><text style="color: #FF6C47;">全选</text>
  5. </u-checkbox-group>
  6. </view>
  7. <template v-for="(item,index) in itemsList">
  8. <view class="uni-list" style="padding: 32rpx" :key="index">
  9. <view class="flex-between">
  10. <view class="flex">
  11. <checkbox-group @change="changeitem(item)" checked class="checkbox" >
  12. <u-checkbox :value="item.name" :checked="item.checked" shape="circle" activeColor="#FF6C47"/>
  13. </checkbox-group>
  14. <view class="flex-colomn" style="margin-left: 16rpx;">
  15. <view style="font-size: 32rpx;color: #1A1A1A;">{{item.name}}</view>
  16. <view style="ont-size: 24rpx;color: #666666;margin-top: 8rpx;"><text
  17. style="ont-size: 24rpx;color: #666666;">学号:</text>{{item.number}}</view>
  18. </view>
  19. </view>
  20. <view class="flex">
  21. <view style="font-size: 36rpx;color: #1A1A1A;">{{item.num}}</view>
  22. <view style="margin-left: 16rpx;">
  23. <u-icon name="arrow-right" size="15" color="#999999"></u-icon>
  24. </view>
  25. </view>
  26. </view>
  27. </view>
  28. </template>
  29. </view>

        ②JavaScript 内容

        

  1. <script>
  2. export default {
  3. data() {
  4. return {
  5. checkList: [], //选中值
  6. allChecked: false, //是否全选
  7. title: 'checkbox 复选框',
  8. itemsList: [{
  9. name: '美国',
  10. number: "20030303",
  11. num: "90",
  12. checked: false
  13. }, {
  14. name: '美国',
  15. number: "20030303",
  16. num: "90",
  17. checked: false
  18. }, {
  19. name: '美国',
  20. number: "20030303",
  21. num: "90",
  22. checked: false
  23. }, {
  24. name: '美国',
  25. number: "20030303",
  26. num: "90",
  27. checked: false
  28. }, ]
  29. }
  30. },
  31. methods: {
  32. //单选
  33. changeitem(item) {
  34. item.checked = !item.checked
  35. if (!item.checked) {
  36. this.allChecked = false
  37. } else {
  38. // 判断每一个列表是否是被选择的状态
  39. const cartList = this.itemsList.every(item => {
  40. return item.checked === true
  41. })
  42. if (cartList) {
  43. this.allChecked = true
  44. } else {
  45. this.allChecked = false
  46. }
  47. }
  48. },
  49. //全选,全不选
  50. selectAll() {
  51. this.allChecked = !this.allChecked
  52. if (this.allChecked) {
  53. this.itemsList.map(item => {
  54. item.checked = true
  55. })
  56. } else {
  57. this.itemsList.map(item => {
  58. item.checked = false
  59. })
  60. }
  61. },
  62. },
  63. }
  64. </script>

        ③css中样式展示

  1. <style lang="scss" scoped>
  2. .checkboxAll {
  3. margin-left: 80%;
  4. margin-top: 24rpx;
  5. }
  6. .uni-list-cell {
  7. justify-content: flex-start;
  8. }
  9. </style>

三、效果展示

        可以全部选择的状态,也可以是单选状态。

               

四、小结 + 注意事项

        u-checkbox-group标签中u-checkbox没有插槽,不支持在里面写内容,必须在u-checkbox-group外面写内容布局。u-checkbox-group--->u-checkbox是可以实现的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/215762
推荐阅读
相关标签
  

闽ICP备14008679号