uniapp 表单使用Uview校验 包括城市选择器

<view>
			<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
			<u--form labelPosition="left" :model="model1" :rules="rules" ref="uForm" labelWidth="174">

				<u-form-item label="身份选择" prop="userInfo.sex" borderBottom @click="showSex = true; " ref="item1">
					<u--input v-model="model1.userInfo.sex" disabled disabledColor="#ffffff" placeholder="请选择身份"
						border="none"></u--input>
					<u-icon slot="right" name="arrow-right"></u-icon>
				</u-form-item>
				<u-form-item label="真实姓名" prop="userInfo.name" borderBottom ref="item1">
					<u--input v-model="model1.userInfo.name" border="none" placeholder="请输入您的姓名"></u--input>
				</u-form-item>
				<u-form-item label="所在城市" prop="userInfo.city" borderBottom @click="show1 = true; " ref="item1">
					<u--input v-model="model1.userInfo.city" disabled disabledColor="#ffffff" placeholder="请选择所在城市"
						border="none"></u--input>
					<u-icon slot="right" name="arrow-right"></u-icon>
				</u-form-item>
				<u-form-item label="执业机构" prop="userInfo.jigou" borderBottom ref="item1">
					<u--input v-model="model1.userInfo.jigou" border="none" placeholder="请输入您的所在机构"></u--input>
				</u-form-item>
			</u--form>
			<u-action-sheet :show="showSex" :actions="actions" @close="showSex = false"
				@select="sexSelect">
			</u-action-sheet>
		
			<view class="">
				<u-picker :show="show1" ref="uPicker" :columns="cityList" @confirm="cityConfirm" @cancel="cancel()" itemHeight="70"
					@change="changeHandler"></u-picker>
			</view>
		</view>
<script>
	import cityData from '@/utils/city.js'
	export default {
		data() {
			return {
				showSex: false,
				model1: {
					userInfo: {
						name: '',
						sex: '',
						city: '',
						jigou:''
					},
				},
				actions: [{
						name: '医生',
					},
					{
						name: '员工',
					},

				],
				cityList: [],
				cityLevel1: [],
				cityLevel2: [],
				cityLevel3: [],
				areaname:'',
				show1: false,
				rules: {
					'userInfo.name': {
						type: 'string',
						required: true,
						message: '请填写姓名',
						trigger: ['blur', 'change']
					},
					'userInfo.sex': {
						type: 'string',
						max: 2,
						required: true,
						message: '请选择身份',
						trigger: ['blur', 'change']
					},
					'userInfo.jigou': {
						type: 'string',
						required: true,
						message: '请填写机构',
						trigger: ['blur', 'change']
					},
				},
				radio: '',
				switchVal: false
			};
		},
		onReady() {
			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
			this.$refs.uForm.setRules(this.rules)
		},
		onLoad() {
			// 城市选择器初始化
			this.initCityData();
		},
		methods: {
			sexSelect(e) {
				console.log(e)
				this.model1.userInfo.sex = e.name
				this.$refs.uForm.validateField('userInfo.sex')
			},
			citySelect(e) {
				console.log(e)
				this.model1.userInfo.city = e.name
				this.$refs.uForm.validateField('userInfo.city')
			},
			// 城市选择器
			initCityData() {
				// 遍历城市js
				cityData.forEach((item1, index1) => {
					let temp2 = [];
					this.cityLevel1.push(item1.provinceName);
					let temp4 = [];
					let temp3 = [];
					// 遍历市
					item1.cities.forEach((item2, index2) => {
						temp2.push(item2.cityName);
						// 遍历区
						item2.counties.forEach((item3, index3) => {
							temp3.push(item3.countyName);
						})
						temp4[index2] = temp3;
						temp3 = [];
					})
					this.cityLevel3[index1] = temp4;
					this.cityLevel2[index1] = temp2;
				})
				// 选择器默认城市
				this.cityList.push(this.cityLevel1, this.cityLevel2[0], this.cityLevel3[0][0]);
				console.log(this.cityList)
			}, // 选中时执行
			changeHandler(e) {
				const {
					columnIndex,
					index,
					indexs,
					value,
					values,
					// 微信小程序无法将picker实例传出来,只能通过ref操作
					picker = this.$refs.uPicker
				} = e;
				if (columnIndex === 0) { // 选择第一列数据时
					// 设置第二列关联数据
					picker.setColumnValues(1, this.cityLevel2[index]);
					// 设置第三列关联数据
					picker.setColumnValues(2, this.cityLevel3[index][columnIndex]);
				} else if (columnIndex === 1) { // 选择第二列数据时
					// 设置第三列关联数据
					picker.setColumnValues(2, this.cityLevel3[indexs[0]][index]);
				}
			},
			// 单击确认按钮时执行
			cityConfirm(e) {
				// 输出数组 [省, 市, 区]
				console.log(e.value);
				this.areaname = e.value
				this.cityName = e.value.join("-");
				// 隐藏城市选择器
				console.log(this.cityName);
				this.show1 = false;
				this.model1.userInfo.city = this.cityName
			},
			cancel() {
				this.show1 = false
			},
		},
	}
