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

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

对用户的效果

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

原首页

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

排序
标签搜索

后台支撑

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

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

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

维护标签
文章绑定标签

核心代码解析

标签选中、未选中效果

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

  /**
   * 显示设置文章标签窗口
   * @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()

  },

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

  /**
   * 选择标签
   * @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切换时同步更新这个变量,在下拉时根据该变量进行数据加载:

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: async function () {
    let whereItem=this.data.whereItem
    await this.getPostsList(whereItem[0],whereItem[1],whereItem[2])
  },

后期计划

批量维护

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

专题页面

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

简化部署流程

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

交互细节

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

总结

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

2.0版本之后.....已经有了很多计划。

Ps.GitHub开源地址:
https://github.com/CavinCao/mini-blog

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 1.别样体验心流感 今天最有收获的莫过于体验到了传说中的"心流感"。 写回忆录已经持续几天,平时自己都是以第三人称...
    辣笔_小仕阅读 647评论 0 2
  • 今天节食减肥第四天,忍不住的想吃油腻的东西,炸串,泡面,油腻腻的菜,面……要疯了。中午除了半个玉米,还吃了手撕素牛...
    我会有只猫的_阅读 122评论 0 0
  • 我想你的每一天 强过在人间的一万年
    甘亚宾i阅读 204评论 0 0
  • 刚刚结束了一周的助教团队会议,在大家的分享和反馈下,又get新的点那就是~幸福可以很简单,放下要求,放下要求别人看...
    冯飒阅读 223评论 0 3