企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## **基本表单** #### 示例 :-: ![](https://img.kancloud.cn/c2/06/c2066dc71c5ec09305e91f003f19d026_315x257.png) #### **xxx.wxml** ``` <form> <view class="cu-form-group margin-top"> <view class="title">邮件</view> <input placeholder="两字短标题"></input> </view> <view class="cu-form-group"> <view class="title">输入框</view> <input placeholder="三字标题"></input> </view> <view class="cu-form-group"> <view class="title">收货地址</view> <input placeholder="统一标题的宽度"></input> </view> <view class="cu-form-group"> <view class="title">收货地址</view> <input placeholder="输入框带个图标"></input> <text class="cuIcon-locationfill text-orange"></text> </view> <view class="cu-form-group"> <view class="title">验证码</view> <input placeholder="输入框带个按钮"></input> <button class="cu-btn bg-green shadow">验证码</button> </view> <view class="cu-form-group"> <view class="title">手机号码</view> <input placeholder="输入框带标签"></input> <view class="cu-capsule radius"> <view class="cu-tag bg-blue"> +86 </view> <view class="cu-tag line-blue"> 中国大陆 </view> </view> </view> </form> ``` #### **xxx.wxss** ``` .cu-form-group .title { min-width: calc(4em + 30rpx); } ``` #### **xxx.JS** ``` const app = getApp(); Page({ data: { StatusBar: app.globalData.StatusBar, CustomBar: app.globalData.CustomBar, index: null, picker: ['喵喵喵', '汪汪汪', '哼唧哼唧'], multiArray: [ ['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['猪肉绦虫', '吸血虫'] ], objectMultiArray: [ [{ id: 0, name: '无脊柱动物' }, { id: 1, name: '脊柱动物' } ], [{ id: 0, name: '扁性动物' }, { id: 1, name: '线形动物' }, { id: 2, name: '环节动物' }, { id: 3, name: '软体动物' }, { id: 3, name: '节肢动物' } ], [{ id: 0, name: '猪肉绦虫' }, { id: 1, name: '吸血虫' } ] ], multiIndex: [0, 0, 0], time: '12:01', date: '2018-12-25', region: ['广东省', '广州市', '海珠区'], imgList: [], modalName: null, textareaAValue: '', textareaBValue: '' }, PickerChange(e) { console.log(e); this.setData({ index: e.detail.value }) }, MultiChange(e) { this.setData({ multiIndex: e.detail.value }) }, MultiColumnChange(e) { let 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] = ['猪肉绦虫', '吸血虫']; break; case 1: data.multiArray[1] = ['鱼', '两栖动物', '爬行动物']; data.multiArray[2] = ['鲫鱼', '带鱼']; 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] = ['猪肉绦虫', '吸血虫']; break; case 1: data.multiArray[2] = ['蛔虫']; break; case 2: data.multiArray[2] = ['蚂蚁', '蚂蟥']; break; case 3: data.multiArray[2] = ['河蚌', '蜗牛', '蛞蝓']; break; case 4: data.multiArray[2] = ['昆虫', '甲壳动物', '蛛形动物', '多足动物']; break; } break; case 1: switch (data.multiIndex[1]) { case 0: data.multiArray[2] = ['鲫鱼', '带鱼']; break; case 1: data.multiArray[2] = ['青蛙', '娃娃鱼']; break; case 2: data.multiArray[2] = ['蜥蜴', '龟', '壁虎']; break; } break; } data.multiIndex[2] = 0; break; } this.setData(data); }, TimeChange(e) { this.setData({ time: e.detail.value }) }, DateChange(e) { this.setData({ date: e.detail.value }) }, RegionChange: function(e) { this.setData({ region: e.detail.value }) }, ChooseImage() { wx.chooseImage({ count: 4, //默认9 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['album'], //从相册选择 success: (res) => { if (this.data.imgList.length != 0) { this.setData({ imgList: this.data.imgList.concat(res.tempFilePaths) }) } else { this.setData({ imgList: res.tempFilePaths }) } } }); }, ViewImage(e) { wx.previewImage({ urls: this.data.imgList, current: e.currentTarget.dataset.url }); }, DelImg(e) { wx.showModal({ title: '召唤师', content: '确定要删除这段回忆吗?', cancelText: '再看看', confirmText: '再见', success: res => { if (res.confirm) { this.data.imgList.splice(e.currentTarget.dataset.index, 1); this.setData({ imgList: this.data.imgList }) } } }) }, textareaAInput(e) { this.setData({ textareaAValue: e.detail.value }) }, textareaBInput(e) { this.setData({ textareaBValue: e.detail.value }) } }) ``` ## **选择框** #### 示例 :-: ![](https://img.kancloud.cn/b8/23/b823aef0f0cef6debe9a6fab99d758b8_317x222.png) #### **xxx.wxml** ``` <view class="cu-form-group margin-top"> <view class="title">普通选择</view> <picker bindchange="PickerChange" value="{{index}}" range="{{picker}}"> <view class="picker"> {{index?picker[index]:'禁止换行,超出容器部分会以 ... 方式截断'}} </view> </picker> </view> <view class="cu-form-group"> <view class="title">多列选择</view> <picker mode="multiSelector" bindchange="MultiChange" bindcolumnchange="MultiColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> <view class="picker"> {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}} </view> </picker> </view> <view class="cu-form-group"> <view class="title">时间选择</view> <picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="TimeChange"> <view class="picker"> {{time}} </view> </picker> </view> <view class="cu-form-group"> <view class="title">日期选择</view> <picker mode="date" value="{{date}}" start="2015-09-01" end="2020-09-01" bindchange="DateChange"> <view class="picker"> {{date}} </view> </picker> </view> <view class="cu-form-group"> <view class="title">地址选择</view> <picker mode="region" bindchange="RegionChange" value="{{region}}" custom-item="{{customItem}}"> <view class="picker"> {{region[0]}},{{region[1]}},{{region[2]}} </view> </picker> </view> ``` ## **开关选择** #### 示例 :-: ![](https://img.kancloud.cn/47/a1/47a1ded41e1c5e7062716145d049a61a_318x168.png) #### **xxx.wxml** ``` <view class="cu-form-group margin-top"> <view class="title">开关选择</view> <switch></switch> </view> <view class="cu-form-group"> <view class="title">定义颜色</view> <switch class="red sm" checked></switch> </view> <view class="cu-form-group"> <switch class="switch-sex" checked></switch> <view class="title">定义图标</view> </view> <view class="cu-form-group"> <view class="title">方形开关</view> <switch class="orange radius sm" checked></switch> </view> ``` ## **单选操作** #### 示例 :-: ![](https://img.kancloud.cn/2c/40/2c408beee650d8365880417b155fd720_321x130.png) #### **xxx.wxml** ``` <radio-group class="block"> <view class="cu-form-group margin-top"> <view class="title">单选操作(radio)</view> <radio checked></radio> </view> <view class="cu-form-group"> <view class="title">定义样式</view> <radio class="radio"></radio> </view> <view class="cu-form-group"> <view class="title">定义颜色</view> <view> <radio class="blue radio"></radio> <radio class="red margin-left-sm"></radio> </view> </view> </radio-group> ``` ## **复选操作** #### 示例 :-: ![](https://img.kancloud.cn/d0/12/d012a047c35c41413e766e7b3d2c579b_320x126.png) #### **xxx.wxml** ``` <view class="cu-form-group margin-top"> <view class="title">复选选操作(checkbox)</view> <checkbox></checkbox> </view> <view class="cu-form-group"> <view class="title">定义形状</view> <checkbox class="round" checked></checkbox> </view> <view class="cu-form-group"> <view class="title">定义颜色</view> <checkbox class="round blue" checked></checkbox> </view> ``` ## **图片上传** #### 示例 :-: ![](https://img.kancloud.cn/f1/94/f1941c835be730bbb1ac02c47d7d3d48_313x119.png) #### **xxx.wxml** ``` <view class="cu-bar bg-white margin-top"> <view class="action"> 图片上传 </view> <view class="action"> {{imgList.length}}/4 </view> </view> <view class="cu-form-group"> <view class="grid col-4 grid-square flex-sub"> <view class="bg-img" wx:for="{{imgList}}" wx:key="{{index}}" bindtap="ViewImage" data-url="{{imgList[index]}}"> <image src='{{imgList[index]}}' mode='aspectFill'></image> <view class="cu-tag bg-red" catchtap="DelImg" data-index="{{index}}"> <text class="cuIcon-close"></text> </view> </view> <view class="solids" bindtap="ChooseImage" wx:if="{{imgList.length<4}}"> <text class="cuIcon-cameraadd"></text> </view> </view> </view> ``` ## **头像** #### 示例 :-: ![](https://img.kancloud.cn/4e/b3/4eb388899cf43c89d42e69a336b21dae_316x45.png) #### **xxx.wxml** ``` <view class="cu-form-group margin-top"> <view class="title">头像</view> <view class="cu-avatar radius bg-gray"></view> </view> ``` ## **文本域** #### 示例 :-: ![](https://img.kancloud.cn/80/d4/80d45d17a0bb7f1f44f56691b2cd5475_317x147.png) #### **xxx.wxml** ``` <!-- !!!!! placeholder 在ios表现有偏移 建议使用 第一种样式 --> <view class="cu-form-group margin-top"> <textarea maxlength="-1" disabled="{{modalName!=null}}" bindinput="textareaAInput" placeholder="多行文本输入框"></textarea> </view> <view class="cu-form-group align-start"> <view class="title">文本框</view> <textarea maxlength="-1" disabled="{{modalName!=null}}" bindinput="textareaBInput" placeholder="多行文本输入框"></textarea> </view> ```