Editor.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <div class="m-4">
  3. <CollapseContainer title="富文本表单">
  4. <BasicForm
  5. :labelWidth="100"
  6. :schemas="schemas"
  7. :actionColOptions="{ span: 24 }"
  8. @submit="handleSubmit"
  9. >
  10. </BasicForm>
  11. </CollapseContainer>
  12. </div>
  13. </template>
  14. <script lang="ts">
  15. import { defineComponent, h } from 'vue';
  16. import { BasicForm, FormSchema } from '/@/components/Form/index';
  17. import { CollapseContainer } from '/@/components/Container/index';
  18. import { useMessage } from '/@/hooks/web/useMessage';
  19. import { Tinymce } from '/@/components/Tinymce/index';
  20. const schemas: FormSchema[] = [
  21. {
  22. field: 'title',
  23. component: 'Input',
  24. label: 'title',
  25. defaultValue: 'defaultValue',
  26. rules: [{ required: true }],
  27. },
  28. {
  29. field: 'tinymce',
  30. component: 'Input',
  31. label: 'tinymce',
  32. defaultValue: 'defaultValue',
  33. rules: [{ required: true }],
  34. render: ({ model, field }) => {
  35. return h(Tinymce, {
  36. value: model[field],
  37. onChange: (value: string) => {
  38. model[field] = value;
  39. },
  40. });
  41. },
  42. },
  43. ];
  44. export default defineComponent({
  45. components: { BasicForm, CollapseContainer, Tinymce },
  46. setup() {
  47. const { createMessage } = useMessage();
  48. return {
  49. schemas,
  50. handleSubmit: (values: any) => {
  51. createMessage.success('click search,values:' + JSON.stringify(values));
  52. },
  53. };
  54. },
  55. });
  56. </script>