diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..115cc02 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,31 @@ +/* + * Eslint config file + * Documentation: https://eslint.org/docs/user-guide/configuring/ + * Install the Eslint extension before using this feature. + */ +module.exports = { + env: { + es6: true, + browser: true, + node: true, + }, + ecmaFeatures: { + modules: true, + }, + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + }, + globals: { + wx: true, + App: true, + Page: true, + getCurrentPages: true, + getApp: true, + Component: true, + requirePlugin: true, + requireMiniProgram: true, + }, + // extends: 'eslint:recommended', + rules: {}, +} diff --git a/README.md b/README.md index 846f0d8..5e5351e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # project - +![](./ooo.png) diff --git a/app.js b/app.js new file mode 100644 index 0000000..1ed57c4 --- /dev/null +++ b/app.js @@ -0,0 +1,19 @@ +// app.js +App({ + onLaunch() { + // 展示本地存储能力 + const logs = wx.getStorageSync('logs') || [] + logs.unshift(Date.now()) + wx.setStorageSync('logs', logs) + + // 登录 + wx.login({ + success: res => { + // 发送 res.code 到后台换取 openId, sessionKey, unionId + } + }) + }, + globalData: { + userInfo: null + } +}) diff --git a/app.json b/app.json new file mode 100644 index 0000000..d03a1c6 --- /dev/null +++ b/app.json @@ -0,0 +1,52 @@ +{ + "pages": [ + "pages/index/index", + "pages/guest/guest", + "pages/video/video", + "pages/picture/picture" + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Weixin", + "navigationBarBackgroundColor": "#ffffff" + }, + "style": "v2", + "componentFramework": "glass-easel", + "sitemapLocation": "sitemap.json", + "lazyCodeLoading": "requiredComponents", + +"tabBar":{ + "color":"#ccc", + "selectedColor":"#ff4c91", + "borderStyle":"white", + "backgroundColor":"#fff", + "list":[{ + "pagePath":"pages/index/index", + "iconPath":"images/invite.png", + "selectedIconPath":"images/invite.png", + "text":"邀请函" + },{ + "pagePath":"pages/picture/picture", + "iconPath":"images/marry.png", + "selectedIconPath":"images/marry.png", + "text":"照片" + },{ + "pagePath":"pages/video/video", + "iconPath":"images/video.png", + "selectedIconPath":"images/video.png", + "text":"美好时光" + },{ + "pagePath":"pages/guest/guest", + "iconPath":"images/guest.png", + "selectedIconPath":"images/guest.png", + "text":"宾客信息" + } +] +}, + +"window":{ + "backgroundTextStyle":"light", + "navigationBarBackgroundColor":"#ff4c91", + "navigationBarTextStyle":"white" +} +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..3363285 --- /dev/null +++ b/app.wxss @@ -0,0 +1,16 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; +} +page{ + display: flex; + flex-direction: column; + justify-content: space-between; + box-sizing: border-box; +} \ No newline at end of file diff --git a/images/avatar.png b/images/avatar.png new file mode 100644 index 0000000..20ab9f6 Binary files /dev/null and b/images/avatar.png differ diff --git a/images/bg_1.png b/images/bg_1.png new file mode 100644 index 0000000..667d4f5 Binary files /dev/null and b/images/bg_1.png differ diff --git a/images/bj_2.png b/images/bj_2.png new file mode 100644 index 0000000..60e7fad Binary files /dev/null and b/images/bj_2.png differ diff --git a/images/guest.png b/images/guest.png new file mode 100644 index 0000000..6d296a4 Binary files /dev/null and b/images/guest.png differ diff --git a/images/invite.png b/images/invite.png new file mode 100644 index 0000000..d61de76 Binary files /dev/null and b/images/invite.png differ diff --git a/images/marry.png b/images/marry.png new file mode 100644 index 0000000..dc553fa Binary files /dev/null and b/images/marry.png differ diff --git a/images/save_the_date.gif b/images/save_the_date.gif new file mode 100644 index 0000000..49ed478 Binary files /dev/null and b/images/save_the_date.gif differ diff --git a/images/tel.png b/images/tel.png new file mode 100644 index 0000000..f0aa13a Binary files /dev/null and b/images/tel.png differ diff --git a/images/timg1.jpg b/images/timg1.jpg new file mode 100644 index 0000000..2c6345c Binary files /dev/null and b/images/timg1.jpg differ diff --git a/images/timg2.jpg b/images/timg2.jpg new file mode 100644 index 0000000..a5823a6 Binary files /dev/null and b/images/timg2.jpg differ diff --git a/images/timg3.jpg b/images/timg3.jpg new file mode 100644 index 0000000..f150567 Binary files /dev/null and b/images/timg3.jpg differ diff --git a/images/timg4.jpg b/images/timg4.jpg new file mode 100644 index 0000000..7d76c44 Binary files /dev/null and b/images/timg4.jpg differ diff --git a/images/video.png b/images/video.png new file mode 100644 index 0000000..4daa739 Binary files /dev/null and b/images/video.png differ diff --git a/images/wedding.png b/images/wedding.png new file mode 100644 index 0000000..42635f7 Binary files /dev/null and b/images/wedding.png differ diff --git a/ooo.png b/ooo.png new file mode 100644 index 0000000..e425598 Binary files /dev/null and b/ooo.png differ diff --git a/pages/guest/guest.js b/pages/guest/guest.js new file mode 100644 index 0000000..2eef030 --- /dev/null +++ b/pages/guest/guest.js @@ -0,0 +1,66 @@ +// pages/guest/guest.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/guest/guest.json b/pages/guest/guest.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/guest/guest.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/guest/guest.wxml b/pages/guest/guest.wxml new file mode 100644 index 0000000..7159346 --- /dev/null +++ b/pages/guest/guest.wxml @@ -0,0 +1,28 @@ + + +
+ + + + + + + + + 请选择您的性别: + + + + + + + 请选择您需要的点心: + + 蛋糕 + 甜甜圈 + 巧克力 + + + + +
\ No newline at end of file diff --git a/pages/guest/guest.wxss b/pages/guest/guest.wxss new file mode 100644 index 0000000..b5d068c --- /dev/null +++ b/pages/guest/guest.wxss @@ -0,0 +1,48 @@ +/* pages/guest/guest.wxss */ +.bg{ + width: 100vw; + height: 100vh; +} +.content{ + width: 80vw; + position: fixed; + left: 10vw; + bottom: 8vh; +} +.content .input{ + font-size: large; + border: 1rpx solid #ff4c91; + border-radius: 10rpx; + padding: 1.5vh 40rpx; + margin-bottom: 1.5vh; + color: #ff4c91; +} +.content .radio{ + font-size: large; + margin-bottom: 1.5vh; + color: #ff4c91; + display: flex; +} +.content .check{ + font-size: large; + margin-bottom: 1.5vh; + color: #ff4c91; +} +.check checkbox-group{ + margin-top: 1.5vh; + color: #ff4c91; +} +.check checkbox-group checkbox{ + margin-left: 20rpx; +} +.check checkbox-group checkbox:nth-child(1){ + margin-left: 0; +} +.content button{ + font-size: large; + background:#ff4c91; + color: #fff; +} +.content .phcolor{ + color: #ff4c91; +} \ No newline at end of file diff --git a/pages/index/index.js b/pages/index/index.js new file mode 100644 index 0000000..a8d6aa5 --- /dev/null +++ b/pages/index/index.js @@ -0,0 +1,49 @@ +// index.js +const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' + +Page({ + data: { + motto: 'Hello World', + userInfo: { + avatarUrl: defaultAvatarUrl, + nickName: '', + }, + hasUserInfo: false, + canIUseGetUserProfile: wx.canIUse('getUserProfile'), + canIUseNicknameComp: wx.canIUse('input.type.nickname'), + }, + bindViewTap() { + wx.navigateTo({ + url: '../logs/logs' + }) + }, + onChooseAvatar(e) { + const { avatarUrl } = e.detail + const { nickName } = this.data.userInfo + this.setData({ + "userInfo.avatarUrl": avatarUrl, + hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, + }) + }, + onInputChange(e) { + const nickName = e.detail.value + const { avatarUrl } = this.data.userInfo + this.setData({ + "userInfo.nickName": nickName, + hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, + }) + }, + getUserProfile(e) { + // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 + wx.getUserProfile({ + desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 + success: (res) => { + console.log(res) + this.setData({ + userInfo: res.userInfo, + hasUserInfo: true + }) + } + }) + }, +}) diff --git a/pages/index/index.json b/pages/index/index.json new file mode 100644 index 0000000..4c288eb --- /dev/null +++ b/pages/index/index.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "邀请函" +} \ No newline at end of file diff --git a/pages/index/index.wxml b/pages/index/index.wxml new file mode 100644 index 0000000..4a2636b --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,61 @@ + + + + + + + + 昵称 + + + + + + 请使用2.10.4及以上版本基础库 + + + + {{userInfo.nickName}} + + + + {{motto}} + + + + + + + + +邀请函 + + + + + + + + + + + 王辉辉 + 新郎 + + + + + + + 张琳琳 + 新娘 + + + + + 我们诚邀您来参加我们的婚礼 + 时间:2022年1月28日 + 地点:北京市海淀区xx路xx酒店 + \ No newline at end of file diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..b9e0336 --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,135 @@ +/**index.wxss**/ +page { + height: 100vh; + display: flex; + flex-direction: column; +} +.scrollarea { + flex: 1; + overflow-y: hidden; +} + +.userinfo { + display: flex; + flex-direction: column; + align-items: center; + color: #aaa; + width: 80%; +} + +.userinfo-avatar { + overflow: hidden; + width: 128rpx; + height: 128rpx; + margin: 20rpx; + border-radius: 50%; +} + +.usermotto { + margin-top: 200px; +} + +.avatar-wrapper { + padding: 0; + width: 56px !important; + border-radius: 8px; + margin-top: 40px; + margin-bottom: 40px; +} + +.avatar { + display: block; + width: 56px; + height: 56px; +} + +.nickname-wrapper { + display: flex; + width: 100%; + padding: 16px; + box-sizing: border-box; + border-top: .5px solid rgba(0, 0, 0, 0.1); + border-bottom: .5px solid rgba(0, 0, 0, 0.1); + color: black; +} + +.nickname-label { + width: 105px; +} + +.nickname-input { + flex: 1; +} + +.bg{ + width: 100vw; + height: 100vh; +} +.content{ + width: 100vw; + height: 100vh; + position: fixed; + display: flex; + flex-direction: column; + align-items: center; +} +.content-gif{ + width: 19vh; + height: 18.6vh; + margin-bottom: 1.5vh; +} +.content-title{ + font-size: 5vh; + color: #ff4c91; + text-align: center; + margin-bottom: 2.5vh; +} +.content-avatar image{ + width: 24vh; + height: 24vh; + border: 3px solid #ff4c91; + border-radius: 50%; +} +.content-info{ + width: 45vw; + text-align: center; + margin-top: 4vh; + display: flex; + align-items: center; +} +.content-name{ + color: #ff4c91; + font-size: 2.7vh; + line-height: 4.5vh; + font-weight: bold; + position: relative; +} +.content-name>image{ + width: 2.6vh; + height: 2.6vh; + border: 1px solid #ff4c91; + border-radius: 50%; + position: absolute; + top: -1vh; + right: -3.6vh; +} +.content-wedding{ + flex: 1; +} +.content-wedding>image{ + width: 5.5vh; + height: 5.5vh; + margin-left: 20rpx; +} +.content-address{ + margin-top: 5vh; + color: #ec5f89; + font-size: 2.5vh; + font-weight: bold; + text-align: center; + line-height: 4.5vh; +} +.content-address view:first-child{ + font-size: 3vh; + padding-bottom: 2vh; +} \ No newline at end of file diff --git a/pages/logs/logs.js b/pages/logs/logs.js new file mode 100644 index 0000000..26e868a --- /dev/null +++ b/pages/logs/logs.js @@ -0,0 +1,66 @@ +// pages/logs/logs.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/logs/logs.wxml b/pages/logs/logs.wxml new file mode 100644 index 0000000..576fa6b --- /dev/null +++ b/pages/logs/logs.wxml @@ -0,0 +1,2 @@ + +pages/logs/logs.wxml \ No newline at end of file diff --git a/pages/picture/picture.js b/pages/picture/picture.js new file mode 100644 index 0000000..af233d1 --- /dev/null +++ b/pages/picture/picture.js @@ -0,0 +1,66 @@ +// pages/picture/picture.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/picture/picture.json b/pages/picture/picture.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/picture/picture.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/picture/picture.wxml b/pages/picture/picture.wxml new file mode 100644 index 0000000..28be39d --- /dev/null +++ b/pages/picture/picture.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/picture/picture.wxss b/pages/picture/picture.wxss new file mode 100644 index 0000000..2235bb7 --- /dev/null +++ b/pages/picture/picture.wxss @@ -0,0 +1,8 @@ +/* pages/picture/picture.wxss */ +swiper{ + height: 100vh; +} +image{ + width: 100vw; + height: 100vh; +} diff --git a/pages/video/video.js b/pages/video/video.js new file mode 100644 index 0000000..d54f207 --- /dev/null +++ b/pages/video/video.js @@ -0,0 +1,66 @@ +// pages/video/video.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/video/video.json b/pages/video/video.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/video/video.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/video/video.wxml b/pages/video/video.wxml new file mode 100644 index 0000000..920199c --- /dev/null +++ b/pages/video/video.wxml @@ -0,0 +1,16 @@ + + + 标题:海边随拍 + 拍摄日期:2022-01-01 + + + + 标题:勿忘初心 + 拍摄日期:2022-01-10 + + + + 标题:十年之约 + 拍摄日期:2022-01-20 + + \ No newline at end of file diff --git a/pages/video/video.wxss b/pages/video/video.wxss new file mode 100644 index 0000000..b6f8db9 --- /dev/null +++ b/pages/video/video.wxss @@ -0,0 +1,20 @@ +.video{ + box-shadow: 0 8rpx 17rpx 0 rgba(7,17,27,0.1); + margin: 10rpx 25rpx; + margin-bottom: 30rpx; + padding: 20rpx; + border-radius: 10rpx; + background: #fff; +} +.video-title{ + font-size: 35rpx; + color: #333; +} +.video-time{ + font-size: 26rpx; + color: #979797; +} +.video video{ + width: 100%; + margin-top: 20rpx; +} \ No newline at end of file diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..fb8ab9b --- /dev/null +++ b/project.config.json @@ -0,0 +1,28 @@ +{ + "compileType": "miniprogram", + "libVersion": "trial", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "coverView": true, + "es6": true, + "postcss": true, + "minified": true, + "enhance": true, + "showShadowRootInWxmlPanel": true, + "packNpmRelationList": [], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + } + }, + "condition": {}, + "editorSetting": { + "tabIndent": "auto", + "tabSize": 2 + }, + "appid": "wx48a8c8faed899379" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..e77c0df --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,7 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "miniprogram-7", + "setting": { + "compileHotReLoad": true + } +} \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/utils/util.js b/utils/util.js new file mode 100644 index 0000000..764bc2c --- /dev/null +++ b/utils/util.js @@ -0,0 +1,19 @@ +const formatTime = date => { + const year = date.getFullYear() + const month = date.getMonth() + 1 + const day = date.getDate() + const hour = date.getHours() + const minute = date.getMinutes() + const second = date.getSeconds() + + return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}` +} + +const formatNumber = n => { + n = n.toString() + return n[1] ? n : `0${n}` +} + +module.exports = { + formatTime +}