</script>
	/deep/ .u-popup__content {
		width: 100%;
		height: 800rpx;
	}

	/deep/.u-icon__icon {
		color: #1FCFC9 !important;
		font-size: 32rpx !important;
	}

	/deep/ .u-action-sheet__item-wrap button {
		background: #fff !important;
	}

	/deep/ .u-action-sheet__item-wrap button::after {
		border: none;
	}

	/deep/.u-form {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 690rpx;
		margin: auto;
		margin-top: 48rpx;

		.u-form-item {
			width: 100%;
		}

		
	}
	/deep/ .u-form-item__body {
		width: 100%;
		height: 120rpx !important;
		display: flex;
		align-items: center;
		justify-content: space-between;
	
		
	
	}
	/deep/ .u-input__content__field-wrapper__field {
		color: #333 !important;
		font-family: YouSheShaYuFeiTeJianKangTi !important;
		font-size: 28rpx !important;
	}
		/deep/ .u-form-item__body__left__content__label {
			color: #333 !important;
			font-family: YouSheShaYuFeiTeJianKangTi !important;
			font-size: 28rpx !important;
		}

city.js资源已上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/529618.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生产端消息可靠性保证: 确认(Confirm)机制

1.PostConstruct注解 PostConstruct注解是Java EE规范中的一部分&#xff0c;主要用于标记在一个Bean初始化完成后需要执行的方法。这个注解由JSR-250定义&#xff0c;并且在Spring框架以及其他遵循Java EE标准的应用服务器中广泛支持。 功能与用途&#xff1a;初始化方法,当…

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开 #/bin/bash #该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开放来哪些端口 #用telnet方式 IP$1 #IP119.254.3.28 #获得IP的前…

UML学习

UML(Unified Modeling Language)&#xff1a;统一建模语言&#xff0c;提供了一套符号和规则来帮助分析师和设计师表达系统的架构、行为和交互 类图&#xff1a;描绘类、接口之间的关系(继承、实现、关联、依赖等)以及类的内部结构(属性和方法)&#xff0c;直观展现系统的静态…

书生浦语大模型实战营第二次课作业

目录 教程来源1.环境配置1.1 初始化环境1.2 激活创建的虚拟环境然后继续安装所需的python包 2.下载模型并运行模型2.1 创建相应的文件夹和文件2.2 编写下载模型的代码运行下载模型2.3 编写运行模型的代码运行代码 测试模型效果 教程来源 视频教程&#xff1a;https://www.bili…

4套java开发的智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码

4套java智慧系统源码 智慧校园系统源码 智慧工地系统源码 智慧城管系统源码 3D 智能导诊系统源码 Java智慧校园系统源码 智慧学校源码 微信小程序电子班牌 智慧校园系统简介&#xff1a; 智慧校园的建设逐渐被师生、家长认可接受&#xff0c;智慧校园通过对在校师生、教务等…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

蝙蝠优化算法(bat optimization algorithm)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法背景 蝙蝠优化算法&#xff08;Bat Algorithm&#xff09;是一种基于群体智能的优化算法&#xff0c;它的灵感来源于蝙蝠捕食时的回声定位行…

LeetCode 377——组合总和 Ⅳ

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题一看应该就是需要用到动态规划算法&#xff0c;假设我们以 f[d]表示总和为 d 的元素组合的个数&#xff0c;首先&#xff0c;我们遍历 nums 数组&#xff0c; 如果有 nums[i] < target&#xff0c;那么组…

