zoukankan      html  css  js  c++  java
  • 微信小程序之简单记账本开发记录(七)

    记账本已经可以实现添加和删除的功能

    现在只需要将上述步骤重复一遍便可将另一个界面做出来。

    大体上已制作完成,如果在细节上有变动会在这一篇更新

     总体来说,这个作业让我对微信小程序的开发有了更多地认识,大致主体程序和页面开发的一些手法也有了一个

    较为详细地了解,对以后的学习也有了很大的帮助。

    使用教程:千锋教育-微信程序开发

    下面是小程序的大体代码

     1 const app = getApp()
     2 
     3 Page({
     4   data: {
     5     motto: 'Life is fantastic',
     6     userInfo: {},
     7     hasUserInfo: false,
     8     canIUse: wx.canIUse('button.open-type.getUserInfo')
     9   },
    10   //事件处理函数
    11   bindViewTap: function () {
    12     wx.navigateTo({
    13       url: '../logs/logs'
    14     })
    15   },
    16   onLoad: function () {
    17     if (app.globalData.userInfo) {
    18       this.setData({
    19         userInfo: app.globalData.userInfo,
    20         hasUserInfo: true
    21       })
    22     } else if (this.data.canIUse) {
    23       // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
    24       // 所以此处加入 callback 以防止这种情况
    25       app.userInfoReadyCallback = res => {
    26         this.setData({
    27           userInfo: res.userInfo,
    28           hasUserInfo: true
    29         })
    30       }
    31     } else {
    32       // 在没有 open-type=getUserInfo 版本的兼容处理
    33       wx.getUserInfo({
    34         success: res => {
    35           app.globalData.userInfo = res.userInfo
    36           this.setData({
    37             userInfo: res.userInfo,
    38             hasUserInfo: true
    39           })
    40         }
    41       })
    42     }
    43   },
    44   getUserInfo: function (e) {
    45     console.log(e)
    46     app.globalData.userInfo = e.detail.userInfo
    47     this.setData({
    48       userInfo: e.detail.userInfo,
    49       hasUserInfo: true
    50     })
    51   },
    52   onShow() {
    53    
    54   },
    55   onShareAppMessage() {
    56     return {
    57       title: '管家记账本',
    58       path: '/pages/index/index'
    59     }
    60   },
    61 showTxet(){
    62   this.setData({
    63     motto:"生活充满精彩"
    64   })
    65 }
    66 
    67 
    68 
    69  
    70 })
    index.js
    1 {
    2   "navigationBarTitleText": "记账本",
    3   
    4   "usingComponents": {}
    5   
    6 }
    index.json
     1 <view class="container" bindtap="showTxet">
     2 
     3   <view class="userinfo">
     4     <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
     5     <block wx:else>
     6       <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
     7       <text class="userinfo-nickname">{{userInfo.nickName}}</text>
     8     </block>
     9   </view>
    10   <view class="usermotto">
    11     <text class="user-motto">{{motto}}</text>
    12   </view>
    13 </view>
    14 
    15 
    16 <view class="btns">
    17 <view class="btn btn-publish">
    18  <navigator url="/pages/publish/publish">收入</navigator>
    19  </view>
    20 <view class="btn">
    21 <navigator url="/pages/pro/pro">支出</navigator>
    22  </view>
    23 
    24 </view>
    index.wxml
     1 /*.map-container {
     2   position: absolute;
     3   top: 0;
     4   right: 0;
     5   bottom: 40px;
     6   left: 0;
     7 background: greenyellow;
     8 }
     9 .map{
    10    100%;
    11   height: 100%
    12 }*/
    13 .userinfo {
    14   display: flex;
    15   flex-direction: column;
    16   align-items: center;
    17 }
    18 
    19 .userinfo-avatar {
    20    128rpx;
    21   height: 128rpx;
    22   margin: 20rpx;
    23   border-radius: 50%;
    24 }
    25 
    26 .userinfo-nickname {
    27   color: #aaa;
    28 }
    29 
    30 .usermotto {
    31   margin-top: 100px;
    32   color: #aaa;
    33 }
    34 
    35 /*下方按钮*/
    36 .btns {
    37   position: absolute;
    38   display: flex;
    39   left:0;
    40   right: 0;
    41   line-height: 40px;
    42   bottom: 0;
    43   background: #03bbd5;
    44 }
    45 .btn{
    46   flex: 1;
    47   text-align: center;
    48   color: #fff;
    49 }
    50 .btn-publish{
    51   background: #ff9700
    52 }
    53 
    54 
    55 .classname{
    56   100%;
    57  height: 100%;
    58  display: flex;
    59  justify-content: center;
    60 
    61 }
    62 .classname-publish{
    63     align-items: center;
    64 }
    index.wxss
     1 {
     2   "pages": [
     3     "pages/index/index"
     4   ],
     5   "window": {
     6     "backgroundTextStyle": "dark",
     7     "navigationBarBackgroundColor": "#fff",
     8     "navigationBarTitleText": "记账",
     9     "navigationBarTextStyle": "black",
    10     "backgroundColor": "gray"
    11   },
    12   "debug": true
    13 }
    pro.json
     1 <view class="container">
     2 
     3     <form catchsubmit="formSubmit" >
     4       <view class="account-detail"> 
     5         <input placeholder="花销详情(内容加时间)" name="inputdetail"  type="text" />
     6       </view>
     7 
     8       <view class="account-amount"> 
     9         <input placeholder="花销金额" name="inputamount" type="number" />
    10       </view>
    11       
    12       <view class="add-one">
    13         <button formType="submit" type="primary" loading="{{buttonLoading}}"> 支出 </button>
    14       </view>
    15     </form>
    16 
    17     <view  class="account-list-text">
    18       <text>条目列表</text>
    19     </view>
    20 
    21      <view  class="account-list-all-amount">
    22       <text>总支出:{{accountTotal}}</text>
    23     </view>
    24     
    25     <block wx:for="{{accountDATA}}" >
    26       <view class="account-list">
    27 
    28        <view class="account-list-amount">
    29           {{item.amount}}
    30         </view>
    31         
    32         <view class="account-list-detail">
    33           {{item.detail}}
    34         </view>
    35 
    36         
    37 
    38         <view class="account-list-del">
    39             <button size="mini"  type="warn"  data-index-key="{{index}}"  bindtap="deleteRow" >删除</button>
    40         </view>
    41 
    42         </view>
    43     </block>
    44 
    45     
    46 
    47 </view>
    pro.wxml
     1 .account-detail{
     2     height: 100rpx;
     3     padding: 0 30rpx;
     4 }
     5 
     6 .account-amount{
     7     padding: 0 30rpx;
     8 }
     9 
    10 .add-one{
    11     margin-top: 20rpx;
    12 }
    13 
    14 .account-list-text{
    15     color:gray;
    16     margin:30rpx 0 0 30rpx;
    17 }
    18 
    19 .account-list-all-amount{
    20     color:gray;
    21     align-self: flex-end;
    22     padding-right: 25rpx;
    23 }
    24 
    25 
    26 .account-list{
    27     color:gray;
    28     margin:30rpx 0 0 30rpx;
    29     display: flex;
    30     flex-direction: row;
    31     background-color:wheat;
    32     line-height: 80rpx;
    33 }
    34 
    35 
    36 .account-list-detail{
    37     flex:1;
    38 }
    39 
    40 
    41 .account-list-amount{
    42      500rpx;
    43 }
    pro.wxss
     1 {
     2   "pages": [
     3     "pages/index/index"
     4   ],
     5   "window": {
     6     "backgroundTextStyle": "dark",
     7     "navigationBarBackgroundColor": "#fff",
     8     "navigationBarTitleText": "记账",
     9     "navigationBarTextStyle": "black",
    10     "backgroundColor": "gray"
    11   },
    12   "debug": true
    13 }
    pro.js

    另一个相似页面就不再重复贴了

  • 相关阅读:
    整理了一份FAQ,新手看一下
    分享:pythonbitstring 3.1.2 发布
    分享:TokuDB v7 发布,并宣布全面开源
    在美国学CS能挣多少钱?美国IT公司标准 offer package详细数字及绿卡政策 | 美国留学申请与就业找工作咨询博客|Warald|一亩三分地论坛
    写的split带改进
    分享:一个多进程并发执行程序ps命令 ls命令
    分享:vi/vim使用进阶: 指随意动,移动如飞 (一)
    waning rm i rm rvfi
    分享:C++中头文件、源文件之间的区别与联系
    分享:神奇的动归状态转移方程——最优子序列
  • 原文地址:https://www.cnblogs.com/yeshenfeng/p/10423851.html
Copyright © 2011-2022 走看看