微信小程序中課程選擇器如何實現?先看看實現效果:
代碼如下
wxml
<view class="urg_input"> <picker class="gradePicker" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> <input type="idcard" placeholder="請選擇您的所授學科" value="{{teachPlaceholder}}" disabled></input> </picker> </view>
js
import { primarySchool, juniorSchool, highSchool, bigSchool} from './AllDataConfig.js' Page({ data: { multiArray: [ ['小學', '初中', '高中', '大學'], ['一年級', '二年級', '三年級', '四年級', '五年級', '六年級'], primarySchool[0] ], multiIndex: [0, 0, 0], teachPlaceholder: '', }, /** * 學科選擇 */ bindMultiPickerChange: function (e) { // 確定之后獲取選中的課程 // console.log('picker發送選擇改變,攜帶值為', e.detail.value) // 返回所選的三個參數 this.setData({ multiIndex: e.detail.value }) let jiBie = this.data.multiArray[0][this.data.multiIndex[0]]; let grade = this.data.multiArray[1][this.data.multiIndex[1]]; let course = this.data.multiArray[2][this.data.multiIndex[2]]; let teachCourse = jiBie + '' + grade + '' + course; this.setData({ teachPlaceholder: teachCourse }) }, bindMultiPickerColumnChange: function (e) { // console.log('修改的列為', e.detail.column, ',值為', e.detail.value); var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value; // 第幾列判斷 只判斷兩列,第一列的級別,第二列的年級 switch (e.detail.column) { // 選擇第一列,設置第二列對應的年級 case 0: switch (data.multiIndex[0]) { // 小學 case 0: data.multiArray[1] = ['一年級', '二年級', '三年級', '四年級', '五年級', '六年級']; data.multiArray[2] = primarySchool[0]; break; // 初中 case 1: data.multiArray[1] = ['初一', '初二', '初三']; data.multiArray[2] = juniorSchool[0]; break; // 高中 case 2: data.multiArray[1] = ['高一', '高二', '高三']; data.multiArray[2] = highSchool[0]; break; // 大學 case 3: data.multiArray[1] = ['大一', '大二', '大三', '大四']; data.multiArray[2] = bigSchool[0]; break; } data.multiIndex[1] = 0; data.multiIndex[2] = 0; break; // 選擇第二列,設置對應的科目 case 1: /** * 選擇第一列對應的級別,然后判斷第二列的年級,從而設置課程 */ switch (data.multiIndex[0]) { // 小學 case 0: switch (data.multiIndex[1]) { // 一年級 case 0: data.multiArray[2] = primarySchool[1]; break; // 二年級 case 1: data.multiArray[2] = primarySchool[2]; break; // 三年級 case 2: data.multiArray[2] = primarySchool[3]; break; // 四年級 case 3: data.multiArray[2] = primarySchool[4]; break; // 五年級 case 4: data.multiArray[2] = primarySchool[5]; break; // 六年級 case 5: data.multiArray[2] = primarySchool[6]; break; } break; // 初中 case 1: switch (data.multiIndex[1]) { // 初一 case 0: data.multiArray[2] = juniorSchool[1]; break; // 初二 case 1: data.multiArray[2] = juniorSchool[2]; break; // 初三 case 2: data.multiArray[2] = juniorSchool[3]; break; } break; // 高中 case 2: switch (data.multiIndex[1]) { // 高一 case 0: data.multiArray[2] = highSchool[1]; break; // 高二 case 1: data.multiArray[2] = highSchool[2]; break; // 高三 case 2: data.multiArray[2] = highSchool[3]; break; } break; // 大學 case 3: switch (data.multiIndex[1]) { // 大一 case 0: data.multiArray[2] = bigSchool[1]; break; // 大二 case 1: data.multiArray[2] = bigSchool[2]; break; // 大三 case 2: data.multiArray[2] = bigSchool[3]; break; // 大四 case 3: data.multiArray[2] = bigSchool[4]; break; } break; } data.multiIndex[2] = 0; break; } // console.log(data.multiIndex); this.setData(data); }, })
AllDataConfig.js
// 課程設置 // 小學 export const primarySchool = [ // 默認設置課程 ['語文', '數學', '英語','體育','美術','化學'], // 一年級 ['語文', '數學', '英語'], // 二年級 ['語文', '數學', '英語'], // 三年級 ['語文', '數學', '英語'], // 四年級 ['語文', '數學', '英語'], // 五年級 ['語文', '數學', '英語'], // 六年級 ['語文', '數學', '英語'] ] // 初中 export const juniorSchool = [ // 默認設置課程 ['語文', '數學', '英語', '美術', '音樂', '政治', '歷史', '物理', '化學', '地理', '生物'], // 初一 ['語文', '數學', '英語', '美術', '音樂', '政治', '歷史', '地理', '生物'], // 初二 ['語文', '數學', '英語', '政治', '歷史', '物理', '化學', '地理', '生物'], // 初三 ['語文', '數學', '英語', '政治', '歷史', '物理', '化學'], ] // 高中 export const highSchool = [ // 默認設置課程 ['語文', '數學', '英語', '政治', '歷史', '地理', '物理', '化學', '生物'], // 高一 ['高一', '語文', '數學', '英語', '政治', '歷史', '地理', '物理', '化學', '生物'], // 高二 ['高二', '語文', '數學', '英語', '政治', '歷史', '地理', '物理', '化學', '生物'], // 高三 ['高三', '語文', '數學', '英語', '政治', '歷史', '地理', '物理', '化學', '生物'], ] export const bigSchool = [ // 默認設置課程 ['數學', '英語', '美術', '計算機', '政治'], // 大一 ['大一', '數學', '英語', '美術', '計算機', '政治'], // 大二 ['大二', '數學', '英語', '美術', '計算機', '政治'], // 大三 ['大三', '數學', '英語', '美術', '計算機', '政治'], // 大四 ['大四', '數學', '英語', '美術', '計算機', '政治'], ]
微信小程序中實現課程選擇已全部講述完,希望大家多多關注后續更多精彩內容。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128261.html
摘要:注拍照功能在某些機型上還有閃退現象,希望微信官方可以盡快完善。這涉及到函數,這是微信小程序內置的,用來上傳一個文件,有幾個點要說下綠色框要上傳文件資源的路徑,也就是我們相冊里選擇的圖片路徑。 我們喜歡小程序的原因之一就是它提供了更多和手機系統交互的接口,比如今天要說的這個從相冊選擇 / 拍照功能。注:拍照功能在某些機型上還有閃退現象,希望微信官方可以盡快完善。 在上一篇中我們搞定了相冊...
很多知識就是在開發中讓我們更加努力學習,本篇文章主要就是講在微信小程序中實現多項選擇器checkbox?! 〉谝坏脑捑褪俏覀兊南嚓P的布局文件: <viewclass="container"> <viewclass="page-body"> <viewclass="page-sectionpage-sect...
摘要:課程內容以打造一款擁有天氣預報和簽到功能的小程序為主線,從基礎知識到小程序運行機制,從開發環境搭建到小程序云開發的接口使用調試上線,打通微信小程序開發全流程。 9 月 11 日,微信開發者工具新增小程序「云開發」功能。 showImg(https://segmentfault.com/img/bVbjQLW?w=1000&h=544); 大多數開發者在開發應用時和部署服務時,無論是選擇...
摘要:行業現狀與未來年終大盤點大幅動蕩后,即將進入平穩期前端,在年及以前,一直處于一種萌芽期的狀態當中,直至年才進入行業的成長期。 HTML5行業現狀與未來 - 2016年終大盤點 1. 大幅動蕩后,即將進入平穩期 HTML5(WEB前端),在2012年及以前,一直處于一種萌芽期的狀態當中,直至2013年才進入行業的成長期。HTML5(WEB前端)在2013和2014年,隨著行業的推動慢慢的...
閱讀 561·2023-03-27 18:33
閱讀 750·2023-03-26 17:27
閱讀 647·2023-03-26 17:14
閱讀 603·2023-03-17 21:13
閱讀 537·2023-03-17 08:28
閱讀 1823·2023-02-27 22:32
閱讀 1315·2023-02-27 22:27
閱讀 2199·2023-01-20 08:28