最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用mixins實(shí)現(xiàn)elementUI表單全局驗(yàn)證的解決方法

 更新時(shí)間:2019年04月02日 12:00:16   作者:我在長(zhǎng)安長(zhǎng)安  
這篇文章主要介紹了使用mixins實(shí)現(xiàn)elementUI表單的全局驗(yàn)證的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

使用ElementUi搭建框架的時(shí)候,大家應(yīng)該都有考慮過(guò)怎么做全局驗(yàn)證,畢竟復(fù)制粘貼什么的是最煩了,這里分享下個(gè)人的解決方法。

驗(yàn)證規(guī)則
分析規(guī)則

一般驗(yàn)證規(guī)則,主要是是否必填,不為空,以及參數(shù)類型的驗(yàn)證。

基于這個(gè)條件,我們開(kāi)始找找思路, 單個(gè)字段的驗(yàn)證是這樣的:

name: {
 required: 是否必填,
 validator: 自定義規(guī)則,
 message: 失敗提示消息(非自定義時(shí)觸發(fā)),
 trigger: 觸發(fā)方式
}

循環(huán)實(shí)現(xiàn)

固定的規(guī)則。當(dāng)一個(gè)東西固定之后,那必然是可以重復(fù)使用的,并且可以快速生成,我們可以用循環(huán)來(lái)實(shí)現(xiàn)它。

但是用循環(huán)來(lái)實(shí)現(xiàn),我們則需要一個(gè)數(shù)據(jù)規(guī)則。

定義數(shù)據(jù)規(guī)則

分析下需要的字段,大概就是以下幾種,其他的可以根據(jù)自身的需求去增加:

  • 驗(yàn)證的字段名 label
  • 驗(yàn)證的值 value
  • 驗(yàn)證的類型 type
  • 是否必填 required
  • 自定義規(guī)則 rules

那最終我們得到的是這樣一個(gè)字段配置列表:

fieldList: [
   {label: '賬號(hào)', value: 'account', type: 'input', required: true},
   {label: '密碼', value: 'password', type: 'password', required: true},
   {label: '昵稱', value: 'name', type: 'input', required: true},
   {label: '性別', value: 'sex', type: 'select', list: 'sexList', required: true},
   {label: '頭像', value: 'avatar', type: 'input'},
   {label: '手機(jī)號(hào)碼', value: 'phone', type: 'input'},
   {label: '微信', value: 'wechat', type: 'input'},
   {label: 'QQ', value: 'qq', type: 'input'},
   {label: '郵箱', value: 'email', type: 'input'},
   {label: '狀態(tài)', value: 'status', type: 'select', list: 'statusList', required: true}
  ]

form完整的字段配置建議參考:

 // 表單相關(guān)
  formInfo: {
  ref: null,
  data: {
   id: '', // *唯一ID
   account: '', // *用戶賬號(hào)
   password: '', // *用戶密碼
   name: '', // *用戶昵稱
   type: 2, // *用戶類型: 0: 手機(jī)注冊(cè) 1: 論壇注冊(cè) 2: 管理平臺(tái)添加
   sex: 0, // *性別: 0:男 1:女
   avatar: '', // 頭像
   phone: '', // 手機(jī)號(hào)碼
   wechat: '', // 微信
   qq: '', // qq
   email: '', // 郵箱
   status: 1 // *狀態(tài): 0:停用,1:?jiǎn)⒂?默認(rèn)為1)',
   // create_user: '', // 創(chuàng)建人
   // create_time: '', // 創(chuàng)建時(shí)間
   // update_user: '', // 修改人
   // update_time: '' // 修改時(shí)間
  },
  fieldList: [
   {label: '賬號(hào)', value: 'account', type: 'input', required: true},
   {label: '密碼', value: 'password', type: 'password', required: true},
   {label: '昵稱', value: 'name', type: 'input', required: true},
   {label: '性別', value: 'sex', type: 'select', list: 'sexList', required: true},
   {label: '頭像', value: 'avatar', type: 'input'},
   {label: '手機(jī)號(hào)碼', value: 'phone', type: 'input'},
   {label: '微信', value: 'wechat', type: 'input'},
   {label: 'QQ', value: 'qq', type: 'input'},
   {label: '郵箱', value: 'email', type: 'input'},
   {label: '狀態(tài)', value: 'status', type: 'select', list: 'statusList', required: true}
  ],
  rules: {},
  labelWidth: '120px'
  }

實(shí)現(xiàn)驗(yàn)證方法

  • 循環(huán)字段列表,根據(jù)type判斷是提示選擇不能為空,還是輸入不能為空
  • 如果字段必填,則根據(jù)是否有自定義驗(yàn)證去生成驗(yàn)證規(guī)則
  • 字段非必填,有自定義規(guī)則生成驗(yàn)證
// 初始化驗(yàn)證數(shù)據(jù)
 _initRules (formInfo) {
  const obj = {},
  fieldList = formInfo.fieldList
  // 循環(huán)字段列表
  for (let item of fieldList) {
  let type = item.type === 'select' ? '選擇' : '輸入'

  if (item.required) {
   if (item.rules) {
   obj[item.value] = {
    required: item.required,
    validator: item.rules,
    trigger: 'blur'
   }
   } else {
   obj[item.value] = {
    required: item.required,
    message: '請(qǐng)' + type + item.label,
    trigger: 'blur'
   }
   }
  } else if (item.rules) {
   obj[item.value] = {
   validator: item.rules,
   trigger: 'blur'
   }
  }
  }
  formInfo.rules = obj
 }

怎么配置到全局

  • 通過(guò)mixin配置,然后在頁(yè)面中使用(個(gè)人使用的是mixin)
  • 配置為全局方法在頁(yè)面中調(diào)用
  • 掛在到vue實(shí)例上,通過(guò)this即可訪問(wèn)

最后

在項(xiàng)目的系統(tǒng)管理模塊中可以看到示例代碼:

項(xiàng)目地址

項(xiàng)目代碼地址

總結(jié)

以上所述是小編給大家介紹的使用mixins實(shí)現(xiàn)elementUI表單的全局驗(yàn)證的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

和顺县| 鲜城| 蓝田县| 溆浦县| 昌平区| 阿荣旗| 铁岭市| 射洪县| 沿河| 肥城市| 大港区| 延津县| 泸水县| 青海省| 佛教| 新沂市| 兴化市| 万安县| 元朗区| 顺平县| 德令哈市| 平遥县| 兰坪| 苗栗市| 乌拉特前旗| 凤山县| 梨树县| 昌吉市| 营口市| 咸阳市| 田东县| 灌阳县| 睢宁县| 内江市| 安义县| 潞城市| 芦溪县| 巩留县| 锡林郭勒盟| 襄垣县| 吴川市|