<template> <view class="" :style="{'--status-bar-': statusBarHeight}"> <u-navbar title="选择下级分销商" :placeholder="true" @leftClick="leftClick" :autoBack="false" :safeAreaInsetTop="true"> </u-navbar> <view class="item-list"> <!-- <view class="til u-flex u-row-between" :style="{top:navHeight+'px'}"> <u-checkbox-group @change="allCheckboxChange"> <u-checkbox shape="circle" :checked="allChecked" :name="allCheckbox.name" label="观影人列表"></u-checkbox> </u-checkbox-group> </view> --> <u-checkbox-group placement="column" @change="checkboxChange"> <view v-for="(item,index) in dataList" :key="item.id" class="item u-flex"> <u-checkbox shape="circle" activeColor="#ED0000" :key="index" :name="item.name" :checked="item.checked" @change="toggleCheck(index)" class="checkbox" /> <view class="text u-flex u-row-between" @click="toggleCheck(index)"> <view class="name">{{item.name}}</view> <view class="withdrawTotal">可提现余额:<text class="num"> ¥ {{item.withdrawTotal}}</text></view> </view> </view> </u-checkbox-group> </view> <view class="cart-bottom"> <view class="inner u-flex u-row-between"> <view class="left u-flex"> <view class="checkbox" @click="checkboxClick" style="padding: 10px;"> <u-checkbox-group @change="allCheckboxChange"> <u-checkbox shape="circle" :checked="allChecked" activeColor="#ED0000" :name="allCheckbox.name" label="全选"></u-checkbox> </u-checkbox-group> </view> <view class="total-price-wrap u-flex"> <view class="total">共{{selectGoods.length}}人</view> <view class="totalPrice u-flex"> 合计: <text class="num"> {{totalPrice}}</text> </view> </view> </view> <view class="btn active" v-if="selectGoods.length>0&&cansubmit" @click="submitorder">确定</view> <view class="btn" v-else>确定</view> </view> </view> <u-toast ref="uToast"></u-toast> </view> </template> <script> // import { // systemInfo // } from "@/mixin.js"; export default { // mixins: [systemInfo], // 使用mixin data() { return { statusBarHeight: 0, // 状态栏安全距离 orderId: '', cansubmit: true, staticUrl: this.$commonConfig.staticUrl, allCheckbox: { name: '全选' }, options: [{ text: '删除', style: { backgroundColor: '#FF3C3F', 'padding-left': '10px' } }], // 购物车列表 dataList: [], } }, computed: { // 是否全选 allChecked() { return this.dataList.every(item => item.checked) }, selectGoods() { let selectGoods = []; this.dataList.forEach(item => { if (item.checked) { selectGoods.push(item) } }) return selectGoods }, // 合计价格 totalPrice() { let that = this; return this.dataList.reduce((total, item) => { if (item.checked) { let price = null; total += item.withdrawTotal; } return total; }, 0).toFixed(2); } }, onLoad(page) { // this.getSystemInfo(); this.statusBarHeight = getApp().globalData.statusBarHeight; this.orderId = page.id; }, onShow() { this.getViewers(); }, methods: { leftClick(e) { uni.reLaunch({ url: '/pages/main/index' }); console.log('leftClick', e); }, // 切换全选状态 allCheckboxChange(n) { // console.log('allCheckboxChange',n[0]); console.log('allCheckboxChange', n); let selectAll = n[0] ? true : false; this.dataList.forEach(item => { item.checked = selectAll }) }, checkboxClick() { // console.log('checkboxClick',this.allChecked); this.dataList.forEach(item => { item.checked = !this.allChecked }) }, checkboxChange(n) { // console.log('checkboxChange',n); }, // 切换商品选中状态 toggleCheck(index) { // console.log('toggleCheck',index); // if(this.dataList[index].status !== 3){ // uni.showToast({ // icon:'none', // title:'该状态不能退款', // duration:1000 // }) // return // } this.dataList[index].checked = !this.dataList[index].checked }, submitorder() { let personList = this.selectGoods.map(item=>{ return {personsId:item.id,withdrawTotal:item.withdrawTotal} }); let params = { withdrawTotal:this.totalPrice, personList:JSON.stringify(personList) }; // console.log('selectGoods', this.selectGoods); uni.$u.route('/pages/cash/index', params); }, getViewers() { this.$u.api.distributorList({ userid: this.distribution_user_info.userId }).then(res => { this.dataList = res.data.list.map(item => { item.checked = false; return { ...item, class: { 0: 'status-0', 1: 'status-1', 2: 'status-2', 3: 'status-3', 4: 'status-4', 5: 'status-5', 6: 'status-6', 7: 'status-7', 8: 'status-8' }[item.status] || '' } }) }).catch(err => { console.log('getOrderDetails', err.data); }) }, } } </script> <style> page { background: #F7F7F9; } </style> <style lang="scss" scoped> .u-flex { display: flex; flex-direction: row; align-items: center; } .u-row-between { justify-content: space-between; } .u-row-around { justify-content: space-around; } .item-list{ margin: 28rpx 32rpx 20rpx; .item{ background: #FFFFFF; border-radius: 20rpx; padding-left: 18rpx; margin-bottom: 24rpx; .text{ margin-left: 20rpx; flex: 1; padding: 30rpx 32rpx; box-shadow: -6rpx 0rpx 20rpx -18rpx rgba(0,0,0,0.5); .name{ font-size: 24rpx; } .withdrawTotal{ font-size: 24rpx; color: var(--gd-but-color); .num{ font-size: 32rpx; } } } } } .cart-bottom { position: relative; z-index: 1001; height: 98rpx; .inner { position: fixed; background-color: #fff; height: 98rpx; left: 0; right: 0; bottom: 0; padding: 0 20rpx; padding-left: 0; .total-price-wrap { margin-left: 30rpx; .totalPrice{ font-size: 30rpx; color: #333; font-weight: 400; .num{ font-size: 40rpx; font-weight: bold; color: #ED0000; margin-left: 5px; } } .total{ font-size: 20rpx; font-weight: 400; color: #999999; margin-right: 16rpx; } } .btn { height: 80rpx; line-height: 80rpx; border-radius: 50rpx; padding: 0 50rpx; background-color: #eee; color: #333; text-align: center; &.active { background-color: #FF3C3F; color: #fff; } } } } </style>