diff --git a/miniapp/app.js b/miniapp/app.js new file mode 100644 index 0000000..32b936b --- /dev/null +++ b/miniapp/app.js @@ -0,0 +1,19 @@ +App({ + onLaunch() { + // 记录本地启动时间,便于开发调试。 + const logs = wx.getStorageSync('logs') || [] + logs.unshift(Date.now()) + wx.setStorageSync('logs', logs) + + // 获取临时登录凭证;正式换取会话在 M08 接入。 + wx.login({ + success: res => { + // 后续将 res.code 发送到 /app-api/auth/wechat-login。 + void res + } + }) + }, + globalData: { + userInfo: null + } +}) diff --git a/miniapp/app.json b/miniapp/app.json new file mode 100644 index 0000000..aeadfe3 --- /dev/null +++ b/miniapp/app.json @@ -0,0 +1,15 @@ +{ + "pages": [ + "pages/index/index", + "pages/logs/logs" + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "自助棋牌室", + "navigationBarBackgroundColor": "#ffffff" + }, + "style": "v2", + "componentFramework": "glass-easel", + "sitemapLocation": "sitemap.json", + "lazyCodeLoading": "requiredComponents" +} diff --git a/miniapp/app.wxss b/miniapp/app.wxss new file mode 100644 index 0000000..06c6fc9 --- /dev/null +++ b/miniapp/app.wxss @@ -0,0 +1,10 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; +} diff --git a/miniapp/config/env.js b/miniapp/config/env.js new file mode 100644 index 0000000..0e5d972 --- /dev/null +++ b/miniapp/config/env.js @@ -0,0 +1,7 @@ +const API_ORIGIN = 'https://api.txyundm.cn' + +module.exports = { + API_ORIGIN, + APP_API_BASE_URL: `${API_ORIGIN}/app-api`, + UPLOAD_BASE_URL: `${API_ORIGIN}/uploads/`, +} diff --git a/miniapp/pages/index/index.js b/miniapp/pages/index/index.js new file mode 100644 index 0000000..6865dc7 --- /dev/null +++ b/miniapp/pages/index/index.js @@ -0,0 +1,46 @@ +const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' + +Page({ + data: { + motto: '自助棋牌室', + 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() { + wx.getUserProfile({ + desc: '用于展示用户头像和昵称', + success: (res) => { + this.setData({ + userInfo: res.userInfo, + hasUserInfo: true + }) + } + }) + }, +}) diff --git a/miniapp/pages/index/index.json b/miniapp/pages/index/index.json new file mode 100644 index 0000000..b55b5a2 --- /dev/null +++ b/miniapp/pages/index/index.json @@ -0,0 +1,4 @@ +{ + "usingComponents": { + } +} \ No newline at end of file diff --git a/miniapp/pages/index/index.wxml b/miniapp/pages/index/index.wxml new file mode 100644 index 0000000..5cff5f5 --- /dev/null +++ b/miniapp/pages/index/index.wxml @@ -0,0 +1,26 @@ + + + + + + + 昵称 + + + + + + 请升级微信后重试 + + + + {{userInfo.nickName}} + + + + {{motto}} + + + diff --git a/miniapp/pages/index/index.wxss b/miniapp/pages/index/index.wxss new file mode 100644 index 0000000..1ebed4b --- /dev/null +++ b/miniapp/pages/index/index.wxss @@ -0,0 +1,62 @@ +/**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; +} diff --git a/miniapp/project.config.json b/miniapp/project.config.json new file mode 100644 index 0000000..855e105 --- /dev/null +++ b/miniapp/project.config.json @@ -0,0 +1,41 @@ +{ + "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": "" + }, + "compileWorklet": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "packNpmManually": false, + "minifyWXSS": true, + "minifyWXML": true, + "localPlugins": false, + "condition": false, + "swc": false, + "disableSWC": true, + "disableUseStrict": false, + "useCompilerPlugins": false + }, + "condition": {}, + "editorSetting": { + "tabIndent": "auto", + "tabSize": 2 + }, + "appid": "wx2a5721d5d0fb81a6", + "simulatorPluginLibVersion": {} +} \ No newline at end of file diff --git a/miniapp/project.private.config.json b/miniapp/project.private.config.json new file mode 100644 index 0000000..7e81c4d --- /dev/null +++ b/miniapp/project.private.config.json @@ -0,0 +1,22 @@ +{ + "description": "微信开发者工具本地项目配置。", + "projectname": "miniapp", + "setting": { + "compileHotReLoad": true, + "urlCheck": true, + "coverView": true, + "lazyloadPlaceholderEnable": false, + "skylineRenderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "useApiHook": true, + "showShadowRootInWxmlPanel": true, + "useStaticServer": false, + "useLanDebug": false, + "showES6CompileOption": false, + "bigPackageSizeSupport": false, + "checkInvalidKey": true, + "ignoreDevUnusedFiles": true + }, + "libVersion": "3.16.1" +} diff --git a/miniapp/sitemap.json b/miniapp/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/miniapp/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/miniapp/utils/util.js b/miniapp/utils/util.js new file mode 100644 index 0000000..764bc2c --- /dev/null +++ b/miniapp/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 +}