国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微信小程序復(fù)選框組件使用演示示例

3403771864 / 453人閱讀

  在工作中效率要求是很高的,現(xiàn)在就在頻繁用到復(fù)選框,我們自己來寫了個組件,增加其復(fù)用性,提高效率。

  先看效果圖:

  這樣只需提交后得到一個選中項的id組成的數(shù)組

  下邊直接上代碼:

  代碼地址為:components/checkGrop/checkGrop

  wxml: 

 <form bindsubmit="formSubmit">
  <view class='content'>
  <!-- 一級菜單 -->
  <scroll-view class='scrollLeft' scroll-y>
  <block wx:for="{{list}}" wx:key="item">
  <view class="leftBox" catchtap='ontap' data-index='{{index}}' style='{{n==index?"border-left:8rpx solid #1aad16;color:#1aad16":""}}'>
  {{item.istitle}}
  <view class='num' hidden="{{checked[index].length>0?false:true}}">
  <text>{{allNum[index]?allNum[index]:(checked[index].length>0?checked[index].length:0)}}</text>
  </view>
  </view>
  </block>
  </scroll-view>
  <!-- 二級菜單 -->
  <scroll-view class='scrollRight' scroll-y>
  <view class="weui-cells weui-cells_after-title">
  <!-- 二級菜單中的全部選項 -->
  <label class="weui-cell weui-check__label" catchtap='all'>
  <checkbox class="weui-check" value="{{childlist[n][0].value}}" checked="{{childlist[n][0].checked}}" />
  <view class="weui-cell__hd weui-check__hd_in-checkbox">
  <icon class="weui-icon-checkbox_circle" type="circle" size="23" wx:if="{{!childlist[n][0].checked}}"></icon>
  <icon class="weui-icon-checkbox_success" type="success" size="23" wx:if="{{childlist[n][0].checked}}"></icon>
  </view>
  <view class="weui-cell__bd">{{childlist[n][0].istitle}}</view>
  </label>
  <checkbox-group bindchange="checkboxChange">
  <!-- 二級菜單中的剩余選項 -->
  <block wx:for="{{childlist[n]}}" wx:key="value">
  <label class="weui-cell weui-check__label" wx:if='{{item.istitle!="全部"}}'>
  <checkbox class="weui-check" value="{{item.id}}" checked="{{item.checked}}" />
  <view class="weui-cell__hd weui-check__hd_in-checkbox">
  <icon class="weui-icon-checkbox_circle" type="circle" size="23" wx:if="{{!item.checked}}"></icon>
  <icon class="weui-icon-checkbox_success" type="success" size="23" wx:if="{{item.checked}}"></icon>
  </view>
  <view class="weui-cell__bd">{{item.istitle}}</view>
  </label>
  </block>
  </checkbox-group>
  </view>
  </scroll-view>
  </view>
  <view class="btn-area">
  <button catchtap='back'>返回</button>
  <button formType="submit">提交</button>
  </view>
  </form>

  wxss:

   page{
  background: #f8f8f8;
  }
  .content{
  position: absolute;
  top:0;
  bottom:100rpx;
  width: 100%;
  }
  .scrollLeft{
  box-sizing: border-box;
  float: left;
  width: 25%;
  height: 100%;
  border-right: 1rpx solid #ffffd;
  font-size: 35rpx;
  }
  .scrollRight{
  float: left;
  width: 75%;
  height: 100%;
  }
  .leftBox{
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100rpx;
  display: flex;
  justify-content: center;
  align-items:center;
  border-bottom: 1rpx solid #ffffd;
  }
  .num{
  position: absolute;
  top:10rpx;
  right: 10rpx;
  width: 30rpx;
  height: 30rpx;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #f10215;
  border-radius: 50%;
  color: white;
  font-size: 22rpx;
  }
  .rightBox{
  box-sizing: border-box;
  width: 100%;
  }
  .weui-cells {
  position: relative;
  margin-top: 1.17647059em;
  background-color: #FFFFFF;
  line-height: 1.41176471;
  font-size: 17px;
  }
  .weui-cells_after-title {
  margin-top: 0;
  }
  .weui-cell {
  padding: 10px 15px;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  align-items: center;
  }
  .weui-check__label:active {
  background-color: #ECECEC;
  }
  .weui-check {
  position: absolute;
  left: -9999px;
  }
  .weui-check__hd_in-checkbox {
  padding-right: 0.35em;
  }
  .weui-icon-checkbox_circle,
  .weui-icon-checkbox_success {
  margin-left: 4.6px;
  margin-right: 4.6px;
  }
  .weui-cell__bd {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  flex: 1;
  }
  .btn-area{
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 100rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20rpx;
  }
  .btn-area>button:first-child{
  width: 30%;
  height: 80%;
  color: white;
  background-color: orange;
  display: flex;
  justify-content: center;
  align-items: center;
  }
  .btn-area>button:last-child{
  width: 65%;
  height: 80%;
  color: white;
  background-color: #1aad16;
  display: flex;
  justify-content: center;
  align-items: center;
  }

  json:

  {
  "component":true
  }

  js:

  Component({
  properties: {
  list: {
  type: Array,
  value: [],
  },
  select:{
  type: Array,
  value: [],
  }
  },
  data: {
  childlist: [],
  n: 0,
  checked: [],
  allNum: [],
  },
  ready(){
  var that=this;
  var list = that.data.list;//傳遞過來的數(shù)據(jù)
  // console.log(list)
  var select = that.data.select;
  var checked = new Array;
  var allNum = [];
  var aaa = [];
  // 檢查默認選中狀態(tài)
  for (let i = 0; i < list.length; i++) {
  for (let k = 0; k < list[i].childlist.length; k++) {
  for (let j = 0; j < select.length; j++) {
  if (list[i].childlist[k].id == select[j]) {
  aaa = [];
  // 若某條二級數(shù)組中存在多個選中的項要做判斷篩選
  if (checked[i]) {
  // check中第i項如果存過值,那么將在此項中繼續(xù)加入值
  checked[i].forEach(function (item) {
  aaa.push(item);
  })
  aaa.push(list[i].childlist[k]);
  checked[i] = aaa;
  } else {
  // check中第i項沒有存過值,那么將值存入第i項
  if (list[i].childlist[k].istitle == "全部") {
  for (let s = 0; s < list[i].childlist.length; s++) {
  list[i].childlist[s].checked = true
  allNum[i] = list[i].childlist.length - 1;
  checked[i] = [list[i]];
  }
  } else {
  checked[i] = [list[i].childlist[k]];
  }
  }
  list[i].childlist[k].checked = true;
  }
  }
  }
  }
  that.setData({
  'childlist[0]': list[0].childlist,
  list: list,
  checked: checked,
  allNum: allNum,
  })
  console.log(checked);
  console.log(allNum);
  },
  methods: {
  ontap(e) {
  var that = this;
  var n = e.currentTarget.dataset.index;
  var childlist = "childlist[" + n + "]";
  that.setData({
  [childlist]: that.data.list[n].childlist,
  n: n
  })
  },
  all() {
  var that = this;
  var n = that.data.n;
  var childlist = "childlist[" + n + "]";
  var checked = "checked[" + n + "]";
  var allNum = "allNum[" + n + "]";
  var all = "";
  var checkArr = [];
  var checkboxItems = that.data.childlist[n];
  if (checkboxItems[0].checked) {
  checkboxItems[0].checked = true;
  checkArr = [];
  } else {
  checkboxItems[0].checked = false;
  // checkArr.push(checkboxItems[0])
  checkArr.push(that.data.list[n])
  all = checkboxItems.length - 1;
  }
  checkboxItems[0].checked = !checkboxItems[0].checked
  for (let k = 1; k < checkboxItems.length; k++) {
  checkboxItems[k].checked = checkboxItems[0].checked;
  }
  console.log(checkboxItems);
  that.setData({
  [childlist]: checkboxItems,
  [checked]: checkArr,
  [allNum]: all ? all : 0,
  }, function () {
  console.log(that.data.checked);
  })
  },
  checkboxChange(e) {
  var that = this;
  var n = that.data.n;
  console.log('checkbox發(fā)生change事件,攜帶value值為:', e.detail.value)
  var checkboxItems = that.data.childlist[n];
  var values = e.detail.value;
  var flag = "";
  var childlist = "childlist[" + n + "]";
  var checked = "checked[" + n + "]";
  var allNum = "allNum[" + n + "]";
  var checkedArr = [];
  var all = "";
  for (var i = 0, lenI = checkboxItems.length; i < lenI; ++i) {
  checkboxItems[i].checked = false;
  for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
  if (checkboxItems[i].id == values[j]) {
  checkboxItems[i].checked = true;
  checkedArr.push(checkboxItems[i]);
  break;
  }
  }
  }
  if (values.length == checkboxItems.length - 1) {
  checkboxItems[0].checked = true;
  // checkedArr = [checkboxItems[0]];
  checkedArr = [that.data.list[n]];
  all = checkboxItems.length - 1;
  }
  this.setData({
  [childlist]: checkboxItems,
  [checked]: checkedArr,
  [allNum]: all
  });
  // console.log(checkedArr)
  },
  formSubmit: function (e) {
  var that = this;
  console.log('form發(fā)生了submit事件');
  var values = that.data.checked;
  var arr = [];
  var arr1 = [];
  for (let i = 0; i < values.length; i++) {
  if (values[i] != undefined) {
  arr.push(values[i]);
  }
  }
  for (let i = 0; i < arr.length; i++) {
  for (let j = 0; j < arr[i].length; j++) {
  arr1.push(arr[i][j])
  }
  }
  console.log(arr1);//選中的值
  var detail = arr1;
  this.triggerEvent("formSubmit", detail);
  },
  back() {
  this.triggerEvent("back");
  }
  }
  })

  使用方法:

  在需要使用的頁面的json中聲名啟用組件

  如:
  {
  "usingComponents": {
  "check": "/components/checkGrop/checkGrop"
  }
  }

  然后在需要使用的頁面的wxml中使用自己起的組件名就好了

  如:

  <check list="{{hangye}}" select="{{checkedid}}" bind:formSubmit="formSubmit" bindback="back"></check>

  上面的代碼,就是表示list 是用來往組件里傳遞的數(shù)組。 select為默認選中的的數(shù)據(jù)的id,這樣就可以讓參數(shù)依照自己的需求進行更換!


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/128267.html

