uniapp中如何给下拉框动态绑值

前言:

        在项目中我们会经常遇到新增的功能,而新增的页面中就会有输入框、下拉框、文本域、日期选择框等等。那么在uniapp是如何给下拉框中调用接口动态绑值的呢?请往下看  💨

💗 uView官网:介绍 | uView 2.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架uView UI,是uni-app生态最优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水https://www.uviewui.com/components/intro.html

大纲:

Picker选择器的基本语法:

 效果示例:


 案例: 

      🥜 通过调用集团和公司的查询数据接口,将集团和公司的下拉框中动态绑上值。

🐪 第一步:先将下拉框展示出来

<template>
	<view class="u-page">
		<u--form labelPosition="left" :model="form" :rules="rules" labelWidth="auto" ref="form">
			<u-form-item label="集团" prop="orgCode" borderBottom @click="groupShow = true; hideKeyboard()" required>
				<u--input v-model="form.orgCode" disabled disabledColor="#fff" suffixIcon="arrow-down"
					placeholder="请选择集团" border="none"></u--input>
			</u-form-item>
			<u-form-item label="公司" prop="Org" borderBottom @click="companyShow = true; hideKeyboard()" required>
				<u--input v-model="form.Org" disabled disabledColor="#fff" suffixIcon="arrow-down"
					placeholder="请选择公司" border="none"></u--input>
			</u-form-item>
	</view>
</template>

🐫 第二步: 将接口写入该页面,查看接口是否能调通(即:查询到数据)

<script>
	import * as api from '@/request';
	export default {
		data() {
			return {
				form: {
					visitorName: '',
					orgCode: '',
					companyId: '',
					targetOrg: '',
				},
				groupShow: false, //集团
				companyShow: false, //公司
				orgCode: '', //集团编码
				jtList: [], //集团list
				companyId: '', //公司id
				companyList: [], //公司list
				rules: {
					visitorName: [{
						type: 'string',
						required: true,
						message: '请填写姓名',
						trigger: ['blur', 'change']
					}, {
						validator: (rule, value, callback) => {
							return uni.$u.test.chinese(value);
						},
						message: "姓名必须为中文",
						trigger: ["change", "blur"],
					}],
					],
				},
			};
		},
		mounted() {
			this.groupInfo();
			this.companyInfo();
		},
		onReady() {
			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
			this.$refs.form.setRules(this.rules)
		},
		methods: {
			//集团
			groupInfo() {
				api.getGroup().then(res => {
					if (res.code == 0) {
						let arr = res.data.map(item=>{
							return {
								label:item.orgName,
								id:item.orgId
							}
						});
						this.jtList = [arr]
						console.log('集团:', this.jtList)
					}
				});
			},
			//公司
			companyInfo() {
				api.getCompany().then(res => {
					if (res.code == 0) {
						let com = res.data.map(item=>{
							return {
								label:item.orgName,
								id:item.orgId
							}
						})
						this.companyList = [com];
						console.log('公司:', this.companyList)
						
					}
				});
			},
			//将键盘收起,使输入框失去焦点
			hideKeyboard() {
				uni.hideKeyboard()
			},

		}
	};
</script>

数据已经有了,现在我们就看看怎么绑值吧 

🦙  第三步:给集团和公司的Picker下拉框绑值

<u-picker :show="groupShow" :columns="jtList" keyName="label" @confirm="groupConfim" @cancel="groupShow=false" ></u-picker>
<u-picker :show="companyShow" :columns="companyList" keyName="label" @confirm="companyConfim" @cancel="companyShow=false"></u-picker>

:show        展示下拉框

:columns   每一列的数据

:keyName  自定义需要展示的text属性键名       

@confirm  确认按钮,返回当前选择的值,同时关闭窗口

@cancel    取消按钮,关闭窗口

 🦙  第四步:给集团和公司 确认按钮返回当前选中的值

//集团确定按钮
groupConfim(e) {
	// 根据实际需求设置选中的值
	this.form.orgCode = e.value[0].label
	console.log('获取集团',this.form.orgCode)
	this.groupShow = false
},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp,可以使用下拉框(Picker)组件来实现下拉选择功能。下面是对UniApp下拉框的介绍: 1. Picker组件:Picker组件是UniApp提供的一种用于选择的组件,可以通过设置数据源和事件监听来实现下拉选择功能。 2. 数据源:Picker组件的数据源可以是一个静态的数组,也可以是一个动态的数据源。静态数据源可以直接在组件定义,而动态数据源可以通过绑定变量或者请求接口获取。 3. 事件监听:Picker组件提供了change事件,可以监听用户选择的变化。当用户选择某个选项时,change事件会触发,并传递选的值或索引。 4. 自定义样式:UniApp的Picker组件支持自定义样式,可以通过设置class或style属性来修改组件的外观。 下面是一个示例代码,演示了如何在UniApp使用Picker组件实现下拉选择功能: ```html <template> <view> <picker :value="selectedValue" @change="handleChange"> <view class="picker"> <text>{{ selectedText }}</text> </view> <picker-view-column> <view v-for="(item, index) in options" :key="index">{{ item }}</view> </picker-view-column> </picker> </view> </template> <script> export default { data() { return { options: ['Option 1', 'Option 2', 'Option 3'], selectedValue: 0, selectedText: 'Option 1' } }, methods: { handleChange(event) { this.selectedValue = event.detail.value; this.selectedText = this.options[event.detail.value]; } } } </script> <style> .picker { height: 50px; line-height: 50px; text-align: center; border: 1px solid #ccc; } </style> ``` 在上面的示例,我们使用了Picker组件来实现一个下拉选择框。options数组定义了选项的数据源,selectedValue和selectedText分别用于保存用户选择的值和文本。当用户选择某个选项时,handleChange方法会被调用,更新selectedValue和selectedText的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值