1. 程式人生 > >微信小程式picker滾動選擇器,級聯問題

微信小程式picker滾動選擇器,級聯問題

小程式API提供的滾動選擇器是沒有級聯關係的,請求介面返回的資料是tree型別的

{
	"data": [{
		"flid": "13541",
		"name": "阿斯蒂",
		"children": [{
			"flid": "3c24dcad-2356-4aed-9db3-dfe169e0048c",
			"name": "123",
			"children": null
		}, {
			"flid": "81321b",
			"name": "阿斯蒂芬",
			"children": null
		}]
	}, {
		"flid": "126354asdf,
		"name": "阿斯蒂",
		"children": [{
			"flid": "73a679c2",
			"name": "2333",
			"children": null
		}]
	}]
}

類似這樣....

頁面佈局

<picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindcolumnchange" range-key="name" value="{{multiIndex}}" range="{{multiArray}}">
                <view class='model'></view>
                <zan-field placeholder="選擇屬性類別" value="{{select}}">
                </zan-field>
            </picker>

<view class='model'></view>是為了遮罩 zanUI選中 和 picker不彈出的問題

下面是css

.model {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 999;
}

下面是js

 data: {
        resData: [],
        multiArray: [],
        multiIndex: [0, 0],
        select: '',
        selectId: ''
    },
    bindMultiPickerChange: function(e) {
        console.log('picker傳送選擇改變,攜帶值為', e.detail.value)
        if (this.data.resData[e.detail.value[0]].children) {
            this.setData({
                multiIndex: e.detail.value,
                select: this.data.multiArray[0][e.detail.value[0]].name+' / '+this.data.multiArray[1][e.detail.value[1]].name,
                selectId: this.data.resData[e.detail.value[0]].flid + ',' + this.data.resData[e.detail.value[1]].flid,
            })
            console.log(this.data.selectId) //這裡存放id傳送給後臺
        } else {
            wx.showToast({
                title: '請選擇完整分類',
                icon: 'none',
                duration: 2000
            })
        }

    },
    bindcolumnchange: function(e) {
        //修改第一列 == 0
        if (e.detail.column == 0) {
            //如果子集有資料
            if (this.data.resData[e.detail.value].children) {
                var child = this.data.resData[e.detail.value].children;
                var arrs = []
                child.forEach(function(item) {
                    arrs.push({
                        name: item.name,
                        id: item.flid
                    })
                })
                var kk = this.data.multiArray
                kk[1] = arrs
                this.setData({
                    multiArray: kk
                })
            } else {
                //如果子集沒有資料
                var arrs = []
                arrs.push({
                    name: '',
                    id: ''
                })
                var kk = this.data.multiArray
                kk[1] = arrs
                this.setData({
                    multiArray: kk
                })
            }

        }
    },
    /**
     * 生命週期函式--監聽頁面載入
     */
    onLoad: function(options) {
        var that = this;
        app.post('******', {}, function(response) {
            console.log(response)
            that.setData({
                resData: response.data
            })
            var arr = [
                [],
                []
            ];
            response.data.forEach(function(item) {
                arr[0].push({
                    name: item.name,
                    id: item.flid
                })
            })
            if (response.data[0].children) {
                response.data[0].children.forEach(function(item) {
                    arr[1].push({
                        name: item.name,
                        id: item.flid
                    })
                })

            }
            console.log(arr)
            that.setData({
                multiArray: arr
            })
        })
    },

over

相關推薦

程式picker滾動選擇問題

