index.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { markRaw } from "vue";
  2. import {
  3. Alert, Checkbox, DatePicker, Form,
  4. FormItem, Image, Input, InputNumber,
  5. Rate, Switch, Textarea, TimePicker
  6. } from "ant-design-vue";
  7. import { DynamicFormItemRegistry, type IDynamicFormOptions, configDefaultDynamicFormOptions } from "@imengyu/vue-dynamic-form";
  8. import PasswordWithStrengthInput from "./PasswordWithStrengthInput.vue";
  9. import CheckBoxValue from "./CheckBoxValue.vue";
  10. import SimpleSelectFormItem from "./SimpleSelectFormItem.vue";
  11. import IdAsValueDropdown from "./Dropdown/IdAsValueDropdown.vue";
  12. import IdAsValueTreeDropdown from "./Dropdown/IdAsValueTreeDropdown.vue";
  13. import SelectValue from "./SelectValue.vue";
  14. import IdAsValueTree from "./IdAsValueTree.vue";
  15. import UploadImageFormItem from "./UploadImageFormItem.vue";
  16. import WrapperTimeRangePicker from "./WrapperTimeRangePicker.vue";
  17. import WrapperRangePicker from "./WrapperRangePicker.vue";
  18. import ActionRender from "./ActionRender.vue";
  19. import CheckBoxToInt from "./CheckBoxToInt.vue";
  20. import RadioValueVue from "./RadioValue.vue";
  21. import StateRendererVue from "./Display/StateRenderer.vue";
  22. import ShowDateOrNullVue from "./Display/ShowDateOrNull.vue";
  23. import ShowImageListVue from "./Display/ShowImageList.vue";
  24. import ShowValueOrNullVue from "./Display/ShowValueOrNull.vue";
  25. import CascaderFormItemVue from "./CascaderFormItem.vue";
  26. import SimpleEditDynamicStringListVue from "./SimpleEditDynamicStringList.vue";
  27. import WhiteSpaceVue from "./WhiteSpace.vue";
  28. import NumberRange from "./NumberRange.vue";
  29. import MapPointPicker from "./Map/MapPointPicker.vue";
  30. import { QuillEditor } from "@vueup/vue-quill";
  31. import QuillEditorWrapper from "./Editor/QuillEditorWrapper.vue";
  32. import UploadVideoFormItem from "./UploadVideoFormItem.vue";
  33. import AddressSercher from "./Map/AddressSercher.vue";
  34. export const defaultConfig = {
  35. internalWidgets: {
  36. Form: {
  37. component: markRaw(Form),
  38. propsMap: {
  39. rules: 'rules',
  40. wrapperCol: 'wrapperCol',
  41. labelCol: 'labelCol',
  42. },
  43. },
  44. FormItem: {
  45. component: markRaw(FormItem),
  46. propsMap: {
  47. name: 'name',
  48. wrapperCol: 'wrapperCol',
  49. labelCol: 'labelCol',
  50. },
  51. },
  52. },
  53. } as IDynamicFormOptions
  54. export function registerAllFormComponents() {
  55. configDefaultDynamicFormOptions(defaultConfig);
  56. DynamicFormItemRegistry
  57. .register('text', markRaw(Input))
  58. .register('password', markRaw(Input), { type: "password" })
  59. .register('number', markRaw(InputNumber))
  60. .register('text-area', markRaw(Textarea))
  61. .register('password-with-strength', markRaw(PasswordWithStrengthInput))
  62. .register('switch', markRaw(Switch), {}, 'checked')
  63. .register('cascader', markRaw(CascaderFormItemVue))
  64. .register('check-box', markRaw(Checkbox), {}, 'checked')
  65. .register('check-box-int', markRaw(CheckBoxToInt))
  66. .register('check-box-value', markRaw(CheckBoxValue))
  67. .register('radio-value', markRaw(RadioValueVue))
  68. .register('number-range', markRaw(NumberRange))
  69. .register('rate', markRaw(Rate))
  70. .register('select', markRaw(SimpleSelectFormItem))
  71. .register('select-value', markRaw(SelectValue))
  72. .register('select-id', markRaw(IdAsValueDropdown))
  73. .register('select-tree-id', markRaw(IdAsValueTreeDropdown))
  74. .register('tree-id', markRaw(IdAsValueTree))
  75. .register('date', markRaw(DatePicker))
  76. .register('time', markRaw(TimePicker))
  77. .register('date-time', markRaw(DatePicker), { showTime: true })
  78. .register('date-range', markRaw(WrapperRangePicker))
  79. .register('time-range', markRaw(WrapperTimeRangePicker))
  80. .register('date-time-range', markRaw(WrapperRangePicker), { showTime: true })
  81. .register('single-image', markRaw(UploadImageFormItem), { single: true })
  82. .register('mulit-image', markRaw(UploadImageFormItem))
  83. .register('single-video', markRaw(UploadVideoFormItem), { single: true })
  84. .register('mulit-video', markRaw(UploadVideoFormItem), { single: true })
  85. .register('actions', markRaw(ActionRender))
  86. .register('alert', markRaw(Alert))
  87. .register('string-list', markRaw(SimpleEditDynamicStringListVue))
  88. .register('static-image', markRaw(Image), {}, "src")
  89. .register('static-state', markRaw(StateRendererVue))
  90. .register('static-value', markRaw(ShowValueOrNullVue))
  91. .register('static-date', markRaw(ShowDateOrNullVue))
  92. .register('static-image-list', markRaw(ShowImageListVue), {}, "images")
  93. .register('space', markRaw(WhiteSpaceVue))
  94. .register('map-pick-point', markRaw(MapPointPicker), {}, 'modelValue')
  95. .register('richtext', markRaw(QuillEditorWrapper), {}, 'modelValue')
  96. .register('address-sercher', markRaw(AddressSercher), {}, 'modelValue')
  97. }