【Vue入门实践2】不调后端接口==>单纯前端实现添加和删除功能==>【数组操作】数组的遍历、差集、过滤、切割、添加

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)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值