Crud 模块

基础

编辑 - 图1

配置属性cellBtn为 true 时即可显示单元格编辑按钮,要编辑的列属性配置celltrue即可编辑

  1. <avue-crud
  2. :data="data"
  3. :option="option"
  4. v-model="obj"
  5. @row-update="rowUpdate"
  6. ></avue-crud>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. obj: {},
  12. data: [
  13. {
  14. name: '张三',
  15. sex: '男'
  16. },
  17. {
  18. name: '李四',
  19. sex: '女'
  20. }
  21. ],
  22. option: {
  23. page: false,
  24. align: 'center',
  25. menuAlign: 'center',
  26. cellBtn: true,
  27. editBtn: false,
  28. delBtn: false,
  29. column: [
  30. {
  31. label: '姓名',
  32. prop: 'name',
  33. cell: true,
  34. rules: [
  35. {
  36. required: true,
  37. message: '请输入姓名',
  38. trigger: 'blur'
  39. }
  40. ]
  41. },
  42. {
  43. label: '性别',
  44. prop: 'sex'
  45. }
  46. ]
  47. }
  48. }
  49. },
  50. methods: {
  51. rowUpdate(form, index, done) {
  52. this.$message.success(
  53. '编辑数据' + JSON.stringify(form) + '数据序号' + index
  54. )
  55. done()
  56. }
  57. }
  58. }
  59. </script>

自定义按钮

编辑 - 图2

配置属性cellBtnfalse,完后在 menu 卡槽自定义按钮,调用rowCell方法即可,当前行的状态$cellEdit属性判断当前行是否编辑状态

  1. <avue-crud
  2. ref="crud"
  3. :data="data0"
  4. :option="option0"
  5. v-model="obj"
  6. @row-update="rowUpdate"
  7. >
  8. <template slot-scope="scope" slot="menu">
  9. <el-button
  10. type="primary"
  11. size="small"
  12. @click="rowCell(scope.row,scope.index)"
  13. >{{scope.row.$cellEdit?'自定义保存':'自定义修改'}}</el-button
  14. >
  15. </template>
  16. </avue-crud>
  17. <script>
  18. export default {
  19. data() {
  20. return {
  21. obj: {},
  22. cellEdit: false,
  23. data0: [
  24. {
  25. name: '张三',
  26. sex: '男'
  27. },
  28. {
  29. name: '李四',
  30. sex: '女'
  31. }
  32. ],
  33. option0: {
  34. page: false,
  35. align: 'center',
  36. menuAlign: 'center',
  37. cellBtn: false,
  38. editBtn: false,
  39. delBtn: false,
  40. column: [
  41. {
  42. label: '姓名',
  43. prop: 'name',
  44. cell: true,
  45. rules: [
  46. {
  47. required: true,
  48. message: '请输入姓名',
  49. trigger: 'blur'
  50. }
  51. ]
  52. },
  53. {
  54. label: '性别',
  55. prop: 'sex'
  56. }
  57. ]
  58. }
  59. }
  60. },
  61. methods: {
  62. rowCell(row, index) {
  63. this.$refs.crud.rowCell(row, index)
  64. },
  65. rowUpdate(form, index, done) {
  66. this.$message.success(
  67. '编辑数据' + JSON.stringify(form) + '数据序号' + index
  68. )
  69. done()
  70. }
  71. }
  72. }
  73. </script>