上一篇:

微信小程序云开发项目-个人待办事项-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. java - 字节流读取文件

    package stream; import java.io.*; public class InputStreamReaderString { public static void main(Str ...

  2. phpcms: Warning: "continue" targeting switch is equivalent to "break" 解决方案

    Warning: "continue" targeting switch is equivalent to "break". Did you mean to u ...

  3. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.21)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  4. [转帖]SQL Server中查询CPU占用高的SQL语句

    本文导读:触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql serv ...

  5. 【转帖】BGP:全穿透,半穿透,静态代播有什么区别

    一. 什么是BGP二. 具体实现方案2.1BGP的优点2.2 真伪BGP在使用效果上有什么差异​​​​​​​​​​​​​​2.2.1 真BGP实现了用户最佳路径的自动选择​​​​​​​​​​​​​​​ ...

  6. [转帖]Optimizing Block Device Parameter Settings of Linux

    https://support.huawei.com/enterprise/en/doc/EDOC1000181485/ddbc0e8b/optimizing-block-device-paramet ...

  7. [转帖]整理常用的 vim 命令

    vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学 ...

  8. [转帖]Java 平台调试体系

    https://www.cnblogs.com/xiaojiesir/p/15652619.html Java 平台调试体系(Java Platform Debugger Architecture,J ...

  9. Windows 2019 standard 安装 Sqlserver 2019 Standard 时报错 不知道如何处理

    Microsoft Windows [版本 10.0.17763.1] (c) 2018 Microsoft Corporation.保留所有权利. D:\>setup.exe Microsof ...

  10. MySQL批量执行SQL修改视图属主的办法

    前人挖坑 后人填坑 Study From https://blog.csdn.net/carefree2005/article/details/109812943 第一步: 形成SQL select ...