常に自分を優先することを忘れないでください。
前回のブログですでにel-treeのスタイル変更の一種【Vueプロジェクト実戦7】【ElementUIスタイルの最適化】を紹介していますel-tree ==>グレーディングアイコンの追加==>ガイドラインスタイルの追加==>[ノード- クリック] ノードをクリックしてすべての親ノード情報を表示 ==> $store を使用してグローバル コンポーネントをカプセル化_Xiaobai Rachel のブログ - CSDN ブログ
このブログでは、別の el-tree スタイルの最適化を引き続き整理します。
このブログの効果を簡単に見てみましょう: (ニーズを満たしているかどうかを確認してください)
(1) CSSレイヤードアイコンとレイヤードスタイル(最大5レイヤーまで)
(2) 選択したノードの表示 [操作バー] には、子ノードの追加、現在のノードの変更、現在のノードの削除が含まれます。
(3) 選択ノード == 変更時は選択ノードと親ノードをエコーし、追加時は現在のノードを表示。
(4) 新しい第 1 レベル ノードを追加する
(5) 親ノードは、Zoyi に付属の treeselect コンポーネントを使用します。
目次
1. 新しい第 1 レベルのリソース グループを作成します (ポップアップ ボックス)。
3. 選択したノード (箇条書きボックス) の子ノードを追加/変更します。
4. 親ノードは Zoyi 独自の treeselect コンポーネントを使用します
1.基本的なツリー構造
まず、最も基本的なツリー構造を与えます (1) ノードはデフォルトで展開されます; (2) 展開と折りたたみの効果をキャンセルします
<template>
<div class="app-content">
<div class="app-container">
<!-- 资源分组树 -->
<div>
<div style="height: 400px; padding-bottom: 10px; width: 200px">
<div class="treeBox">
<el-tree
:data="resourceData.data"
node-key="id"
ref="tree"
default-expand-all
:expand-on-click-node="false"
:props="defaultProps"
class="tree"
style="width: 100%"
@node-click="handle"
highlight-current
>
</el-tree>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "resourceTree",
data() {
return {
defaultProps: {
children: "children",
label: "name",
value: "id",
},
resourceData: {
code: 200,
message: "SUCCESS",
data: [
{
id: "c21d02ec204c3d9f9591a45a67f58195",
name: "在用资源",
parentId: "",
children: [
{
id: "5cbf0e4bf6c455f2b90f26dccc7f2c7c",
name: "测试组1",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [
{
id: "af5c690fb122371074db20eb19e474b2",
name: "测试组1.3",
parentId: "5cbf0e4bf6c455f2b90f26dccc7f2c7c",
children: [
{
id: "e5268c1b5f6fb09152739fc07cfc2a4b",
name: "测试组1.4",
parentId: "af5c690fb122371074db20eb19e474b2",
children: [
{
id: "a02b0e65def409e6b217c01f54e5732a",
name: "测试组1.5",
parentId: "e5268c1b5f6fb09152739fc07cfc2a4b",
children: [],
},
],
},
],
},
],
},
{
id: "88f69770e9d94e32d81ea49eb2bf05e8",
name: "测试组2",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [],
},
{
id: "294c01cd26f41cb54dd75c0098335b5b",
name: "317平台",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [
{
id: "936fba4555abad9872803d90a5304fdc",
name: "烽火",
parentId: "294c01cd26f41cb54dd75c0098335b5b",
children: [
{
id: "4a5d79d291fc74e495d6ee7129fa213e",
name: "涉访专项",
parentId: "936fba4555abad9872803d90a5304fdc",
children: [],
},
],
},
],
},
{
id: "cb6cd8a969c41698e00f7c6a9ad36d38",
name: "zB系统",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [],
},
],
},
{
id: "eaced9ffb820418cbe98691c781c6baa",
name: "空闲资源",
parentId: "",
children: [],
},
],
success: true,
},
treeGroup: [],
};
},
created() {},
methods: {},
};
</script>
<style lang="scss" rel="stylesheet/scss" scoped>
</style>
2. ツリーのフロントエンド スタイルを最適化する
UI によって与えられたデザイン ドラフトは次のとおりです。
1. リソース グルーピング ツリーの入力フォーム
観察に注意してください。実際には入力フォームではありませんが、スタイルは入力に少し似ています
ツリー ノードに入力を追加すると、次のようになります。
既存の問題: 入力に組み込みのアイコンを追加する必要があります. 縦棒ブロガーを追加しても、このアイデアによる最終的な効果は得られませんでした. あなたはそれを試すことができます.
//-------------1.修改节点input框样式----------
.el-tree ::v-deep .el-tree-node .el-tree-node__content {
width: 260px;
height: 40px;
background: rgb(255, 255, 255);
margin: 5px 40px 0px 8px;
color: #666666;
font-size: 14px;
border: 1px solid #d8d8d8;
border-radius: 4px;
padding-left: 4px !important;
}
// 节点和子节点的tab间距
.tree ::v-deep .el-tree-node {
position: relative;
padding-left: 46px;
}
// 选中之后的颜色变化
.el-tree ::v-deep .is-current > .el-tree-node__content {
border: 2px solid #2181f5;
}
変更された効果:
2. レイヤード アイコンとレイヤード スタイルを追加する
アイコンと内部カラー バー効果を追加するには、el-tree にコードを追加する必要があります。
<span class="custom-tree-node1" slot-scope="{ node, data }">
<span class="el-tree-node__label hh">{
{ node.label }}</span>
</span>
// ----------2.添加分层图标和样式--------
.custom-tree-node1 {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
// padding-left: 8px;
padding-top: 7px;
}
// 一级节点图标
.el-tree ::v-deep .el-tree-node__content .el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/1.png") no-repeat 0 3px;
}
// 颜色装饰
.el-tree ::v-deep .el-tree-node__content:before {
content: "";
min-width: 3px !important;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #103289;
}
// 二级节点
.el-tree ::v-deep .el-tree-node__children .el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/2.png") no-repeat 0 3px;
}
.el-tree ::v-deep .el-tree-node__children .el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #506cfe;
}
// 三级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/3.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #2181f5;
}
// 四级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/4.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #00b9ff;
}
// 五级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/5.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #fe9c50;
}
// 调整文字label高度
.hh {
background: #fe9c50;
content: "";
display: block;
width: 3px;
height: 26px;
background-size: 16px;
margin-right: 10px;
}
//-------------1.修改节点input框样式----------
.el-tree ::v-deep .el-tree-node .el-tree-node__content {
width: 260px;
height: 40px;
background: rgb(255, 255, 255);
margin: 5px 40px 0px 8px;
color: #666666;
font-size: 14px;
border: 1px solid #d8d8d8;
border-radius: 4px;
padding-left: 4px !important;
}
// 节点和子节点的tab间距
.tree ::v-deep .el-tree-node {
position: relative;
padding-left: 46px;
}
// 选中之后的颜色变化
.el-tree ::v-deep .is-current > .el-tree-node__content {
border: 2px solid #2181f5;
}
3. 機能効果を追加する
効果の説明: (1) [新しい第 1 レベルのリソース グループ] をクリックし、ポップアップ ボックスにグループを追加します。
(2) ノードをクリックした後 ==> ノードに操作バー {新規、変更、削除} が表示されます。
(3) ノードをクリックした後 ==> [新規] をクリック ==> ポップアップ ボックスでサブノード グループを追加
(4) ノードをクリックした後 ==> 「変更」をクリック ==> ポップアップ ボックスでノードを変更し、同時に上位レベルの変更をサポートします。
(5) ノードをクリックした後 ==> 「削除」をクリック ==> ノードとそのノードのすべての子ノードを削除
1. 新しい第 1 レベルのリソース グループを作成します (ポップアップ ボックス)。
主にデータフィールドを含む
title: "", // 弹框标题-新建/编辑
newVis: false, // 控制弹框显示
form: {}, //弹框表格
isfirst: false, // 是否是新建一级节点-控制父节点显示
isEdit: false, // 编辑-删除
rule: {
name: [
{ required: true, message: "请输入", trigger: "blur" },
],
},
(1) [新しい第 1 レベル グループの作成] をクリックすると、handle1() 関数が呼び出されます。
(2) 新しいVIを使用して、ブレットボックスの表示を制御します。==> title はタイトル テキストを制御します。
(3) バインディング ルール検証ルール。
(4) isfirst を使用して、それが新しい第 1 レベル ノードかどうかを判断します ==> フォーム内の「親ノード」を非表示にする必要があります
<!-- 新建=编辑 弹窗 -->
<el-dialog
:close-on-click-modal="false"
:title="title"
:visible.sync="newVis"
width="500px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rule" label-width="120px">
<el-form-item label="父节点:" prop="parentId" v-if="!isfirst">
<!-- <el-input v-model="form.parentId" placeholder="请输入" /> -->
<treeselect
v-model="form.parentId"
:multiple="false"
:options="treeData"
:props="fullProps"
placeholder="请选择"
:normalizer="normalizer"
:disabled="isEdit ? false : true"
/>
</el-form-item>
<el-form-item label="资源分组名称:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
size="mini"
@click="createGroup()"
v-if="isEdit ? false : true"
>确 定</el-button
>
<el-button type="primary" size="mini" @click="editGroup()" v-else
>修 改</el-button
>
<el-button @click="cancel()" size="mini">取 消</el-button>
</div>
</el-dialog>
2. ノードをクリックすると[操作バー]が表示されます
(1) operationVis は操作バーの表示と非表示を制御するために使用されます; ==> 選択されたノードの ID を this.operationVis = data.id; in handleNodeClick() に記録することにより、el-tree で選択されたノードを見つけます。
次のコードを el-tree コンポーネントに追加します。
<div class="tree">
<el-tree
ref="tree"
:data="treeData"
:check-strictly="true"
node-key="id"
default-expand-all
:props="defaultProps"
style="width: 900px"
highlight-current
check-on-click-node
:expand-on-click-node="false"
@node-click="handleNodeClick"
>
<!-- @check="changetree"
@check-change="handleNodeClick" -->
<span class="custom-tree-node1" slot-scope="{ node, data }">
<!-- <span class="el-tree-node__label"></span>-->
<span class="el-tree-node__label hh">{
{ node.label }}</span>
<span class="operation1" v-show="data.id == operationVis">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handle(0)"
>新建</el-button
>
<el-button plain size="mini" @click="handle(1)">修改</el-button>
<el-button plain size="mini" @click="handleDelete()"
>删除</el-button
>
</span>
</span>
</el-tree>
</div>
(2) setCheckedKeys 現在チェックされているノードをキーで設定
this.$refs.tree.setCheckedKeys([data.id]); を使用して、現在のノードの ID を記録します。これは、この操作を追加するときに親ノードの情報を取得したり、編集時に情報をエコーしたりするのに便利です。
// 树节点击函数
handleNodeClick(data) {
// if (data.id !== "eaced9ffb820418cbe98691c781c6baa") { // 空闲节点不可编辑
this.operationVis = data.id;
// } else {
// this.operationVis = -1;
// }
this.$refs.tree.setCheckedKeys([data.id]);
},
3. 選択したノード (箇条書きボックス) の子ノードを追加/変更します。
// 次の 3 つの関数を区別する
getCurrentNode 現在選択されているノードのデータを取得します。ノードが選択されていない場合は null を返します
getCheckedNodes ノードを選択できる場合、現在選択されているノードの配列を返します
getCheckedKeys ノードを選択できる場合、現在選択されているノードのキーの配列を返します
ノードを選択したら、選択したノードの情報を出力します
console.log("current", this.$refs.tree.getCurrentNode());
console.log("checked", this.$refs.tree.getCheckedNodes());
console.log("checkedkey", this.$refs.tree.getCheckedKeys());
(1) [追加] または [変更] をクリックして handel(0) を呼び出します; handle(1) はデータのエコーに使用されます
(2) 「追加」をクリックすると、親ノード情報がエコーされる必要があります
(3) [編集] をクリックすると、現在のノードと親ノードの情報をエコーする必要があります。
// 新建-修改弹框
handle(isEdit) {
this.isfirst = false;
this.isEdit = isEdit;
if (isEdit) {
// 如果没有选中-显示提示信息
if (this.$refs.tree.getCheckedKeys().length == 0) {
this.$message.warning("请选中资源分组进行修改");
} else {
this.title = "修改资源分组";
this.newVis = true;
this.form = {
parentId: this.$refs.tree.getCheckedNodes()[0].parentId
? this.$refs.tree.getCheckedNodes()[0].parentId
: null,
name: this.$refs.tree.getCheckedNodes()[0].name,
};
}
} else {
this.newVis = true;
this.title = "新建资源分组";
this.form = {
parentId: this.$refs.tree.getCheckedKeys()[0], // 选中的节点(可能是父节点)
name: "",
};
}
},
4. 親ノードは Zoyi 独自の treeselect コンポーネントを使用します
このシステムは、直接使用できる独自の treeselect コンポーネントを備えた Ruoyi フレームワークを使用します。ここでは詳しく説明しません。
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
components: { Treeselect },
<treeselect
v-model="form.parentId"
:multiple="false"
:options="resourceData.data"
:props="fullProps"
placeholder="请选择"
:normalizer="normalizer"
:disabled="isEdit ? false : true"
/>
添付資料:全ページコード(クイックルック)
<template>
<div class="app-content">
<div class="app-container">
<!-- 资源分组树 -->
<div>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="small"
@click="handle1()"
style="margin-left: 50px; width: 200px"
>新建一级资源分组</el-button
>
<div style="min-height: 400px; padding-bottom: 10px; width: 1000px">
<div class="treeBox">
<div class="tree">
<el-tree
ref="tree"
:data="resourceData.data"
:check-strictly="true"
node-key="id"
default-expand-all
:props="defaultProps"
style="width: 900px"
highlight-current
check-on-click-node
:expand-on-click-node="false"
@node-click="handleNodeClick"
>
<span class="custom-tree-node1" slot-scope="{ node, data }">
<span class="el-tree-node__label hh">{
{ node.label }}</span>
<span class="operation1" v-show="data.id == operationVis">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handle(0)"
>新建</el-button
>
<el-button plain size="mini" @click="handle(1)"
>修改</el-button
>
<el-button plain size="mini" @click="handleDelete()"
>删除</el-button
>
</span>
</span>
</el-tree>
</div>
</div>
</div>
</div>
<!-- 新建弹窗 -->
<el-dialog
:close-on-click-modal="false"
:title="title"
:visible.sync="newVis"
width="400px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rule" label-width="120px">
<el-form-item label="父节点:" prop="parentId" v-if="!isfirst">
<treeselect
v-model="form.parentId"
:multiple="false"
:options="resourceData.data"
:props="fullProps"
placeholder="请选择"
:normalizer="normalizer"
:disabled="isEdit ? false : true"
/>
</el-form-item>
<el-form-item label="资源分组名称:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
size="mini"
@click="createGroup()"
v-if="isEdit ? false : true"
>确 定</el-button
>
<el-button type="primary" size="mini" @click="editGroup()" v-else
>修 改</el-button
>
<el-button @click="cancel()" size="mini">取 消</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "groupTree",
components: { Treeselect },
data() {
return {
defaultProps: {
children: "children",
label: "name",
value: "id",
},
fullProps: {
children: "children",
label: "fullname",
value: "id",
},
resourceData: {
code: 200,
message: "SUCCESS",
data: [
{
id: "c21d02ec204c3d9f9591a45a67f58195",
name: "在用资源",
parentId: "",
children: [
{
id: "5cbf0e4bf6c455f2b90f26dccc7f2c7c",
name: "测试组1",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [
{
id: "af5c690fb122371074db20eb19e474b2",
name: "测试组1.3",
parentId: "5cbf0e4bf6c455f2b90f26dccc7f2c7c",
children: [
{
id: "e5268c1b5f6fb09152739fc07cfc2a4b",
name: "测试组1.4",
parentId: "af5c690fb122371074db20eb19e474b2",
children: [
{
id: "a02b0e65def409e6b217c01f54e5732a",
name: "测试组1.5",
parentId: "e5268c1b5f6fb09152739fc07cfc2a4b",
children: [],
},
],
},
],
},
],
},
{
id: "88f69770e9d94e32d81ea49eb2bf05e8",
name: "测试组2",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [],
},
{
id: "294c01cd26f41cb54dd75c0098335b5b",
name: "317平台",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [
{
id: "936fba4555abad9872803d90a5304fdc",
name: "烽火",
parentId: "294c01cd26f41cb54dd75c0098335b5b",
children: [
{
id: "4a5d79d291fc74e495d6ee7129fa213e",
name: "涉访专项",
parentId: "936fba4555abad9872803d90a5304fdc",
children: [],
},
],
},
],
},
{
id: "cb6cd8a969c41698e00f7c6a9ad36d38",
name: "zB系统",
parentId: "c21d02ec204c3d9f9591a45a67f58195",
children: [],
},
],
},
{
id: "eaced9ffb820418cbe98691c781c6baa",
name: "空闲资源",
parentId: "",
children: [],
},
],
success: true,
},
treeGroup: [],
// -------------三---------------
title: "", // 弹框标题-新建/编辑
newVis: false, // 控制弹框显示
form: {}, //弹框表格
isfirst: false, // 是否是新建一级节点-控制父节点显示
isEdit: false, // 编辑-删除
rule: {
name: [
{ required: true, message: "请输入", trigger: "blur" },
{
min: 2,
max: 20,
message: "资源分组名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
],
},
operationVis: "", // 控制操作栏展示与隐藏
};
},
created() {},
methods: {
// 新建-编辑弹框控制函数
handle1() {
this.newVis = true;
this.title = "新建资源分组";
this.isfirst = true;
this.form = {
name: "",
};
},
// 树节点击函数
handleNodeClick(data) {
if (data.id !== "eaced9ffb820418cbe98691c781c6baa") {
this.operationVis = data.id;
} else {
this.operationVis = -1;
}
this.$refs.tree.setCheckedKeys([data.id]);
// this.$refs.tree.setCheckedNodes(data);
console.log("点击选中节点:", data.name);
console.log("checkedkey", this.$refs.tree.getCheckedKeys());
},
// 新建-修改弹框
handle(isEdit) {
this.isfirst = false;
this.isEdit = isEdit;
if (isEdit) {
this.title = "修改资源分组";
this.newVis = true;
// 修改资源-修改当前节点,回显其父节点
// console.log("current", this.$refs.tree.getCurrentNode());
console.log("checked", this.$refs.tree.getCheckedNodes());
console.log("checkedkey", this.$refs.tree.getCheckedKeys());
// console.log("currentNodeId", his.$refs.tree.getCheckedKeys()[0]);
this.form = {
parentId: this.$refs.tree.getCheckedNodes()[0].parentId
? this.$refs.tree.getCheckedNodes()[0].parentId
: null,
name: this.$refs.tree.getCheckedNodes()[0].name,
};
} else {
this.newVis = true;
this.title = "新建资源分组";
// 新增资源-在选中节点下添加
// console.log(this.$refs.tree.getCurrentKey(), "current");
console.log(this.$refs.tree.getCheckedKeys(), "checked");
this.form = {
parentId: this.$refs.tree.getCheckedKeys()[0], // 选中的节点(可能是父节点)
name: "",
};
}
},
// 格式化节点
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children,
};
},
createGroup() {},
editGroup() {},
cancel() {
this.newVis = false;
this.deleteVis = false;
},
handleDelet() {},
},
};
</script>
<style lang="scss" rel="stylesheet/scss" scoped>
.tree {
}
//-------------1.修改节点input框样式----------
.el-tree ::v-deep .el-tree-node .el-tree-node__content {
width: 200px;
height: 40px;
background: rgb(255, 255, 255);
margin: 5px 40px 0px 8px;
color: #666666;
font-size: 14px;
border: 1px solid #d8d8d8;
border-radius: 4px;
padding-left: 4px !important;
}
// 节点和子节点的tab间距
.tree ::v-deep .el-tree-node {
position: relative;
padding-left: 46px;
}
// 选中之后的颜色变化
.el-tree ::v-deep .is-current > .el-tree-node__content {
border: 2px solid #2181f5;
}
// ----------2.添加分层图标和样式--------
.custom-tree-node1 {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
// padding-left: 8px;
padding-top: 7px;
}
// 一级节点图标
.el-tree ::v-deep .el-tree-node__content .el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/1.png") no-repeat 0 3px;
}
// 颜色装饰
.el-tree ::v-deep .el-tree-node__content:before {
content: "";
min-width: 3px !important;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #103289;
}
// 二级节点
.el-tree ::v-deep .el-tree-node__children .el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/2.png") no-repeat 0 3px;
}
.el-tree ::v-deep .el-tree-node__children .el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #506cfe;
}
// 三级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/3.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #2181f5;
}
// 四级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/4.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #00b9ff;
}
// 五级节点
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__label {
padding-left: 15px;
background: url("~@/assets/images/tree/5.png") no-repeat 0 3px;
}
.el-tree
::v-deep
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__children
.el-tree-node__content:before {
content: "";
width: 3px;
height: 30px;
/*display: inline-block 允许在元素上设置宽度和高度*/
display: inline-block;
background: #fe9c50;
}
// 调整文字label高度
.hh {
background: #fe9c50;
content: "";
display: block;
width: 3px;
height: 26px;
background-size: 16px;
margin-right: 10px;
}
.operation1 {
margin-left: 150px;
padding-bottom: 7px;
}
</style>