(7)测试选择的实现,wxml、wxss、js源代码

这一节我们介绍测试选择的实现,并提供wxml、wxss、js源代码。

实现后的效果图:

”测试选择“实现后的效果图

代码结构图:

代码结构图

一、wxml

<!--pages/ceshixz/ceshixz.wxml-->

<view class='choiceIcon'>
    <image class='image' src='/images/exam.png'></image>
    <view class='imageText'>选择题库</view>
</view>


<view  class='cschoseQuestion' >
      <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
    <view class="picker">
  {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}}
    </view>
     </picker>
    
    
    
    <picker bindchange="csPickerChange" value="{{index}}" range="{{array}}">
     {{array[index]}}
    </picker>
</view>

  <view class='startExam'>
    <button bindtap='exam'>开始测试</button>
  </view>

二、wxss

.choiceIcon{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items:center;
  margin: 0 auto;
  width: 350rpx;
  height: 350rpx;
  margin-top: 90rpx;
  margin-bottom: 40rpx;
 }

.image{
  width: 280rpx;
  height: 350rpx;
}

.imageText{
  font-size: 40rpx;
  margin-top: 30rpx;
  text-align: center;
}

.cschoseQuestion{
  font-size: 40rpx;
  background-color: #e2e1de;
  width: 50%;
  height: 100rpx;
  margin: 0 auto;
  text-align: center;
  justify-content:center;
  display:flex;
  align-items:center;
  color: #575755;
  margin-bottom: 70rpx;
}

.startExam{
   margin: 0 auto;
   padding-top: 15rpx;
   height: 110rpx;
   width: 50%;
}

三、js

// pages/ceshixz/ceshixz.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    
    multiArray: [['国学'], ['题库一', '题库二', '题库三']],
    objectMultiArray: [
      [
        {
          id: 0,
          name: '国学'
        }
      ], [
        {
          id: 0,
          name: '题库一'
        },
        {
          id: 1,
          name: '题库二'
        },
        {
          id: 2,
          name: '题库三'
        }
      ]
    ],
    multiIndex: [0, 0],
    
  },

  bindMultiPickerChange: function (e) {
    console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
      multiIndex: e.detail.value,
    })
    var cstikuzhi = this.data.multiIndex[0].toString() + this.data.multiIndex[1].toString()
    wx.setStorage({
      key: 'cstikuzhi',
      data: cstikuzhi,
    })
    var global2 = getApp()
    global2.tikuleixing = this.data.multiArray[0][this.data.multiIndex[0]]
    global2.tikuxuhao = this.data.multiArray[1][this.data.multiIndex[1]]
  },
 
  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] = ['题库一', '题库二', '题库三'];

            break;
          case 1:
            data.multiArray[1] = ['五 下'];

            break;
        }
        data.multiIndex[1] = 0;
        data.multiIndex[2] = 0;
        break;

        data.multiIndex[2] = 0;
        console.log(data.multiIndex);
        break;
    }
    this.setData(data);
  },
  
  exam: function (e) {
    wx.navigateTo({

      url: '/pages/ceshizh/ceshizh',
      success: function (res) {

      },
      fail: function (res) { },
      complete: function (res) { },
    })
  },

  onLoad: function (options) {
    var global2 = getApp()
    global2.tikuleixing = this.data.multiArray[0][this.data.multiIndex[0]]
    global2.tikuxuhao = this.data.multiArray[1][this.data.multiIndex[1]]
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      title: '大家一起学',
     
    }
  }
})

四、关于源代码的说明

  1. 多列选择器只实现了功能,没有把所有的题库都列上
  2. 数据传递方面,为了多方面练习编程,分别用了页面间传值和全局变量
  3. onLoad函数中获取了初始的题库类型和题库号
  4. 页面跳转,这里用了wx.navigateTo