当前位置: 首页 > news >正文

旅游网站建设与规划整个网站都在下雪特效怎么做

旅游网站建设与规划,整个网站都在下雪特效怎么做,上海网站seo外包,短视频seo询盘系统代码资源在这儿 ↑ vue之动态表单优化 vue2js动态表单优化vue3ts动态表单优化 vue2js动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue templatedivrouter-view/router-viewFormpage //div /templa…代码资源在这儿 ↑ vue之动态表单优化 vue2js动态表单优化vue3ts动态表单优化 vue2js动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue templatedivrouter-view/router-viewFormpage //div /templatescript import Formpage from ./views/FormPage.vue;export default {components: {Formpage}, } /script 以下是FormPage.vue templatediv classcontainerFormItemComp :formStateroot/FormItemComp/div /templatescript import FormItemComp from ../components/FormItemComp.vue; import root from ./FormPageDatas;export default {components: {FormItemComp},data() {return {root: root}} } /scriptstyle scoped .container {width: 80%;margin: 1em auto; } /style 以下是FormItemComp.vue templateel-formtemplate v-ifformStateel-form-item :labelformState.payload.labeltemplate v-ifformState.type inputel-input v-modelformState.payload.value//templatetemplate v-else-ifformState.type checkboxel-checkbox-group v-modelformState.payload.valueel-checkbox v-foroption in formState.payload.options :keyoption.value :labeloption.value{{ option.label }}/el-checkbox/el-checkbox-group/templatetemplate v-else-ifformState.type radioel-radio-group v-modelformState.payload.valueel-radio v-foroption in formState.payload.options :keyoption.value :labeloption.value{{ option.label }}/el-radio/el-radio-group/templatetemplate v-else-ifformState.type selectel-select v-modelformState.payload.valueel-option v-foroption in formState.payload.options :keyoption.value :labeloption.label :valueoption.value//el-select/template/el-form-itemFormItemComp :form-stategetNext()//template/el-form /templatescript export default {name: FormItemComp,props: {formState: {type: Object,default: null}},methods: {getNext() {let current this.formState;if (!current) {return null;}const ancestors [];ancestors.unshift(current);while ((current current.parent)) {ancestors.unshift(current);}return this.formState.next(this.formState, ancestors);}} } /scriptstyle scoped .el-form-item__label {padding-right: 10px !important; } /style 以下是FormItem.js import Vue from vue;/*** 创建表单项* param formItemType string 表单项的类型* param payload object 表单项的label、options、value* param next function 当前选择的值* param parent 上一个表当项* return {{next: ((function(*, *): (null|null))|*), parent: null, payload, type}}*/ export function createFormItem(formItemType, payload, next, parent) {if (!next) {next () null;}if (!parent) {parent null;}const nextFunc function(current, acients) {let nextItem next(current, acients);if (!nextItem) {return null;}nextItem.parent current;if (!Vue.observable(nextItem)) {nextItem Vue.observable(nextItem);}return nextItem;};return Vue.observable({type: formItemType,payload: payload,next: nextFunc,parent: parent,}); } 以下是FormPageDatas.js import {createFormItem} from /FormItem;const item1 createFormItem(select,{label: test1,options: [{label: test1-1, value: test1-1},{label: test1-2, value: test1-2},{label: test1-3, value: test1-3},],value: test1-1,},(current) {if (current.payload.value test1-2) {return item2;} else if (current.payload.value test1-3) {return item4;} else {return null;}} );const item2 createFormItem(input, {label: test2,value: test }, (current) (current.payload.value test2 ? item3 : null));const item3 createFormItem(checkbox,{label: test3,options: [{label: test3-1, value: test3-1},{label: test3-2, value: test3-2},{label: test3-3, value: test3-3},],value: [test3-2, test3-3],},(current) (current.payload.value.includes(test3-1) ? item4 : null) );const item4 createFormItem(radio, {label: test4,options: [{label: test4-1, value: test4-1},{label: test4-2, value: test4-2},{label: test4-3, value: test4-3},{label: test4-4, value: test4-4},],value: test4-4, });export default item1; vue3ts动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue templatedivFormpage //div /templatescript setup langts import Formpage from ./views/Formpage.vue; /script 以下是FormPage.vue templatediv classcontainerFormItemComp :form-stateroot/FormItemComp/div /templatescript setup langts import FormItemComp from ../components/FormItemComp.vue; import root from ./FormPageDatas; /scriptstyle scoped .container {width: 80%;margin: 1em auto; } /style 以下是FormItemComp.vue templatetemplate v-ifformStatea-form-item :labelformState.payload.labeltemplate v-ifformState.type inputa-input v-model:valueformState.payload.value //templatetemplate v-else-ifformState.type checkboxa-checkbox-group v-model:valueformState.payload.valuea-checkbox v-foroption in formState.payload.options :valueoption.value{{ option.label }}/a-checkbox/a-checkbox-group/templatetemplate v-else-ifformState.type radioa-radio-group v-model:valueformState.payload.valuea-radio v-foroption in formState.payload.options :valueoption.value{{ option.label }}/a-radio/a-radio-group/templatetemplate v-else-ifformState.type selecta-select v-model:valueformState.payload.valuea-select-option v-foroption in formState.payload.options :valueoption.value{{ option.label }}/a-select-option/a-select/template/a-form-itemFormItemComp :form-stategetNext()/FormItemComp/template /templatescript setup langts import { FormItem } from ../FormItem;const props defineProps{formState: FormItem | null; }();function getNext(): FormItem | null {let current: FormItem | null props.formState;if (!current) {return null;}const acients [];acients.unshift(current);while ((current current.parent)) {acients.unshift(current);}return props.formState!.next(props.formState!, acients); } /scriptstyle .ant-form-item-label {padding-right: 10px !important; } /style 以下是FormItem.ts import { isReactive, reactive } from vue;export type FormItemType input | select | checkbox | radio;export interface FormItem {type: FormItemType;payload: any;next: (current: FormItem, acients: FormItem[]) FormItem | null;parent: FormItem | null; }export function createFormItem(formItemType: FormItem[type],payload: FormItem[payload],next?: FormItem[next],parent?: FormItem[parent] ): FormItem {if (!next) {next () null;}if (!parent) {parent null;}const nextFunc: FormItem[next] (current, acients) {let nextItem next!(current, acients);if (!nextItem) {return null;}nextItem.parent current;if (!isReactive(nextItem)) {nextItem reactive(nextItem);}return nextItem;};const formItem: FormItem reactive({type: formItemType,payload,next: nextFunc,parent,});return formItem; } 以下是FormPageDatas.ts import { createFormItem } from ../FormItem;const item1 createFormItem(select,{label: test1,options: [{ label: test1-1, value: test1-1 },{ label: test1-2, value: test1-2 },{ label: test1-3, value: test1-3 },],value: test1-1,},(current) {if (current.payload.value test1-2) {return item2;} else if (current.payload.value test1-3) {return item4;} else {return null;}} );const item2 createFormItem(input,{ label: test2, value: test },(current) (current.payload.value test2 ? item3 : null) );const item3 createFormItem(checkbox,{label: test3,options: [{ label: test3-1, value: test3-1 },{ label: test3-2, value: test3-2 },{ label: test3-3, value: test3-3 },],value: [test3-2, test3-3],},(current) (current.payload.value.includes(test3-1) ? item4 : null) );const item4 createFormItem(radio, {label: test4,options: [{ label: test4-1, value: test4-1 },{ label: test4-2, value: test4-2 },{ label: test4-3, value: test4-3 },{ label: test4-4, value: test4-4 },],value: test4-4, });export default item1;
http://www.w-s-a.com/news/407918/

