vue的div单选多选v-for

效果图:

html代码: 

<div class="productDetails_choose">
    <h2>基本信息</h2><p>请根据实际情况完成所有评估选项,否则影响你的最终估价</p>
    <div class="choose">
      <div class="choose_list" v-for="(item,index) in chooseList" :key="index">
        <div class="choose_title" @click="chooseshowload(index,item.chooseshow)">
            <p>{{item.title}}</p>
            <i class="fa fa-angle-down" v-show="!item.chooseshow"></i>
            <i class="fa fa-angle-up" v-show="item.chooseshow"></i>
        </div>
        <div class="choose_button" v-if="!item.checkbox&&item.chooseshow">
            <button :ref="index+'s'+ind" v-for="(item2,ind) in item.list" :key="ind"  @click="choosebutton(index,ind,item2.id)">{{item2.name}}</button> 
        </div> 
        <div class="choose_button" v-if="item.checkbox&&item.chooseshow">
            <button :ref="index+'s'+ind" v-for="(item2,ind) in item.list" :key="ind"  @click="choosebutton2(index,ind,item2.id)">{{item2.name}}</button> 
        </div>                           
      </div>
    </div>
    <Button type="error" @click="valuationPrice" style="display:block;float:right">立即询价</Button>
</div>

js代码:

methods: {
    chooseshowload(index, chooseshow) {
        for (var i = 0; i < this.chooseList.length; i++) {
            if (index == i) {
                this.chooseList[i].chooseshow = !this.chooseList[i].chooseshow
            }
        }
    },  
    choosebutton(index, ind, id) {     
        var _self = this;
        this.chooseList.forEach((item, i) => {
            item.list.forEach((item2, i2) => {
                if (i == index&&i2==ind) {
                    item2.buttoncolor = !item2.buttoncolor
                    if (item2.buttoncolor) {                          
                        _self.$refs[index+'s'+ind][0].style.color = "blue"
                    } else {
                        _self.$refs[index+'s'+ind][0].style.color = "#999"
                    }
                }else if ( i == index&&i2!=ind) {
                    item2.buttoncolor = false                       
                    _self.$refs[i+'s'+i2][0].style.color = "#999"
                }
            })
        })
        this.chooseList
    },
    choosebutton2(index, ind, id) {    
        var _self = this;
        this.chooseList.forEach((item, i) => {
            item.list.forEach((item2, i2) => {
                if (i == index&&i2==ind) {
                    item2.buttoncolor = !item2.buttoncolor
                    if (item2.buttoncolor) {                          
                        _self.$refs[index+'s'+ind][0].style.color = "blue"
                    } else {
                        _self.$refs[index+'s'+ind][0].style.color = "#999"
                    }
                }
            })
        })
        this.chooseList
    },
    
},
mounted() {
    this.chooseList.forEach((item, i) => {
        item.list.forEach((item2, i2) => {
            item2.buttoncolor = false
        })
    })
}

 

this.chooseList  的  json

chooseList: [
                {
                    title: '购买渠道',
                    list: [
                        { id: '1', name: '国产' },
                        { id: '2', name: '港澳' },
                        { id: '3', name: '日版' },
                        { id: '4', name: '美版' }
                    ],
                    value: '',
                    chooseshow: true
                },
                {
                    title: '保修期剩余时间',
                    list: [
                        { id: '1', name: '1年' },
                        { id: '2', name: '2年' },
                        { id: '3', name: '3年' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '机身颜色',
                    list: [
                        { id: '1', name: '金色' },
                        { id: '2', name: '银色' },
                        { id: '3', name: '黑色' },
                        { id: '4', name: '亮黑色' },
                        { id: '5', name: '玫瑰金' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '网络制式',
                    list: [
                        { id: '13', name: '2G' },
                        { id: '14', name: '3G' },
                        { id: '15', name: '4G' },
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '机身内存',
                    list: [
                        { id: '16', name: '16G' },
                        { id: '17', name: '32G' },
                        { id: '18', name: '64G' },
                        { id: '19', name: '128G' },
                        { id: '20', name: '256G' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '外观成色',
                    list: [
                        { id: '21', name: '完好无损' },
                        { id: '22', name: '有少量磨损' },
                        { id: '23', name: '有严重磨损' },
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: 'iCloud是否有锁',
                    list: [
                        { id: '11656560', name: '是' },
                        { id: '56565656540', name: '否' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '维修拆机史',
                    list: [
                        { id: '11056', name: '是' },
                        { id: '6760686', name: '否' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '显示屏',
                    list: [
                        { id: '1109999', name: '是' },
                        { id: '06666', name: '否' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '触摸及功能',
                    list: [
                        { id: '1150', name: '是' },
                        { id: '0333', name: '否' }
                    ],
                    value: '',
                    chooseshow: false
                },
                {
                    title: '是否存在以下问题(可多选)',
                    list: [
                        { id: '1', name: '111111' },
                        { id: '2', name: '222222' },
                        { id: '3', name: '333333' },
                        { id: '4', name: '444444' },
                        { id: '5', name: '555555' },
                        { id: '6', name: '666666' },
                        { id: '7', name: '777777' },
                        { id: '8', name: '888888' }
                    ],
                    checkbox: true,
                    value: [],
                    chooseshow: false
                }
            ],

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值