disabled.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <script setup lang="ts">
  2. import FsTableSelect from '@/components/FsTableSelect/index.vue'
  3. import type { TableConfig } from '@/components/FsTableSelect/types'
  4. const data = ref('')
  5. const datas = ref('')
  6. const isDisabled = ref(true)
  7. const request = function ({ pageNo }: any) {
  8. return new Promise(resolve => {
  9. setTimeout(() => {
  10. const data = {
  11. list: [
  12. { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 1 },
  13. { name: '李四' + pageNo, sex: '女', id: '' + pageNo + 2 },
  14. { name: '王五' + pageNo, sex: '男', id: '' + pageNo + 3 },
  15. { name: '赵六' + pageNo, sex: '女', id: '' + pageNo + 4 },
  16. { name: '张三' + pageNo, sex: '男', id: '' + pageNo + 5 }
  17. ],
  18. total: 10
  19. }
  20. resolve(data)
  21. }, 1500)
  22. })
  23. }
  24. const tableConfig: TableConfig = {
  25. column: [
  26. {
  27. title: '#',
  28. type: 'seq',
  29. width: 45,
  30. align: 'center'
  31. },
  32. {
  33. title: '姓名',
  34. field: 'name',
  35. align: 'center'
  36. },
  37. {
  38. title: '性别',
  39. align: 'center',
  40. slot: 'sex'
  41. }
  42. ],
  43. datasource: request,
  44. pageSize: 5
  45. }
  46. </script>
  47. <template>
  48. <el-form label-width="80px">
  49. <el-row :gutter="15">
  50. <el-col :span="24">
  51. <el-form-item label="">
  52. <el-radio-group v-model="isDisabled">
  53. <el-radio label="禁用" :value="true"> </el-radio>
  54. <el-radio label="启用" :value="false"> </el-radio>
  55. </el-radio-group>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="6">
  59. <el-form-item label="单选">
  60. <fs-table-select v-model="data" :tableConfig="tableConfig" :disabled="isDisabled">
  61. <template #sex="{ row }">
  62. <el-tag size="small">{{ row.sex }}</el-tag>
  63. </template>
  64. </fs-table-select>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="6">
  68. <el-form-item label="多选">
  69. <fs-table-select v-model="datas" :tableConfig="tableConfig" :disabled="isDisabled" multiple>
  70. <template #sex="{ row }">
  71. <el-tag size="small">{{ row.sex }}</el-tag>
  72. </template>
  73. </fs-table-select>
  74. </el-form-item>
  75. </el-col>
  76. </el-row>
  77. </el-form>
  78. </template>
  79. <style scoped></style>