Dict.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <script setup lang="ts">
  2. import type { BasicForm } from '@/types/form'
  3. const CRUD = {
  4. create() {
  5. return Promise.resolve()
  6. },
  7. update() {
  8. return Promise.resolve()
  9. },
  10. getList() {
  11. return new Promise(resolve => {
  12. return resolve({
  13. data: [
  14. {
  15. name: 'test'
  16. }
  17. ],
  18. total: 1
  19. })
  20. })
  21. }
  22. }
  23. const dictFormConfig = reactive<BasicForm>({
  24. span: 12,
  25. formItems: [
  26. {
  27. label: '字典名称',
  28. value: '',
  29. name: 'name',
  30. type: 'input',
  31. rules: [{ required: true, message: '请输入字典名称', trigger: 'blur' }]
  32. },
  33. {
  34. label: '字典值',
  35. value: '',
  36. name: 'value',
  37. type: 'input',
  38. rules: [{ required: true, message: '请输入字典值', trigger: 'blur' }]
  39. }
  40. ]
  41. })
  42. const handleRowClick = (row: any, column: any, event: any) => {
  43. console.log(row, column, event)
  44. }
  45. const dictItemFormConfig = reactive<BasicForm>({
  46. span: 12,
  47. formItems: [
  48. {
  49. label: '字典名称',
  50. value: '',
  51. name: 'name',
  52. type: 'input',
  53. rules: [{ required: true, message: '请输入用户名', trigger: 'blur' }]
  54. },
  55. {
  56. label: '字典值',
  57. value: '',
  58. name: 'value',
  59. type: 'input',
  60. rules: [{ required: true, message: '请输入密码', trigger: 'blur' }]
  61. },
  62. {
  63. label: '排序',
  64. value: '',
  65. name: 'sort',
  66. type: 'input',
  67. props: {
  68. maxlength: 11
  69. }
  70. }
  71. ]
  72. })
  73. </script>
  74. <template>
  75. <el-row :gutter="16">
  76. <el-col :span="12">
  77. <pro-table :crud="CRUD" :formConfig="dictFormConfig" @row-click="handleRowClick">
  78. <el-table-column prop="name" label="字典名称"></el-table-column>
  79. <el-table-column prop="value" label="字典值"></el-table-column>
  80. </pro-table>
  81. </el-col>
  82. <el-col :span="12">
  83. <pro-table :crud="CRUD" :formConfig="dictItemFormConfig">
  84. <el-table-column prop="name" label="标签"></el-table-column>
  85. <el-table-column prop="phone" label="键值"></el-table-column>
  86. <el-table-column prop="gender" label="排序"></el-table-column>
  87. </pro-table>
  88. </el-col>
  89. </el-row>
  90. </template>
  91. <style lang="scss" scoped></style>