From e0d924cb373ff7e2c14344b9f475d0b811da6f3d Mon Sep 17 00:00:00 2001 From: Czy <651525974@qq.com> Date: Tue, 31 Mar 2020 20:14:27 +0800 Subject: [PATCH] Update Table And Calendar UI & Detail Revise --- SHST-WEL/App.vue | 85 ++---- SHST-WEL/components/headslot.nvue | 53 ---- SHST-WEL/components/layout.nvue | 63 ----- SHST-WEL/components/scrollpage.nvue | 30 -- SHST-WEL/components/sentence.nvue | 39 --- SHST-WEL/components/weather.nvue | 123 -------- SHST-WEL/main.js | 5 + SHST-WEL/manifest.json | 105 ++++--- SHST-WEL/pages.json | 208 +++++++------- .../pages/Ext/examArrange/examArrange.nvue | 110 -------- SHST-WEL/pages/Ext/link/link.nvue | 60 ---- SHST-WEL/pages/Home/auxiliary/login.nvue | 201 -------------- SHST-WEL/pages/Home/auxiliary/webview.nvue | 65 ----- SHST-WEL/pages/Home/funct/funct.nvue | 119 -------- SHST-WEL/pages/Home/light/light.nvue | 118 -------- SHST-WEL/pages/Home/tips/tips.nvue | 184 ------------ SHST-WEL/pages/Home/user/user.nvue | 184 ------------ SHST-WEL/pages/Lib/borrow/borrow.nvue | 121 -------- SHST-WEL/pages/Lib/library/libDetail.nvue | 101 ------- SHST-WEL/pages/Lib/library/search.nvue | 196 ------------- SHST-WEL/pages/Sdust/calendar/calendar.nvue | 200 ------------- SHST-WEL/pages/Sdust/map/map.nvue | 63 ----- SHST-WEL/pages/Sdust/notice/notice.nvue | 84 ------ SHST-WEL/pages/Sdust/vacation/vacation.nvue | 74 ----- SHST-WEL/pages/Study/classroom/classroom.nvue | 214 -------------- SHST-WEL/pages/Study/grade/grade.nvue | 230 --------------- SHST-WEL/pages/Study/timeTable/timeTable.nvue | 257 ----------------- SHST-WEL/pages/User/about/about.nvue | 132 --------- SHST-WEL/pages/User/announce/announce.nvue | 59 ---- SHST-WEL/pages/User/reward/reward.nvue | 69 ----- SHST-WEL/pages/User/reward/rewardList.nvue | 78 ------ SHST-WEL/static/img/light.png | Bin 9318 -> 0 bytes SHST-WEL/static/img/light1.png | Bin 9254 -> 0 bytes SHST-WEL/utils/eventBus.js | 48 ---- SHST-WEL/utils/md5.js | 262 ------------------ SHST-WEL/utils/util.js | 54 ---- SHST-WEL/vector/dispose.js | 212 -------------- SHST-WEL/vector/pubFct.js | 62 ----- SHST-WEX/App.vue | 4 +- SHST-WEX/manifest.json | 12 +- SHST-WEX/pages/Home/auxiliary/login.nvue | 33 +-- SHST-WEX/pages/Study/timeTable/timeTable.nvue | 24 +- SHST-WEX/pages/User/about/about.nvue | 2 +- SHST-WEX/vector/dispose.js | 7 +- SHST-WEX/vector/pubFct.js | 3 +- 45 files changed, 198 insertions(+), 4155 deletions(-) delete mode 100644 SHST-WEL/components/headslot.nvue delete mode 100644 SHST-WEL/components/layout.nvue delete mode 100644 SHST-WEL/components/scrollpage.nvue delete mode 100644 SHST-WEL/components/sentence.nvue delete mode 100644 SHST-WEL/components/weather.nvue delete mode 100644 SHST-WEL/pages/Ext/examArrange/examArrange.nvue delete mode 100644 SHST-WEL/pages/Ext/link/link.nvue delete mode 100644 SHST-WEL/pages/Home/auxiliary/login.nvue delete mode 100644 SHST-WEL/pages/Home/auxiliary/webview.nvue delete mode 100644 SHST-WEL/pages/Home/funct/funct.nvue delete mode 100644 SHST-WEL/pages/Home/light/light.nvue delete mode 100644 SHST-WEL/pages/Home/tips/tips.nvue delete mode 100644 SHST-WEL/pages/Home/user/user.nvue delete mode 100644 SHST-WEL/pages/Lib/borrow/borrow.nvue delete mode 100644 SHST-WEL/pages/Lib/library/libDetail.nvue delete mode 100644 SHST-WEL/pages/Lib/library/search.nvue delete mode 100644 SHST-WEL/pages/Sdust/calendar/calendar.nvue delete mode 100644 SHST-WEL/pages/Sdust/map/map.nvue delete mode 100644 SHST-WEL/pages/Sdust/notice/notice.nvue delete mode 100644 SHST-WEL/pages/Sdust/vacation/vacation.nvue delete mode 100644 SHST-WEL/pages/Study/classroom/classroom.nvue delete mode 100644 SHST-WEL/pages/Study/grade/grade.nvue delete mode 100644 SHST-WEL/pages/Study/timeTable/timeTable.nvue delete mode 100644 SHST-WEL/pages/User/about/about.nvue delete mode 100644 SHST-WEL/pages/User/announce/announce.nvue delete mode 100644 SHST-WEL/pages/User/reward/reward.nvue delete mode 100644 SHST-WEL/pages/User/reward/rewardList.nvue delete mode 100644 SHST-WEL/static/img/light.png delete mode 100644 SHST-WEL/static/img/light1.png delete mode 100644 SHST-WEL/utils/eventBus.js delete mode 100644 SHST-WEL/utils/md5.js delete mode 100644 SHST-WEL/utils/util.js delete mode 100644 SHST-WEL/vector/dispose.js delete mode 100644 SHST-WEL/vector/pubFct.js diff --git a/SHST-WEL/App.vue b/SHST-WEL/App.vue index 0c990a0..4dc56a3 100644 --- a/SHST-WEL/App.vue +++ b/SHST-WEL/App.vue @@ -1,82 +1,35 @@ - diff --git a/SHST-WEL/components/headslot.nvue b/SHST-WEL/components/headslot.nvue deleted file mode 100644 index a0ec1f5..0000000 --- a/SHST-WEL/components/headslot.nvue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/SHST-WEL/components/layout.nvue b/SHST-WEL/components/layout.nvue deleted file mode 100644 index 50c3a2c..0000000 --- a/SHST-WEL/components/layout.nvue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/SHST-WEL/components/scrollpage.nvue b/SHST-WEL/components/scrollpage.nvue deleted file mode 100644 index a02e3f7..0000000 --- a/SHST-WEL/components/scrollpage.nvue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/SHST-WEL/components/sentence.nvue b/SHST-WEL/components/sentence.nvue deleted file mode 100644 index 1f251e1..0000000 --- a/SHST-WEL/components/sentence.nvue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/SHST-WEL/components/weather.nvue b/SHST-WEL/components/weather.nvue deleted file mode 100644 index 25a6d79..0000000 --- a/SHST-WEL/components/weather.nvue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/SHST-WEL/main.js b/SHST-WEL/main.js index 6abef22..421d6bf 100644 --- a/SHST-WEL/main.js +++ b/SHST-WEL/main.js @@ -1,6 +1,7 @@ import Vue from 'vue' import App from './App' + Vue.config.productionTip = false App.mpType = 'app' @@ -9,3 +10,7 @@ const app = new Vue({ ...App }) app.$mount() + + +import list from "@/components/list.vue" +Vue.component('list',list) diff --git a/SHST-WEL/manifest.json b/SHST-WEL/manifest.json index e5ccf56..2fdf768 100644 --- a/SHST-WEL/manifest.json +++ b/SHST-WEL/manifest.json @@ -1,11 +1,10 @@ { - "name" : "山科小站", - "appid" : "__UNI__08D8F46", - "description" : "山科小站", - "versionName" : "3.2.1", - "versionCode" : 321, + "name" : "山科小站迎新专版", + "appid" : "__UNI__520BEAE", + "description" : "山科小站迎新", + "versionName" : "2.0.0", + "versionCode" : 1, "transformPx" : false, - "networkTimeout" : 2000, /* 5+App特有相关 */ "app-plus" : { "usingComponents" : true, @@ -22,71 +21,69 @@ "distribute" : { /* android打包配置 */ "android" : { - "permissions" : [], - "abiFilters" : [ "armeabi-v7a" ] + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] }, /* ios打包配置 */ - "ios" : { - "idfa" : false - }, + "ios" : {}, /* SDK配置 */ - "sdkConfigs" : { - "ad" : {} - }, - "icons" : { - "android" : { - "hdpi" : "unpackage/res/icons/72x72.png", - "xhdpi" : "unpackage/res/icons/96x96.png", - "xxhdpi" : "unpackage/res/icons/144x144.png", - "xxxhdpi" : "unpackage/res/icons/192x192.png" - }, - "ios" : { - "appstore" : "unpackage/res/icons/1024x1024.png", - "ipad" : { - "app" : "unpackage/res/icons/76x76.png", - "app@2x" : "unpackage/res/icons/152x152.png", - "notification" : "unpackage/res/icons/20x20.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "proapp@2x" : "unpackage/res/icons/167x167.png", - "settings" : "unpackage/res/icons/29x29.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "spotlight" : "unpackage/res/icons/40x40.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png" - }, - "iphone" : { - "app@2x" : "unpackage/res/icons/120x120.png", - "app@3x" : "unpackage/res/icons/180x180.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "notification@3x" : "unpackage/res/icons/60x60.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "settings@3x" : "unpackage/res/icons/87x87.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png", - "spotlight@3x" : "unpackage/res/icons/120x120.png" - } - } - } - }, - "compilerVersion" : 3, - "nvueLaunchMode" : "fast", - "renderer" : "native" + "sdkConfigs" : {} + } }, /* 快应用特有相关 */ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "", + "appid" : "wxa53da62a53aaddea", "setting" : { - "urlCheck" : false + "urlCheck" : true, + "es6" : true, + "minified" : true }, - "usingComponents" : true + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "您的位置信息将用于嵙地图的定位功能" + } + } }, "mp-alipay" : { - "usingComponents" : true + "usingComponents" : true, + "appid" : "2021001109657069" }, "mp-baidu" : { "usingComponents" : true }, "mp-toutiao" : { "usingComponents" : true + }, + "mp-qq" : { + "appid" : "1110074303", + "setting" : { + "es6" : true, + "minified" : true + } } } diff --git a/SHST-WEL/pages.json b/SHST-WEL/pages.json index 1e81031..4f9ac00 100644 --- a/SHST-WEL/pages.json +++ b/SHST-WEL/pages.json @@ -1,126 +1,104 @@ { "pages": [{ - "path": "pages/Home/auxiliary/login", - "style": { - "navigationBarBackgroundColor": "white" + "path": "pages/Home/Index/index", + "style": {} } - }, { - "path": "pages/Home/tips/tips", - "style": {} - }, { - "path": "pages/Home/auxiliary/webview", - "style": {} - }, { - "path": "pages/User/announce/announce", - "style": {} - }, { - "path": "pages/Home/funct/funct", - "style": {} - }, { - "path": "pages/Home/user/user", - "style": {} - }, { - "path": "pages/Study/timeTable/timeTable", - "style": {} - }, { - "path": "pages/Study/classroom/classroom", - "style": {} - }, { - "path": "pages/Study/grade/grade", - "style": {} - }, { - "path": "pages/Lib/borrow/borrow", - "style": {} - }, { - "path": "pages/Lib/library/search", - "style": {} - }, { - "path": "pages/Lib/library/libDetail", - "style": {} - }, { - "path": "pages/Sdust/calendar/calendar", - "style": {} - }, { - "path": "pages/Sdust/map/map", - "style": {} - }, { - "path": "pages/Sdust/vacation/vacation", - "style": {} - }, { - "path": "pages/Ext/link/link", - "style": {} - }, { - "path": "pages/Ext/examArrange/examArrange", - "style": {} - }, { - "path": "pages/User/about/about", - "style": { - "navigationBarBackgroundColor": "white" - } - }, { - "path": "pages/User/reward/reward", - "style": { - "navigationBarBackgroundColor": "white" - } - }, { - "path": "pages/User/reward/rewardList", - "style": {} - }, { - "path": "pages/Home/light/light", - "style": {} - } ,{ - "path" : "pages/Sdust/notice/notice", + ,{ + "path" : "pages/Home/NotFound/NotFound", + "style" : {} + } + ,{ + "path" : "pages/Life/canteen/canteen", + "style" : {} + } + ,{ + "path" : "pages/Life/computer/computer", + "style" : {} + } + ,{ + "path" : "pages/Life/express/express", + "style" : {} + } + ,{ + "path" : "pages/Life/getup/getup", + "style" : {} + } + ,{ + "path" : "pages/Life/living/living", + "style" : {} + } + ,{ + "path" : "pages/Life/medical/medical", + "style" : {} + } + ,{ + "path" : "pages/Life/network/network", + "style" : {} + } + ,{ + "path" : "pages/Life/power/power", + "style" : {} + } + ,{ + "path" : "pages/Life/shower/shower", + "style" : {} + } + ,{ + "path" : "pages/Life/traffic/traffic", + "style" : {} + } + ,{ + "path" : "pages/NewStu/antifraud/antifraud", + "style" : {} + } + ,{ + "path" : "pages/NewStu/miltrain/miltrain", + "style" : {} + } + ,{ + "path" : "pages/NewStu/payment/payment", + "style" : {} + } + ,{ + "path" : "pages/Sdust/calendar/calendar", + "style" : {} + } + ,{ + "path" : "pages/Sdust/map/map", + "style" : {} + } + ,{ + "path" : "pages/Sdust/vacation/vacation", + "style" : {} + } + ,{ + "path" : "pages/Study/league/league", + "style" : {} + } + ,{ + "path" : "pages/Study/link/link", + "style" : {} + } + ,{ + "path" : "pages/Study/major/major", + "style" : {} + } + ,{ + "path" : "pages/Study/time/time", + "style" : {} + } + ,{ + "path" : "pages/User/about/about", "style" : {} } ], "globalStyle": { "navigationBarTextStyle": "black", - "navigationBarTitleText": "山科小站", - "navigationBarBackgroundColor": "#F1F1F1", + "navigationBarTitleText": "山科小站迎新", + "navigationBarBackgroundColor": "#F8F8F8", + // #ifdef MP-ALIPAY + "navigationBarBackgroundColor": "#FFFFFF", + // #endif "backgroundColor": "#F8F8F8" - }, - "tabBar": { - "color": "#aaa", - "selectedColor": "#8A8A8A", - "backgroundColor": "#F7F7FA", - "list": [{ - "iconPath": "/static/img/index.png", - "selectedIconPath": "/static/img/index1.png", - "pagePath": "pages/Home/tips/tips", - "text": "首页" - }, - { - "iconPath": "/static/img/fun.png", - "selectedIconPath": "/static/img/fun1.png", - "pagePath": "pages/Home/funct/funct", - "text": "功能" - }, - { - "iconPath": "/static/img/light.png", - "selectedIconPath": "/static/img/light1.png", - "pagePath": "pages/Home/light/light", - "text": "轻应用" - }, - { - "iconPath": "/static/img/user.png", - "selectedIconPath": "/static/img/user1.png", - "pagePath": "pages/Home/user/user", - "text": "用户" - } - ] - }, - "condition": { //模式配置,仅开发期间生效 - "current": 1, //当前激活的模式(list 的索引项) - "list": [{ - "name": "1", //模式名称 - "path": "pages/Home/funct/funct", //启动页面,必选 - "query": "" //启动参数,在页面的onLoad函数里面得到 - }, - { - "name": "2", //模式名称 - "path": "pages/Home/light/light", //启动页面,必选 - "query": "" //启动参数,在页面的onLoad函数里面得到 - } - ] } } diff --git a/SHST-WEL/pages/Ext/examArrange/examArrange.nvue b/SHST-WEL/pages/Ext/examArrange/examArrange.nvue deleted file mode 100644 index c221614..0000000 --- a/SHST-WEL/pages/Ext/examArrange/examArrange.nvue +++ /dev/null @@ -1,110 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Ext/link/link.nvue b/SHST-WEL/pages/Ext/link/link.nvue deleted file mode 100644 index bac4884..0000000 --- a/SHST-WEL/pages/Ext/link/link.nvue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/auxiliary/login.nvue b/SHST-WEL/pages/Home/auxiliary/login.nvue deleted file mode 100644 index 84b3b1c..0000000 --- a/SHST-WEL/pages/Home/auxiliary/login.nvue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/auxiliary/webview.nvue b/SHST-WEL/pages/Home/auxiliary/webview.nvue deleted file mode 100644 index a327072..0000000 --- a/SHST-WEL/pages/Home/auxiliary/webview.nvue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/funct/funct.nvue b/SHST-WEL/pages/Home/funct/funct.nvue deleted file mode 100644 index f7c775f..0000000 --- a/SHST-WEL/pages/Home/funct/funct.nvue +++ /dev/null @@ -1,119 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/light/light.nvue b/SHST-WEL/pages/Home/light/light.nvue deleted file mode 100644 index 41245e3..0000000 --- a/SHST-WEL/pages/Home/light/light.nvue +++ /dev/null @@ -1,118 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/tips/tips.nvue b/SHST-WEL/pages/Home/tips/tips.nvue deleted file mode 100644 index 75abc28..0000000 --- a/SHST-WEL/pages/Home/tips/tips.nvue +++ /dev/null @@ -1,184 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Home/user/user.nvue b/SHST-WEL/pages/Home/user/user.nvue deleted file mode 100644 index 9dc1b15..0000000 --- a/SHST-WEL/pages/Home/user/user.nvue +++ /dev/null @@ -1,184 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Lib/borrow/borrow.nvue b/SHST-WEL/pages/Lib/borrow/borrow.nvue deleted file mode 100644 index 1642388..0000000 --- a/SHST-WEL/pages/Lib/borrow/borrow.nvue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Lib/library/libDetail.nvue b/SHST-WEL/pages/Lib/library/libDetail.nvue deleted file mode 100644 index b14c627..0000000 --- a/SHST-WEL/pages/Lib/library/libDetail.nvue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Lib/library/search.nvue b/SHST-WEL/pages/Lib/library/search.nvue deleted file mode 100644 index cbae160..0000000 --- a/SHST-WEL/pages/Lib/library/search.nvue +++ /dev/null @@ -1,196 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Sdust/calendar/calendar.nvue b/SHST-WEL/pages/Sdust/calendar/calendar.nvue deleted file mode 100644 index afba87d..0000000 --- a/SHST-WEL/pages/Sdust/calendar/calendar.nvue +++ /dev/null @@ -1,200 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Sdust/map/map.nvue b/SHST-WEL/pages/Sdust/map/map.nvue deleted file mode 100644 index 2a85f81..0000000 --- a/SHST-WEL/pages/Sdust/map/map.nvue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Sdust/notice/notice.nvue b/SHST-WEL/pages/Sdust/notice/notice.nvue deleted file mode 100644 index bc5057f..0000000 --- a/SHST-WEL/pages/Sdust/notice/notice.nvue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Sdust/vacation/vacation.nvue b/SHST-WEL/pages/Sdust/vacation/vacation.nvue deleted file mode 100644 index ae83d07..0000000 --- a/SHST-WEL/pages/Sdust/vacation/vacation.nvue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Study/classroom/classroom.nvue b/SHST-WEL/pages/Study/classroom/classroom.nvue deleted file mode 100644 index f09ef42..0000000 --- a/SHST-WEL/pages/Study/classroom/classroom.nvue +++ /dev/null @@ -1,214 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Study/grade/grade.nvue b/SHST-WEL/pages/Study/grade/grade.nvue deleted file mode 100644 index 5c1f1eb..0000000 --- a/SHST-WEL/pages/Study/grade/grade.nvue +++ /dev/null @@ -1,230 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/Study/timeTable/timeTable.nvue b/SHST-WEL/pages/Study/timeTable/timeTable.nvue deleted file mode 100644 index cbef6bf..0000000 --- a/SHST-WEL/pages/Study/timeTable/timeTable.nvue +++ /dev/null @@ -1,257 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/User/about/about.nvue b/SHST-WEL/pages/User/about/about.nvue deleted file mode 100644 index abbc258..0000000 --- a/SHST-WEL/pages/User/about/about.nvue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/User/announce/announce.nvue b/SHST-WEL/pages/User/announce/announce.nvue deleted file mode 100644 index b1d8c74..0000000 --- a/SHST-WEL/pages/User/announce/announce.nvue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/User/reward/reward.nvue b/SHST-WEL/pages/User/reward/reward.nvue deleted file mode 100644 index e2d655e..0000000 --- a/SHST-WEL/pages/User/reward/reward.nvue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/SHST-WEL/pages/User/reward/rewardList.nvue b/SHST-WEL/pages/User/reward/rewardList.nvue deleted file mode 100644 index 881e459..0000000 --- a/SHST-WEL/pages/User/reward/rewardList.nvue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/SHST-WEL/static/img/light.png b/SHST-WEL/static/img/light.png deleted file mode 100644 index 520565810297b8ce1baa99983d7ad16c717d157e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9318 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 o1ZXT?f); { - item === handler; - }) - // 不存在直接返回 - if (index < 0) { - return false; - } - - if (this.handlers[key].length === 1) { - // 只有一个直接删除key 节省内存 - delete this.handlers[key] - } else { - this.handlers[key].splice(index, 1) - } - return true; - }, - - // 触发 - commit : function(key) { - // 取出参数并转化为数组 - if (!this.handlers[key]) return false; - const args = Array.prototype.slice.call(arguments, 1) - this.handlers[key].forEach(handler => { - // 防止this指向乱掉 - try{ handler.apply(this, args); } catch(e){console.warn(e);} - }); - return true; - } -} - -export const getEventBus = new PubSub(); \ No newline at end of file diff --git a/SHST-WEL/utils/md5.js b/SHST-WEL/utils/md5.js deleted file mode 100644 index 2b35519..0000000 --- a/SHST-WEL/utils/md5.js +++ /dev/null @@ -1,262 +0,0 @@ -/* - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ -module.exports = { - hexMD5: hex_md5, //需要输出的加密算法,我这边只写了我需要得两种 - b64Md5: b64_md5, -} -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ -var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} -function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} -function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} -function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } -function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } -function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function md5_vm_test() -{ - return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; -} - -/* - * Calculate the MD5 of an array of little-endian words, and a bit length - */ -function core_md5(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << ((len) % 32); - x[(((len + 64) >>> 9) << 4) + 14] = len; - - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - - a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); - d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); - c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); - b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); - a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); - d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); - c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); - b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); - a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); - d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); - c = md5_ff(c, d, a, b, x[i+10], 17, -42063); - b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); - a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); - d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); - c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); - b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); - - a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); - d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); - c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); - b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); - a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); - d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); - c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); - b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); - a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); - d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); - c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); - b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); - a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); - d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); - c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); - b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); - - a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); - d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); - c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); - b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); - a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); - d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); - c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); - b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); - a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); - d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); - c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); - b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); - a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); - d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); - c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); - b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); - - a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); - d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); - c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); - b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); - a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); - d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); - c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); - b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); - a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); - d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); - c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); - b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); - a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); - d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); - c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); - b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - } - return Array(a, b, c, d); - -} - -/* - * These functions implement the four basic operations the algorithm uses. - */ -function md5_cmn(q, a, b, x, s, t) -{ - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); -} -function md5_ff(a, b, c, d, x, s, t) -{ - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); -} -function md5_gg(a, b, c, d, x, s, t) -{ - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); -} -function md5_hh(a, b, c, d, x, s, t) -{ - return md5_cmn(b ^ c ^ d, a, b, x, s, t); -} -function md5_ii(a, b, c, d, x, s, t) -{ - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); -} -function MD5(s) { - // body... - return hex_md5(s+"☆"); -} -/* - * Calculate the HMAC-MD5, of a key and some data - */ -function core_hmac_md5(key, data) -{ - var bkey = str2binl(key); - if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); - return core_md5(opad.concat(hash), 512 + 128); -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} - -/* - * Convert a string to an array of little-endian words - * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. - */ -function str2binl(str) -{ - var bin = Array(); - var mask = (1 << chrsz) - 1; - for(var i = 0; i < str.length * chrsz; i += chrsz) - bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); - return bin; -} - -/* - * Convert an array of little-endian words to a string - */ -function binl2str(bin) -{ - var str = ""; - var mask = (1 << chrsz) - 1; - for(var i = 0; i < bin.length * 32; i += chrsz) - str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); - return str; -} - -/* - * Convert an array of little-endian words to a hex string. - */ -function binl2hex(binarray) -{ - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i++) - { - str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + - hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); - } - return str; -} - -/* - * Convert an array of little-endian words to a base-64 string - */ -function binl2b64(binarray) -{ - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i += 3) - { - var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) - | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) - | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; - else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); - } - } - return str; -} diff --git a/SHST-WEL/utils/util.js b/SHST-WEL/utils/util.js deleted file mode 100644 index 4a8d742..0000000 --- a/SHST-WEL/utils/util.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * yyyy年 MM月 dd日 hh1~12小时制(1-12) HH24小时制(0-23) mm分 ss秒 S毫秒 K周 - */ -const formatDate = (fmt = "yyyy-MM-dd", date = new Date()) => { - var week = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; - var o = { - "M+": date.getMonth() + 1, //月份 - "d+": date.getDate(), //日 - "h+": date.getHours(), //小时 - "m+": date.getMinutes(), //分 - "s+": date.getSeconds(), //秒 - "q+": Math.floor((date.getMonth() + 3) / 3), //季度 - "S": date.getMilliseconds(), //毫秒 - "K": week[date.getDay()] - }; - if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); - for (var k in o) { - if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); - } - return fmt; -} - -const extDate = () => { - // console.log("拓展Date原型"); - Date.prototype.addDate = function(years = 0, months = 0, days = 0) { - if (days !== 0) this.setDate(this.getDate() + days); - if (months !== 0) this.setMonth(this.getMonth() + months); - if (years !== 0) this.setFullYear(this.getFullYear() + years); - } -} - -const dateDiff = (startDateString, endDateString) => { - var separator = "-"; //日期分隔符 - var startDates = startDateString.split(separator); - var endDates = endDateString.split(separator); - var startDate = new Date(startDates[0], startDates[1] - 1, startDates[2]); - var endDate = new Date(endDates[0], endDates[1] - 1, endDates[2]); - var diff = parseInt((endDate - startDate) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数 - return diff; -} - -const compareTimeInSameDay = (t1, t2) => { - let d = new Date() - let ft1 = d.setHours(t1.split(":")[0], t1.split(":")[1]) - let ft2 = d.setHours(t2.split(":")[0], t2.split(":")[1]) - return ft1 > ft2 -} - -module.exports = { - formatDate: formatDate, - extDate: extDate, - dateDiff: dateDiff, - compareTimeInSameDay,compareTimeInSameDay -} diff --git a/SHST-WEL/vector/dispose.js b/SHST-WEL/vector/dispose.js deleted file mode 100644 index ea75aa7..0000000 --- a/SHST-WEL/vector/dispose.js +++ /dev/null @@ -1,212 +0,0 @@ -"use strict"; -const md5 = require('@/utils/md5.js'); -const eventBus = require('@/utils/eventBus.js'); -module.exports = { - ajax: ajax, - toast: toast, - extend: extend, - onLunch: onLunch, - addIconfont: addIconfont -} - -/** - * 颜色方案 - */ -// module.exports.colorList = ["#EAA78C", "#F9CD82", "#9ADEAD", "#9CB6E9", "#E49D9B", "#97D7D7", "#ABA0CA", "#9F8BEC", -// "#ACA4D5", "#6495ED", "#7BCDA5", "#76B4EF","#E1C38F","#F6C46A","#B19ED1","#F09B98","#87CECB","#D1A495","#89D196" -// ]; -module.exports.colorList = ["#FE9E9F","#FFCA62","#93BAFF","#FFA477","#D999F9","#75E1A5"]; - -/** - * 拓展对象 - * 浅拷贝与深拷贝 - */ -function extend() { - var aLength = arguments.length; - var options = arguments[0]; - var target = {}; - var copy; - var i = 1; - if (typeof options === "boolean" && options === true) { - //深拷贝 (仅递归处理对象) - for (; i < aLength; i++) { - if ((options = arguments[i]) != null) { - if (typeof options !== 'object') { - return options; - } - for (var name in options) { - copy = options[name]; - if (target === copy) { - continue; - } - target[name] = this.extend(true, options[name]); - } - } - } - } else { - //浅拷贝 - target = options; - if (aLength === i) { - target = this; - i--; - } //如果是只有一个参数,拓展功能 如果两个以上参数,将后续对象加入到第一个对象 - for (; i < aLength; i++) { - options = arguments[i]; - for (var name in options) { - target[name] = options[name]; - } - } - } - return target; -} - -/** - * startLoading - */ -function startLoading(option) { - if (!option.load) return 0; - console.log("LOADING") - uni.showLoading({ - title: '请求中', - mask: true - }) -} - -/** - * endLoading - */ -function endLoading(option) { - if (!option.load) return 0; - uni.hideLoading(); - console.log("END LOADING") -} - - - -/** - * SetCookie - */ -function setCookie(res, app = getApp()) { - if (app.globalData.header.Cookie === "") { - if (res && res.header && res.header['Set-Cookie']) { - var cookies = res.header['Set-Cookie'].split(";")[0] + ";"; - console.log("SetCookie:" + cookies); - app.globalData.header.Cookie = cookies; - uni.setStorage({ - key: "cookies", - data: app.globalData.header.Cookie - }); - } else { - console.log("Get Cookie From Cache"); - app.globalData.header.Cookie = uni.getStorageSync("cookies") || ""; - } - } -} - -/** - * 弹窗提示 - */ -function toast(e, time = 2000, icon = 'none') { - uni.showToast({ - title: e, - icon: icon, - duration: time - }) -} - -/** - * 延时执行 - */ -function delay(e,args){ - setTimeout((args) => e.apply(this),100); -} - -/** - * Resize - */ -function resize(dom,that) { - const result = dom.getComponentRect(that.$refs.box, option => { - if (uni.getSystemInfoSync().windowHeight > option.size.height) that.signalPage = true; - else that.signalPage = false; - console.log(that.signalPage ? "SIGNAL PAGE" : "FULL PAGE") - }) -} - -/** - * NextTick - */ -function nextTick(dom,that){ - that.$nextTick(() => { resize(dom,that) }) -} - -/** - * 添加字体 - */ -function addIconfont(dom){ - dom.addRule('fontFace', { - 'fontFamily': 'iconfont', - 'src': "url('https://at.alicdn.com/t/font_1582902_a1btjrevzq.ttf')" - }) -} - -/** - * HTTP请求 - */ -function ajax(requestInfo, app = getApp()) { - var option = { - load: 1, - autoCookie: true, - url: "", - method: "GET", - data: {}, - fun: () => {}, - success: () => {}, - fail: function() { - this.completeLoad = () => { - toast("网络错误"); - } - }, - complete: () => {}, - completeLoad: () => {} - }; - extend(option, requestInfo); - startLoading(option); - uni.request({ - url: option.url, - data: option.data, - method: option.method, - header: app.globalData.header, - success: function(res) { - if (option.autoCookie) setCookie(res); - try { - option.fun(res); - option.success(res); - } catch (e) { - option.completeLoad = () => { - toast("PARSE ERROR"); - } - console.warn(e); - } - }, - fail: function(res) { - option.fail(res); - }, - complete: function(res) { - endLoading(option); - try { - option.complete(res); - } catch (e) { - console.warn(e); - } - option.completeLoad(res); - } - }) -} - -/** - * APP启动事件 - */ -function onLunch() { - var app = this; - app.eventBus = eventBus.getEventBus; -} diff --git a/SHST-WEL/vector/pubFct.js b/SHST-WEL/vector/pubFct.js deleted file mode 100644 index 651f230..0000000 --- a/SHST-WEL/vector/pubFct.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; -const md5 = require('@/utils/md5.js'); -const util = require('@/utils/util.js'); - - -module.exports = { - todoDateDiff: dataCalc, - getCurWeek: getCurWeek, - tableDispose: tableDispose -} - -/** - * 统一处理课表功能 - */ -function tableDispose(info, flag = 0) { - const app = getApp(); - const colorList = app.globalData.colorList; - const colorN = app.globalData.colorList.length; - var tableArr = []; - var week = new Date().getDay() - 1; - if (week === -1) week = 6; - info.forEach(value => { - if (!value) return; - var arrInner = []; - var day = parseInt(value.kcsj[0]) - 1; - if (flag === 1 && day !== week) return; - var knot = parseInt(parseInt(value.kcsj.substr(1, 2)) / 2); - var md5Str = md5.hexMD5(value.kcmc); - var md5PickNum = function(){ let r=0; for(let i=0;i<7;++i) r += md5Str[i].charCodeAt(); return r;}(); - var colorSignal = app.globalData.colorList[ md5PickNum % app.globalData.colorN]; - arrInner.push(day); - arrInner.push(knot); - arrInner.push(value.kcmc.split("(")[0]); - arrInner.push(value.jsxm); - arrInner.push(value.jsmc); - arrInner.push(colorSignal); - if (!tableArr[day]) tableArr[day] = []; - tableArr[day][knot] = arrInner; - }) - if (flag === 1) return tableArr[week]; - else return tableArr; -} - -function dataCalc(startDateString, endDateString, content) { - const app = getApp(); - const colorList = app.globalData.colorList; - const colorN = app.globalData.colorList.length; - var color = colorList[md5.hexMD5(content)[0].charCodeAt() % colorN]; - var diff = util.dateDiff(startDateString, endDateString); - if (diff === 0) diff = "今"; - else if (diff < 0) diff = "超期" + Math.abs(diff); - else diff = "距今" + Math.abs(diff); - return [diff, color]; -} - - -function getCurWeek(startTime) { - console.log(util.formatDate()) - if (util.formatDate() < startTime) return 1; - var week = (parseInt(util.dateDiff(startTime, util.formatDate()) / 7) + 1); - return week; -} diff --git a/SHST-WEX/App.vue b/SHST-WEX/App.vue index 0f88a69..0c990a0 100644 --- a/SHST-WEX/App.vue +++ b/SHST-WEX/App.vue @@ -6,11 +6,11 @@ account: "", curWeek: "1", initData: {}, - version: "3.1.0", + version: "3.2.1", curTerm: "2019-2020-1", curTermStart: "2019-08-26", colorList: dispose.colorList, - url: 'http://jwgl.sdust.edu.cn/app.do', + url: 'http://219.218.128.228/app.do', header: {'refer': 'https://com.WindrunnerMax.SHST','content-type': 'application/x-www-form-urlencoded','token':''} }, onLaunch: function() { diff --git a/SHST-WEX/manifest.json b/SHST-WEX/manifest.json index 05d9924..e5ccf56 100644 --- a/SHST-WEX/manifest.json +++ b/SHST-WEX/manifest.json @@ -2,8 +2,8 @@ "name" : "山科小站", "appid" : "__UNI__08D8F46", "description" : "山科小站", - "versionName" : "3.2.0", - "versionCode" : 320, + "versionName" : "3.2.1", + "versionCode" : 321, "transformPx" : false, "networkTimeout" : 2000, /* 5+App特有相关 */ @@ -30,7 +30,9 @@ "idfa" : false }, /* SDK配置 */ - "sdkConfigs" : {}, + "sdkConfigs" : { + "ad" : {} + }, "icons" : { "android" : { "hdpi" : "unpackage/res/icons/72x72.png", @@ -64,9 +66,9 @@ } } }, - "renderer" : "native", "compilerVersion" : 3, - "nvueLaunchMode" : "fast" + "nvueLaunchMode" : "fast", + "renderer" : "native" }, /* 快应用特有相关 */ "quickapp" : {}, diff --git a/SHST-WEX/pages/Home/auxiliary/login.nvue b/SHST-WEX/pages/Home/auxiliary/login.nvue index 4a1d985..84b3b1c 100644 --- a/SHST-WEX/pages/Home/auxiliary/login.nvue +++ b/SHST-WEX/pages/Home/auxiliary/login.nvue @@ -128,7 +128,6 @@ app.globalData.curWeek = res.data.initData.curWeek; app.globalData.tips = res.data.initData.tips; app.globalData.initData = res.data.initData; - that.checkAppUpdate(res.data.initData.version); if (user.account) { app.globalData.user = user.account; that.login(user.account, user.password, false); @@ -147,37 +146,7 @@ } } }) - }, - checkAppUpdate: function(e) { - if (!e) return false; - if (app.globalData.version === e) return false; - var url = `http://windrunner_max.gitee.io/imgpath/SHST/App/SHST-${e}.wgt`; - uni.downloadFile({ - url: url, - success: (downloadResult) => { - if (downloadResult.statusCode === 200) { - uni.showModal({ - title: '更新提示', - content: '增量包已下载完成,点击确定将重启以更新', - showCancel: false, - success: (res) => { - if (res.confirm) { - plus.runtime.install(downloadResult.tempFilePath, { - force: true - }, function() { - console.log('install success...'); - plus.runtime.restart(); - }, function(e) { - console.log(e) - console.error('install fail...'); - }); - } - } - }); - } - } - }) - }, + } } } diff --git a/SHST-WEX/pages/Study/timeTable/timeTable.nvue b/SHST-WEX/pages/Study/timeTable/timeTable.nvue index 00353f5..cbef6bf 100644 --- a/SHST-WEX/pages/Study/timeTable/timeTable.nvue +++ b/SHST-WEX/pages/Study/timeTable/timeTable.nvue @@ -9,10 +9,10 @@ - {{preT}} + - {{nextT}} + @@ -52,8 +52,8 @@ - {{table[inner][item][2]}} - {{table[inner][item][4]}} + {{table[inner][item][2]}} + {{table[inner][item][4]}} {{table[inner][item][3]}} @@ -78,8 +78,6 @@ }, data() { return { - nextT: '>', - preT: '<', week: 1, ad: 1, date: [{ @@ -111,7 +109,6 @@ }, onLoad(e) { util.extDate(); //拓展Date原型 - // app.addIconfont(dom); this.week = app.globalData.curWeek; this.getRemoteTable(app.globalData.curWeek); }, @@ -203,21 +200,26 @@ .iconfont{ font-size: 18px; } + .operate{ color: #767676; } - .line { flex-direction: row; } .timetableHide { - min-height: 130px; + min-height: 135px; margin: 0 1px; color: #fff; - padding: 1px; - font-size: 13px; + padding: 3px; + font-size: 12px; + border-radius: 3px; + } + + .t1{ + margin-bottom: 3px; } .timetablehr { diff --git a/SHST-WEX/pages/User/about/about.nvue b/SHST-WEX/pages/User/about/about.nvue index abbc258..e835ac2 100644 --- a/SHST-WEX/pages/User/about/about.nvue +++ b/SHST-WEX/pages/User/about/about.nvue @@ -20,7 +20,7 @@ 反馈QQ群 - 522567369 + 522567369 diff --git a/SHST-WEX/vector/dispose.js b/SHST-WEX/vector/dispose.js index ad537d7..ea75aa7 100644 --- a/SHST-WEX/vector/dispose.js +++ b/SHST-WEX/vector/dispose.js @@ -12,9 +12,10 @@ module.exports = { /** * 颜色方案 */ -module.exports.colorList = ["#EAA78C", "#F9CD82", "#9ADEAD", "#9CB6E9", "#E49D9B", "#97D7D7", "#ABA0CA", "#9F8BEC", - "#ACA4D5", "#6495ED", "#7BCDA5", "#76B4EF" -]; +// module.exports.colorList = ["#EAA78C", "#F9CD82", "#9ADEAD", "#9CB6E9", "#E49D9B", "#97D7D7", "#ABA0CA", "#9F8BEC", +// "#ACA4D5", "#6495ED", "#7BCDA5", "#76B4EF","#E1C38F","#F6C46A","#B19ED1","#F09B98","#87CECB","#D1A495","#89D196" +// ]; +module.exports.colorList = ["#FE9E9F","#FFCA62","#93BAFF","#FFA477","#D999F9","#75E1A5"]; /** * 拓展对象 diff --git a/SHST-WEX/vector/pubFct.js b/SHST-WEX/vector/pubFct.js index d952275..651f230 100644 --- a/SHST-WEX/vector/pubFct.js +++ b/SHST-WEX/vector/pubFct.js @@ -26,7 +26,8 @@ function tableDispose(info, flag = 0) { if (flag === 1 && day !== week) return; var knot = parseInt(parseInt(value.kcsj.substr(1, 2)) / 2); var md5Str = md5.hexMD5(value.kcmc); - var colorSignal = app.globalData.colorList[Math.abs((md5Str[0].charCodeAt() - md5Str[3].charCodeAt())) % app.globalData.colorN]; + var md5PickNum = function(){ let r=0; for(let i=0;i<7;++i) r += md5Str[i].charCodeAt(); return r;}(); + var colorSignal = app.globalData.colorList[ md5PickNum % app.globalData.colorN]; arrInner.push(day); arrInner.push(knot); arrInner.push(value.kcmc.split("(")[0]);