当前位置: 首页 > news >正文

uniapp-商城-40-shop 购物车 选好了 进行订单确认4 配送方式3 地址编辑

前面说了配送  和地址页面

当地址页面为空或需要添加地址时,需要添加地址。

我的地址页面有个按钮 就是添加地址

点击 添加地址 按钮 后,就会跳转到地址添加的页面

1、添加地址页面

2、添加地址文件夹以及文件的创建

3、添加地址的代码

<template><view class="addressForm"><!-- 地址编辑 --><u--formlabelPosition="top":model="addressForm":rules="addressRules"labelWidth="100"ref="uForm"			><u-form-itemlabel="姓名"prop="username"					><u--inputv-model="addressForm.username"placeholder="请输入姓名"></u--input></u-form-item><u-form-itemlabel="联系电话"prop="mobile"					><u--inputv-model="addressForm.mobile"placeholder="请输入联系电话"></u--input></u-form-item><u-form-itemlabel="详细地址"prop="address"					><u--inputv-model="addressForm.address"placeholder="请输入街道门牌号"></u--input></u-form-item><u-form-item label="是否默认"><u-switch v-model="addressForm.selected"inactiveColor="#eee"></u-switch></u-form-item><u-form-item></u-form-item><u-form-item><u-button type="primary" @click="onSubmit">提交</u-button></u-form-item></u--form></view>
</template><script>export default {data() {return {addressForm:{username:"",mobile:"",address:"",selected:false},addressRules:{username:[{required: true,message: '姓名是必填的',							trigger: ['blur', 'change']},{min: 2,max: 8,message: '长度在2-8个字符之间',trigger: ['blur', 'change']}],mobile:[{required: true,message: '电话是必填的',							trigger: ['blur', 'change']},{							validator: (rule, value, callback) => {								return uni.$u.test.mobile(value);},message: '手机号码不正确',							trigger: ['change','blur']}],address:[{required: true,message: '地址是必填的',							trigger: ['blur', 'change']}]}};},methods:{onSubmit(){this.$refs.uForm.validate().then(res => {uni.$u.toast('校验通过')}).catch(errors => {uni.$u.toast('校验失败')})}}}
</script><style lang="scss">
.addressForm{padding:30rpx;
}
</style>

4、添加地址页面解析

4.1 使用u--form 整体

Form 表单 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架

注意:

由于在nvue下,u-form名称被uni-app官方占用,在nvue页面中请使用u--form名称,在vue页面中使用u--form或者u-form均可。

    <u--formlabelPosition="top":model="addressForm":rules="addressRules"labelWidth="100"ref="uForm"			></u--form>

ref 后面使用的表单名字

labelwidth  标签宽度 就是 表头占位的长度

rules 校验规则

model 表单内容

lableposition  表单布局  左右还是上下

Form Props

参数说明类型默认值可选值
model表单数据对象Object--
rules通过ref设置,如果rules中有自定义方法等,需要使用setRules方法设置规则,见上方说明Object|Function|Array--
errorType错误的提示方式,见上方说明Stringmessagenone|toast|border-bottom|none
borderBottom是否显示表单域的下划线边框Booleantrue-
labelPosition表单域提示文字的位置,left-左侧,top-上方Stringlefttop
labelWidth提示文字的宽度,单位pxString | Number45数值 / auto
labelAlignlable字体的对齐方式Stringleftcenter / right
labelStylelable的样式,对象形式Object--

4.2 表单每一条内容布局

都需要放到   u--form  具体看代码

			<u-form-itemlabel="姓名"prop="username"					><u--inputv-model="addressForm.username"placeholder="请输入姓名"></u--input></u-form-item>

4.3 设置默认的按钮

依然要放到u--from 中的 u-from-item中

			<u-form-item label="是否默认"><u-switch v-model="addressForm.selected"inactiveColor="#eee"></u-switch></u-form-item>

4.4 提交按钮

依然要放到u--from 中的 u-from-item中

            <u-form-item><u-button type="primary" @click="onSubmit">提交</u-button></u-form-item>

方法实现:

methods:{onSubmit(){this.$refs.uForm.validate().then(res => {uni.$u.toast('校验通过')}).catch(errors => {uni.$u.toast('校验失败')})}}

4.5 数据内容

包含基本的数据以及校验规则

校验规则 就是u-view的api

实现很多校验 包含电话,邮箱等字符串的校验

test 规则校验 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架

addressForm:{username:"",mobile:"",address:"",selected:false},addressRules:{username:[{required: true,message: '姓名是必填的',							trigger: ['blur', 'change']},{min: 2,max: 8,message: '长度在2-8个字符之间',trigger: ['blur', 'change']}],mobile:[{required: true,message: '电话是必填的',							trigger: ['blur', 'change']},{							validator: (rule, value, callback) => {								return uni.$u.test.mobile(value);},message: '手机号码不正确',							trigger: ['change','blur']}],address:[{required: true,message: '地址是必填的',							trigger: ['blur', 'change']}]}

http://www.xdnf.cn/news/175969.html

相关文章:

  • C++和Java该如何选择?
  • DeepSeek智能时空数据分析(四):绘制行政区域并定制样式
  • Go 语言 核心知识点
  • 【数据挖掘】时间序列预测-时间序列的平稳性
  • 【数据挖掘】时间序列预测-常用序列预测模型
  • 深入理解Android Activity生命周期
  • 在windows使用docker打包springboot项目镜像并上传到阿里云
  • java面向对象编程【高级篇】之多态
  • 再谈从视频中学习:从给视频打字幕的Humanoid-X、UH-1到首个人形VLA Humanoid-VLA:迈向整合第一人称视角的通用人形控制
  • 虚拟数字人:从虚拟到现实的跨越与未来展望
  • 动手学深度学习11.10. Adam算法-笔记练习(PyTorch)
  • 机器人快速启动
  • 信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV
  • 《博客系统测试报告》
  • 0804标星_复制_删除-网络ajax请求2-react-仿低代码平台项目
  • P1168 中位数
  • Node.js 应用部署:镜像体积优化与安全的多阶段构建探索
  • NGINX upstream、stream、四/七层负载均衡以及案例示例
  • C#通过NTP服务器获取NTP时间
  • 【有啥问啥】深入理解 Layer Normalization (LayerNorm):深度学习的稳定基石
  • Rabbit MQ的基础认识
  • Postman接口测试: postman设置接口关联,实现参数化
  • 泰迪杯实战案例超深度解析:基于多源数据的信用风险评估与反欺诈检测
  • 【深度学习】多头注意力机制的实现|pytorch
  • WEB安全--社会工程--SET钓鱼网站
  • maven相关概念深入介绍
  • 如何实现一个可视化的文字编辑器(C语言版)?
  • 【python】lambda用法(结合例子理解)
  • pyspark将hive数据写入Excel文件中
  • 「Mac畅玩AIGC与多模态03」部署篇02 - 在 Mac 上部署 Dify