| <template> | 
|   <view class="main_app"> | 
|         <template v-for="item in platformGroupList"> | 
|             <view class="title"> | 
|               <view class="icon"></view> | 
|               <view class="name">{{item.name}}</view> | 
|             </view> | 
|             <view class="data_list"> | 
|               <view | 
|                 class="item" | 
|                 :class="{ active: platform.showConfig }" | 
|                 v-for="(platform, i) in item.platformList" | 
|                 :key="platform.id" | 
|                     @click="platformClick(platform.id)" | 
|               > | 
|                 {{platform.name}} | 
|               </view> | 
|             </view> | 
|         </template> | 
|         <view class="btns"> | 
|             <div class="btn" @click="$goBack">取消</div> | 
|             <div class="btn active" @click="updUserPlatform">确定</div> | 
|         </view> | 
|   </view> | 
| </template> | 
|   | 
| <script> | 
| import { getPlatformGroupList, updUserPlatformConfig } from '@/api' | 
| export default { | 
|   data() { | 
|     return { | 
|             platformGroupList: [] | 
|     } | 
|   }, | 
|   onLoad() { | 
|         this.getPlatformGroup() | 
|   }, | 
|   methods: { | 
|         updUserPlatform(){ | 
|             const { platformGroupList } = this | 
|             let ids = [] | 
|             platformGroupList.forEach(item => { | 
|                 item.platformList.forEach(platform => { | 
|                         if(platform.showConfig){ | 
|                             ids.push(platform.id) | 
|                         } | 
|                 }) | 
|             }) | 
|             updUserPlatformConfig({ids}).then(res => { | 
|                 this.showToast('更新成功') | 
|                 this.$goBack() | 
|             }) | 
|         }, | 
|         platformClick(id) { | 
|             const { platformGroupList } = this | 
|             platformGroupList.forEach(item => { | 
|                 item.platformList.forEach(platform => { | 
|                         if(platform.id === id){ | 
|                             platform.showConfig = !platform.showConfig | 
|                         } | 
|                 }) | 
|             }) | 
|         }, | 
|         getPlatformGroup() { | 
|             getPlatformGroupList({ | 
|                 queryData: 0, | 
|                 queryType: 1 | 
|             }).then(res => { | 
|                 this.platformGroupList = res.data || [] | 
|             }) | 
|         }, | 
|   } | 
| } | 
| </script> | 
| <style lang="scss"> | 
| page { | 
|   background-color: #f5f9f8; | 
| } | 
| .main_app { | 
|   padding: 0rpx; | 
|   .data_list { | 
|     display: flex; | 
|     flex-wrap: wrap; | 
|     margin-bottom: 20rpx; | 
|     padding: 30rpx; | 
|      background-color: #fff; | 
|          &:nth-last-child(1){ | 
|              margin-bottom: 120rpx; | 
|          } | 
|     .item { | 
|       width: 220rpx; | 
|       height: 80rpx; | 
|       background: #f3f3f3; | 
|       border-radius: 40rpx; | 
|       line-height: 80rpx; | 
|             text-align: center; | 
|       margin-bottom: 15rpx; | 
|       font-size: 30rpx; | 
|       margin-right: 15rpx; | 
|             white-space: nowrap; | 
|             overflow: hidden; | 
|             text-overflow: ellipsis; | 
|       &:nth-of-type(3n){ | 
|         margin-right: 0; | 
|       } | 
|     } | 
|     .active { | 
|       background: $uni-color-primary; | 
|       color: #fff; | 
|       box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39, 155, 170, 0.4); | 
|     } | 
|   } | 
|   .title { | 
|     display: flex; | 
|     align-items: center; | 
|     padding: 30rpx 30rpx 0; | 
|      background-color: #fff; | 
|     .icon { | 
|       width: 22rpx; | 
|       height: 22rpx; | 
|       margin-right: 16rpx; | 
|       border: 6rpx solid $uni-color-primary; | 
|       border-radius: 50%; | 
|     } | 
|     .name { | 
|       font-weight: 600; | 
|       font-size: 34rpx; | 
|       color: #111111; | 
|     } | 
|   } | 
| } | 
| .btns{ | 
|     position: fixed; | 
|     left: 0; | 
|     bottom: 0; | 
|     width: 750rpx; | 
|     height: 120rpx; | 
|     background: #FFFFFF; | 
|     box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(0,0,0,0.1); | 
|     display: flex; | 
|     justify-content: space-between; | 
|     align-items: center; | 
|     padding: 0 30rpx; | 
|     .btn{ | 
|         width: 336rpx; | 
|         height: 88rpx; | 
|         background: #FFFFFF; | 
|         border-radius: 44rpx; | 
|         border: 1rpx solid #999999; | 
|         display: flex; | 
|         justify-content: center; | 
|         align-items: center; | 
|         font-size: 32rpx; | 
|         color: #333333; | 
|     } | 
|     .active{ | 
|         background: $uni-color-primary; | 
|         color: #fff; | 
|     } | 
| } | 
| </style> |