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

news2024/12/28 2:08:09
<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资源已上传

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【鸿蒙开发】系统组件Row

Row组件 Row沿水平方向布局容器 接口&#xff1a; Row(value?:{space?: number | string }) 参数&#xff1a; 参数名 参数类型 必填 参数描述 space string | number 否 横向布局元素间距。 从API version 9开始&#xff0c;space为负数或者justifyContent设置为…

electron打包Vue前端

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

百度获评CCIA数据安全和个人信息保护社会责任评价“三星”示范单位

日前&#xff0c;由中国网络安全产业联盟&#xff08;CCIA&#xff09;数据安全工作委员会主办的“促进数据安全合规流通使用”专题研讨会&#xff08;CCIA数安委年度会议&#xff09;成功举办。与会介绍了数据安全和个人信息保护社会责任试点评价工作的开展情况&#xff0c;并…

极狐GitLab 如何在 helm 中恢复数据

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在极狐GitLab …

Ubuntu20.04安装和编译运行lidar_align来联合标定lidar与imu的外参

硬件&#xff1a;树霉派4b 1、下载并安装lidar_align mkdir -p lidar_align/src cd lidar_align/src git clone https://github.com/ethz-asl/lidar_align.git 将 lidar_align/src/lidar_align/NLOPTConfig.cmake 文件移动到 lidar_align/src/ 下(与lidar_align同级) NLOP…

关于Linux内核code段被改写的原因分析

本文基于Linux-4.19.125&#xff0c; ARM V7&#xff0c;dual core。 1 code 段 Linux的code段&#xff08;或者说text段&#xff09;自_stext开始&#xff0c;到_etext结束&#xff0c;这段内容一般情况下是只读的&#xff0c;在理论上来说&#xff0c;这段数据在设备上应该…

Java设计模式—组合模式(Composite Pattern)

组合模式&#xff08;Composite&#xff09;&#xff0c;将对象组合成树形结构以表示部分-整体的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 public class CompositeTest {public static void main(String[] args){// 创建主菜单MenuComponent mainMen…

访问网站时你的电脑都做了什么

电脑在访问百度时 首先在本地hosts文件里面查看本地有无域名对应的IP地址&#xff0c;若有就直接返回。若无&#xff0c;则本地DNS服务器当DNS的客户&#xff0c;向其它根域服务器发送报文查询IP地址&#xff0c;简单来说就是帮助主机查找IP&#xff0c;所以递归查询就在客户端…

纯C语言手搓GPT-2,前OpenAI、特斯拉高管新项目火了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 「Real men program in C.」 众所周知&#xff0c;大语言模型还在快速发展&#xff0c;应该有…

云岚到家项目

一.项目介绍 云岚到家项目是一个家政服务o2o平台&#xff0c;互联网家政是继打车、外卖后的又一个风口&#xff0c;创业者众多&#xff0c;比如&#xff1a;58到家&#xff0c;天鹅到家等&#xff0c;o2o&#xff08;Online To Offline&#xff09;是将线下商务的机会与互联网…

el-table实现表格内部横向拖拽效果

2024.4.2今天我学习了如何对el-table表格组件实现内部横向拖拽的效果&#xff0c;效果&#xff1a; 代码如下&#xff1a; 一、创建utils/底下文件 const crosswise_drag_table function (Vue){// 全局添加table左右拖动效果的指令Vue.directive(tableMove, {bind: function…

C/C++如何快速学习?少走3年弯路

于我而言&#xff0c;最开始学习就是 C&#xff0c;除了计算机专业&#xff0c;其他专业可能学习的第一门编程语言为 C 语言&#xff0c;还是谭浩强爷爷那本&#xff0c;当时想着有点 C 基础&#xff0c;无外乎就是 C 语言的升级版&#xff0c;于是开启了 C 的路程。 语言这个…

归档模式下,物理删除数据文件的完全的恢复

归档模式下&#xff0c;物理删除数据文件的完全的恢复 1、实验环境 环境归档模式 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /arch/archivelog Oldest online log seq…

【STL】stack与queue的底层原理及其实现

文章目录 stack的介绍库中stack的使用栈的模拟实现queue的介绍库中queue的使用queue的模拟实现 stack的介绍 &#xff08;图片来自知乎&#xff09; 1.stack是一种容器适配器&#xff0c;模拟了栈的数据结构。数据只能从一端进去&#xff0c;另一端出来&#xff08;先进后出&am…

需求分析及设计定义

背景 经过不断的折腾&#xff0c;一切过程都是为了呈现输出&#xff0c;这个阶段就是要交付需求和方案的环节了&#xff0c;很多失败的项目就是上来就到这个环节&#xff0c;倒着捣鼓&#xff0c;先写个文档&#xff0c;做个原型&#xff0c;甚至提出方案&#xff0c;然后再和…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

【Node】Node的配置文件的使用,dotenv框架的使用

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;Node.js &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继续前进的勇…

CodeMirror使用: 编写一个在线编辑HTML、JS、CSS文件,网页的模板页面-初实现

前言&#xff1a;前几天编写一个UI模板控制的功能&#xff0c;根据上传的前端模板更换跳转入口主题页面&#xff1b;在编写的时候&#xff0c;突发奇想能不能在列表页面进行在线编辑刚刚上传的模板zip压缩包里的页面...于是经过学习研究有了这篇文章&#xff1b;当日记本一样记…

鸿蒙开发面向对象的面试题~

鸿蒙开发面向对象的面试题是近年来在软件开发领域中备受关注的话题。作为一种新兴的操作系统&#xff0c;鸿蒙系统的开发者需要具备扎实的面向对象编程知识和丰富的开发经验。在面试中&#xff0c;面试官常常会通过一系列的问题来考察面试者对于鸿蒙开发面向对象的理解和应用能…

LeetCode 289.生命游戏————2024 春招冲刺百题计划

根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a; 1 即为 活细胞 &am…