阿赵UE学习笔记——26、动画混合空间

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。之前学习了通过蓝图直接控制动画播放&#xff0c;或者通过动画状态机去控制播放。这次来学习一种比较细致的动画控制播放方式&#xff0c;叫做动画混合空间。 一、使用的情景 假设我们现在需…

06_vim编辑器

为什么要使用vi和vim vi和vim是最常用的文本编辑工具&#xff0c;就像Windows上的笔记本一样。在linux中修改任何文件&#xff0c;不管是nginx配置还是系统配置文件&#xff0c;都会用到vi和vim命令。 很多软件的编辑接口实际上调用的是vi。 vim是vi的高级版&#xff0c;操作…

SpringBoot中注册Bean的方式汇总

文章目录 ComponentScan Componet相关注解BeanImportspring.factories总结Configuration和Component的主要区别&#xff1f;Bean是不是必须和Configuration一起使用&#xff1f;Import导入配置类有意义&#xff1f;出现异常&#xff1a;java.lang.NoClassDefFoundError: Could…

Scrapy框架spider类异常处理

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、捕获Request所有网络相关异常 在spider类中&#xff0c;我们构造Request对象或FormRequest对象时&#xff0c;可传递参数errback回调…

小米强硬表态!敦促智己公司立即道歉 不接受个人轻描淡写的非正式道歉

快科技4月9日消息&#xff0c;在智己L6的发布会上&#xff0c;小米SU7成了“主角”之一&#xff0c;方方面面进行了对标和暗讽。 甚至官方还将智己L6和小米SU7 Max的各项参数与价格直接对比&#xff0c;引起了不小关注。 小米强硬表态&#xff01;敦促智己公司立即道歉 不接受…

electron打包Vue前端

Electron-Forge 打包Vue项目 效果&#xff1a;electronforge可将前端静态页面打包成.exe、.deb和.rpm等&#xff0c;能适配各种平台 示例&#xff1a;Windows环境下将前端 Vue 项目打包成exe文件 打包后的 exe 文件 运行 exe 文件 一、项目准备 开源项目 RouYi 下载 本…

【分布式事务与分库分表】

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容分布式事务介绍分布式事务解决方案1. 2PC&#xff08;Two Phase Commit&#xff09;方案2. JTA/XA规范实现3. Seata AT模式实现4. TCC实现使用hmily实现TCC Spring Cloud Alibaba项目中整合Seata来实现分布式事务管理1. **…

C语言面试题之环路检测

环路检测 实例要求 1、给定一个链表&#xff0c;如果它是有环链表&#xff0c;实现一个算法返回环路的开头节点&#xff1b;2、若环不存在&#xff0c;请返回NULL&#xff1b;3、如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在…

Java项目:基于Springboot+vue实现的中国陕西民俗前后台管理系统设计与实现(源码+数据库+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的中国陕西民俗管理系统设计与实现设 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界…

Docker 搭建私有镜像仓库

一、镜像仓库简介 Docker的镜像仓库是一个用于存储和管理Docker镜像的中央位置。镜像仓库的主要作用是提供一个集中的地方&#xff0c;让用户可以上传、下载、删除和共享Docker镜像。镜像仓库又可以分为公共镜像仓库和私有仓库镜像仓库&#xff1a; 公共镜像仓库 Docker Hub 是…

20240326-2-LightGBM面试题

LightGBM面试题 1. 简单介绍一下LightGBM&#xff1f; LightGBM是一个梯度 boosting 框架&#xff0c;使用基于学习算法的决策树。 它可以说是分布式的&#xff0c;高效的。 从 LightGBM 名字我们可以看出其是轻量级&#xff08;Light&#xff09;的梯度提升机&#xff08;G…

从0到1实现RPC | 07a 更新pom依赖方式

当前工程目录进行编译时 mvn clean install&#xff0c;会报错。原因是 rpc-core和rpc-demo-api不是一个spring boot项目&#xff0c;没有启动类。 默认在根pom文件中引入了spring的parent&#xff0c;导致子模块都是web项目&#xff0c;所以需要更新pom文件。 在根目录的pom文…