首页 > 其他分享 >表单

表单

时间:2023-06-21 11:46:24浏览次数:36  
标签:arr value 表单 item options selectedOptions children

城市级联

  1. 数据来源:外链
  2. 应用:
<template>
<el-form>
        <el-form-item>
          <el-input
            placeholder="市-区 街道"
            v-model="address"
            readonly
            @click.native="clickAddress"
          />
          <van-popup v-model="show" position="bottom">
            <!-- <van-area
              :columns-placeholder="['请选择', '请选择', '请选择']"
              :area-list="AreaList"
              title="标题"
              @confirm="handleConfirm"
            /> -->
            <van-cascader
              class="component-area"
              v-model="cascaderValue"
              title="请选择市-区 街道"
              :options="options"
              :field-names="fileNames"
              @close="onClose"
              @finish="handleConfirm"
              @change="onChange"
              active-color="#2da7fd"
            />
          </van-popup>
        </el-form-item>
</el-form>
</template>
<script>
import AreaList from "@/data/area_format_array.js";
export default {
  data() {
    return {
      options: [],
      fileNames: { text: "n", value: "i" },
      cascaderValue: null,
	  show: false,
    };
  },
  created() {
    this.init();
  },
  methods: {
  onClose() {
      this.show = false;
    },
    onChange({ selectedOptions, value, tabIndex }) {
      let arr, subIndex;
      let index = this.options.findIndex(
        (item) => item.i === selectedOptions[0].i
      );
      switch (tabIndex) {
        case 0:
          arr = AreaList.filter((item) => item.p === value).map((item) => {
            item.children = [];
            return item;
          });
          this.options[index].children = arr;
          break;
        case 1:
          subIndex = selectedOptions[0].children.findIndex(
            (item) => item.i === value
          );
          arr = AreaList.filter((item) => item.p === value).map((item) => {
            item.children = [];
            return item;
          });
          this.options[index].children[subIndex].children = arr;
          break;
        case 2:
          let subSubIndex = selectedOptions[1].children.findIndex(
            (item) => item.i === value
          );
          subIndex = selectedOptions[0].children.findIndex(
            (item) => item.i === selectedOptions[1].i
          );
          arr = AreaList.filter((item) => item.p === value);
          this.options[index].children[subIndex].children[
            subSubIndex
          ].children = arr;
      }
    },
    init() {
      this.options = AreaList.filter((item) => item.p === 0).map((item) => {
        item.children = [];
        return item;
      });
    },
    clickAddress() {
      this.show = true;
    },
    handleConfirm(data) {
      this.address = selectedOptions.reduce((prev, curr) => prev + curr.n, "");
      this.show = false;
    },
  }
}
</script>
  1. 效果图
    image
  2. 涉及到的文件:

标签:arr,value,表单,item,options,selectedOptions,children
From: https://www.cnblogs.com/zxn-114477/p/17495803.html

相关文章

  • 一文讲清楚表单制作工具的用处
    如果想要提升表格制作效率和质量,用什么样的工具可以实现这一目的?在低代码开发时代,应用在线表单制作工具可以给广大用户提升办公协作效率,摒弃传统表格效率低下、制作不灵活等劣势,实现高效率发展。针对广大用户朋友关心的话题,小编就表单制作工具的优点、作用等问题,给大家做一个详细......
  • (五)表单、表单控件
    一、表单 二、表单控件 ......
  • \b 代表单词字符的边界
    \b代表单词字符的边界,它本身不匹配任何字符。举个例子thisisanisland. 如果你使用is去字符串中匹配,正则表达式同时会匹配前面的“is”也会匹配后面“<is>land”中的is。但如果加入了\bis\b只有前面的is才会被匹配。因为is的前后都是空格,空格并不属于单词......
  • HTML form表单上传图片
    <formaction="/"method="post"enctype="multipart/form-data"><div><inputclass="layui-btn"type="file"multiple="multiple"accept="image/*"name="image&q......
  • CSS(语义化标签、多媒体标签、新表单元素、属性选择器、结构伪类选择器、伪元素选择器
    一、HTML5新特性概述HTML5的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。这些新特性都有兼容性问题,基本是IE9+以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。1语义化标签(★★)以前布局,我们基本用div来做。di......
  • element表单校验
    通过一个案例来示意:element的表单校验html部分: <template><divid="app"><el-form:model="ruleForm"status-icon:rules="rules"ref="ruleForm"label-width="100px"class="demo-ruleForm">......
  • AntDesign自定义校验表单
    <a-rowclass="row":gutter="32"><a-col:span="16"><a-form-itemlabel="场景模板标签"name="tags"><a-......
  • 拖拽表单设计器有什么功能?
    在办公流程化盛行的当下,拖拽表单设计器也拥有广阔的市场前景。传统表单由于效率低、制作不灵活等缺陷,使得其在办公职场中使用频率越来越低。随着低代码技术平台的快速发展,可视化拖拽式设计器功能越来越完善,也得到了广大新老客户朋友的喜爱和支持。接下来,我们就一起来了解这种表单......
  • 6. Vue.js 表单输入绑定 #yyds干货盘点#【yyds干货盘点】
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • python 模拟form表单流式上传文件
    如果机器上有PycURL,那么可以使用PycURL来上传文件。不过,由于PycURL需要用到curl,在Windows下安装可能会有点麻烦,除PycURL外,也有一些其它实现POST文件上传的方式,比如这儿的2楼有人贴出了一个将文件进行编码之后再POST的方法,另外还有MultipartPostHandler、urllib2_......