上一篇:

微信小程序云开发项目-个人待办事项-01介绍

https://blog.csdn.net/IndexMan/article/details/124485626

模块开发步骤

本篇介绍今日模块功能开发和代码展示,仅展示部分源码,详细项目代码请联系我获取。

今日待办列表

模块代码

  • index.wxml
<todolist todos="{{ todos }}" pending="{{ pending }}" finished="{{ finished }}">
</todolist>
  • index.js
Page({

    /**
* 页面的初始数据
*/
data: {
todos: [], // 用户的所有待办事项
pending: [], // 未完成待办事项
finished: [] // 已完成待办事项
}, async onShow() {
wx.showLoading({
title: 'waiting...',
}); // 通过云函数调用获取用户 _openId
getApp().getOpenId().then(async openid => {
// 根据 _openId 数据,查询并展示待办列表
const db = await getApp().database()
db.collection(getApp().globalData.collection).where({
_openid: openid,
date: util.formatTime(new Date())
}).get().then(res => {
const {
data
} = res
// 存储查询到的数据
this.setData({
// data 为查询到的所有待办事项列表
todos: data,
// 通过 filter 函数,将待办事项分为未完成和已完成两部分
pending: data.filter(todo => todo.done === 0),
finished: data.filter(todo => todo.done === 1)
})
})
}) wx.hideLoading();
}
})

界面代码

新增待办

模块代码

  • index.wxml
<wxs module="util" src="../util.wxs" />
<view class="container">
<view class="form-group">
<view class="form-cell">
<!-- <view class="form-cell_title">待办事项</view> -->
<input class="form-cell_input" placeholder="请输入待办事项(10字以内)" placeholder-class="form-cell_title-placeholder"
bindinput="onTitleInput" value="{{title}}" />
</view>
<view class="form-cell">
<!-- <view class="form-cell_title">详细描述</view> -->
<input class="form-cell_input" placeholder="请输入详细描述(100字以内)" placeholder-class="form-cell_title-placeholder"
bindinput="onDescInput" value="{{desc}}" />
</view>
<view class="form-cell inline">
<view>日期</view>
<picker class="todo-date" mode="date" bindchange="handleDateChange">{{ date }}</picker>
<!-- <button type="primary" size="mini" bindtap="addCalendar">添加日程</button> -->
</view>
</view>
。。。
<view class="footer">
<view class="reset" bindtap="resetTodo">重置</view>
<view class="save" bindtap="saveTodo">保存</view>
</view>
</view>
  • index.js
async onShow() {
// 加载分组
let res = await ydb.collection('todo_group').get(); // 判断是否有分组,没有的话新建一个默认分组
if (res.data.length == 0) {
await ydb.collection('todo_group').add({
data: {
group_name: '默认',
num: 0
}
});
res = await ydb.collection('todo_group').get();
} this.setData({
groupArray: res.data,
group_id: res.data[0]._id
});
},

编辑待办

加星删除待办

  • index.js
// 处理星标按钮点击事件
if (index === 0) {
// 根据待办的 _id 找到并反转星标标识
db.collection(getApp().globalData.collection).where({
_id: todo._id
}).update({
data: {
star: !todo.star
}
})
// 更新本地数据,触发显示更新
todo.star = !todo.star
this.setData({
pending: this.data.pending
})
}

完成待办

  • index.js
// 点击左侧单选框时,切换待办状态
async finishTodo(e) {
let openid = wx.getStorageSync('openid') || await app.getOpenId();
// 根据序号获得触发切换事件的待办
const todoIndex = e.currentTarget.dataset.index
const todo = this.data.pending[todoIndex]
const db = await getApp().database()
// 根据待办 _id,获得并更新待办事项状态
await db.collection(getApp().globalData.collection).where({
_id: todo._id
}).update({
// done == 1 表示待办已完成,不再提醒
// done == 0 表示待办未完成,每天提醒
data: {
done: 1
}
})
// 再次刷新列表
this.refreshList(openid);
},

