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

ant-design-vue 實現(xiàn)表格內(nèi)部字段驗證功能

 更新時間:2019年12月16日 11:52:54   作者:YuShiYue  
這篇文章主要介紹了ant-design-vue 實現(xiàn)表格內(nèi)部字段驗證功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

表格內(nèi) column 可輸入的需求還是很常見的,尤其有一些業(yè)務(wù)場景就是表單內(nèi)部有一個表格,然后表格的某些列是個進(jìn)行輸入的,就像下面這樣

  • 下單數(shù)量 內(nèi)容不能為空
  • 下單數(shù)量 必須輸入正整數(shù)

在這里插入圖片描述

翻閱 ant-design-vue 官網(wǎng)并沒有發(fā)現(xiàn)說表單內(nèi)表格字段驗證的方案,但是有一個 自行處理表單數(shù)據(jù) 的介紹

image.png

那我們是不是可以參考這個方案去實現(xiàn)咱自己的業(yè)務(wù)需求呢,下面就開始說一下實現(xiàn)方案

<a-table
 :columns="columns"
 bordered
 :rowKey="col => col.id"
 :dataSource="tableData"
>

 <a-form-item 
  :label-col="{
   xs: { span: 0 },
   sm: { span: 0 },
  }"
  :wrapper-col="{
   xs: { span: 24 },
   sm: { span: 24 },
  }"
  :validate-status="getFildStatus(record.id).validateStatus"
  :help="getFildStatus(record.id).errorMsg"
  slot="goodModelCount" 
  slot-scope="text, record">
  <a-input
   style="width: 100%"
   :min="1"
   v-model="text.goodModelCount"
   @change="handleChange(text.goodModelCount, record.id)"
  />
 </a-form-item>

 <div slot="action" slot-scope="text, record">
  <a href="javascript:;" rel="external nofollow" ><a-icon type="delete" /></a>
 </div>
</a-table>

<script>
const columns = [
 { title: '商品名稱', dataIndex: 'id', align: 'center' },
 { title: '商品型號', dataIndex: 'account', align: 'center' },
 { title: '型號價格', dataIndex: 'area', align: 'center' },
 { title: '下單數(shù)量', key: 'goodModelCount', align: 'center', width: '200px', scopedSlots: { customRender: 'goodModelCount' }, align: 'center', },
 { title: '操作', scopedSlots: { customRender: 'action' }, width: '150px', align: 'center',}
]

function validatePrimeNumber(number) {
 if (/^[1-9]\d*|0$/.test(number)) {
  return {
   validateStatus: 'success',
   errorMsg: '',
  };
 }
 return {
  validateStatus: 'error',
  errorMsg: '下單數(shù)量不能為空',
 };
}
export default {
 name: 'order-dialog',
 data() {
  return {
   visible: true,
   labelCol: {
    xs: { span: 24 },
    sm: { span: 7 },
   },
   wrapperCol: {
    xs: { span: 24 },
    sm: { span: 12 },
   },
   form: this.$form.createForm(this),
   validatorRules: {
    consigneeName: {
     rules: [
      { required: true, message: '請輸入收貨人姓名' }
     ]
    },
    consigneePhone: {
     rules: [
      { required: true, message: '請輸入收貨人聯(lián)系電話' }
     ]
    },
    addresseeAddressDetail: {
     rules: [
      { required: true, message: '請輸入收貨地址詳情' }
     ]
    }
   },
   columns: columns,
   tableData: [{ id: 1, account: 123, area: 123, goodModelCount: 3434}, { id: 2, account: 123, area: 123, goodModelCount: 111}],
   goodModelCountData: []
  }
 },
 methods: {
  getFildStatus(id) {
   const data = this.goodModelCountData.filter(item => id === item.id)[0]
   if (data) {
    return data
   } else {
    return {
     errorMsg: '',
     validateStatus: 'success'
    }
   }
  },

  handleChange(value, id) {
   const newData = [...this.tableData];
   const target = newData.filter(item => item.id === id)[0]
   if (target) {
    const { errorMsg, validateStatus } = validatePrimeNumber(value)
    let flag = true
    this.goodModelCountData.forEach(val => {
     if (val.id === id) {
      flag = false
      val.errorMsg = errorMsg,
      val.validateStatus = validateStatus
     }
    })

    if (flag) {
     this.goodModelCountData.push({
      id,
      errorMsg,
      validateStatus
     })
    }
    target.goodModelCount = value
    this.tableData = newData
   }
  },
  handleOk() {
   this.visible = false
  }
 }
}
</script>

重點注意兩個屬性:

  • validate-status 校驗狀態(tài),可選 ‘success', ‘warning', ‘error', ‘validating'
  • help 設(shè)置校驗文案

在 vue 里面是允許我們在屬性里面以 函數(shù) 的形式返回屬性的,所以我們可以把驗證規(guī)則放到函數(shù)里里面 validatePrimeNumber (函數(shù)名字最好還是語義化明確一些,我這邊直接復(fù)制的官方文檔上的)

