上一篇:

微信小程序云开发项目-个人待办事项-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. win11不改时区,安装 android 子系统,运行android app

    win11开启虚拟机平台 下载安卓子系统 打开https://store.rg-adguard.net , 在URL中输入:https://www.microsoft.com/store/produc ...

  2. Shell-函数-function

  3. [转帖]rsync原理

    简介: Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来使本地和远 ...

  4. [转帖]使用 Logical Import Mode

    https://docs.pingcap.com/zh/tidb/v6.5/tidb-lightning-logical-import-mode-usage 配置及使用 可以通过以下配置文件使用 Lo ...

  5. [转帖]VMware ESXi 各版本号对照表

    本博文转自以下链接: VMware ESXi Release and Build Number History | virten.net vSphere ESXi 7.0 Name Patch Dat ...

  6. [转帖]36.堆空间的参数设置和-XX:HandlePromotionFailure

    目录 1.堆空间参数 2.-XX:HandlePromotionFailure 1.堆空间参数 * -XX:+PrintFlagsInitial : 查看所有的参数的默认初始值 * -XX:+Prin ...

  7. 【转帖】PyCharm---Django简单例子--基础1

    https://www.cnblogs.com/kllay/p/7286701.html 环境: python 2.7 Django 1.11.2    查看版本:python -m django - ...

  8. [转帖]一次python服务的性能优化经历

    https://juejin.cn/post/7208708762265616421 问题背景: ​ 在我们的业务中,有一些推荐的场景会需要走到集团研究院的算法推荐服务,对一些用户进行个性化的课件推荐 ...

  9. Redis极简教程

    简介 Redis 是用C语言开发完全开源免费的,遵守BSD协议的,一个高性能的,key-value型的,NOSQL数据库. 特点 可以将内存中的数据持久化到硬盘中,重启的时候可以从硬盘中再次加载 拥有 ...

  10. # 再次推荐github 6.7k star开源IM项目OpenIM性能测试及消息可靠性测试报告

    本报告主要分为两部分,性能测试和消息可靠性测试.前者主要关注吞吐,延时,同时在线用户等,即通常所说的性能指标.后者主要模拟真实环境(比如离线,在线,弱网)消息通道的可靠性. 先说结论,对于容量和性能: ...