当前位置:   article > 正文

element-ui的el-table与el-form的使用与表单校验_el-form 对el-checkbox校验

el-form 对el-checkbox校验

目前做的项目后台管理系统,用到了el-form中嵌套el-table,并且需要非空验证,效果图如下:

废话不多说,直接上代码

  1. <el-form
  2. v-loading="loading"
  3. :model="currBillType"
  4. :rules="currBillType.rules"
  5. style="height: calc(100% - 95px)"
  6. >
  7. <el-table
  8. :data="currBillType.dataSource"
  9. ref="companySettingList"
  10. align="left"
  11. >
  12. <el-table-column
  13. prop="companyCode"
  14. :label="l('CompanyCode')"
  15. ></el-table-column>
  16. <el-table-column
  17. prop="companyName"
  18. :label="l('CompanyName')"
  19. ></el-table-column>
  20. <el-table-column prop="prefix" :label="l('前缀')">
  21. <template slot-scope="scope">
  22. <el-form-item
  23. :prop="'dataSource.' + scope.$index + '.prefix'"
  24. :rules="currBillType.rules.prefix"
  25. style="margin-bottom: 0px"
  26. >
  27. <el-input v-model="scope.row.prefix"></el-input>
  28. </el-form-item>
  29. </template>
  30. </el-table-column>
  31. <el-table-column prop="used" :label="l('Used')" align="center">
  32. <template slot-scope="scope">
  33. <el-checkbox v-model="scope.row.used"></el-checkbox>
  34. </template>
  35. </el-table-column>
  36. <el-table-column prop="digit" :label="l('YrDigit')">
  37. <template slot-scope="scope">
  38. <el-form-item
  39. :prop="'dataSource.' + scope.$index + '.digit'"
  40. :rules="currBillType.rules.digit"
  41. style="margin-bottom: 0px"
  42. >
  43. <el-input v-model="scope.row.digit"></el-input>
  44. </el-form-item>
  45. </template>
  46. </el-table-column>
  47. <el-table-column
  48. prop="autoGenMode"
  49. :label="l('AutoGenMode')"
  50. align="center"
  51. >
  52. <template slot-scope="scope">
  53. <el-checkbox
  54. v-model="scope.row.autoGenMode"
  55. :true-label="1"
  56. :false-label="0"
  57. ></el-checkbox>
  58. </template>
  59. </el-table-column>
  60. </el-table>
  61. </el-form>

 注意事项:

1、为了保证prop的唯一性,所以el-form-item的prop需要动态来写

 :prop="'dataSource.' + scope.$index + '.prefix'"

       dataSource:el-form绑定的数组,prefix:对应的字段名

2、注意数据结构的不同,el-form需要的数据结构是对象类型{......},el-table需要的是数组,

     所以需要对数据进行处理,我这里的数据是后台返回的,大致数据(也就是data部分)结构如下:

  1. currBillType: {
  2. dataSource: [],
  3. rules: {
  4. prefix: [
  5. {
  6. required: true,
  7. trigger: "blur",
  8. },
  9. ],
  10. digit: [
  11. {
  12. required: true,
  13. trigger: "blur",
  14. },
  15. ],
  16. },
  17. },

3、表单校验el-form-item上记得加验证规则,注意的不只是form表单需要配置,每个item也需要配置

  1. <el-table-column prop="prefix" :label="l('前缀')">
  2. <template slot-scope="scope">
  3. <el-form-item
  4. :prop="'dataSource.' + scope.$index + '.prefix'"
  5. :rules="currBillType.rules.prefix"
  6. style="margin-bottom: 0px"
  7. >
  8. <el-input v-model="scope.row.prefix"></el-input>
  9. </el-form-item>
  10. </template>
  11. </el-table-column>

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号