小程式API提供的滾動選擇器是沒有級聯關係的,請求介面返回的資料是tree型別的 { "data": [{ "flid": "13541", "name": "阿斯蒂", "children": [{ "flid": "3c24dcad-2356-4ae

程式picker(滾動選擇)

從底部彈起的滾動選擇器,現支援五種選擇器,通過mode來區分,分別是普通選擇器(selector),多列選擇器(multiSelector),時間選擇器(time),日期選擇器(date),省市區選擇器(region),預設是普通選擇器。 效果圖如下,

程式滾動選擇(時間日期選擇)

微信小程式自己封裝了很多控制元件,用起來確實很方便,如果這是Android裡面,還需要自己去定義,不廢話,效果圖: 一起來看看怎麼實現的呢?看完你應該就該說,尼瑪,這就行啦…. 這個效果呢,要用到picker元件,動畫從底部彈起的滾動選擇器,現支援三種選擇器,通過mode來區

程式學習--基礎--選擇權重/優先順序

element 元素選擇器--1.class 類選擇器-----10id 選擇器---------100style 內聯樣式-----1000!important--------∞比如 view .name 的權重為1+100=101

程式的省市區選擇

<view style='margin-top:100rpx'>省市區選擇器</view> <picker mode="region" bindchange='changeZone' value='{{region}}' > {{zonePick}} </

程式建立節點選擇獲取寬高wx.createSelectorQuery

微信小程式提供了一個獲取節點寬高等資訊的方法,一共是兩步。 1.在對應的節點上定義一個id <image src='{{imgUrl}}' class="look-image" bindload="imageLoad" id="drawID"&g

程式 picker-view日期選擇(二)

上一篇講的是微信小程式裡面,時間控制元件最大選擇日期為當前日期,這篇寫不限制最大選擇日期。 wxml的程式碼部分還是一樣的,只是js稍微改動了一下,並且這個可以實現月份和日期小雨10的時候,前面加0的效果。 給出效果圖: 貼出程式碼: js: const da

程式 picker選擇 從後臺拿值

這種東西在專案中是很常見的,文件上有的demo我這裡就不在重複一遍了,我現在說的是從後臺拿到的資料,放在這個選擇器裡。 後臺返回的格式是這樣的: 我們要實現的樣子是這樣的: 其實跟文件上介紹的普通選擇器差不多,只是多了幾個條件值, 我們一起來看一下程式碼:主要

程式----picker選擇picker、省市區選擇)(MUI選擇

效果圖 實現原理 利用微信小程式的picker元件,其中: 1,普通選擇器:mode = selector實現一級選擇例項; 2,省市區選擇器:mode = region實現省市區三級聯動; 3, 多列選擇器:mode

程式-picker元件地區,時間,日期選擇

效果 html程式碼 <view class="section"> <view class="section__title">省市區選擇器</view>

程序多列選擇之range-key

微信小程序 data picker span key con back column tip <picker mode="multiSelector" bindchange="bindMultiPickerChange2" bindcolumnchange="bin

程式實現倒計時計時

微信小程式驗證碼倒計時*秒 var timer = setInterval(function () { lastTime--; that.setData({ codeText:

程式 picker元件運用物件陣列

官方文件 https://developers.weixin.qq.com/miniprogram/dev/component/picker.html wxml: <view class='input-box flexac'> <text>積分抵扣

程式實現滾動載入更多

微信小程式實現滾動載入更多 1.需要用到的元件和api scroll-view(可滾動檢視區域) wx.showToast(OBJECT)顯示訊息提示窗 2.需要用到的屬性  

程式-公告滾動訊息通知

寫在前面:    這次我主要想總結一下微信小程式實現上下滾動訊息提醒,主要是利用swiper元件來實現,swiper元件在小程式中是滑塊檢視容器。   我們通過vertical屬性(預設為false,實現預設左右滾動)設定為true來實現上下滾動。   (需要注意的是:只要

程式文字滾動

startScroll() { let query = wx.createSelectorQuery() let last query.select('#box').scrollOffset() let getNowSrollLeft = function (cb)

程式picker元件

picker 從底部彈起的滾動選擇器,現支援五種選擇器,通過mode來區分,分別是普通選擇器,多列選擇器,時間選擇器,日期選擇器,省市區選擇器,預設是普通選擇器。 普通選擇器:mode = selector 屬性名 型別 預設值

程式-開啟地圖選擇位置

 微信小程式地圖自動定位位置:   方法步驟如下: 1.申請獲取使用者地址的許可權; 2.開啟地圖選擇; 3.由於獲取到的地址是一串字串,所以必須通過經緯度反查地址分隔省市縣;(如不需要分隔可省略)獲取之後自動填充到表單中。 在wxml中點選觸發

自定義程式下拉選擇框元件

預覽效果圖:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ======================================================== 首先要新建一個元件 1.在想要的位置上新建一個目錄 2.在該目錄中 右鍵 → 新建一個Comp

程式中清除定時

在微信小程式的開發過程中,經常會遇到使用倒計時的情況,但是小程式的頁面跳轉經常會遇到跳轉的下一個頁面後,前一個頁面的倒計時還在執行。 這時候需要我們在關閉或者離開當前頁面的時候清除掉當前的倒計時,但是傳統的方式在小程式中無法使用,在小程式中我採用的是賦值然後清除的方法。