位置: IT常识 - 正文

微信小程序项目实例——心情记事本(微信小程序项目中的 ______ 文件是全局配置文件)

编辑:rootadmin
微信小程序项目实例——心情记事本 微信小程序项目实例——心情记事本文章目录微信小程序项目实例——心情记事本一、项目展示二、首页三、效果图文末

推荐整理分享微信小程序项目实例——心情记事本(微信小程序项目中的 ______ 文件是全局配置文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序项目开发实战,微信小程序项目代码,微信小程序项目中的 ______ 文件是全局配置文件,微信小程序项目中app.js文件是全局样式文件,微信小程序项目实训总结,微信小程序项目开发实战,微信小程序项目实训总结,微信小程序项目实训总结,内容如对您有帮助,希望把文章链接给更多的朋友!

项目代码见文字底部,点赞关注有惊喜


一、项目展示

心情记事本是一款可以记录当前心情和生活的记事本 用户可以选择当前的心情(开心、平淡、伤心)和表情 并结合自己想要描述的文字 就可以记录当前的心情了

为了更好的展现用户的心情 项目罗列了大量的精美表情 缩略图如下:

微信小程序项目实例——心情记事本(微信小程序项目中的 ______ 文件是全局配置文件)

项目的展示图如下:

二、首页

首页主要由日历组件和自制的记录组件结合而成 主要代码如下:

<view class="container"> <view class="title"> <view class="left-arrow" bindtap="prev_month"> <image src="/asset/images/left-arrow.svg" class="arrow"></image> </view> <picker mode="date" value="{{date}}" fields="month" start="{{start_date}}" end="{{end_date}}" bindchange="select_date"> <view class="date-picker"> {{now_date}} </view> </picker> <view class="right-arrow" bindtap="next_month"> <image src="/asset/images/right-arrow.svg" class="arrow"></image> </view> </view> <view class="divider-box"> <image src="/asset/images/divider.svg" class="divider"></image> </view> <view class="calender"> <view class="calender-header"> <image src="/asset/images/SUN.svg" class="week-item"></image> <image src="/asset/images/MON.svg" class="week-item"></image> <image src="/asset/images/TUE.svg" class="week-item"></image> <image src="/asset/images/WED.svg" class="week-item"></image> <image src="/asset/images/THU.svg" class="week-item"></image> <image src="/asset/images/FRI.svg" class="week-item"></image> <image src="/asset/images/SAT.svg" class="week-item"></image> </view> <view class="calender-body"> <block wx:for="{{ date_arr }}" wx:key="key"> <view class="date-item date-enabled-{{item.enabled}} date-today-{{item.today}} "> <span>{{item.date}}</span> <block wx:if="{{item.emotion_value}}"> <image src="/asset/images/circle-{{item.emotion_value}}.svg" class="circle"></image> </block> </view> </block> </view> </view> <view class="diary"> <view wx:for="{{ items }}" wx:key="{{key}}"> <view class="diary-item" key="{{key}}" bindtap="detail" data-key="{{ item.key }}"> <view class="diary-date"> <view class="date">{{ item.value['date']}}</view> <view class="day">{{ item.value['week']}}</view> </view> <image src="/asset/images/virtical-divider.svg" class="virtical-divider"></image> <view class="emoji"> <image src="/asset/emojis/{{ item.value['emoji_type']}}.svg" class="emoji-image"></image> </view> <image src="/asset/images/virtical-divider.svg" class="virtical-divider"></image> <view class="text">{{ item.value['text'] }}</view> <image class="more-arrow" src="/asset/images/more-arrow.svg"></image> </view> </view> </view></view><image src="/asset/images/add-button.svg" class="add-button" bindtap="blank_modal"></image><view class="cover" wx:if="{{modal_visiable}}" bindtap="cancle"></view><view class="modal ripple bounceInDown" wx:if="{{modal_visiable}}"> <view class="create-box"> <image src="/asset/images/close-button.svg" class="close-button" bindtap="cancle"></image> <image src="/asset/emojis/{{ emoji_indicator }}.svg" class="emoji-image"></image> <view class="emoji-select-box"> <picker-view indicator-style="height: 50px;" value="{{ emoji_defaul_value }}" class="emoji-picker" bindchange="select_emoji"> <picker-view-column> <view style="line-height: 50px; color: #797979">伤心的表情</view> <view style="line-height: 50px; color: #797979">开心的表情</view> <view style="line-height: 50px; color: #797979">平淡的表情</view> </picker-view-column> <picker-view-column> <view wx:for="{{ emoji_list }}" wx:key="key"> <image src="/asset/emojis/{{ item }}.svg" style="height: 100%; width: 100rpx;"></image> </view> </picker-view-column> </picker-view> </view> <block wx:if="{{ is_newbee }}"> <textarea placeholder="选择表达今天心情的emoji, 或者在此写点文字, enjoy ~ ~" value="{{ text }}" bindinput="input" placeholder-style="color:#9B9B9B;font-size:26rpx;line-height:46rpx" class="text"/> </block> <block wx:else> <textarea placeholder="写点什么,当然你也可以什么都不写" value="{{ text }}" bindinput="input" placeholder-style="color:#9B9B9B;font-size:26rpx;" class="text"/> </block> <view class="button-box"> <block wx:if="{{ delete_button_visiable}}"> <view class="delete-button" bindtap="delete" style="visibility: show">删除</view> </block> <block wx:else> <view class="delete-button" bindtap="delete" style="visibility: hidden">删除</view> </block> <view class="submit-button" bindtap="save">保存</view> </view> </view></view>let app = getApp()let util = require('../../utils/util.js')let date_formater = require('../../utils/date_formater.js')let storage = require('../../utils/data_storage.js')Page({ data: { 'date_arr': [], 'now_date': '2017-04-11', 'start_date': '2015-04-11', 'end_date': '2019-04-11', 'date': '', 'year': 0, 'month': 0, 'items': [], 'modal_visiable': false, 'emoji_list': [], 'emoji_indicator': 'face-with-stuck-out-tongue-and-winking-eye', 'emoji_defaul_value': [1, 1], 'text': '', 'item_key': '', //当前条目的key 'delete_button_visiable': false ,//modal中的删除按钮是否可见 'is_newbee': false // 是不是第一次使用 }, // 初始化页面数据 page_init: function(year, month) { console.log(year + '-' + month + ' data had initialized') let data = util.get_date(year, month) let emojis = util.get_emojis() this.setData({ 'date_arr': data, 'now_date': date_formater.format_month(month) + ' ' +year, 'date': year + '-' + date_formater.add_date_prefix(month + 1) + '-01', 'year': year, 'month': month, 'start_date': year - 2 + '-' + date_formater.add_date_prefix(month + 1) + '-01', 'end_date': year + 2 + '-' + date_formater.add_date_prefix(month + 1) + '-01', 'items': storage.all(year, month), 'emoji_list': emojis['positive'], }) }, onLoad: function() { let date = new Date() let year = date.getFullYear() let month = date.getMonth() let emojis = util.get_emojis() this.page_init(year, month) // let is_newbee = util.is_newbee() let is_newbee = false if(is_newbee) { this.blank_modal() } this.setData({ 'is_newbee': is_newbee }) }, select_date: function(e) { let date_str = e.detail.value let date_arr = date_str.split('-') let year = parseInt(date_arr[0]) let month = parseInt(date_arr[1]) - 1 this.page_init(year, month) }, prev_month: function() { let year = this.data.year let month = this.data.month if (month - 1 < 0) { year = year - 1 month = 11 } else { month = month - 1 } this.page_init(year, month) }, next_month: function() { let year = this.data.year let month = this.data.month if (month + 1 > 11) { year = year + 1 month = 0 } else { month = month + 1 } this.page_init(year, month) }, modal: function() { this.setData({ 'modal_visiable': true, 'delete_button_visiable': true }) }, blank_modal: function() { this.setData({ 'modal_visiable': true, 'emoji_indicator': 'face-with-stuck-out-tongue-and-winking-eye', 'emoji_defaul_value': [1, 1], 'text': '', 'delete_button_visiable': false }) }, select_emoji: function(e) { var val = e.detail.value let emoji_type = val[0] let emoji_index = val[1] let emojis = util.get_emojis() var emoji_list = [] if(emoji_type == 0) { emoji_list = emojis['negative'] } if(emoji_type == 1) { emoji_list = emojis['positive'] } if(emoji_type == 2){ emoji_list = emojis['neutral'] } this.setData({ 'emoji_list': emoji_list, 'emoji_indicator': emoji_list[emoji_index] }) }, input : function(e) { this.setData({ 'text': e.detail['value'] }) // console.log(this.data.text) }, save: function(){ let date = new Date() let year = date.getFullYear() let month = date.getMonth() let day = date.getDate() let key = year + '-' + date_formater.add_date_prefix(month + 1)+'-' + date_formater.add_date_prefix(day) storage.add(key, this.data.emoji_indicator, 0, 0, 0, this.data.text) this.page_init(year, month) this.cancle() }, delete: function() { storage.del(this.data.item_key) this.page_init(this.data.year, this.data.month) this.cancle() }, cancle: function() { this.setData({ 'modal_visiable': false }) }, detail: function(e) { let key = e.currentTarget.dataset.key let item = storage.get(key) let emoji_defaul_value = util.get_emoji_pos(item['emoji_type']) this.setData({ 'text': item['text'], 'emoji_indicator': item['emoji_type'], 'emoji_defaul_value' : emoji_defaul_value, 'item_key': key }) this.modal() }})

三、效果图

具体的效果展示如下

文末

具体的介绍就到这里了 有兴趣的同学可以继续研究 代码放到下面链接里了

点击下载 小程序

本文链接地址:https://www.jiuchutong.com/zhishi/299783.html 转载请保留说明!

上一篇:node版本、npm版本随意切换(node-gyp版本)

下一篇:未来社区的人车房隐私数据权属确认方法(未来社区政策支持)

  • 小天才z7有微信功能吗(小天才手表有没有微信功能)

    小天才z7有微信功能吗(小天才手表有没有微信功能)

  • 华为畅享9plus如何设置深色模式(华为畅享9plus如何隐藏应用)

    华为畅享9plus如何设置深色模式(华为畅享9plus如何隐藏应用)

  • iphone11可立拍闪退(iphone 11可立拍)

    iphone11可立拍闪退(iphone 11可立拍)

  • 苹果拉黑了可以收到短信吗(苹果拉黑了可以给对方发短信吗)

    苹果拉黑了可以收到短信吗(苹果拉黑了可以给对方发短信吗)

  • 荣耀9xpro隐藏功能(荣耀9x隐藏功能怎么使用)

    荣耀9xpro隐藏功能(荣耀9x隐藏功能怎么使用)

  • 腾讯会议如何关闭摄像头(腾讯会议如何关闭声音)

    腾讯会议如何关闭摄像头(腾讯会议如何关闭声音)

  • 三星手机更新出错了怎么办(三星新系统更新了什么)

    三星手机更新出错了怎么办(三星新系统更新了什么)

  • word复制粘贴后格式变了(word复制粘贴后字体不统一)

    word复制粘贴后格式变了(word复制粘贴后字体不统一)

  • qq下拉小程序没有了(qq下拉小程序没了怎么办)

    qq下拉小程序没有了(qq下拉小程序没了怎么办)

  • 11怎么截屏(苹果手机11怎么截屏)

    11怎么截屏(苹果手机11怎么截屏)

  • xr来电不显示名字(xr来电不显示名称怎么办)

    xr来电不显示名字(xr来电不显示名称怎么办)

  • 怎样联系二维码付款人(怎样联系二维码付款人的微信)

    怎样联系二维码付款人(怎样联系二维码付款人的微信)

  • 三合一卡是什么手机卡(三合一卡是什么类型)

    三合一卡是什么手机卡(三合一卡是什么类型)

  • 手机摔黑屏了但有声音(手机摔黑屏了但有声音修一下多少钱)

    手机摔黑屏了但有声音(手机摔黑屏了但有声音修一下多少钱)

  • iphonexs上市时间(iphonex什么时候出的)

    iphonexs上市时间(iphonex什么时候出的)

  • 抖音怎么禁止别人转发(抖音怎么禁止别人私信我)

    抖音怎么禁止别人转发(抖音怎么禁止别人私信我)

  • 手机营业厅怎么改套餐(手机营业厅怎么查通话记录清单和短信)

    手机营业厅怎么改套餐(手机营业厅怎么查通话记录清单和短信)

  • 剪映怎么剪音乐片段(剪映怎么剪音乐卡点)

    剪映怎么剪音乐片段(剪映怎么剪音乐卡点)

  • 苹果11屏幕尺寸(苹果11屏幕尺寸是多少)

    苹果11屏幕尺寸(苹果11屏幕尺寸是多少)

  • 手机卡坏了异地能补吗(手机卡坏了异地怎么补卡)

    手机卡坏了异地能补吗(手机卡坏了异地怎么补卡)

  • p30pro可以插内存卡吗(p30pro支持内存扩展吗)

    p30pro可以插内存卡吗(p30pro支持内存扩展吗)

  • k480键盘使用说明(k480键盘怎么连接电脑)

    k480键盘使用说明(k480键盘怎么连接电脑)

  • lut调色是什么(lut调色预设怎么装入pr)

    lut调色是什么(lut调色预设怎么装入pr)

  • 抖音购物车功能如何开通(抖音购物车功能介绍)

    抖音购物车功能如何开通(抖音购物车功能介绍)

  • 手机频繁装载卸载危害(手机频繁安装卸载软件对内存有害吗)

    手机频繁装载卸载危害(手机频繁安装卸载软件对内存有害吗)

  • cad一保存就未响应(cad2012保存就无响应)

    cad一保存就未响应(cad2012保存就无响应)

  • MAC系统关闭屏幕截图和清倒废纸篓音效的方法(macos 关闭屏幕)

    MAC系统关闭屏幕截图和清倒废纸篓音效的方法(macos 关闭屏幕)

  • 国际运输需要办什么证
  • 企业所得税如何申报操作
  • 销项税额是指
  • 牵引车和挂车都要购买交强险吗
  • 金税盘数据迁移失败
  • 计提工资和实际发放工资必须一致吗
  • 在电子税务里怎么查以前年度亏损数据
  • 汇算清缴中研发费用中其他费用可抵扣的比例是多少
  • 工会应付下级经费
  • 捐赠支出税前扣除
  • 预付房租租金如何做账
  • 自查补交以前年度增值税怎么做账
  • 计提工资后发放时结转到什么科目
  • 采购运输管理系统
  • 房地产开发临时用电
  • 房地产企业暂估成本
  • 分公司转总公司款分录
  • 房产税缴纳时间规定
  • 营增改的四大“增效剂”
  • 外汇汇率在其中扮演什么角色?
  • 清包工和甲供工区别在哪
  • 中途建账期初余额错误怎么纠正
  • 公司支付给个人的货款怎么入账
  • 合同印花税交给谁
  • 车辆维修费可以抵扣进项吗
  • 负债的情况
  • 施工图审查费入哪个科目
  • win7提示windows进行了未授权的更改
  • 公司开业需要怎么布置
  • php正则替换字符串
  • 股东车辆保险费会计分录
  • 在建工程进项税额转出
  • 高新企业认定后研发费用比例
  • nullable object must have a value
  • 资产减值对应科目
  • vue打包成一个文件
  • 安装运行所需环境怎么填
  • vue 播放视频流
  • 会计申报需要哪些数据
  • 智能优化算法主要内容
  • vue懒加载机构树刷新
  • 软件企业会计账务处理
  • 会引起所有者权益总额变动的是
  • 二氧化剂的使用方法
  • 填写蓝字专用发票信息
  • sqlserver数据表在哪里
  • mongodb用户权限
  • 技术服务收入属于什么收入
  • 资产负债率如何
  • 公户直接转给私人账户违法么
  • 执行企业会计制度是什么意思
  • 个体户查账征收和核定征收哪个好
  • sqlserver函数语法
  • 购入固定资产如何交所得税
  • 无偿赠送货物如何申报增值税
  • 仓库发货打包员工作内容
  • 外币转入账户什么意思
  • 什么是盈余公积和资本公积
  • 工资分摊计提分配方式?
  • 个人借款产生的利息怎么计算的
  • 资金股东占股比例
  • 企业管理费的计算基础
  • mysql日期用什么数据类型
  • 360 sesvc.exe
  • windows7用户
  • fedora phpMyAdmin 安装方法及介绍
  • win7 64位系统无法使用银行网银怎么办? IE9浏览器无法使用农业银行网银的解决方法
  • macos睡眠
  • u启动开机启动快捷键
  • linux shell 常用命令大全
  • win8打开ie浏览器
  • bootstrap模态窗口
  • python 初级
  • shell脚本中获取参数
  • unity3d初学者教程视频
  • python解决方案与程序有什么不同
  • 文化事业建设税减免政策2023
  • 为什么要征收城乡土地
  • 全国征兵网官网报名
  • 国家税务总局黑龙江电子税务局下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设