UNPKG

@form-create/vant-designer

Version:

基于Vant的移动端低代码可视化表单设计器,可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率。

107 lines (98 loc) 3.12 kB
export function mobileTemplate(json, options) { return `<template> <form-create-mobile v-model="formData" v-model:api="fapi" :rule="rule" :option="option" @submit="onSubmit" ></form-create-mobile> </template> <script> import formCreateMobile from "@form-create/vant"; export default { components: { formCreateMobile: formCreateMobile.$form() }, data () { const option = formCreateMobile.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'); //开启阅读模式 //option.preview = true; return { formData: {}, fapi: null, rule: formCreateMobile.parseJson('${json.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), option: option } }, methods: { onSubmit (formData) { //todo 提交表单 } } } <\/script>` } export function mobileTemplateV3(json, options) { return `<template> <form-create-mobile v-model="formData" v-model:api="fapi" :rule="rule" :option="option" @submit="onSubmit" ></form-create-mobile> </template> <script setup> import {ref} from "vue"; import formCreateMobile from "@form-create/vant"; const option = ref(formCreateMobile.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}')); const rule = ref(formCreateMobile.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="https://unpkg.com/vant@4/lib/index.css"/> <!-- Import Vue 3 --> <script src="https://unpkg.com/vue@3"></script> <!-- Import vant --> <script src="https://unpkg.com/vant@4/lib/vant.min.js"></script> <!-- Import formCreateMobile --> <script src="https://unpkg.com/@form-create/vant@3"></script> <script src="https://unpkg.com/@form-create/vant-designer@3"></script> </head> <body> <div id="app"> <form-create-mobile :rule="rule" :option="options" v-model="formData" v-model:api="api" @submit="onSubmit"></form-create-mobile> </div> <script> const App = { data() { return { rule: formCreateMobile.parseJson('${json.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), options: formCreateMobile.parseJson('${options.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'), formData: {}, api: null, }; }, methods: { onSubmit(formData){ console.log('submit', formData); } } }; const app = Vue.createApp(App); app.use(vant).use(formCreateMobile); app.mount("#app"); </script> </body> </html>` }