经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
测试也能开发 - 点击二级分类实现自动筛选功能
来源:cnblogs  作者:久曲健  时间:2024/2/23 8:57:10  对本文有异议

写在前面

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

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

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

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

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

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

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

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

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

1、任务拆解

  • 首页默认显示欢迎页面,点击欢迎时,显示欢迎组件,点击分类时,显示电子书
  • 点击某分类时,显示该分类下的电子书

2、默认显示欢迎页,点击分类显示电子书

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

  1. <div class="welcome" v-show="isShowWelcome">
  2. <h1>欢迎来到六哥的学习空间!</h1>
  3. </div>
  4. <a-list
  5. v-show="!isShowWelcome"
  6. item-layout="vertical"
  7. size="large"
  8. :pagination="pagination"
  9. :grid="{ gutter: 20, column: 4 }"
  10. :data-source="ebooks"
  11. >
  12. <template #renderItem="{ item }">
  13. <a-list-item key="item.title">
  14. <template #actions>
  15. <span v-for="{ icon, text } in actions" :key="icon">
  16. <component :is="icon" style="margin-right: 8px"/>
  17. {{ text }}
  18. </span>
  19. </template>
  20. <a-list-item-meta :description="item.description">
  21. <template #title>
  22. <a :href="item.href">{{ item.name }}</a>
  23. </template>
  24. <template #avatar>
  25. <a-avatar :src="item.cover"/>
  26. </template>
  27. </a-list-item-meta>
  28. {{ item.description }}
  29. </a-list-item>
  30. </template>
  31. </a-list>

3、点击某分类,显示该分类下的电子书

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

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

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

  1. private Long categoryId2;

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

  1. if (!ObjectUtils.isEmpty(ebookReq.getCategoryId2())){
  2. //相当于sql的like查询
  3. exampleCriteria.andCategory2IdEqualTo(ebookReq.getCategoryId2());
  4. }
3.2、前端改造

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

  1. /**
  2. * 菜单切换
  3. * @param value
  4. */
  5. const handleClick = (value:any) => {
  6. console.log("menu click",value)
  7. if(value.key==="welcome"){
  8. isShowWelcome.value=true
  9. }else{
  10. categoryId2=value.key
  11. isShowWelcome.value=false
  12. handleQueryEbook()
  13. }
  14. };
  15. /***
  16. * 查询电子书
  17. */
  18. const handleQueryEbook = () => {
  19. axios.get("/ebook/list", {
  20. params: {
  21. page: 1,
  22. size: 1000,
  23. categoryId2: categoryId2
  24. }
  25. }).then((response) => {
  26. const data = response.data;
  27. ebooks.value = data.content.list;
  28. });
  29. };

效果:

20240212_208d680abbcc7502_449754143859_92193457786295_published_mp4_264_hd_unlimit_taobao.gif

写在最后

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

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

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

加油,可爱的自己!

原文链接:https://www.cnblogs.com/longronglang/p/18028109

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号