UNPKG

form-tdesigner

Version:

好用的Vue低代码可视化表单设计器,可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率。

105 lines (95 loc) 2.83 kB
export function formTemplate(json, options) { return `<template> <form-create v-model="formData" v-model:api="fapi" :rule="rule" :option="option" @submit="onSubmit" ></form-create> </template> <script> import formCreate from "@form-create/tdesign"; export default { components: { formCreate: formCreate.$form() }, data () { const option = formCreate.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'); return { formData: {}, fapi: null, rule: formCreate.parseJson('${json.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), option: option } }, methods: { onSubmit (formData) { //todo 提交表单 } } } <\/script>` } export function formTemplateV3(json, options) { return `<template> <form-create v-model="formData" v-model:api="fapi" :rule="rule" :option="option" @submit="onSubmit" ></form-create> </template> <script setup> import {ref} from "vue"; import formCreate from "@form-create/tdesign"; const option = ref(formCreate.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}')); const rule = ref(formCreate.parseJson('${json.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}')); const fapi = ref(null); const formData = ref({}); const onSubmit = (formData) => { //todo 提交表单 } <\/script>` } export function htmlTemplate(json, options) { return `<html lang="zh"> <head> <meta charset="UTF-8"> <!-- Import style --> <link rel="stylesheet" href="//unpkg.com/element-plus/dist/index.css"/> <!-- Import Vue 3 --> <script src="//unpkg.com/vue@3"></script> <!-- Import element-plus --> <script src="//unpkg.com/element-plus"></script> <!-- Import formCreate --> <script src="//unpkg.com/@form-create/tdesign"><\/script> </head> <body> <div id="app"> <form-create :rule="rule" :option="options" v-model="formData" v-model:api="api" @submit="onSubmit"></form-create> </div> <script> const App = { data() { return { rule: formCreate.parseJson('${json.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), options: formCreate.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), formData: {}, api: null, }; }, methods: { onSubmit(formData){ console.log('submit', formData); } } }; const app = Vue.createApp(App); app.use(ElementPlus).use(formCreate); app.mount("#app"); </script> </body> </html>` }