【Vue-Element UI】三级表单可选框以及显示、修改和删除表单属性

目录

三级表单可选框

静态界面

收集数据 

获取数据

属性值内容显示 

一些知识点

(1)Vue.nextTick()

(2)$set

(3) ref

(4)一些数组方法

(5)深拷贝

(6)@blur


三级表单可选框

效果:

这里是后台管理系统的三级选择器,只有当第一级分类选中属性时,第二个才能选,以此类推

静态界面

Element ui里面的表单选择器:组件 | Element

这里用到的Form属性: 

inline属性可以让表单域变为行内的表单域    inline为true代表的是行内表单,代表一行可以放置多个表单元素

model属性为表单的数据对象

这里用到的Form-Item属性 :

label属性:标签的文本

    <el-form :inline="true" class="demo-form-inline" :model="cForm">
      <el-form-item label="一级分类">
        <el-select placeholder="请选择" value="" v-model="cForm.category1Id" @change="handle1">
          <el-option :label="c1.name" :value="c1.id" v-for="(c1,index) in list1" :key="c1.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="二级分类">
        <el-select placeholder="请选择" value="" v-model="cForm.category2Id" @change="handle2">
          <el-option :label="c2.name" :value="c2.id" v-for="(c2,index) in list2" :key="c2.id"></el-option>
        </el-select>
      </el-form-item>
            <el-form-item label="三级分类">
        <el-select placeholder="请选择" value="" v-model="cForm.category3Id" @change="handle3">
          <el-option :label="c3.name" :value="c3.id" v-for="(c3,index) in list3" :key="c3.id"></el-option>
        </el-select>
      </el-form-item>
    </el-form>

收集数据 

需要调取服务器的数据,利用v-model,把三个分类的数据先在data中收集空数组:

 data() {
    return {
        //一级分类的数据
        list1:[],
        //二级分类的数据
        list2:[],
        //三级分类的数据
        list3:[],
        //收集相应一级二级三级分类的id
        cForm:{
            category1Id:'',
            category2Id:'',
            category3Id:''
        }
    };
  },

三级分类的内容都会携带id

所以利用cForm在data中收集了三级分类的不同内容的id。

获取数据

当组件挂载完毕:向服务器发请求,获取相应的数据

  mounted(){
      this.getCategory1List()
  },
  components: {},
  methods: {
    //获取一级分类数据方法
    async getCategory1List(){
        //获取一级分裂的数据 不需要携带参数
        let result = await this.$API.attr.reqCategory1List()
        if(result.code==200){
            this.list1=result.data
        }
    },
    
  }

当三级分类改变时,要响应相应的数据,当选择第一级分类的数据时,需要清除后面两级的数据,并且让它们的id置空,以此类推。

//一级分类select事件回调
    async handle1(){
        //当一级分类改变时,清除数据
        this.list2=[]
        this.list3=[]
        this.cForm.categ
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JS三级联动表单 <!-- var arrText = new Array(5); var arrValue = new Array(arrText.length); function objSetOption(select1, select2, select3) { this.select1 = select1; this.select2 = select2; this.select3 = select3; } arrText[0]= new objSetOption("选择1:", "选择2_1:,选择2_2:", "选择3_1:,选择3_2:"); arrText[1] = new objSetOption("论文:1", "语文:1,数学:2,英语:3", "初中:2,高中:3"); arrText[2] = new objSetOption("例题:2", "显示b2_1:值b2_1,显示b2_2:值b2_2", "显示b3_1:值b3_1,显示b3_2:值b3_2"); arrText[3] = new objSetOption("显示c:值c", "显示c2_1:值c2_1,显示c2_2:值c2_2", "显示c3_1:值c3_1,显示c3_2:值c3_2"); arrText[4] = new objSetOption("显示d:值d", "显示d2_1:值d2_1,显示d2_2:值d2_2", "显示d3_1:值d3_1,显示d3_2:值d3_2"); arrText[5] = new objSetOption("显示e:值e", "显示e2_1:值e2_1,显示e2_2:值e2_2", "显示e3_1:值e3_1,显示e3_2:值e3_2"); function select() { var eltSelect1 = document.test.select1; var eltSelect2 = document.test.select2; var eltSelect3 = document.test.select3; var arrSelect1, arrSelect2, arrSelect3; var arrData1, arrData2, arrData3; with(eltSelect1) { var strSelect = options[selectedIndex].value; } for(i = 0;i < arrText.length;i ++) { arrSelect1 = arrText[i].select1; arrData1 = arrSelect1.split(":"); if (arrData1[1] == strSelect) { arrSelect2 = (arrText[i].select2).split(","); for(j = 0;j < arrSelect2.length;j++) { arrData2 = arrSelect2[j].split(":"); with(eltSelect2) { length = arrSelect2.length; options[j].text = arrData2[0]; options[j].value = arrData2[1]; } } arrSelect3 = (arrText[i].select3).split(","); for(j = 0;j < arrSelect3.length;j++) { arrData3 = arrSelect3[j].split(":"); with(eltSelect3) { length = arrSelect3.length; options[j].text = arrData3[0]; options[j].val
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翘阳啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值