UNPKG

@caxa-form/core

Version:

vue动态表单,助你轻松搞定表单|form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions through JSON. Supports 3 UI frameworks, and supports the generation of any Vue components. Built-in 20

86 lines (78 loc) 1.94 kB
import Api from '../frame/api'; import Render from '../render'; import extend from '@caxa-form/utils/lib/extend'; import {funcProxy} from '../frame/util'; import useInject from './inject'; import usePage from './page'; import useRender from './render'; import useLoader from './loader'; import useInput from './input'; import useHelper from './helper'; import useContext from './context'; import useLifecycle from './lifecycle'; import useEffect from './effect'; export default function Handler(fc) { extend(this, { fc, vm: fc.vm, watching: false, loading: false, reloading: false, noWatchFn: null, deferSyncFn: null, isMounted: false, formData: {}, subForm: {}, form: {}, appendData: {}, providers: {}, cycleLoad: null, loadedId: 1, nextTick: null, changeStatus: false, pageEnd: true, nextReload: () => { this.lifecycle('reload'); } }); funcProxy(this, { options() { return fc.options; }, bus() { return fc.bus; }, }) this.initData(fc.rules); this.$manager = new fc.manager(this); this.$render = new Render(this); this.api = fc.extendApi(Api(this), this); } extend(Handler.prototype, { initData(rules) { extend(this, { fieldCtx: {}, ctxs: {}, nameCtx: {}, sort: [], rules, repeatRule: [], }); useHelper(rules); }, init() { this.useProvider(); this.usePage(); this.loadRule(); this.$manager.__init(); this.vm.$set(this.vm, 'formData', this.formData); }, }) useInject(Handler); usePage(Handler); useRender(Handler); useLoader(Handler); useInput(Handler); useContext(Handler); useLifecycle(Handler); useEffect(Handler);