当前位置:网站首页>el-tree结合el-table,树形添加修改操作
el-tree结合el-table,树形添加修改操作
2022-07-04 21:03:00 【七彩猫猫虫】
效果图

html
<div class="container">
<my-crumbs :crumbs="crumbs"></my-crumbs>
<contentArea ref="contentBox">
<div slot="btnCon">
<el-button
size="small"
icon="el-icon-plus"
type="primary"
@click="addGroup"
>新增事业群</el-button
>
</div>
<!-- <div slot="searchCon">
<el-button @click="searchBtn" icon="el-icon-search" type="primary" size="small"></el-button>
</div> -->
<!-- 搜索条件 -->
<div slot="searchBox">资产类型管理</div>
<!-- 表格部分 -->
<div slot="tableCon">
<el-row :gutter="24">
<el-col :xs="24" :sm="24" :md="6">
<div class="tree_box">
<el-card>
<div class="searchLeft">
<el-input
placeholder="输入关键字进行过滤"
v-model="filterText"
>
</el-input>
</div>
<el-tree
class="tree-line"
:data="treeData"
:props="defaultProps"
default-expand-all
:key="tree_key"
node-key="id"
:render-content="renderContent"
:expand-on-click-node="false"
:filter-node-method="filterNode"
@node-click="changeNodeTree"
ref="tree"
>
</el-tree>
</el-card>
</div>
</el-col>
<el-col :xs="24" :sm="24" :md="18">
<div class="table_box">
<el-card>
<el-table
:data="tableData"
ref="multipleTable"
style="width: 100%"
height="600"
v-loading="loading"
>
<el-table-column type="index" label="序号" width="120"
><template slot-scope="scope">
<span>{
{
(page - 1) * limit + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="事业群名" width="260">
</el-table-column>
<el-table-column prop="pid_name" label="上级事业群">
</el-table-column>
<el-table-column prop="remark" label="备注">
</el-table-column>
<el-table-column fixed="right" label="操作" align="center">
<template slot-scope="scope">
<el-button
@click="change(scope.row)"
type="text"
size="medium"
style="color: #f8ac59"
><div class="editBtn">
<div class="icon">
<img src="../../assets/icon/change.png" alt="" />
</div>
<div class="text charge">修改</div>
</div></el-button
>
</template>
</el-table-column>
</el-table>
<div class="page_box">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="pageSizes"
:page-size="limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</el-card>
</div>
</el-col>
</el-row>
</div>
</contentArea>
<!-- 新增分类 -->
<el-dialog
:title="title"
:visible.sync="groupDialogVisible"
width="40%"
@close="groupClose"
:close-on-click-modal="false"
>
<el-form
ref="addGroupForm"
:label-position="labelPosition"
:rules="groupRules"
label-width="120px"
:model="groupForm"
>
<el-form-item label="事业群名称:" prop="name">
<el-input
v-model="groupForm.name"
placeholder="请输入事业群名称"
></el-input>
</el-form-item>
<el-form-item label="上级事业群:" prop="pid">
<!-- <el-select v-model="groupForm.pid" placeholder="请选择上级事业群" style="width:100%" clearable>
<el-option
v-for="item in groupListNoTree"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> -->
<el-cascader
v-model="groupForm.pid"
filterable
placeholder="请选择事业群"
:show-all-levels="false"
:options="groupList"
:props="{ checkStrictly: true, emitPath: false }"
style="width: 100%"
></el-cascader>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input
v-model="groupForm.remark"
placeholder="请输入备注"
></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="groupDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="addGroupSubmit" v-if="!isChange"
>确 定</el-button
>
<el-button type="primary" @click="editSubmit" v-if="isChange"
>确 定</el-button
>
</span>
</el-dialog>
<!-- 新增子事业群 -->
<el-dialog
:title="titleChild"
:visible.sync="dialogAddChildFormVisible"
width="40%"
@close="closeChild"
>
<el-form
:model="addChildForm"
ref="addChildForm"
label-width="120px"
:rules="groupRules"
:label-position="labelPosition"
>
<el-form-item label="事业群名称:" prop="name">
<el-input
v-model="addChildForm.name"
placeholder="请输入事业群名称"
></el-input>
</el-form-item>
<el-form-item label="上级事业群:" prop="pid">
<!-- <el-select v-model="groupForm.pid" placeholder="请选择上级事业群" style="width:100%" clearable>
<el-option
v-for="item in groupListNoTree"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> -->
<el-cascader
v-model="addChildForm.pid"
filterable
placeholder="请选择上级事业群"
:show-all-levels="false"
:options="groupList"
:props="{ checkStrictly: true, emitPath: false }"
style="width: 100%"
></el-cascader>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input
v-model="addChildForm.remark"
placeholder="请输入备注"
></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogAddChildFormVisible = false">取 消</el-button>
<el-button
type="primary"
@click="addChildGroupSubmit"
v-if="!isChangeChild"
>确 定</el-button
>
<el-button type="primary" @click="editChildSubmit" v-if="isChangeChild"
>确 定</el-button
>
</span>
</el-dialog>
</div>
左边树样式
/* 树形结构样式 */
.el-tree /deep/ .node_box {
width: 100%;
height: 30px;
line-height: 30px;
margin: 2px 0;
overflow: hidden;
font-size: 13px;
}
.el-tree /deep/ .tree_node_op {
float: left;
margin-left: 60px;
display: none;
}
.el-tree /deep/ .node_box:hover .tree_node_op {
color: #ce1e1b;
display: block;
}
.el-tree /deep/ .node_box:hover .tree_node_op > i {
margin-right: 4px;
}
.el-tree /deep/ .node_box:hover .el-icon-document {
color: #ce1e1b;
}
.el-tree /deep/ .el-tree-node__children .el-tree-node__content .tree_node_op {
/* display: none; */
}
.tree-line {
height: 500px;
overflow: scroll;
}
.el-table__fixed-right-patch {
background-color: white !important;
}
核心js代码
搜索
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
左边树里的操作
//新增子事业群
append(store, node, data) {
// console.log(store,'store')
// console.log(node,'node')
// console.log(data,'data')
console.log(data, "新增子事业群");
this.titleChild = "新增子事业群";
this.isChangeChild = false;
this.addChildForm.pid = data.value;
// this.addChildForm.parent_id = data.id;
this.dialogAddChildFormVisible = true;
},
//编辑子事业群
nodeEdit(store, node, data) {
console.log(data, "修改事业群");
// this.editMainId = data;
this.addChildForm = {
};
this.title = "修改事业群";
this.groupDialogVisible = true;
this.isChange = true;
getGroupInfo({
group_id: data.value }).then((res) => {
console.log(res, "详情数据");
this.groupForm.name = res.data.name;
this.groupForm.pid = res.data.pid;
this.groupForm.group_id = res.data.id;
this.groupForm.remark = res.data.remark;
});
// this.editForm.code=this.editMainId.code
// this.titleChild = "修改子事业群";
// this.isChangeChild = true;
// this.dialogAddChildFormVisible = true;
},
// 左侧树形结构操作
// 结构树操作group node,
showOrEdit(data) {
if (data.isEdit) {
return (
<input
type="text"
value={
data.label}
on-blur={
(ev) => this.edit_sure(ev, data)}
/>
);
} else {
return <span className="node_labe">{
data.label}</span>;
}
},
changeNodeTree(e, node) {
console.log(e, "eee");
console.log(node, "node");
this.formInline.group_id = e.value;
// if (this.searchData.parent_id == undefined) {
// this.searchData.parent_id = "";
// }
// if (Array.isArray(node.parent.data) == true) {
// this.searchData.type_id = "";
// this.searchData.parent_id = e.id;
// } else {
// this.searchData.type_id = e.id;
// this.searchData.parent_id = node.parent.data.id;
// }
this.getList();
},
filterNode(value, data) {
// console.log(value,'filterNode的')
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
renderContent(h, {
node, data, store }) {
return (
<span class="node_box">
<span class="el-icon-document">{
this.showOrEdit(data)}</span>
<div class="tree_node_op" style=" float: right;margin-left:60px;">
<i
class="el-icon-edit"
on-click={
(ev) => this.nodeEdit(ev, store, data)}
></i>
<i
class="el-icon-plus"
on-click={
() => this.append(store, node, data)}
></i>
</div>
</span>
);
},
边栏推荐
- Open3D 曲面法向量计算
- Arcgis 10.2.2 | arcgis license server无法启动的解决办法
- 如何使用ConcurrentLinkedQueue做一个缓存队列
- Configuration of DNS server of Huawei ENSP simulator
- Use of redis publish subscription
- Redis transaction
- 股票开户佣金最低多少,炒股开户佣金最低网上开户安全吗
- Shutter textfield example
- Stealing others' vulnerability reports and selling them into sidelines, and the vulnerability reward platform gives rise to "insiders"
- Compréhension approfondie du symbole [langue C]
猜你喜欢
随机推荐
ArcGIS 10.2.2 | solution to the failure of ArcGIS license server to start
flink1.13 sql基础语法(一)DDL、DML
为什么说不变模式可以提高性能
Master the use of auto analyze in data warehouse
Methods of improving machine vision system
Use of class methods and class variables
如何使用ConcurrentLinkedQueue做一个缓存队列
AcWing 2022 每日一题
torch. Tensor and torch The difference between tensor
SolidWorks工程图添加材料明细表的操作
Operation of adding material schedule in SolidWorks drawing
Huawei ENSP simulator layer 3 switch
Difference between ApplicationContext and beanfactory (MS)
如何借助自动化工具落地DevOps
Billions of citizens' information has been leaked! Is there any "rescue" for data security on the public cloud?
numpy vstack 和 column_stack
Jerry's ad series MIDI function description [chapter]
IIC (STM32)
Arcgis 10.2.2 | arcgis license server无法启动的解决办法
Redis pipeline
![[optimtool.unconstrained] unconstrained optimization toolbox](/img/ef/65379499df205c068ee9bc9df797ac.png)

![Jerry's ad series MIDI function description [chapter]](/img/d7/348d85eb9f69ffd75612eeba56b16e.png)






