Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[mini-blog][v1.6.0]体现后台管理功能的价值时刻到了——丰富文章的筛选

[mini-blog][v1.6.0]体现后台管理功能的价值时刻到了——丰富文章的筛选

作者头像
Bug生活2048
发布于 2019-06-20 12:57:29
发布于 2019-06-20 12:57:29
50200
代码可运行
举报
文章被收录于专栏:Bug生活2048Bug生活2048
运行总次数:0
代码可运行

上一次迭代把后台管理的功能实现了七七八八,这次迭代终于可以派上用场了。

对用户的效果

这次改版,用户最直观的效果就是可以对文章进行筛选了,最早期的一版,只能通过简单的搜索框进行筛选:

原首页

而现在,丰富了筛选功能,可以对文章一些维度排序,也可以根据文章的标签进行筛选了。

排序

标签搜索

后台支撑

排序的功能由于之前就有设计文章浏览,评论,点赞等维度的计数,所以只需要根据数据源尽心排序即可。

而标签筛选的功能主要依赖文章与标签关联的数据源,而公众号同步过来的文章本身是没有此属性的,所以依赖后台管理维护标签的功能来构造文章和标签之间的关系。

维护效果的界面如下,优先通过标签管理维护基础标签,然后在文章管理中可以进行绑定了。

维护标签

文章绑定标签

核心代码解析

标签选中、未选中效果

首先是初始化,因为标签的基础数据和文章已选中的标签是保存在两个集合中的,所以构造初始化页面的时候需要组装两部分的数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /**
   * 显示设置文章标签窗口
   * @param {*} e 
   */
  showLabelModal: async function (e) {
    wx.showLoading({
      title: '标签加载中...',
    })

    let that = this
    let postId = e.currentTarget.dataset.postid
    let label = e.currentTarget.dataset.label
    let labelList = await api.getLabelList()
    let otherLabels = []
    if (label.length > 0) {
      for (var i = 0; i < label.length; i++) {
        otherLabels.push({
          name: label[i],
          checked: true
        })
      }
    }

    for (var index in labelList.result.data) {
      let labelRes = otherLabels.filter((a) => labelList.result.data[index].value == a.name)
      if (labelRes.length > 0) { continue; }

      otherLabels.push({
        name: labelList.result.data[index].value,
        checked: false
      })
    }

    that.setData({
      isShowLabelModel: true,
      selectedLabels: label,
      otherLabels: otherLabels,
      showCurPostId: postId
    })

    wx.hideLoading()

  },

其次是点击选中标签时,需要根据选中状态去变换颜色,并动态更新选中的标签集合,用于最后保存到数据库中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /**
   * 选择标签
   * @param {} e 
   */
  chooseLabelCheckbox(e) {
    let that = this
    let selectedLabels = that.data.selectedLabels
    let otherLabels = that.data.otherLabels;
    let name = e.currentTarget.dataset.value;
    let checked = e.currentTarget.dataset.checked;

    for (let i = 0; i < otherLabels.length; i++) {
      if (otherLabels[i].name == name) {
        otherLabels[i].checked = !otherLabels[i].checked;
        break
      }
    }
    //原本选中的移除
    if (checked) {
      var index = selectedLabels.indexOf(name);
      if (index > -1) {
        selectedLabels.splice(index, 1);
      }
    }
    //未选中的新增到集合中
    else {
      selectedLabels.push(name)
    }

    that.setData({
      otherLabels: otherLabels,
      selectedLabels: selectedLabels
    })
  },
Tab切换时的下拉

首页新增最新热门标签三个tab选项,每次切换时需要重新加载文章列表,这个问题应该不大,但需要注意下拉的地方,需要根据当前tab状态的值进行下拉翻页加载数据。

目前我是定义了一个变量,在tab切换时同步更新这个变量,在下拉时根据该变量进行数据加载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: async function () {
    let whereItem=this.data.whereItem
    await this.getPostsList(whereItem[0],whereItem[1],whereItem[2])
  },

后期计划

批量维护

目前小程序只支持单篇文章进行标签、专题的维护,初始化之后进行维护太麻烦了,后期得改善下。

