前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试也能开发 - 点击二级分类实现自动筛选功能

测试也能开发 - 点击二级分类实现自动筛选功能

作者头像
软件测试君
发布2024-02-26 14:19:54
720
发布2024-02-26 14:19:54
举报
文章被收录于专栏:测试人生测试人生

写在前面

怎么来诠释下现在的心情呢?

算是比较复杂吧,我也想过关于自己个人问题的事,始终是无解的状态。

35岁,变成了一个没有胆量、小心翼翼的年纪,甚至说慎重到说话都要反复思考的程度,先不说内耗问题了,真的就是负能量爆棚了,我有那么一阵极度怀疑自己丧失了和人沟通的能力。

今天,我coding的时候,偶然听到爸妈对我婚姻的事,表现出了很大的无奈感。

就给我一种,我没结婚,或者相亲失败,都是我的问题,我太挑了,难道结婚,真的就是随便一个人就行吗?

上次给我介绍个地铁口卖烤地瓜的、大上次介绍的工厂打票的,各种给我洗脑,让我别太挑了,我想说我真的那么差吗?

那一刻我真的觉得,为什么要结婚,再结合上段感情,我发现现在我很难去相信一个人了。

如果人工智能真的可以做到极致,真的希望有个AI机器人另一半也不错,能和自己终老,陪伴一生,至少对我事绝对的忠诚,而不像人那么势力、物质、善变。

分类点击切换显示对应数据

1、任务拆解
  • 首页默认显示欢迎页面,点击欢迎时,显示欢迎组件,点击分类时,显示电子书
  • 点击某分类时,显示该分类下的电子书
2、默认显示欢迎页,点击分类显示电子书

这块呢,我们可以理解为,欢迎页面和电子书显示是互斥的,不能共同存在,用v-show来控制,再定一个响应式变量作为开关就可以实现了,示例代码如下:

代码语言:javascript
复制
<div class="welcome" v-show="isShowWelcome">
  <h1>欢迎来到六哥的学习空间!</h1>
</div>
<a-list
    v-show="!isShowWelcome"
    item-layout="vertical"
    size="large"
    :pagination="pagination"
    :grid="{ gutter: 20, column: 4 }"
    :data-source="ebooks"
>
  <template #renderItem="{ item }">
    <a-list-item key="item.title">
      <template #actions>
  <span v-for="{ icon, text } in actions" :key="icon">
    <component :is="icon" style="margin-right: 8px"/>
    {{ text }}
  </span>
      </template>
      <a-list-item-meta :description="item.description">
        <template #title>
          <a :href="item.href">{{ item.name }}</a>
        </template>
        <template #avatar>
          <a-avatar :src="item.cover"/>
        </template>
      </a-list-item-meta>
      {{ item.description }}
    </a-list-item>
  </template>
</a-list>
3、点击某分类,显示该分类下的电子书

这里可以理解为,我点击左侧二级分类菜单时可以查询出对应的电子书,再次拆分需要做两件事:

  • 接口改造,根据查询电子书电子书后端接口增加分类参数
  • 通过点击菜单,传递分类Id,作为动态查询条件,并调用查询接口,实现精准查询
3.1、后端改造

这里需要在请求参数添加categoryId2字段,作为查询条件,示例代码如下:

代码语言:javascript
复制
private Long categoryId2;

再对service改造,添加根据categoryId2进行查询,示例代码如下:

代码语言:javascript
复制
if (!ObjectUtils.isEmpty(ebookReq.getCategoryId2())){
    //相当于sql的like查询
    exampleCriteria.andCategory2IdEqualTo(ebookReq.getCategoryId2());
}
3.2、前端改造

这里需要对handleClick进行处理,沿用互斥模式下的赋值,从而达到动态精确查询的目的,示例代码如下:

代码语言:javascript
复制
  /**
    * 菜单切换
    * @param value
  */
const handleClick = (value:any) => {
  console.log("menu click",value)
  if(value.key==="welcome"){
    isShowWelcome.value=true
  }else{
    categoryId2=value.key
    isShowWelcome.value=false
    handleQueryEbook()
  }
};

/***
 * 查询电子书
 */
const handleQueryEbook = () => {
  axios.get("/ebook/list", {
    params: {
      page: 1,
      size: 1000,
      categoryId2: categoryId2
    }
  }).then((response) => {
    const data = response.data;
    ebooks.value = data.content.list;
  });
};

效果:

写在最后

凡事皆如此,人为何会有烦恼,是因为你有期待,有所求。

当所求未被响应,所期待被辜负,就会有心理落差。

所以最好的状态便是,不有求于别人,不被琐事所束缚,没欲望,没要求,和自己和解,也会活得很好。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 分类点击切换显示对应数据
    • 1、任务拆解
      • 2、默认显示欢迎页,点击分类显示电子书
        • 3、点击某分类,显示该分类下的电子书
          • 3.1、后端改造
          • 3.2、前端改造
      • 写在最后
      相关产品与服务
      腾讯云服务器利旧
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档