이 글에서는 Vue 자동화된 양식의 작동 방법과 관련 코드 설명을 예제를 통해 공유합니다. 관심 있는 친구들은 따라하고 배울 수 있습니다.
Background
B면 시스템에는 많은 양식이 있으며 양식에는 더 많은 필드가 포함될 수 있습니다.
더 많은 필드가 있는 양식은 큰 HTML 코드 조각을 가져옵니다.
큰 HTML 조각에서는 매개변수 바인딩 및 이벤트 처리와 같은 논리가 사용됩니다. 혼합되어 있어 유지 관리에 도움이 되지 않습니다.
기술 스택 Vue, Element(기본 양식 레이아웃)는 중간 및 백엔드 프로젝트의 빠른 개발에 적합합니다.
Goal
json 구성을 통해 빠르게 양식을 생성하는 Vue 플러그인입니다.
디자인 목표
html 반복 조각 줄이기
양식 필드 구성 요소는 확장 가능합니다.
이벤트와 연결은 eventbus를 통해 분리됩니다.
검증 확장 가능
양식 레이아웃을 사용자 정의할 수 있습니다.
시각적 구성
구성표 디자인 정보
Using
Installation
npm install charlie-autoform charlie-autoform_component_lib
소스 코드: https://charlielau.github.io/autoform/#/comComponent/au toform
플러그인 소개
import AutoForm from 'charlie-autoform'; import AutoForm_component_lib from 'charlie-autoform_component_lib'; Vue.use(AutoForm); Vue.use(AutoForm_component_lib);
기본 사용
demo.vue
<template> <p> <auto-form ref="tagForm1" :model="model1" :fields="fields1" :layout="layout"> <el-form-item class="clearfix"> <el-button type="primary">立即创建</el-button> <el-button>取消</el-button> </el-form-item> </auto-form> </p> </template> <script> export default { data() { return { model2: { name: '', type: [] }, layout2: { align: 'left', labelWidth: '100px', custom: false, //是否自定义布局 inline: true //是否内联 }, fields2: [ { key: 'name', type: 'input', templateOptions: { label: '审批人' } }, { key: 'region', type: 'select', templateOptions: { label: '活动区域', placeholder: '请选择活动区域', options: [ { label: '区域一', value: 'shanghai' }, { label: '区域二', value: 'beijing' } ], validators:[ //校验 // {required:true,message:'必填'} // "" ] } } ] }; } }; </script>
최종 효과
사용자 정의 구성 요소 또는 구성 요소 디렉터리 추가
르레에에
cHello.vue
Vue.$autoform.RegisterDir(()=>require.context('./components/autoform', 'c'));//目录 Vue.$autoform.Register(Vue,[Components...],{prefix: "c"}) //组件对象
Achievements
현재 여러 시스템에서 사용됨
질적: 유지 관리 비용 절감, 우려 사항 분리
양적: 양식 개발 효율성 50% 증가
관련 권장 사항 :
Vue 양식 클래스의 상위 및 하위 구성요소 간 데이터 전송 예
위 내용은 Vue 자동화된 양식 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!