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

el-date-picker 时间区域选择,type=daterange,form表单校验+数据回显问题

情景+问题:新增表单有时间区域选择,选择了时间,还是提示必填的校验提示语,且修改时,通过 =号赋值法,重新选择此时间范围无效。

解决方法:(重点)

  • widthHoldTime:[],要定义到deal_form对象里面。不要拿出来单独定义。入参时不需要 ,可以通过delete 方法删除。

  • 修改时,要通过this.$set()赋值。

html

<el-form ref="dealForm" :model="deal_form" :rules="deal_form_rules" label-width="130px"><el-form-item label="合同开始-终止时间" prop="widthHoldTime"><el-date-picker v-model="deal_form.widthHoldTime" value-format="yyyy-MM-dd" type="daterange"range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :clearable='false' /></el-form-item>
</el-form>

js

<script>export default {data() {return {deal_form_rules: {// 手机号校验agentPhone: [{required: true,message: "请输入代办人电话",trigger: "blur"}, {required: true,pattern: /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,message: '请输入正确的手机号码',trigger: 'blur',}],// 生效起始时间-终止时间,时间范围校验widthHoldTime: [{required: true,message: "请选择合同开始-终止时间",trigger: "blur"}],}}},methods: {// 新增open_add() {this.deal_obj.open = truethis.deal_obj.title = '新增'this.deal_form = {agentPhone: null, //手机号startTime: null, // 起始时间endTime: null, //终止时间widthHoldTime: [] //起始时间 - 终止时间,* 注意:此数据要放到 deal_form form表格字段里面,不然无法校验(即校验规则无法生效)};this.$nextTick(() => {this.$refs["dealForm"].resetFields();})},// 修改 - 查询修改信息,并赋值到 el-form 表格中edit_withhold(row) {getWidthhold(row.contractId).then(res => {if (res.code == 200) {this.$nextTick(() => {if (this.$refs["dealForm"]) this.$refs["dealForm"].resetFields();})this.deal_obj.title = '修改'this.deal_form = res.data;this.$set(this.deal_form, 'widthHoldTime', [res.data.startTime, res.data.endTime]) // * 注意:要用 $set 方法赋值才可修改。不然只能展示,无法重新选择/更新值。this.deal_obj.open = true} else {this._err(res.msg)}});},// 新增/修改 - 提交submit_dealForm() {this.$refs["dealForm"].validate(valid => {if (valid) {// 将 widthHoldTime 时间区域的值,赋值给传入后端的 起始、终止(startTime,endTime)两个子弹中,并删除入参中多余的 widthHoldTime 字段let params = {}Object.assign(params, this.deal_form);[params.startTime, params.endTime] = params.widthHoldTime;delete params.widthHoldTime// 调用接口提交if (this.deal_obj.title == '修改') {// 调用修改接口,do something} else {// 调用新增接口,do something}}});},}}
</script>

http://www.lryc.cn/news/134806.html

相关文章:

  • LeetCode 面试题 01.02. 判定是否互为字符重排
  • 学习maven工具
  • 手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议
  • 【JavaEE基础学习打卡05】JDBC之基本入门就可以了
  • 2023/8/16 华为云OCR识别驾驶证、行驶证
  • 【Java开发】 Mybatis-Plus 07:创建时间、更新时间自动添加
  • 解决vue2项目在IE11浏览器中无画面的兼容问题
  • 信号
  • 产品经理的真实薪资有多少?今天带你看看
  • 《一个操作系统的实现》windows用vm安装CentOS——从bochs环境搭建到第一个demo跑通
  • 线程Thread
  • 如何使用CSS实现一个渐变背景效果?
  • 初始C语言(7)——详细讲解有关初阶指针的内容
  • ArcGIS Pro技术应用(暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用)
  • RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估
  • UE5.2 LyraDemo源码阅读笔记(五)输入系统
  • 线段树详解——影子宽度
  • 使用R语言绘制折线图
  • 无涯教程-Perl - wantarray函数
  • 【gitkraken】gitkraken自动更新问题
  • 《Java Web程序设计》试卷03
  • 怎么查看小程序中的会员信息
  • 网络安全—黑客—自学笔记
  • 深度解读波卡 2.0:多核、更有韧性、以应用为中心
  • 微服务中间件--Eureka注册中心
  • 积跬步至千里 || 矩阵可视化
  • zookeeper详细介绍
  • 面板市场趋势分析:价格上涨势头或将减缓 | 百能云芯
  • JVM性能调优
  • 【全链路追踪】XXL-JOB添加TraceID