微信小程序云开发项目-个人待办事项-02今日模块开发的更多相关文章

  1. 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现

    第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...

  2. 微信小程序-云开发-实战项目

    微信小程序-云开发-实战项目 微信小程序 微信小程序平台服务条款 https://developers.weixin.qq.com/miniprogram/product/service.html h ...

  3. 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作

    爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...

  4. “我要点爆”微信小程序云开发实例

    使用云开发进行微信小程序“我要点爆”的制作 下一章:“我要点爆”微信小程序云开发之项目建立与我的页面功能实现 接下来我将对“我要点爆”微信小程序进行完整的开源介绍 小程序名称: 我要点爆 查看方式:从 ...

  5. 微信小程序云开发-从0打造云音乐全栈小程序

    第1章 首门小程序“云开发”课程,你值得学习本章主要介绍什么是小程序云开发以及学习云开发的重要性,并介绍项目的整体架构,真机演示项目功能,详细介绍整体课程安排.课程适用人群以及需要掌握的前置知识.通过 ...

  6. 微信小程序云开发不完全指北

    微信小程序云开发不完全指北 首先必须说明云开发的"云"并不是类似云玩家里的云的意思,而是微信小程序真的提供了云开发的接口以及一个简单的提供存储.数据库服务的虚拟后台(对于一些轻量小 ...

  7. 微信小程序云开发如何上手

    简要介绍 微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数.数据库.存储.CDN等服务,免后端运维.基于云开发可以免鉴权调用微信所有开放能力. 前提准备 微信开发者工具 创 ...

  8. 微信小程序云开发,快速生成短信验证码

    使用微信小程序云函数实现注册短信验证码的管理,并不是一件分分钟的事,目前想要存储验证码只能放到数据库中,因为存储后才能和用户提交上来的验证码做比较. 管理验证码主要涉及到:生成.存储.校验.有效期管理 ...

  9. 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)

    2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...

  10. 微信小程序-云开发(手记)

    微信小程序-云开发(手记) 1.创建data.json文件 注意以下几点要求: 入门示例: init方法的env:默认环境配置,传入字符串形式的环境 ID(理解为数据库)可以指定所有服务的默认环境(意 ...

随机推荐

  1. [转帖]Shell 判断文件或文件夹是否存在(不存在则创建)

    目录 1. 文件夹不存在创建文件夹 2. 判断文件夹是否存在 3. 判断文件是否存在 4. 常用的文件比较符 1. 文件夹不存在创建文件夹 if [ ! -d "/data/" ] ...

  2. [转帖]TIDB - 使用BR工具进行数据热备份与恢复

    一.BR工具 BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复.BR 只支持在 TiDB v3.1 及以上版本 ...

  3. [转帖]TiUP 常见运维操作

    https://docs.pingcap.com/zh/tidb/stable/maintain-tidb-using-tiup 本文介绍了使用 TiUP 运维 TiDB 集群的常见操作,包括查看集群 ...

  4. [转帖]怎么查看Linux服务器硬件信息,这些命令告诉你

    https://zhuanlan.zhihu.com/p/144368206 Linux服务器配置文档找不到,你还在为查询Linux服务器硬件信息发愁吗?学会这些命令,让你轻松查看Linux服务器的C ...

  5. [转帖]人大金仓- KWR 报告初体验

    [本文正在参与炫"库"行动-人大金仓有奖征文] 开发者请集结丨炫"库"行动--2021人大金仓征文大赛悬赏万元等你来! 最近一直在研究 Oracle 的 AWR ...

  6. [转帖]《AWK程序设计语言》笔记(1)—— AWK入门与简单案例

    原文为 <The AWK Programming Language>,GitHub上有中译版,不过有些内容翻译的比较奇怪,建议跟原版对照着看 https://github.com/wuzh ...

  7. [转帖]SQL Server超过了每行的最大字节数(8060)的原因和解决办法

    一.现象     出现这种错误都发生在SQL语句建表时,错误提示: "警告: 已创建表 'XXXX,但其最大行大小(10438)超过了每行的最大字节数(8060).如果结果行长度超过 806 ...

  8. [转帖]Docker:Python环境Docker镜像瘦身

    https://www.jianshu.com/p/c0ad13e0be85 关键字:Docker,Python 原始镜像 封装一个Python 3.7的环境并且安装Python依赖包实现一个机器学习 ...

  9. [转帖]配置logback上报日志到Skywalking

    https://zhuanlan.zhihu.com/p/506119895 配置logback上报日志到Skywalking 配置logback上报日志到skywalking需要引入toolkit依 ...

  10. [转帖]Redis 最大客户端连接数,你了解吗?

    文章系转载,方便整理和归纳,源文地址:https://cloud.tencent.com/developer/article/1803944 1. 前言 上一篇文章<你的Redis集群撑得住吗? ...