小程序 form可视化布局之input和picker

Posted 子枫Eric

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序 form可视化布局之input和picker相关的知识,希望对你有一定的参考价值。

实现

我们要实现的目的是 form的数据是后台加载的,那么我们就要从onload处获取数据

代码

小程序源码:

index.js

Page({
  data: {
   
    form:[]
  },
  onLoad:function(option){
    console.log(1)
    var form = [
      {
        \'name\':\'名字\',
        \'type\':\'input\',
        \'field\':\'name\',
        \'val\':\'\'
      },
      {
        \'name\':\'类型\',
        \'type\':\'dx\',
        \'field\':\'dx\',
        \'val\': [0, 0, 0],
        \'multiArray\': [[\'无脊柱动物\', \'脊柱动物\'], [\'扁性动物\', \'线形动物\', \'环节动物\', \'软体动物\', \'节肢动物\'], [\'猪肉绦虫\', \'吸血虫\']],
      },
    ]
    this.setData({
      form:form
    })
  },
  bindMultiPickerChange: function (e) {
    console.log(\'picker发送选择改变,携带值为\', e.detail.value)
    var index = 1
    let temp = \'form[\' + index +\'].val\'  // 获取list[index].date
    this.setData({
      [temp]: e.detail.value
    })
    console.log(this.data.form)
  },
  bindMultiPickerColumnChange: function (e) {
    console.log(\'修改的列为\', e.detail.column, \',值为\', e.detail.value);
    // 知道修改的列以后,就可以通过修改multiIndex中对应元素的值,然后再修改multiArray
  }
})

index.wxml

<view>
  
  <!-- 循环 -->
  <block wx:for="{{form}}" wx:for-index="index1" wx:for-item="item1">
    <view>{{item1.name}}--{{item1.type}}--{{item1.field}}--{{item1.val}}</view>
    <!-- //input -->
    <view wx:if="{{item1.type==\'input\'}}">
      {{item1.name}}:<input name="{{item1.field}}" value="{{item1.val}}" placeholder="请输入{{item1.name}}"/>
    </view>
    <!-- 多筛选 -->
    <view class="picker-box" wx:if="{{item1.type==\'dx\'}}">
      <view class=\'skill-picker\'>
        <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{item1.val}}" range="{{item1.multiArray}}" data-iid="{{index1}}">
          <view class="skill-title">
            {{item1.multiArray[0][item1.val[0]]}},
            {{item1.multiArray[1][item1.val[1]]}},
            {{item1.multiArray[2][item1.val[2]]}}
          </view>
        </picker>
      </view>
    </view>

  </block>
</view>

index.wxss

.picker-box {
  margin-top: 0rpx;
  width: 100%;
  position: fixed;
  top: 0;
}

.skill-picker {
  height: 80rpx;
  background-color: rgba(0, 121, 132, 0.8);
  box-shadow: 0rpx 5rpx 16rpx rgba(0, 0, 0, 0.05);
}

.skill-title {
  line-height: 80rpx;
  text-align: center;
  vertical-align: middle;
  color: white;
  font-size: 36rpx;
  font-weight: bold;
}

.drop-down {
  position: fixed;
  top: 0;
  right: 0;
  margin-top: 18rpx;
  margin-right: 48rpx;
  display: inline-block;
  width: 48rpx;
  height: 48rpx;
  vertical-align: middle;
}

ok

微信小程序免费学习
php零基础免费学习

欢迎关注我的公众号:子枫的奇妙世界,获得独家整理的学习资源和日常干货推送。
如果您对我的其他专题内容感兴趣,直达我的个人博客:www.wangmingchang.com 。

以上是关于小程序 form可视化布局之input和picker的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序基础之表单Form的使用

react之form表单工具:formik+yup

两个大屏可视化案例的布局与实现

微信小程序之九宫格布局方案

微信小程序组件解读和分析:九form表单

[小程序]小程序框架的简单页面布局