发布于2021-09-24 20:15 阅读(2368) 评论(0) 点赞(23) 收藏(3)
效果:
对tree组件封装成treeComponent 组件,内容如下,从项目中选取
- <el-tree
- ref="tree"
- v-loading="loading"
- :data="treeData"
- v-bind="treeProps"
- @current-change="onCurrentChange"
- >
- <div slot-scope="{ node, data }" class="custom-tree-node">
- <span v-if="!data.showInput"> {{ node.label }}</span>
- <el-input
- v-else
- ref="inputVal"
- size="mini"
- :value="data.name.trim()"
- style="width:150px"
- :autofocus="true"
- @blur="onSaveNode( data)"
- @input="a => onInput(a, data)"
- />
- <div class="options">
- <el-button
- type="text"
- size="mini"
- icon="el-icon-edit"
- @click.stop="() => onEditNode(data)"
- />
- <el-button
- type="text"
- size="mini"
- icon="el-icon-plus"
- @click.stop="() => $emit('append-node', data)"
- />
- <confirm-button
- :button-props="buttonProps"
- :ok-button-props="okButtonProps"
- :content="`确认删除此节点吗?`"
- @ok="$emit('delete-node', data)"
- />
- </template>
- </div>
- </el-tree>
- <script>
- export default {
- data() {
- return {
- oldNodeName: '',
- treeData: [],
- }
- },
- computed: {
- treeProps() {
- return {
- props: {
- label: 'name'
- },
- 'node-key': 'id',
- 'default-expand-all': true,
- 'expand-on-click-node': false,
- 'highlight-current': true,
- ...this.$attrs
- }
- }
- },
- mounted() {
- // treeData 你的数据,结构类似
- // const treeData = [
- // {
- // id: 1,
- // name: '一级 1',
- // showInput: false, // 作用:是否显示input框
- // children: [
- // {
- // id: 4,
- // name: '二级 1-1',
- // showInput: false,
- // children: [
- // {
- // id: 9,
- // name: '三级 1-1-1',
- // showInput: false // 作用:是否显示input框
- // },
- // {
- // id: 10,
- // name: '三级 1-1-2',
- // showInput: false // 作用:是否显示input框
- // }
- // ]
- // }
- // ]
- this.treeData = treeData
- },
- // 点击修改节点
- onEditNode(data) {
- this.onChangeShowInput(data)
- this.oldNodeName = data.name.trim()
- this.$nextTick(() => {
- this.$refs.inputVal.focus()
- })
- },
- // input框编辑失去焦点
- onSaveNode(data) {
- if (this.oldNodeName !== data.name.trim()) {
- this.$emit('edit-node', data, (isOk) => {
- if (isOk) {
- this.onChangeShowInput(data)
- } else {
- this.$refs.inputVal.focus()
- }
- })
- } else {
- this.onChangeShowInput(data)
- }
- },
- onInput(value, data) {
- data.name = value
- },
- onChangeShowInput(data) {
- data.showInput = !data.showInput
- },
- onCurrentChange() {
- }
- }
- </script>
原文链接:https://blog.csdn.net/ismmc/article/details/120435946
作者:加油打工人
链接:http://www.qianduanheidong.com/blog/article/192828/3acb0916e5615637b800/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!