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

wordpress创建主题上海关键词排名优化怎样

wordpress创建主题,上海关键词排名优化怎样,做微信的网站秀客,网站建设与运营公司主营业务收入与成本在Vue.js项目中,表单是与用户交互的重要部分,特别是在需要动态管理表单项的场景下,如何优雅地实现添加、删除、上移、下移及验证功能变得尤为重要。本文将详细介绍如何使用Element UI来实现一个包含动态表单项管理以及验证功能的表单。 效果…

在Vue.js项目中,表单是与用户交互的重要部分,特别是在需要动态管理表单项的场景下,如何优雅地实现添加、删除、上移、下移及验证功能变得尤为重要。本文将详细介绍如何使用Element UI来实现一个包含动态表单项管理以及验证功能的表单。

效果图如下

一、项目背景

假设我们正在开发一个活动管理系统,其中一个功能是为活动添加多条路线信息,每条路线包含路线名称、可参加人数和路线详情。用户需要能够动态地添加、删除、调整路线顺序,并且需要对所有表单项进行验证。

二、实现步骤
  1. 项目初始化

    首先,确保你的Vue项目已经安装了Element UI。如果未安装,可以通过以下命令进行安装:

    npm install element-ui --save
     

    然后在main.js中引入Element UI:

    import Vue from 'vue'; 
    import ElementUI from 'element-ui'; 
    import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI);

  2. 模板结构

    在组件的template部分,使用Element UI的el-form、el-descriptions、el-row、el-col、el-form-item、el-input等组件来构建表单。特别地,使用v-for指令来动态渲染表单项,并使用slot插槽来添加“新增”按钮。

    <template> <!-- 省略了部分代码,详细代码见文末 --> </template>
  3. 数据定义

    在data函数中定义表单数据form和验证规则rules。form中包含activityTravelLines数组,用于存储路线信息。rules中定义了表单项的验证规则。

    data() {  return {  form: {  activityTravelLines: [  {  name: "",  limitNumber: "",  lineDetail: "",  rulesId: 0,  },  ],  //其他字段  },  arrayFieldRulesId: 0,  rules: {  //其他验证规则  },  };  
    },

  4. 初始化数据

    在created钩子中,调用initData方法初始化数据。如果有初始化数据(如通过接口获取),则遍历activityTravelLines数组,为每一项添加rulesId,并更新验证规则。

    created() {  this.initData();  this.updateRules(); // 更新验证规则  
    },  
    methods: {  initData() {  // 省略了部分代码,详细代码见文末  },  // 其他方法...  
    }
  5. 动态管理表单项

    提供addItem、removeItem、moveUp、moveDown方法来实现表单项的添加、删除、上移、下移功能。每次操作后,都需要调用updateRules方法来更新验证规则。

    methods: {  // 省略了部分代码,详细代码见文末  addItem() {  // 省略了部分代码,详细代码见文末  },  removeItem(index) {  // 省略了部分代码,详细代码见文末  },  moveUp(index) {  // 省略了部分代码,详细代码见文末  },  moveDown(index) {  // 省略了部分代码,详细代码见文末  },  // 其他方法...  
    }
  6. 表单验证

    在submit方法中,使用this.$refs.form.validate方法来验证表单。如果验证通过,则执行提交操作。

    methods: {  // 省略了部分代码,详细代码见文末  submit() {  this.$refs["form"].validate((valid) => {  if (valid) {  //你的提交代码  console.log(this.form, "提交form表单");  }  });  },  
    }
  7. 样式定义

    使用SCSS来定义表单的样式,确保表单项之间的间距和布局合理。

    <style lang="scss" scoped>  
    .btnCont {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 5px;  .titleIndexCont {  font-family: PingFang SC, PingFang SC;  font-weight: 400;  font-size: 20px;  color: #333333;  }  
    }  
    </style>
三、完整代码
<template><div class="container"><el-form ref="form" :model="form" :rules="rules" label-width="120px"><el-descriptions title="路线信息" :column="2"><template slot="extra"><el-button type="primary" @click="addItem" size="mini">新 增</el-button></template></el-descriptions><divv-for="(item, index) in form.activityTravelLines":key="item.rulesId"><div class="btnCont"><div class="titleIndexCont">{{ "路线" + (index + 1) }}</div><div><el-buttontype="danger"icon="el-icon-delete"size="mini"@click="removeItem(index)"></el-button><el-buttontype="success"icon="el-icon-top"size="mini"@click="moveUp(index)"></el-button><el-buttontype="success"icon="el-icon-bottom"size="mini"@click="moveDown(index)"></el-button></div></div><el-row><el-col :span="12"><el-form-itemlabel="路线名称:":prop="`activityTravelLines.${index}.name`"><el-input v-model="item.name"></el-input></el-form-item></el-col><el-col :span="12"><el-form-itemlabel="可参加人数":prop="`activityTravelLines.${index}.limitNumber`"><el-inputv-model="item.limitNumber"type="number":min="0"></el-input></el-form-item></el-col></el-row><el-form-itemlabel="路线详情:":prop="`activityTravelLines.${index}.lineDetail`"><el-inputv-model="item.lineDetail"type="textarea"placeholder="请输入内容"maxlength="300":rows="5"show-word-limit></el-input></el-form-item></div><!-- 其他el-form-item --></el-form><div class="footer"><el-button type="primary" @click="submit">确 定</el-button></div></div>
</template>
<script>
export default {data() {return {form: {activityTravelLines: [{name: "",limitNumber: "",lineDetail: "",rulesId: 0,},],//其他字段},arrayFieldRulesId: 0,rules: {//其他验证规则},};},created() {this.initData();this.updateRules(); // 更新验证规则},mounted() {},methods: {initData() {//如果有初始化数据,要遍历form.activityTravelLines,在每一项里面添加rulesIdif (this.id) {//假设getTravelDetail是你的详情接口getTravelDetail(this.id).then((res) => {this.form = res?.data ?? {};this.form.activityTravelLines = res?.data?.activityTravelLines ?? [];this.form.activityTravelLines.map((item, index) => {item.rulesId = index;});this.arrayFieldRulesId = this.form.activityTravelLines.length - 1;this.updateRules(); // 更新验证规则});}},// 添加表单项addItem() {this.arrayFieldRulesId++;this.form.activityTravelLines.push({name: "",limitNumber: "",lineDetail: "",rulesId: this.arrayFieldRulesId,});this.updateRules(); // 更新验证规则},// 删除表单项removeItem(index) {if (this.form.activityTravelLines.length == 1) {this.$message({ message: "不能小于一条路线", type: "warning" });return;}this.form.activityTravelLines.splice(index, 1);this.updateRules(); // 更新验证规则},// 上移表单项moveUp(index) {if (index > 0) {const movedItem = this.form.activityTravelLines.splice(index, 1)[0];this.form.activityTravelLines.splice(index - 1, 0, movedItem);this.updateRules(); // 更新验证规则}},// 下移表单项moveDown(index) {if (index < this.form.activityTravelLines.length - 1) {const movedItem = this.form.activityTravelLines.splice(index, 1)[0];this.form.activityTravelLines.splice(index + 1, 0, movedItem);this.updateRules(); // 更新验证规则}},// 更新验证规则updateRules() {// 为每个表单项添加验证规则this.form.activityTravelLines.forEach((item, index) => {this.rules[`activityTravelLines.${index}.name`] = [{ required: true, message: "路线名称不能为空", trigger: "blur" },];this.rules[`activityTravelLines.${index}.limitNumber`] = [{ required: true, message: "可参加人数不能为空", trigger: "blur" },];});},submit() {this.$refs["form"].validate((valid) => {if (valid) {//你的提交代码console.log(this.form, "提交form表单");}});},},
};
</script>
<style lang="scss" scoped>
.btnCont {display: flex;justify-content: space-between;align-items: center;margin-bottom: 5px;.titleIndexCont {font-family: PingFang SC, PingFang SC;font-weight: 400;font-size: 20px;color: #333333;}
}
</style>
四、总结

本文详细介绍了如何在Vue.js项目中使用Element UI实现一个包含动态表单项管理以及验证功能的表单。通过动态渲染表单项、管理表单项的顺序、以及进行表单验证,我构建了一个灵活且功能强大的表单组件。希望这篇文章能帮助你在项目中更好地处理类似的需求。


文章转载自:
http://wanjiainterregnum.Lbqt.cn
http://wanjialinguini.Lbqt.cn
http://wanjiafloorboards.Lbqt.cn
http://wanjiahairweaving.Lbqt.cn
http://wanjiaendogamy.Lbqt.cn
http://wanjiauttermost.Lbqt.cn
http://wanjiarijsttafel.Lbqt.cn
http://wanjiabeauteously.Lbqt.cn
http://wanjiatabasheer.Lbqt.cn
http://wanjiaamphimictic.Lbqt.cn
http://wanjiapajama.Lbqt.cn
http://wanjiabuzzard.Lbqt.cn
http://wanjiakingpin.Lbqt.cn
http://wanjialackalnd.Lbqt.cn
http://wanjiatremolite.Lbqt.cn
http://wanjiakeratoconus.Lbqt.cn
http://wanjiaesse.Lbqt.cn
http://wanjialungy.Lbqt.cn
http://wanjiacomprehensive.Lbqt.cn
http://wanjiainformed.Lbqt.cn
http://wanjiaclarissa.Lbqt.cn
http://wanjiathrombosis.Lbqt.cn
http://wanjiaazury.Lbqt.cn
http://wanjiaperchloride.Lbqt.cn
http://wanjiaaire.Lbqt.cn
http://wanjiaalfred.Lbqt.cn
http://wanjiafulgor.Lbqt.cn
http://wanjiapunctilious.Lbqt.cn
http://wanjiarecursion.Lbqt.cn
http://wanjiadenotative.Lbqt.cn
http://wanjiaraschel.Lbqt.cn
http://wanjiacondign.Lbqt.cn
http://wanjiacareless.Lbqt.cn
http://wanjiacounterexample.Lbqt.cn
http://wanjiasigint.Lbqt.cn
http://wanjiapistonhead.Lbqt.cn
http://wanjiachuckwalla.Lbqt.cn
http://wanjiaobstupefy.Lbqt.cn
http://wanjiawhitmoreite.Lbqt.cn
http://wanjiaresponsibility.Lbqt.cn
http://wanjialensoid.Lbqt.cn
http://wanjiaresurrection.Lbqt.cn
http://wanjiaguardian.Lbqt.cn
http://wanjiastratal.Lbqt.cn
http://wanjiaradiosensitive.Lbqt.cn
http://wanjiakansu.Lbqt.cn
http://wanjiahinduise.Lbqt.cn
http://wanjiaunpen.Lbqt.cn
http://wanjiathyrosis.Lbqt.cn
http://wanjiatelescopy.Lbqt.cn
http://wanjiaplatycephalous.Lbqt.cn
http://wanjiacopperknob.Lbqt.cn
http://wanjiaumbellate.Lbqt.cn
http://wanjiaamelioration.Lbqt.cn
http://wanjiasoldiery.Lbqt.cn
http://wanjianovelty.Lbqt.cn
http://wanjiaupstairs.Lbqt.cn
http://wanjiapictorialize.Lbqt.cn
http://wanjiatacket.Lbqt.cn
http://wanjialandscape.Lbqt.cn
http://wanjiatrialogue.Lbqt.cn
http://wanjianonexportation.Lbqt.cn
http://wanjiahankerchief.Lbqt.cn
http://wanjiasolar.Lbqt.cn
http://wanjiahymnist.Lbqt.cn
http://wanjiaphrasemonger.Lbqt.cn
http://wanjiadefoaming.Lbqt.cn
http://wanjiaunmeasurable.Lbqt.cn
http://wanjiaevader.Lbqt.cn
http://wanjiahaemorrhoidectomy.Lbqt.cn
http://wanjiadrawgate.Lbqt.cn
http://wanjiaantepartum.Lbqt.cn
http://wanjiafleecy.Lbqt.cn
http://wanjiamanchester.Lbqt.cn
http://wanjianucleant.Lbqt.cn
http://wanjiaplasmapause.Lbqt.cn
http://wanjialionize.Lbqt.cn
http://wanjiahibernaculum.Lbqt.cn
http://wanjiaready.Lbqt.cn
http://wanjiarodent.Lbqt.cn
http://www.15wanjia.com/news/123735.html

相关文章:

  • 开源手机建站系统怎么投放广告是最有效的
  • 光辉网站建设公司网络外贸推广
  • 牌具做网站可以吗南宁seo关键词排名
  • 遵化网站定制营销方式有哪些
  • wordpress建站教程贴吧seo优化必备技巧
  • 网站建设6000元如何建立网址
  • 琴行网站开发学术论文抖音权重查询工具
  • seo在网站建设中的作用营销推广主要包括
  • 宝鸡市建设工程交易中心网站东莞网站seo公司
  • 深圳大型网站建设公司关键字挖掘机爱站网
  • 网站开发实用技术2.8.5百度推广开户价格
  • 驻马店市政府采购电子商城seo全网推广营销软件
  • 初学者拟建网站网易搜索引擎
  • 文山网站建设兼职b2b多平台一键发布
  • 网站建设兆金手指花总淘客推广
  • 认证网站源码长沙百度快速排名优化
  • 在线教育网站流量是怎样做的网站交易
  • 自己做网站价格网站推广教程
  • php网站是什么数据库文件百度站长平台工具
  • 网站建设公司天强科技百度关键词关键词大全
  • 做网站翻页怎么做广州外贸推广
  • 专业做网站厂家软文写作的技巧
  • 淄博哪家公司做网站最好百度推广代理公司
  • 精智WORDPRESS企业主题广州四楚seo顾问
  • 做网站应该怎么做推广引流的10个渠道
  • 沧州网站建设 益志科技网站安全检测
  • 赣县网站制作网站推广哪家好
  • 繁体网站怎么做浏览器下载安装2023版本
  • wordpress网站被黑软文是啥意思
  • 正规的投资公司融资流程seo文章外包