相关文章:

  • 可信网站网站认证免费软件下载网站免费软件下载网站
  • 小学生网站制作最新域名网站
  • 奖励网站代码设计制作ppt时
  • 茂名优化网站建设门户网站和部门网站的区别
  • 一尊网 又一个wordpress站点wordpress获取当前文章名称
  • 营销型网站多少钱新建网站的外链多久生效
  • 网站空间怎么选择tp5企业网站开发百度云
  • 网站建设saas排名成立公司的流程和要求及费用
  • 网站建设共享骨科医院网站优化服务商
  • 肯尼亚网站域名万能进销存软件免费版
  • 做商城网站价格上海做网站建设
  • 广州制作外贸网站公司阿里云网站模板
  • 做网站为什么要买服务器十堰城市建设网站
  • 西安网站seo技术厂家东莞如何制作免费的网页
  • 做旅游的网站的目的和意义极限优化wordpress
  • 做美食视频网站有哪些品牌营销策划机构
  • 佛山知名营销网站开发wordpress可视化编辑器排行
  • 石岩做网站哪家好石家庄做网站设计
  • 建设网站需要冠县做网站
  • 保定网站seo哪家公司好wordpress教程视频下载
  • 网站开发 哪些文档网站海外推广方法
  • 广西建设局网站首页如何做条形码网站怎么搞
  • 琼海建设网站wordpress 商城站下载地址
  • 网站需要多大数据库divider wordpress
  • 兰州北京网站建设网络广告推广网站
  • 宁晋网站建设森网站建设
  • 网站没有收录原因trel域名
  • 建设门户网站的目的和需求台州专业网站建设方案
  • 苏州网站建设系统方案成都行业网站设计
  • wordpress多说读者墙seo分析师招聘