3.添加资源组页
二、前端假添加功能实现
1.前端页面布局
(1)资源配置页
(2)添加资源页
2.获取已绑定资源列表和全部资源列表
(1)资源配置页----已绑定资源列表
(2)添加资源页-----全部资源列表
3.前端假添加/删除操作
(1)多选框选中数据
(2) 假添加实现
(3)假删除实现
三、最终提交绑定
一、前端页面以及功能概述
============
1.资源配置页
(1)【列表】页面加载已经绑定的资源列表
(2)【添加资源】点击按钮跳转到添加资源页面
(3)【添加资源组】点击按钮跳转到添加资源组页面
(4)【删除】点击按钮删除列表中的一行数据!!前端列表操作删除,不调接口
(5)【保存】点击保存按钮,向后端发送请求,传递资源id数组,实现绑定
2.添加资源页
(1)【查询 重置】正常的页面查询和列表重置功能,不做赘述
(2)【确定】选择资源行数据后点击‘确定’按钮。系统返回资源配置页,并在资源配置页列表中添加选中的行(前端实现,不涉及后端保存)。如果有重复数据,前端剔除,并提示。
3.添加资源组页
(1)【选择资源分组】在左侧资源分组树中选择资源分组
(2)【确定】点击后,请求后端接口,返回数据,同添加资源,在此不做赘述
二、前端假添加功能实现
===========
1.前端页面布局
(1)资源配置页
table涉及的数组为 resourcePzTableData
<el-tab-pane label="资源配置" name="third">
<!-- 资源配置页 -->
<div v-show="pageindex == 2" style="min-height: 500px">
<div class="tableHeaderWrap">
<!-- 按钮部分 -->
<!-- 按钮部分 -->
</div>
<el-row style="padding: 30px 30px 0px 25px;">
<!-- 表格部分 -->
<el-table
:data="resourcePzTableData"
fit
border
stripe
@selection-change="handleSelectionChange"
>
....
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
type="text"
:style="'padding:none'"
@click="handleResourcePzDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<div>
<el-button type="primary" size="mini" @click="resourceAddSubmit"
>保 存</el-button>
</div>
</el-row>
</div>
</el-tab-pane>
pzId: undefined, //资源配置选中id
activeName: "first",
pageindex: 2, // 控制显示哪个页面
//资源配置
resourcePzTableData: [
{
id: "1",
name: "运维资源假数据",
},
{
id: "2",
name: "运维资源假数据2",
},
],
resourcePageInfo: {
pageNum: 1,
pageSize: 10,
total: 0,
},
radio: 1,
resourceList: [], //资源列表
(2)添加资源页
添加资源页的数组为resourceList
<el-tab-pane label="资源配置" name="third">
<!-- 资源配置页 -->
<!--上部分代码 -->
<!-- 添加资源页 -->
<el-form :model="queryParams" ref="queryForm" label-width="auto">
<!--查询表单 -->
</el-form>
<el-table
:data="resourceList"
fit
border
stripe
@selection-change="handleSelectionChange1"
>
.....
</el-table>
<el-button type="primary" size="mini" @click="addToList">确 定</el-button>
</el-tab-pane>
2.获取已绑定资源列表和全部资源列表
(1)资源配置页----已绑定资源列表
// 已绑定资源列表列表
getResourcePzList() {
getPzBingdingList({ resourceConfigId: this.pzId }).then((res) => {
this.resourcePzTableData = res.data.list;
});
},
(2)添加资源页-----全部资源列表
// 添加资源按钮
resourceAdd() {
// this.resourceDialog = true;
this.page = 1;
this.pageindex = 0;
this.$store.commit("treeVis");
// 调接口显示可以绑定的资源
this.getAllResourceList();
},
// 已有全部资源列表
getAllResourceList() {
const params = {
...this.queryParams,
};
debugger;
allResourceList(params).then((res) => {
console.log(res);
this.resourceList = res.data.list;
this.total = res.data.totalCount;
});
},
3.前端假添加/删除操作
选中【添加资源页resourceList中的数据行】-------点击确定------添加到【资源配置页resourcePzTableData表后面】
(1)多选框选中数据
addids:[], // 多选框选中的item的id
addItem;[], // 多选框选中的item
// 多选框选中需要添加的数据
handleSelectionChange1(selection) {
this.addids = selection.map((item) => item.id);
this.addItem = selection.map((item) => item);
// this.addsingle = selection.length != 1; // 是否单选
// this.addmultiple = !selection.length; // 是否多选
},
(2) 假添加实现
比较已绑定资源列表,剔除重复数据
// 绑定资源提交2-前端实现假添加- 添加资源账户到tab列表
addToList() {
// 把选中数据添加到已绑定账号后面
console.log(this.resourcePzTableData, "添加前数据");
// 两个数组去重-补集
let diff = this.addItem.filter(
(item) => !this.resourcePzTableData.some((val) => item.id === val.id)
);
console.log(diff, "diff");
// 是否有重复项-消息提示
if (diff.length !== this.addItem.length) {
this.$message.warning("有重复选择项,已过滤。");
}
// 找到数组差集添加到原有数组
this.resourcePzTableData = this.resourcePzTableData.concat(diff);
// 返回上级页面并刷新数据
this.pageindex = 2;
this.page = 0;
// 隐藏侧边栏资源分组树
this.$store.state.treeShow = false;
},
step1:拿到选中的添加资源数组addItem。使用filter过滤函数。计算addItem和resourcePzTableData的补集diff
addItem = [1,2,3,4]
resourcePzTableData = [3,4,6,7,8,9]
diff = [1,2]
step2: 将数组差集diff,使用concat方法,添加到原有数组后面
step3: 返回上级页面、显示列表
(3)假删除实现
handleResourcePzDelete(row) {
// 要删除的id数组或字符
const resourcePzIds = row.id == undefined ? this.ids : [row.id];
// debugger;
const ids = row.id != undefined ? [row.id] : this.ids;
const vm = this;
this.$modal
.confirm("是否确认删除?")
.then(function () {
// return deleteData({ ids: stuffPzIds });
console.log("删除前", vm.resourcePzTableData);
# 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/23559487976bef3cd5bbbe305dd8e7ce.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/253c46f952a596d98e54553f9811ad73.png)
![](https://img-blog.csdnimg.cn/img_convert/33367ffdb5fc378d537a6227f15839c8.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
**深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中...(img-22kZ73LV-1715042411175)]
[外链图片转存中...(img-5p24VtUY-1715042411176)]
[外链图片转存中...(img-rlHzK2O7-1715042411176)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**