elementui之el-select和el-tree的合并使用单选

  <el-form-item label="所属分类">
            <el-select
              v-model="selectTreeText"
              placeholder="请选择"
              :popper-append-to-body="false"
              class="select-tree"
              style="width:250px"
              @change="selectChange"
            >
              <el-option style="height: auto;">
                <!-- option展开高度太小,把height设置为auto就好啦 -->
                <el-tree
                  ref="tree"
                  :data="treeData"
                  node-key="id"
                  accordion
                  highlight-current
                  :props="defaultProps"
                  icon-class="el-icon-arrow-down"
                  @node-click="nodeclick"
                />
              </el-option>
            </el-select>
  return {
      selectTreeText: '',
      treeData: [],
      defaultProps: {
        children: 'children',
        label: 'title'
      },
 temp: {
        id: '',
        name: '',
        courseTypeID: '',
        sortNumber: '1',
        remarks: ''

      },
}
getSortClass: function(key) {
      const sort = this.listQuery.sort
      return sort === `+${key}` ? 'ascending' : 'descending'
    },
    // select框值改变时候触发的事件
    selectChange(e) {
      var arrNew = []
      var dataLength = this.selectTreeValue.length
      var eleng = e.length
      for (let i = 0; i < dataLength; i++) {
        for (let j = 0; j < eleng; j++) {
          if (e[j] === this.selectTreeValue[i].label) {
            arrNew.push(this.selectTreeValue[i])
          }
        }
      }
      this.$refs.tree.setCheckedNodes(arrNew) // 设置勾选的值
    },
    nodeclick(data) {
      this.temp.courseTypeID = data.id
      this.selectTreeText = data.title
    },
<style lang="scss">
	.select-drop-down {
		position: relative;
	}

	.select-tree {
		.el-select-dropdown__item {
			padding: 0 10px;
		}

		.el-select-dropdown__item.hover,
		.el-select-dropdown__item:hover {
			background: transparent;
		}

		.el-tree-node__content {
			position: relative;
			// padding: 0 10px !important;
			// background-color: #f0f0fd;
		}

		// .el-tree-node__children {
		//   padding-left: 16px;
		//   background: #ccc !important;
		// }
		.expanded.el-tree-node__expand-icon.el-icon-arrow-down {
			position: absolute;
			top: 0;
			right: 0;
		}

		.el-tree-node__expand-icon {
			position: absolute;
			top: 0;
			right: 0;
		}

		.el-tree-node__expand-icon.expanded {
			transform: rotate(-180deg);
		}

		// .el-tree-node {
		//   padding: 0 10px;
		// }
	}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值