专题页面

目前对用户还差一个专题页面了,后面的迭代中加上该功能

简化部署流程

很多使用者反馈首次运行小程序比较麻烦,要配置的地方很多,后面会进行优化,尽心可视化配置,尽量减少配置的步骤。

交互细节

有很多细节上的交互还是可以完善的「至少我发现了好几处」,后面大功能完成后陆续改善。

总结

基于云开发的博客小程序已经发布了6个版本了「目前是线上1.6的版本」,功能也在一点点的增加,希望在2.0的版本中能把博客相关的所有功能都能完成「包括后台」

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

本文分享自 Bug生活2048 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
小程序页面跳转传参-this和that的区别-登录流程-下拉菜单-实现画布自适应各种手机尺寸
小程序调用wx.login() 获取 登录凭证code ,并回传到开发者服务器 调用接口wx.login() 获取临时登录凭证(code)
达达前端
2019/07/04
7390
解决微信小程序的wx-charts插件tab切换时的显示会出现位置移动问题-tab切换时,图表显示错乱-实现滑动tab
标题图 解决Echarts在微信小程序tab切换时的显示会出现位置移动问题 我的js var dateTimePicker = require('../../utils/dateTimePicker.js'); var wxCharts = require('../../utils/wxcharts.js'); var util = require('../../utils/util.js'); var app = getApp(); Page({ /** * 页面的初始数据 */
达达前端
2019/07/03
3.4K0
解决微信小程序的wx-charts插件tab切换时的显示会出现位置移动问题-tab切换时,图表显示错乱-实现滑动tab
微信小程序开发-多条件搜索tab展示
小程序开发的过程中列表页面的搜索项太多,需要合理的利用交互方式来达到功能效果,先看下效果图
code2roc
2023/07/19
4310
微信小程序开发-多条件搜索tab展示
微信小程序实用代码段(持续更新中)
两年前的文章,被收藏了368次。挺实用的,可以看看。排名不分先后,按自己的习惯来的。总结经验,不喜勿喷哦~
Vam的金豆之路
2021/12/01
1.1K0
微信小程序实用代码段(持续更新中)
用小程序·云开发打造功能全面的博客小程序丨实战
实现文章的一些操作功能,最主要的还是评论,这是作者和读者之间沟通的桥梁,评论功能的衍生无非是细化作者和读者之间的互动,或者增加文章的传播,所以在动手开发时需要思考下你期望实现哪些功能,并对应功能进行细化。
腾讯云开发TCB
2019/08/26
1.2K0
[mini-blog]小程序后台管理功能的实现
由于「后台管理」的部分只有管理员才能看到,在我的小程序上不能体现,但整体开发难度不是很大,主要还是通过编码实现一些功能,思路清晰,按照流程一步一步开发即可。
Bug生活2048
2019/06/19
2.8K0
[mini-blog]小程序后台管理功能的实现
[mini-blog]小程序最近两个迭代版本总结,来看看更新了哪些内容吧
对用户最直观的功能就是新增专题页面,页面UI还是比较简单的,主要没有特别好的想法,所以一切从简了。
Bug生活2048
2019/07/09
6310
[mini-blog]小程序最近两个迭代版本总结,来看看更新了哪些内容吧
小灯灯实战系列《二》微信小程序:仿今日头条(上)
写在前面 新的一年,祝大家新年快乐!当然对于程序员来说,新的一年,也要有新的改变。因此灯灯决定凑热闹编写微信小程序啦! 上一篇文章《记一次小程序开发过程》中,灯灯大致写了下自己第一次开发小程序的感受和流程。这一次灯灯会详细记录下自己制作一个小程序的思路、遇到的问题、涉及到的代码等和大家分享。 要做个什么 首先我们要确定做一个什么小程序,我决定先做一个很常规的新闻App练练手,样式就模仿头条啦! 开发分为两次进行,第一次完成新闻列表、内容阅读这两个常规功能,不涉及用户交互。第二次完善功能,加上评论、收藏等互动
极乐君
2018/02/05
1.9K0
小灯灯实战系列《二》微信小程序:仿今日头条(上)
用小程序·云开发两天搭建mini论坛丨实战
笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序,深度体验了小程序云开发模式提供的云函数、数据库、存储三大能力。关于云开发,可参考文档:小程序·云开发。
腾讯云开发TCB
2019/08/23
2.2K1
[mini-blog][v2.2.0]博客小程序积分功能实现
积分功能花了点时间,对整体功能有一些侵入性,加上个人时间也比较少,有些地方还不是很完善。
Bug生活2048
2020/04/21
1.5K3
[mini-blog][v2.2.0]博客小程序积分功能实现
【查缺补漏】 15个高频微信小程序面试题
微信小程序面试题 1. 小程序有几个文件? WXML: 微信自己定义的一套组件 WXSS : 用于描述 WXML 的组件样式 js : 逻辑处理 json : 小程序页面配置 2.小程序怎么跟随事件传值 在 页面标签上通过 绑定 data-key = value , 然后绑定点击通过e.currentTarget.dataset.key 来获取标签上绑定的值。 <button bindtap="get" data-name="测试"> 拿到传值</button> get(e){
程序员海军
2022/02/15
1.9K0
微信小程序个人心得「建议收藏」
官方给出了app.json五个配置项列表.(pages(Array), window(Object), tabBar(Object), networkTimeout(Object), debug(Boolean)),接着我们就详细的分下一下这几个配置项.
全栈程序员站长
2022/11/04
2K0
微信小程序个人心得「建议收藏」
基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
在这个专属于“云”的时代,各位云端弄潮儿们,请分享出你的云计算学习历程吧! 你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解创作,参考如下:
淼学派对
2022/11/20
1.8K0
基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
【微信小程序+Python后台从0到1实战开发】02微信小程序基础事件及数据获取
day02 微信小程序 1. 跳转 1.1 对标签绑定点击事件 <view bindtap="clickMe" data-nid="123" data-name="SD" >点我跳转</view> Page({ ... /** * 点击绑定的事件 */ clickMe:function(e){ var nid = e.currentTarget.dataset.nid; console.log(nid); } }) 1.2 页面跳转 wx.navigateTo({
天道Vax的时间宝藏
2021/08/11
1.1K0
微信小程序面试题总结
大体相同,但小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData()方法!
changxin7
2020/02/25
8.1K0
电商后台管理系统——权限管理模块
电商后台管理系统的权限管理模块分为角色列表和权限列表两部分,两部分流程图大概如下
全栈程序员站长
2022/08/29
2.5K0
电商后台管理系统——权限管理模块
【腾讯游戏人生】微信小程序开发总结
目前【腾讯游戏人生】小程序已经发布上线,大家可以扫小程序码进行体验。接下来主要介绍在开发该款小程序过程中的一些思考和积累。
一时两无
2018/06/08
3.2K3
全新Uniapp+uniUI后台管理uniUadmin
新年的鞭炮声又响了,拉开窗帘一看,外面依然漆黑一片,好了,反正都醒了,就暂且起来吧。零下几度的天气有些冷,就批件衣服先醒醒吧。就想着写些什么呢,突然想到最近开发了一款uni-app后台管理系统模板,就来分享下吧。
andy2018
2022/01/31
2.4K1
第三个页面:构建新闻详情页面
在编写从文章列表跳转到新闻详情页的代码之前,先来修改一下之前的页面,之前我们编写了两个模板文件,但是还有两个细节没有完善好,一个是post.wxss中的.post-container样式没有移植到模板文件中,另一个是wxml模板文件中每句数据绑定代码都需要通过item这个子元素去调用属性,显得有点麻烦,我们可以使用一种语法去解决这个问题。
端碗吹水
2020/09/23
1.9K0
第三个页面:构建新闻详情页面
☀️苏州程序大白一文教你学会微信小程序开发☀️《❤️记得收藏❤️》
3、与data同级 并且可以将input中输入的值与data中定义的属性绑定,使用this.setData({属性:e.detail.value})。
苏州程序大白
2021/09/29
9510
推荐阅读
相关推荐
小程序页面跳转传参-this和that的区别-登录流程-下拉菜单-实现画布自适应各种手机尺寸
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验