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 29e3065..9293a87 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # 123 +![截图](./screen.png.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..39df0ab --- /dev/null +++ b/app.json @@ -0,0 +1,44 @@ +{ + "pages": [ + "pages/index/index", + "pages/guest/guest", + "pages/video/video", + "pages/picture/picture", + "pages/logs/logs" + ], + "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" + } +} + + diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..67735ed --- /dev/null +++ b/app.wxss @@ -0,0 +1,6 @@ +page{ + display: flex; + flex-direction: column; + justify-content: space-between; + box-sizing: border-box; +} \ No newline at end of file diff --git a/components/navigation-bar/navigation-bar.js b/components/navigation-bar/navigation-bar.js new file mode 100644 index 0000000..e93f90f --- /dev/null +++ b/components/navigation-bar/navigation-bar.js @@ -0,0 +1,105 @@ +Component({ + options: { + multipleSlots: true // 在组件定义时的选项中启用多slot支持 + }, + /** + * 组件的属性列表 + */ + properties: { + extClass: { + type: String, + value: '' + }, + title: { + type: String, + value: '' + }, + background: { + type: String, + value: '' + }, + color: { + type: String, + value: '' + }, + back: { + type: Boolean, + value: true + }, + loading: { + type: Boolean, + value: false + }, + homeButton: { + type: Boolean, + value: false, + }, + animated: { + // 显示隐藏的时候opacity动画效果 + type: Boolean, + value: true + }, + show: { + // 显示隐藏导航,隐藏的时候navigation-bar的高度占位还在 + type: Boolean, + value: true, + observer: '_showChange' + }, + // back为true的时候,返回的页面深度 + delta: { + type: Number, + value: 1 + }, + }, + /** + * 组件的初始数据 + */ + data: { + displayStyle: '' + }, + lifetimes: { + attached() { + const rect = wx.getMenuButtonBoundingClientRect() + wx.getSystemInfo({ + success: (res) => { + const isAndroid = res.platform === 'android' + const isDevtools = res.platform === 'devtools' + this.setData({ + ios: !isAndroid, + innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px`, + leftWidth: `width: ${res.windowWidth - rect.left }px`, + safeAreaTop: isDevtools || isAndroid ? `height: calc(var(--height) + ${res.safeArea.top}px); padding-top: ${res.safeArea.top}px` : `` + }) + } + }) + }, + }, + /** + * 组件的方法列表 + */ + methods: { + _showChange(show) { + const animated = this.data.animated + let displayStyle = '' + if (animated) { + displayStyle = `opacity: ${ + show ? '1' : '0' + };transition:opacity 0.5s;` + } else { + displayStyle = `display: ${show ? '' : 'none'}` + } + this.setData({ + displayStyle + }) + }, + back() { + const data = this.data + if (data.delta) { + wx.navigateBack({ + delta: data.delta + }) + } + this.triggerEvent('back', { delta: data.delta }, {}) + } + }, +}) diff --git a/components/navigation-bar/navigation-bar.json b/components/navigation-bar/navigation-bar.json new file mode 100644 index 0000000..4a20f17 --- /dev/null +++ b/components/navigation-bar/navigation-bar.json @@ -0,0 +1,5 @@ +{ + "component": true, + "styleIsolation": "apply-shared", + "usingComponents": {} +} \ No newline at end of file diff --git a/components/navigation-bar/navigation-bar.wxml b/components/navigation-bar/navigation-bar.wxml new file mode 100644 index 0000000..be9a663 --- /dev/null +++ b/components/navigation-bar/navigation-bar.wxml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{title}} + + + + + + + + + + + + diff --git a/components/navigation-bar/navigation-bar.wxss b/components/navigation-bar/navigation-bar.wxss new file mode 100644 index 0000000..8bd379e --- /dev/null +++ b/components/navigation-bar/navigation-bar.wxss @@ -0,0 +1,96 @@ +.weui-navigation-bar { + --weui-FG-0:rgba(0,0,0,.9); + --height: 44px; + --left: 16px; +} +.weui-navigation-bar .android { + --height: 48px; +} + +.weui-navigation-bar { + overflow: hidden; + color: var(--weui-FG-0); + flex: none; +} + +.weui-navigation-bar__inner { + position: relative; + top: 0; + left: 0; + height: calc(var(--height) + env(safe-area-inset-top)); + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + padding-top: env(safe-area-inset-top); + width: 100%; + box-sizing: border-box; +} + +.weui-navigation-bar__left { + position: relative; + padding-left: var(--left); + display: flex; + flex-direction: row; + align-items: flex-start; + height: 100%; + box-sizing: border-box; +} + +.weui-navigation-bar__btn_goback_wrapper { + padding: 11px 18px 11px 16px; + margin: -11px -18px -11px -16px; +} + +.weui-navigation-bar__btn_goback_wrapper.weui-active { + opacity: 0.5; +} + +.weui-navigation-bar__btn_goback { + font-size: 12px; + width: 12px; + height: 24px; + -webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%; + mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%; + -webkit-mask-size: cover; + mask-size: cover; + background-color: var(--weui-FG-0); +} + +.weui-navigation-bar__center { + font-size: 17px; + text-align: center; + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + font-weight: bold; + flex: 1; + height: 100%; +} + +.weui-navigation-bar__loading { + margin-right: 4px; + align-items: center; +} + +.weui-loading { + font-size: 16px; + width: 16px; + height: 16px; + display: block; + background: transparent url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A") no-repeat; + background-size: 100%; + margin-left: 0; + animation: loading linear infinite 1s; +} + +@keyframes loading { + from { + transform: rotate(0); + } + to { + transform: rotate(360deg); + } +} 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/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/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..93fcd50 --- /dev/null +++ b/pages/guest/guest.wxml @@ -0,0 +1,37 @@ + +pages/guest/guest.wxml +
+ + + + + + + + +wwertyu + + +
+ + + + + + + + +请选择您的性别 + + + + + + +请选择您需要的点心 + +蛋糕 +甜甜圈 +巧克力 + + \ No newline at end of file diff --git a/pages/guest/guest.wxss b/pages/guest/guest.wxss new file mode 100644 index 0000000..ef19fad --- /dev/null +++ b/pages/guest/guest.wxss @@ -0,0 +1,57 @@ +/* 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-color: #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..8b8eb9e --- /dev/null +++ b/pages/index/index.js @@ -0,0 +1,52 @@ +// index.js +const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' + +Component({ + data: { + motto: 'Hello World', + userInfo: { + avatarUrl: defaultAvatarUrl, + nickName: '', + }, + hasUserInfo: false, + canIUseGetUserProfile: wx.canIUse('getUserProfile'), + canIUseNicknameComp: wx.canIUse('input.type.nickname'), + }, + methods: { + // 事件处理函数 + 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..c3a048a --- /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..7765e88 --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,37 @@ + + + + + +邀请函 + + + + + + + + + + + + + +王辉辉 +新郎 + + + + + + +张琳琳 +新娘 + + + + +我们诚邀您来参加我们的婚礼 +时间: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..be161c8 --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,83 @@ +.bg { + width: 100vw; + height: 100vh; +} + +.content { + width: 100vw; + height: 100vh; + position: fixed; + display: flex; + flex-direction: column; + align-items: center; +} + +.content-git { + 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; +} + + diff --git a/pages/logs/logs.js b/pages/logs/logs.js new file mode 100644 index 0000000..0c69f70 --- /dev/null +++ b/pages/logs/logs.js @@ -0,0 +1,20 @@ +// logs.js +const util = require('../../utils/util.js') + +Component({ + data: { + logs: [] + }, + lifetimes: { + attached() { + this.setData({ + logs: (wx.getStorageSync('logs') || []).map(log => { + return { + date: util.formatTime(new Date(log)), + timeStamp: log + } + }) + }) + } + }, +}) diff --git a/pages/logs/logs.json b/pages/logs/logs.json new file mode 100644 index 0000000..aa3f1b0 --- /dev/null +++ b/pages/logs/logs.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "navigation-bar": "/components/navigation-bar/navigation-bar" + } +} \ No newline at end of file diff --git a/pages/logs/logs.wxml b/pages/logs/logs.wxml new file mode 100644 index 0000000..7de3ba3 --- /dev/null +++ b/pages/logs/logs.wxml @@ -0,0 +1,7 @@ + + + + + {{index + 1}}. {{log.date}} + + diff --git a/pages/logs/logs.wxss b/pages/logs/logs.wxss new file mode 100644 index 0000000..33f9d9e --- /dev/null +++ b/pages/logs/logs.wxss @@ -0,0 +1,16 @@ +page { + height: 100vh; + display: flex; + flex-direction: column; +} +.scrollarea { + flex: 1; + overflow-y: hidden; +} +.log-item { + margin-top: 20rpx; + text-align: center; +} +.log-item:last-child { + padding-bottom: env(safe-area-inset-bottom); +} 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..8f356b3 --- /dev/null +++ b/pages/picture/picture.wxml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/picture/picture.wxss b/pages/picture/picture.wxss new file mode 100644 index 0000000..97a9455 --- /dev/null +++ b/pages/picture/picture.wxss @@ -0,0 +1,8 @@ +swiper { + height: 100vh; +} + +image { + width: 100vw; + height: 100vh; +} \ No newline at end of file diff --git a/pages/video/01.mp4 b/pages/video/01.mp4 new file mode 100644 index 0000000..06e937a Binary files /dev/null and b/pages/video/01.mp4 differ diff --git a/pages/video/02.mp4 b/pages/video/02.mp4 new file mode 100644 index 0000000..03450ec Binary files /dev/null and b/pages/video/02.mp4 differ diff --git a/pages/video/03.mp4 b/pages/video/03.mp4 new file mode 100644 index 0000000..5364c33 Binary files /dev/null and b/pages/video/03.mp4 differ 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..e7175c5 --- /dev/null +++ b/pages/video/video.wxml @@ -0,0 +1,15 @@ + +标题:海边随拍 +拍摄日期:2022-01-01 + + + +标题:勿忘初心 +拍摄日期:2022-01-10 + + + +标题:十年之约 +拍摄日期:2022-01-10 + + \ No newline at end of file diff --git a/pages/video/video.wxss b/pages/video/video.wxss new file mode 100644 index 0000000..f011094 --- /dev/null +++ b/pages/video/video.wxss @@ -0,0 +1,23 @@ +/* pages/video/video.wxss */ +.video{ + box-shadow: 0 8rpx 17rpx 0 rgba(7, 17, 27, 0.1) ; + margin: 10rpx 25rpx; + margin-top: 30rpx; + padding: 20rpx; + border-radius: 10rpx; + background: #fff; +} + +.video-title{ + font-size: 35rpx; + columns: #333; +} +.video-time{ + font-size: 26rpx; + color: #979797; +} + +.video video{ + width: 100%; + margin-top: 20rpx; +} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..6528863 --- /dev/null +++ b/project.config.json @@ -0,0 +1,28 @@ +{ + "appid": "wx2d72f07adf0c3941", + "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 + } +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..403522a --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,8 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "miniprogram-34", + "setting": { + "compileHotReLoad": true, + "skylineRenderEnable": true + } +} \ No newline at end of file diff --git a/screen.png.png b/screen.png.png new file mode 100644 index 0000000..4fcb942 Binary files /dev/null and b/screen.png.png differ 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 +}