Initialize the applet global configuration and page #2
@ -1,14 +1,55 @@
|
||||
{
|
||||
"entryPagePath": "pages/Timetable/Timetable",
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/logs/logs"
|
||||
"pages/Timetable/Timetable",
|
||||
"pages/Information/Information",
|
||||
"pages/Account/Account"
|
||||
],
|
||||
|
||||
"darkmode": true,
|
||||
"themeLocation": "theme.json",
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
"navigationBarBackgroundColor": "#fff",
|
||||
"navigationBarTitleText": "Weixin",
|
||||
"navigationBarTextStyle": "black"
|
||||
"navigationBarTitleText": "掌上教务处",
|
||||
"navigationBarBackgroundColor": "@navigationBarBackgroundColor",
|
||||
"navigationBarTextStyle": "@navigationBarTextStyle",
|
||||
"backgroundColor": "@backgroundColor",
|
||||
"backgroundColorTop": "@backgroundColor",
|
||||
"backgroundColorBottom": "@backgroundColor"
|
||||
},
|
||||
|
||||
"tabBar": {
|
||||
"color": "@tabBarColor",
|
||||
"selectedColor": "#3EA3D8",
|
||||
"backgroundColor": "@navigationBarBackgroundColor",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/Timetable/Timetable",
|
||||
"text": "课程表",
|
||||
"iconPath": "@tabBarImage0",
|
||||
"selectedIconPath": "image/navBar/0_on.png"
|
||||
},
|
||||
{
|
||||
"text": "综合信息",
|
||||
"iconPath": "@tabBarImage1",
|
||||
"pagePath": "pages/Information/Information",
|
||||
"selectedIconPath": "image/navBar/1_on.png"
|
||||
},
|
||||
{
|
||||
"text": "设置",
|
||||
"iconPath": "@tabBarImage2",
|
||||
"pagePath": "pages/Account/Account",
|
||||
"selectedIconPath": "image/navBar/2_on.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"networkTimeout": {
|
||||
"request": 10000,
|
||||
"connectSocket": 10000,
|
||||
"uploadFile": 10000,
|
||||
"downloadFile": 10000
|
||||
},
|
||||
|
||||
"style": "v2",
|
||||
"sitemapLocation": "sitemap.json"
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
/**app.wxss**/
|
||||
.container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 200rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
@ -1,18 +1,14 @@
|
||||
// app.ts
|
||||
App<IAppOption>({
|
||||
globalData: {},
|
||||
onLaunch() {
|
||||
// 展示本地存储能力
|
||||
const logs = wx.getStorageSync('logs') || []
|
||||
logs.unshift(Date.now())
|
||||
wx.setStorageSync('logs', logs)
|
||||
|
||||
// 登录
|
||||
wx.login({
|
||||
success: res => {
|
||||
console.log(res.code)
|
||||
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
||||
},
|
||||
})
|
||||
/**
|
||||
* 全局数据
|
||||
*/
|
||||
globalData: {},
|
||||
|
||||
/**
|
||||
* 小程序加载时
|
||||
*/
|
||||
onLaunch() {
|
||||
},
|
||||
})
|
BIN
miniprogram/image/navBar/0_dark.png
Normal file
After Width: | Height: | Size: 285 B |
BIN
miniprogram/image/navBar/0_light.png
Normal file
After Width: | Height: | Size: 286 B |
BIN
miniprogram/image/navBar/0_on.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
miniprogram/image/navBar/1_dark.png
Normal file
After Width: | Height: | Size: 910 B |
BIN
miniprogram/image/navBar/1_light.png
Normal file
After Width: | Height: | Size: 943 B |
BIN
miniprogram/image/navBar/1_on.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
miniprogram/image/navBar/2_dark.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
miniprogram/image/navBar/2_light.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
miniprogram/image/navBar/2_on.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
0
miniprogram/pages/Account/Account.scss
Normal file
66
miniprogram/pages/Account/Account.ts
Normal file
@ -0,0 +1,66 @@
|
||||
// pages/Account/Account.ts
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
1
miniprogram/pages/Account/Account.wxml
Normal file
@ -0,0 +1 @@
|
||||
<text>pages/Account/Account.wxml</text>
|
1
miniprogram/pages/Account/Account.wxss
Normal file
@ -0,0 +1 @@
|
||||
/* pages/Account/Account.wxss */
|
3
miniprogram/pages/Information/Information.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
0
miniprogram/pages/Information/Information.scss
Normal file
66
miniprogram/pages/Information/Information.ts
Normal file
@ -0,0 +1,66 @@
|
||||
// pages/Information/Information.ts
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
1
miniprogram/pages/Information/Information.wxml
Normal file
@ -0,0 +1 @@
|
||||
<text>pages/Information/Information.wxml</text>
|
1
miniprogram/pages/Information/Information.wxss
Normal file
@ -0,0 +1 @@
|
||||
/* pages/Information/Information.wxss */
|
3
miniprogram/pages/Timetable/Timetable.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
66
miniprogram/pages/Timetable/Timetable.ts
Normal file
@ -0,0 +1,66 @@
|
||||
// pages/Timetable/Timetable.ts
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
1
miniprogram/pages/Timetable/Timetable.wxml
Normal file
@ -0,0 +1 @@
|
||||
<text>pages/Timetable/Timetable.wxml</text>
|
0
miniprogram/pages/Timetable/Timetable.wxss
Normal file
@ -1,19 +0,0 @@
|
||||
/**index.wxss**/
|
||||
.userinfo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.userinfo-avatar {
|
||||
overflow: hidden;
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
margin: 20rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.usermotto {
|
||||
margin-top: 200px;
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
// index.ts
|
||||
// 获取应用实例
|
||||
const app = getApp<IAppOption>()
|
||||
|
||||
Page({
|
||||
data: {
|
||||
motto: 'Hello World',
|
||||
userInfo: {},
|
||||
hasUserInfo: false,
|
||||
canIUse: wx.canIUse('button.open-type.getUserInfo'),
|
||||
canIUseGetUserProfile: false,
|
||||
canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false
|
||||
},
|
||||
// 事件处理函数
|
||||
bindViewTap() {
|
||||
wx.navigateTo({
|
||||
url: '../logs/logs',
|
||||
})
|
||||
},
|
||||
onLoad() {
|
||||
// @ts-ignore
|
||||
if (wx.getUserProfile) {
|
||||
this.setData({
|
||||
canIUseGetUserProfile: true
|
||||
})
|
||||
}
|
||||
},
|
||||
getUserProfile() {
|
||||
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
|
||||
wx.getUserProfile({
|
||||
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
|
||||
success: (res) => {
|
||||
console.log(res)
|
||||
this.setData({
|
||||
userInfo: res.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getUserInfo(e: any) {
|
||||
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
|
||||
console.log(e)
|
||||
this.setData({
|
||||
userInfo: e.detail.userInfo,
|
||||
hasUserInfo: true
|
||||
})
|
||||
}
|
||||
})
|
@ -1,23 +0,0 @@
|
||||
<!--index.wxml-->
|
||||
<view class="container">
|
||||
<view class="userinfo">
|
||||
<block wx:if="{{canIUseOpenData}}">
|
||||
<view class="userinfo-avatar" bindtap="bindViewTap">
|
||||
<open-data type="userAvatarUrl"></open-data>
|
||||
</view>
|
||||
<open-data type="userNickName"></open-data>
|
||||
</block>
|
||||
<block wx:elif="{{!hasUserInfo}}">
|
||||
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
|
||||
<button wx:elif="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
|
||||
<view wx:else> 请使用1.4.4及以上版本基础库 </view>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
|
||||
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
|
||||
</block>
|
||||
</view>
|
||||
<view class="usermotto">
|
||||
<text class="user-motto">{{motto}}</text>
|
||||
</view>
|
||||
</view>
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "查看启动日志",
|
||||
"usingComponents": {}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
.log-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 40rpx;
|
||||
}
|
||||
.log-item {
|
||||
margin: 10rpx;
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
// logs.ts
|
||||
// const util = require('../../utils/util.js')
|
||||
import { formatTime } from '../../utils/util'
|
||||
|
||||
Page({
|
||||
data: {
|
||||
logs: [],
|
||||
},
|
||||
onLoad() {
|
||||
this.setData({
|
||||
logs: (wx.getStorageSync('logs') || []).map((log: string) => {
|
||||
return {
|
||||
date: formatTime(new Date(log)),
|
||||
timeStamp: log
|
||||
}
|
||||
}),
|
||||
})
|
||||
},
|
||||
})
|
@ -1,6 +0,0 @@
|
||||
<!--logs.wxml-->
|
||||
<view class="container log-list">
|
||||
<block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log">
|
||||
<text class="log-item">{{index + 1}}. {{log.date}}</text>
|
||||
</block>
|
||||
</view>
|
@ -1,7 +1,15 @@
|
||||
{
|
||||
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
|
||||
"rules": [{
|
||||
"action": "allow",
|
||||
"page": "*"
|
||||
}]
|
||||
"document": "https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"page": "pages/Timetable/Timetable"
|
||||
}, {
|
||||
"action": "allow",
|
||||
"page": "pages/Information/Information"
|
||||
}, {
|
||||
"action": "allow",
|
||||
"page": "pages/Account/Account"
|
||||
}
|
||||
]
|
||||
}
|
23
miniprogram/theme.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"light": {
|
||||
"navigationBarBackgroundColor": "#f6f6f6",
|
||||
"navigationBarTextStyle": "black",
|
||||
"backgroundColor": "#f4f0f1",
|
||||
|
||||
"tabBarColor": "#bbbbbb",
|
||||
"tabBarImage0": "image/navBar/0_light.png",
|
||||
"tabBarImage1": "image/navBar/1_light.png",
|
||||
"tabBarImage2": "image/navBar/2_light.png"
|
||||
},
|
||||
|
||||
"dark": {
|
||||
"navigationBarBackgroundColor": "#191919",
|
||||
"navigationBarTextStyle": "white",
|
||||
"backgroundColor": "#1f1f1f",
|
||||
|
||||
"tabBarColor": "#666666",
|
||||
"tabBarImage0": "image/navBar/0_dark.png",
|
||||
"tabBarImage1": "image/navBar/1_dark.png",
|
||||
"tabBarImage2": "image/navBar/2_dark.png"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
export const formatTime = (date: 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: number) => {
|
||||
const s = n.toString()
|
||||
return s[1] ? s : '0' + s
|
||||
}
|
10
package.json
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "miniprogram-ts-less-quickstart",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"name": "mini-dlpu-v3",
|
||||
"version": "3.0.0",
|
||||
"description": "Third Generation Mini DLPU",
|
||||
"scripts": {
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "",
|
||||
"author": "MrKBear",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -5,10 +5,10 @@
|
||||
},
|
||||
"miniprogramRoot": "miniprogram/",
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "2.15.0",
|
||||
"libVersion": "2.21.0",
|
||||
"projectname": "mini-dlpu-v3",
|
||||
"setting": {
|
||||
"urlCheck": true,
|
||||
"urlCheck": false,
|
||||
"es6": true,
|
||||
"enhance": true,
|
||||
"postcss": true,
|
||||
@ -17,10 +17,10 @@
|
||||
"newFeature": false,
|
||||
"coverView": true,
|
||||
"nodeModules": false,
|
||||
"autoAudits": false,
|
||||
"autoAudits": true,
|
||||
"showShadowRootInWxmlPanel": true,
|
||||
"scopeDataCheck": false,
|
||||
"uglifyFileName": false,
|
||||
"uglifyFileName": true,
|
||||
"checkInvalidKey": true,
|
||||
"checkSiteMap": true,
|
||||
"uploadWithSourceMap": true,
|
||||
@ -41,12 +41,12 @@
|
||||
"packNpmRelationList": [],
|
||||
"minifyWXSS": true,
|
||||
"disableUseStrict": false,
|
||||
"minifyWXML": true,
|
||||
"showES6CompileOption": false,
|
||||
"useCompilerPlugins": [
|
||||
"typescript",
|
||||
"sass"
|
||||
],
|
||||
"minifyWXML": true
|
||||
]
|
||||
},
|
||||
"simulatorType": "wechat",
|
||||
"simulatorPluginLibVersion": {},
|
||||
|
@ -13,7 +13,7 @@
|
||||
"alwaysStrict": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noUnusedParameters": false,
|
||||
"strict": true,
|
||||
"strictPropertyInitialization": true,
|
||||
"lib": ["ES2020"],
|
||||
|