相關(guān)文章

  • Wuss Weapp 信小程序 UI 組件

    摘要:或者當(dāng)依賴安裝完成后即可在微信小程序開發(fā)者工具里點擊工具構(gòu)建,此時若出現(xiàn)彈窗則記得吧使用模塊勾上,若無彈窗則待構(gòu)建完成后在詳情里面手動勾上使用模塊。 showImg(https://segmentfault.com/img/bVbjNrF?w=334&h=334); 微信小程序 UI 組件庫 Github地址 https://github.com/phonycode/wuss-weap...

    shiguibiao 評論0 收藏0
  • Wuss Weapp 信小程序 UI 組件

    摘要:或者當(dāng)依賴安裝完成后即可在微信小程序開發(fā)者工具里點擊工具構(gòu)建,此時若出現(xiàn)彈窗則記得吧使用模塊勾上,若無彈窗則待構(gòu)建完成后在詳情里面手動勾上使用模塊。 showImg(https://segmentfault.com/img/bVbjNrF?w=334&h=334); 微信小程序 UI 組件庫 Github地址 https://github.com/phonycode/wuss-weap...

    dendoink 評論0 收藏0
  • Wuss Weapp 信小程序 UI 組件

    摘要:或者當(dāng)依賴安裝完成后即可在微信小程序開發(fā)者工具里點擊工具構(gòu)建,此時若出現(xiàn)彈窗則記得吧使用模塊勾上,若無彈窗則待構(gòu)建完成后在詳情里面手動勾上使用模塊。 showImg(https://segmentfault.com/img/bVbjNrF?w=334&h=334); 微信小程序 UI 組件庫 Github地址 https://github.com/phonycode/wuss-weap...

    Eastboat 評論0 收藏0
  • 「輕算賬」小程序實踐筆記

    摘要:資源開發(fā)文檔是一套完全免費的微信小程序開發(fā)框架,擴展了小程序的能力。推薦有一些不錯的解決方案封裝封裝跨頁面事件通訊監(jiān)聽數(shù)據(jù)變化開發(fā)如何在微信小程序的頁面間傳遞數(shù)據(jù)需要時可以快速過一遍。微信小程序回調(diào),,,的使用例子供參考 這篇文章主要記錄我做小程序「輕算賬」過程中遇到的一些問題和解決方案,就當(dāng)是做個總結(jié),也希望其中有能夠幫助到他人的信息。 showImg(https://segment...

    BigTomato 評論0 收藏0
  • 一個小時快速搭建信小程序

    摘要:第一步搭開發(fā)環(huán)境首先,我們需要在本地搭建好微信小程序的開發(fā)環(huán)境。在微信小程序中,所有的網(wǎng)絡(luò)請求受到嚴格限制,不滿足條件的域名和協(xié)議無法請求。第五步配置微信小程序云端示例鏡像中,已經(jīng)部署好了,但是還需要在下修改配置中的域名證書私鑰。 「小程序」這個劃時代的產(chǎn)品發(fā)布快一周了,互聯(lián)網(wǎng)技術(shù)人都在摩拳擦掌,躍躍欲試。可是小程序目前還在內(nèi)測,首批只發(fā)放了 200 個內(nèi)測資格(淚流滿面)。本以為沒有...

    izhuhaodev 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<