页面结构代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| <view class="control-w "> <block wx:for="{{controls}}" wx:key="id" wx:for-item="v"> <view class="slide-item"> <view class="itemName">{{v.name}}</view> <view class="slidewrap"> <text class="s-con" data-id="{{v.id}}" bindtap="minusCount">-</text> <slider class="slide" bindchange="sliderchange" step="10" value="{{v.value}}" data-id="{{v.id}}" max="{{v.max}}" min="0" wx:if="{{index<3}}" /> <slider class="slide" bindchange="sliderchange" step="10" value="{{v.value}}" data-id="{{v.id}}" max="{{v.max}}" min="0" wx:if="{{index==3}}" /> <text class="s-con" data-id="{{v.id}}" data-max="{{v.max}}" bindtap="addCount">+</text> </view> </view> </block> </view>
|
js部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| Page({ data: { controls: [ { id: 1, name: '功能一', value: 30, max: 60 }, { id: 2, name: '功能二', value: 30, max: 60 }, { id: 3, name: '功能三', value: 30, max: 60 }, { id: 4, name: '功能四', value: 50, max: 100 } ] }, addCount: function (event) { let data = event.currentTarget.dataset let controls = this.data.controls let control = controls.find(function (v) { return v.id == data.id }) let control1 = controls.find(function (v) { return v.max == data.max }) if (control.value > control1.max) return control.value += 10; this.setData({ 'controls': controls }) }, minusCount: function (event) { let data = event.currentTarget.dataset let controls = this.data.controls let control = controls.find(function (v) { return v.id == data.id }) if (control.value <= 0) return control.value -= 10; this.setData({ 'controls': controls }) }, sliderchange: function (e) { let data = e.currentTarget.dataset let controls = this.data.controls let control = controls.find(function (v) { return v.id == data.id }) this.setData({ 'controls': controls }) } })
|