需要進(jìn)行驗證的字段(需要在 a-table 標(biāo)簽內(nèi)部)

<a-form-item 
 :label-col="{
  xs: { span: 0 },
  sm: { span: 0 },
 }"
 :wrapper-col="{
  xs: { span: 24 },
  sm: { span: 24 },
 }"
 :validate-status="getFildStatus(record.id).validateStatus"
 :help="getFildStatus(record.id).errorMsg"
 slot="goodModelCount" 
 slot-scope="text, record">
 <a-input
  style="width: 100%"
  :min="1"
  v-model="text.goodModelCount"
  @change="handleChange(text.goodModelCount, record.id)"
 />
</a-form-item>

當(dāng)我們輸入框進(jìn)行輸入的時候我們就會出發(fā) handleChange 方法,在方法里里面我們?nèi)ミM(jìn)行輸入內(nèi)容的驗證,然后根據(jù)id從 getFildStatus 找到當(dāng)前對象,然后進(jìn)行驗證。

如果列表內(nèi)有多列需要進(jìn)行驗證,那么就需要主要這個數(shù)據(jù)格式怎么定了了,根據(jù)實際需求進(jìn)行參考

總結(jié)

以上所述是小編給大家介紹的ant-design-vue 實現(xiàn)表格內(nèi)部字段驗證功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼

    vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼

    這篇文章主要介紹了vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Vue3?$emit用法指南(含選項API、組合API及?setup?語法糖)

    Vue3?$emit用法指南(含選項API、組合API及?setup?語法糖)

    這篇文章主要介紹了Vue3?$emit用法指南,使用?emit,我們可以觸發(fā)事件并將數(shù)據(jù)傳遞到組件的層次結(jié)構(gòu)中,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Vue中的函數(shù)同步執(zhí)行導(dǎo)致的數(shù)據(jù)獲取失敗問題處理辦法

    Vue中的函數(shù)同步執(zhí)行導(dǎo)致的數(shù)據(jù)獲取失敗問題處理辦法

    Vue中的mount中有兩個函數(shù),第一個函數(shù)執(zhí)行完后給data中的userInfo賦值,但是第二個函數(shù)獲取userInfo時是空值,這種情況可能是因為第二個函數(shù)在獲取 userInfo 時發(fā)生在第一個函數(shù)執(zhí)行完之前,所以本文給大家介紹了Vue中的函數(shù)同步執(zhí)行導(dǎo)致的數(shù)據(jù)獲取失敗問題處理辦法
    2024-08-08
  • Vue+elementui 實現(xiàn)復(fù)雜表頭和動態(tài)增加列的二維表格功能

    Vue+elementui 實現(xiàn)復(fù)雜表頭和動態(tài)增加列的二維表格功能

    這篇文章主要介紹了Vue+elementui 實現(xiàn)復(fù)雜表頭和動態(tài)增加列的二維表格功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Vue使用Multiavatarjs生成自定義隨機頭像的案例

    Vue使用Multiavatarjs生成自定義隨機頭像的案例

    這篇文章給大家介紹了Vue項目中使用Multiavatarjs生成自定義隨機頭像的案例,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2023-10-10
  • vue中計算屬性(computed)、methods和watched之間的區(qū)別

    vue中計算屬性(computed)、methods和watched之間的區(qū)別

    這篇文章主要給大家介紹了關(guān)于vue中計算屬性(computed)、methods和watched之間區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • vue cli使用絕對路徑引用圖片問題的解決

    vue cli使用絕對路徑引用圖片問題的解決

    這篇文章主要給大家介紹了關(guān)于vue cli使用絕對路徑引用圖片問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-12-12
  • vue上傳圖片組件編寫代碼

    vue上傳圖片組件編寫代碼

    這篇文章主要為大家詳細(xì)介紹了vue上傳圖片組件的編寫代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue請求按順序執(zhí)行的示例詳解

    vue請求按順序執(zhí)行的示例詳解

    我們有時候會碰到這種情況,需要連續(xù)發(fā)送兩個請求,第二個請求需要用第一個請求的某個返回值作為參數(shù)來作為第二個請求的請求參數(shù),這篇文章主要介紹了vue請求如何按順序執(zhí)行,需要的朋友可以參考下
    2023-12-12
  • element 穿梭框性能優(yōu)化的實現(xiàn)

    element 穿梭框性能優(yōu)化的實現(xiàn)

    本文主要介紹了element 穿梭框性能優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

平陆县| 那坡县| 疏附县| 宜宾市| 宜城市| 临颍县| 凤山县| 宁化县| 泸西县| 麟游县| 云浮市| 搜索| 南华县| 邹平县| 武夷山市| 高州市| 镇江市| 揭东县| 左云县| 刚察县| 大英县| 灵武市| 饶阳县| 晋中市| 浏阳市| 垫江县| 湘潭市| 惠安县| 平谷区| 白城市| 潜江市| 绥滨县| 通许县| 兖州市| 射阳县| 奈曼旗| 三原县| 乳山市| 兴城市| 葫芦岛市| 宽甸|