三级联动弹窗

<el-dialog title="选择类目" :show-close="false" :visible.sync="dialogVisibles" width="600px" center>
      <ul class="levelNav">
        <li>一级类目</li>
        <li>二级类目</li>
        <li>三级类目</li>
      </ul>
      <div class="num-box">
        <ul class="top">
          <li
            v-for="(item,index) in topLevel"
            :key="index"
            @click="showItem(1,item.id)"
            class="topL"
            :class="item.isCheck ?'active':''"
          >
            <div>{{item.name}}</div>
            <div v-if="item.children" class="el-icon-arrow-right"></div>
          </li>
        </ul>
        <ul class="center">
          <li
            class="topL"
            :class="item.isCheck ?'active':''"
            v-for="(item,index) in twoLevel"
            :key="index"
            @click="showItem(2,item.id)"
          >
            <div>{{item.name}}</div>
            <div v-if="item.children" class="el-icon-arrow-right"></div>
          </li>
        </ul>
        <ul class="last">
          <li
            class="lasts"
            :class="item.isCheck ?'active':''"
            v-for="(item,index) in threeLevel"
            :key="index"
            @click="showItem(3,item.id)"
          >{{item.name}}</li>
        </ul>
      </div>
      <div class="add-dialog-item btnlist">
        <el-button class="submit" @click="confirm">确认</el-button>
        <el-button @click="cancel">取消</el-button>
      </div>
    </el-dialog>
data(){
	return{
		topLevel: [
        {
          name: "货车",
          id: 1,
          isCheck: false,
          children: [
            {
              name: "货车二级",
              id: 1,
              isCheck: false,
              children: [
                {
                  name: "货车三级",
                  id: 1,
                  isCheck: false,
                },
              ],
            },
          ],
        },
        {
          name: "客车",
          id: 2,
          isCheck: false,
        },
        {
          name: "挂车",
          id: 3,
          isCheck: false,
          children: [
            {
              name: "挂车二级",
              id: 3,
              isCheck: false,
              children: [
                {
                  name: "挂车三级",
                  id: 3,
                  isCheck: false,
                },
              ],
            },
          ],
        },
      ],
      twoLevel: [],
      threeLevel: [],
	}
}
 showItem(key, params) {
      if (key == 1) {
        this.twoLevel = [];
        this.threeLevel = [];
        this.topLevel.forEach((item) => {
          item.isCheck = false;
          if (params == item.id) {
            this.selectName = item.name;
            item.isCheck = true;
            if (item.children) {
              item.children.forEach((items) => {
                items.isCheck = false;
              });
              this.twoLevel = item.children;
            }
          }
        });
      }
      if (key == 2) {
        this.twoLevel.forEach((item) => {
          item.isCheck = false;
          if (params == item.id) {
            this.selectName = this.selectName + ">" + item.name;
            item.isCheck = true;
            if (item.children) {
              item.children.forEach((items) => {
                items.isCheck = false;
              });
              this.threeLevel = item.children;
            }
          }
        });
      }
      if (key == 3) {
        this.threeLevel.forEach((item) => {
          item.isCheck = false;
          if (params == item.id) {
            this.selectName = this.selectName + ">" + item.name;
            item.isCheck = true;
          }
        });
      }
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值