diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index bb010f6..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: MP CI
-
-on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [10.x]
-
- steps:
- - uses: actions/checkout@v2
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
- with:
- node-version: ${{ matrix.node-version }}
-
- - name: Install Dependencies
- run: npm i
-
- # 从 secrets.UPLOAD_PRIVATE_KEY 生成私钥文件
- # see Project/Settings/Secrets
- - name: Generate private key for upload
- run: echo "$UPLOAD_PRIVATE_KEY" > private.key
- env:
- UPLOAD_PRIVATE_KEY: ${{ secrets.UPLOAD_PRIVATE_KEY }}
- # 上传代码
- - name: Upload to WeChat
- run: npx mp-ci upload ./ --pkp=./private.key
diff --git a/LICENSE b/LICENSE
index 0ad25db..dbbe355 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -658,4 +658,4 @@ specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
-.
+.
diff --git a/README.md b/README.md
index 9c7f610..4d301e2 100644
--- a/README.md
+++ b/README.md
@@ -2,82 +2,77 @@
贝壳小盒子 微信小程序
-[](https://www.oscs1024.com/project/Airmole/ShellBox?ref=badge_small)
[](https://github.com/Airmole/ShellBox/stargazers)
[](https://github.com/Airmole/ShellBox/archive/master.zip)
-[](https://github.com/Airmole/ShellBox/commits/master)
+[](https://github.com/Airmole/ShellBox/commits/master)
+[](https://blog.airmole.cn)
## 线上版本体验
-
+[](小程序体验码)
+
+```
+测试体验账号
+
+学号:000000000
+
+密码:test
+```
-> 4.0版本起使用 uniapp 重新开发,见项目 [shellbox-uniapp](https://github.com/Airmole/shellbox-uniapp)
## 截图
-[](https://z4a.net/image/7NtGdH)
+[](https://z4a.net/image/7NtGdH)
## 页面路径说明
-
-| 页面路径 | 功能 |
-| -------------------------- | --------------------- |
-| pages/index/index | 默认首页 |
-| pages/index/login | 账号登录 |
-| pages/index/feature | 功能列表 |
-| pages/books/search | 图书检索 |
-| pages/books/index | 图书检索结果列表 |
-| pages/books/detail | 图书详情 |
-| pages/books/shelf | 图书书架 |
-| pages/books/bind | 绑定借阅 |
-| pages/books/hot/index | 热门图书排行 |
-| pages/books/overdue/index | 图书超期欠款 |
-| pages/books/my | 我的图书馆 |
-| pages/course/my | 个人课表 |
-| pages/course/search | 班级/教师课表搜索列表 |
-| pages/course/content | 班级/教师课表内容 |
-| pages/elesys/bind | 绑定电费寝室 |
-| pages/elesys/index | 寝室电费信息 |
-| pages/netsys/bind | 校园网账号绑定 |
-| pages/netsys/index | 网费查询结果界面 |
-| pages/netsys/list | 网费查询明细 |
-| pages/traffic/navi | 校园导航 |
-| pages/traffic/bus | 校园出行方案 |
-| pages/score/score | 成绩查询 |
-| pages/school/calendar | 校历 |
-| pages/school/tel | 校园通讯录 |
-| pages/school/cert | 考证助手 |
-| pages/school/web | 校园站点 |
-| pages/school/aboutus | 关于 |
-| pages/school/xiaoai | 小爱课表 |
-| pages/school/lost/index | 失物招领 |
-| pages/school/lost/detail | 失物招领详情 |
-| pages/school/run/index | 运动计步排行榜 |
-| pages/school/finance/bind | 缴费平台账号绑定 |
-| pages/school/finance/index | 缴费查询界面 |
-| pages/school/card/index | 校园一卡通查询界面 |
-| pages/school/card/bind | 校园一卡通绑定界面 |
+```
+"pages": [
+ "pages/bookSearch/index",//通知消息提示首页
+ "pages/index/index",//学号绑定登录
+ "pages/index/vcode",//成绩查询输入验证码
+ "pages/bookSearch/isbn/iputIsbn",//扫码查书
+ "pages/bookSearch/bookInfo/bookDetail",//搜索图书的图书详情
+ "pages/bookSearch/bookInfo/bookInfo",//扫码查书的图书详情
+ "pages/bookSearch/bookInfo/bookList",//图书搜索结果列表
+ "pages/features/features",//“更多”界面
+ "pages/features/about",//关于
+ "pages/welcome/welcome",//欢迎界面
+ "pages/classQuery/index",//个人课表
+ "pages/classQuery/class",//班级课表
+ "pages/classQuery/jskb",//教师课表查询界面
+ "pages/classQuery/showJskb",//教师课表展示界面
+ "pages/score/score",//成绩查询
+ "pages/calendar/calendar",//校历
+ "pages/error/queryerror",//查询失败或错误的异常页面
+ "pages/net/netfare",//网费查询
+ "pages/net/netBind",//网费绑定
+ "pages/electricity/electricityFare",//电费查询
+ "pages/electricity/electricityBind",//电费绑定
+ "pages/Transport/Transport",//校园出行
+ "pages/tel/tel",//常用电话
+ "pages/schoolNav/schoolNav"//校园导航
+ ],
+```
## 参考借鉴
-- 登录、关于、课表、电费查询界面借鉴参考使用[We重邮](https://github.com/mcc108/wecqupt)
+- 通知中心、登录、关于、课表、电费查询界面借鉴使用[We重邮](https://github.com/mcc108/wecqupt)
+
+- 校园出行公交路线、公告通知跑马灯使用[Wux Weapp](https://github.com/wux-weapp/wux-weapp)
- 校园导航路线规划使用[高德导航API](https://lbs.amap.com/)
-- 成绩查询界面统计图表[wx-charts](https://github.com/xiaolin3303/wx-charts)
+- 图书信息来自于[豆瓣API](https://github.com/zce/douban-api-proxy)
-- [ColorUI](https://github.com/weilanwl/ColorUI)
+- 电费查询、成绩查询界面统计图表[wx-charts](https://github.com/xiaolin3303/wx-charts)
+- [小程序WeUI](https://github.com/Tencent/weui-wxss)
## 参赛获奖
-- 2019 高校微信小程序开发大赛 [华北赛区二等奖](https://mp.weixin.qq.com/s/17bq_ryWXAQfAORZy_n9QA) (2019年7月25日)
+- 2019 高校微信小程序开发大赛 华北赛区二等奖 (2019年7月25日)
## 其他版本
- [贝壳小盒子QQ小程序版](https://github.com/Airmole/ShellBox_QApp)
-
-## 赞助感谢
-
-[本项目的 CDN 加速和安全保护由腾讯 EdgeOne 赞助,最佳亚洲 CDN、Edge 和安全解决方案 - 腾讯 EdgeOne](https://edgeone.ai/?from=github)
-[](https://edgeone.ai/?from=github)
diff --git a/app.js b/app.js
index 6cacea7..da11c95 100644
--- a/app.js
+++ b/app.js
@@ -1,163 +1,71 @@
-//app.js
+const openIdUrl = require('./config').openIdUrl
+
App({
globalData: {
- domain: 'https://shellbox.airmole.cn/api',
- _amap_key: '66a87160f8db2a9a76431c954b4f52a5', // 高德导航API秘钥
- requestTimeout: 120 * 1000, // 网络请求最长时间120s
- defaultGrayAvatar: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',
- openid: '',
- session_key: '',
- userInfo: {},
- edusysUserInfo: {},
- netsysUserInfo: '',
- elesysUserInfo: '',
- env: 'develop',
- hasEdusysStorage: false
- },
- onLaunch: function () {
- let launchInfo = wx.getLaunchOptionsSync()
- const accountInfo = wx.getAccountInfoSync()
- this.globalData.env = accountInfo.miniProgram.envVersion
- // this.globalData.env = 'release'
- if (this.globalData.env == 'release') {
- this.globalData.domain = 'https://shellbox.airmole.cn/api'
- } else {
- this.globalData.domain = 'https://dev.shellbox.airmole.cn/api'
- // this.globalData.domain = 'http://shellbox.cn/api'
- }
- if(launchInfo.scene != 1145){
- this.getUserOpenId()
- this.appUpdate()
- }
- this.checkHasEdusysStorage()
- this.getStorageEdusysUserInfo()
- this.getUserInfoFromStorage()
- this.getSystemStatusBarInfo()
- console.log('app.globalData:', this.globalData)
- },
- checkHasEdusysStorage: function () {
- const edusysStorage = wx.getStorageSync('edusysUserInfo') || {}
- var self = this
- try {
- if (edusysStorage.uid.length > 0) {
- self.globalData.hasEdusysStorage = true
- self.globalData.edusysUserInfo = self.autoLoginCookie(edusysStorage)
- } else {
- self.globalData.hasEdusysStorage = false
- }
- } catch (error) {
- self.globalData.hasEdusysStorage = false
- }
+ apiURL: "https://api.airmole.cn/ShellBox",
+ doubanApi: "https://airmole.cn/doubanapi/v2",
+ nickName: '',
+ hasLogin: false,
+ openid: null,
+ building: '',
+ roomNo: '',
+ uid: '',
+ pwd: '',
+ newpwd: '',
+ netPassword: '',
},
- autoLoginCookie: function (edusysInfo) {
- var self = this
- const uid = edusysInfo.uid
- const pwd = edusysInfo.password
- const cookie = edusysInfo.cookie ? edusysInfo.cookie : ''
- const openid = wx.getStorageSync('openid') || { openid: this.globalData.openid }
- wx.request({
- // url: `https://dev.shellbox.airmole.cn/api/edu/profile`,
- url: `${self.globalData.domain}/edu/profile`,
- data:{
- uid: uid,
- pwd: pwd,
- cookie: cookie,
- userFrom: 'wechat',
- openid: openid.openid
- },
- timeout: self.globalData.requestTimeout,
- method: 'POST',
- success: function(res){
- // console.log('eduSysProfile:', res.data)
- try {
- if (res.data.name.length > 1) {
- res.data.password = pwd
- wx.setStorage({ data: res.data, key: 'edusysUserInfo' })
- self.globalData.edusysUserInfo = res.data
- }
- } catch (error) {
- console.log('后台自动静默激活教务cookie失败', error)
- }
- },
- fail: function(error){
- console.log('后台自动静默激活教务cookie失败', error)
- }
- })
+ util: require('./utils/util'),
+ onLaunch: function() {
+ // console.log('App Launch')
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ var newpwd = wx.getStorageSync('newpwd');
+
+ this.appUpdate();
+
+ this.getUserOpenId();
+
},
- getUserInfoFromStorage: function () {
- var self = this;
- const userInfo = wx.getStorageSync('userInfo') || {}
- self.globalData.userInfo = userInfo
+ onShow: function() {
+ // console.log('App Show')
},
- getStorageEdusysUserInfo: function () {
- var self = this;
- const edusysUserInfo = wx.getStorageSync('edusysUserInfo') || {}
- self.globalData.edusysUserInfo = edusysUserInfo
+ onHide: function() {
+ // console.log('App Hide')
},
- getSystemStatusBarInfo: function () {
- // 获取系统状态栏信息
- wx.getSystemInfo({
- success: e => {
- this.globalData.StatusBar = e.statusBarHeight;
- let capsule = wx.getMenuButtonBoundingClientRect();
- if (capsule) {
- this.globalData.Custom = capsule;
- this.globalData.CustomBar = capsule.bottom + capsule.top - e.statusBarHeight;
- } else {
- this.globalData.CustomBar = e.statusBarHeight + 50;
- }
- }
- })
- },
- getUserOpenId: function (callback) {
+ // lazy loading openid
+ getUserOpenId: function(callback) {
var self = this
- var storageOpenid = wx.getStorageSync('openid') || {}
- if (storageOpenid.openid) {
- wx.checkSession({
- success () {
- //session_key 未过期,并且在本生命周期一直有效
- self.globalData.openid = storageOpenid.openid
- return
- },
- fail () {
- // session_key 已经失效,需要重新执行登录流程
- self.wxLoginAndRequest()
- }
- })
- }
if (self.globalData.openid) {
callback(null, self.globalData.openid)
} else {
- this.wxLoginAndRequest()
+ wx.login({
+ success: function(data) {
+ wx.request({
+ url: 'https://api.airmole.cn/code2id.php?',
+ data: {
+ code: data.code
+ },
+ success: function(res) {
+ console.log('拉取openid成功', res.data)
+ self.globalData.openid = res.data.openid
+ },
+ fail: function(res) {
+ console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
+ }
+ })
+ },
+ fail: function(err) {
+ console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
+ }
+ })
}
},
- wxLoginAndRequest: function () {
- var self = this
- wx.login({
- success: function (data) {
- wx.request({
- url: self.globalData.domain + `/wechat/openid?jscode=${data.code}`,
- success: function (res) {
- console.log('拉取openid成功', res.data)
- wx.setStorageSync('openid', res.data)
- self.globalData.openid = res.data.openid
- self.globalData.session_key = res.data.session_key
- },
- fail: function (res) {
- console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
- }
- })
- },
- fail: function (err) {
- console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
- }
- })
- },
- appUpdate: function (where) {
+ appUpdate: function(where) {
const updateManager = wx.getUpdateManager()
- updateManager.onCheckForUpdate(function (res) {
+
+ updateManager.onCheckForUpdate(function(res) {
// 请求完新版本信息的回调
- // console.log(res)
+ console.log(res)
if (where == 'userclick') {
wx.showToast({
title: '已是最新版',
@@ -166,11 +74,11 @@ App({
}
})
- updateManager.onUpdateReady(function () {
+ updateManager.onUpdateReady(function() {
wx.showModal({
title: '小盒子求更新',
content: "小盒子有版本功能更新啦,建议各位小可爱重启应用体验新版本(●'◡'●)",
- success: function (res) {
+ success: function(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
@@ -179,7 +87,7 @@ App({
})
})
- updateManager.onUpdateFailed(function () {
+ updateManager.onUpdateFailed(function() {
// 新版本下载失败
wx.showToast({
title: '嘤嘤嘤更新失败了。可能网络不好',
diff --git a/app.json b/app.json
index a89bfd1..f282892 100644
--- a/app.json
+++ b/app.json
@@ -1,74 +1,52 @@
{
"pages": [
+ "pages/bookSearch/index",
"pages/index/index",
- "pages/index/login",
- "pages/index/feature",
- "pages/index/setting",
- "pages/books/search",
- "pages/books/index",
- "pages/books/detail",
- "pages/books/shelf",
- "pages/books/bind",
- "pages/books/hot/index",
- "pages/books/overdue/index",
- "pages/books/recommend/index",
- "pages/books/my",
- "pages/course/my",
- "pages/course/search",
- "pages/course/content",
- "pages/course/stulist/index",
- "pages/course/stulist/content",
- "pages/elesys/bind",
- "pages/elesys/index",
- "pages/netsys/bind",
- "pages/netsys/index",
- "pages/netsys/list",
- "pages/traffic/navi",
- "pages/traffic/bus",
+ "pages/index/vcode",
+ "pages/bookSearch/isbn/iputIsbn",
+ "pages/bookSearch/bookInfo/bookDetail",
+ "pages/bookSearch/bookInfo/bookInfo",
+ "pages/bookSearch/bookInfo/bookList",
+ "pages/features/features",
+ "pages/features/about",
+ "pages/welcome/welcome",
+ "pages/classQuery/index",
+ "pages/classQuery/jskb",
+ "pages/classQuery/showJskb",
"pages/score/score",
- "pages/school/calendar",
- "pages/school/tel",
- "pages/school/cert",
- "pages/school/web",
- "pages/school/aboutus",
- "pages/school/xiaoai",
- "pages/school/board/index",
- "pages/school/board/edit",
- "pages/school/board/faq",
- "pages/school/board/detail",
- "pages/school/run/index",
- "pages/school/finance/bind",
- "pages/school/finance/index",
- "pages/school/card/index",
- "pages/school/card/bind",
- "pages/webview/webview",
- "pages/webview/redpacket",
- "pages/school/movie"
+ "pages/calendar/calendar",
+ "pages/error/queryerror",
+ "pages/net/netfare",
+ "pages/net/netBind",
+ "pages/electricity/electricityFare",
+ "pages/electricity/electricityBind",
+ "pages/Transport/Transport",
+ "pages/tel/tel",
+ "pages/schoolNav/schoolNav",
+ "pages/opac/index",
+ "pages/opac/bind",
+ "pages/cet/find"
],
"window": {
"backgroundTextStyle": "light",
- "navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "贝壳小盒子",
- "navigationStyle": "custom",
- "navigationBarTextStyle": "white"
- },
- "usingComponents": {
- "cu-custom": "/colorui/components/cu-custom"
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#7acfa6"
},
"tabBar": {
- "selectedColor": "#84BD54",
+ "selectedColor": "#4A6141",
"color": "#333",
"backgroundColor": "#fff",
"position": "bottom",
"list": [
{
- "pagePath": "pages/index/index",
+ "pagePath": "pages/bookSearch/index",
"text": "首页",
"iconPath": "images/index.png",
"selectedIconPath": "images/index@active.png"
},
{
- "pagePath": "pages/index/feature",
+ "pagePath": "pages/features/features",
"text": "更多",
"iconPath": "images/more.png",
"selectedIconPath": "images/holiday.png"
@@ -78,20 +56,11 @@
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于校园导航定位"
- },
- "scope.addPhoneCalendar": {
- "desc": "用于添加上课日历事件提醒"
}
},
- "requiredPrivateInfos": [
- "getLocation"
+ "navigateToMiniProgramAppIdList": [
+ "wx183616af30e5723d",
+ "wx9551f8196258f706"
],
- "plugins": {
- "ocr-plugin": {
- "version": "3.1.5",
- "provider": "wx4418e3e031e551be"
- }
- },
- "__usePrivacyCheck__": true,
- "sitemapLocation": "sitemap.json"
+ "sitemapLocation": "sitemap33.json"
}
\ No newline at end of file
diff --git a/app.wxss b/app.wxss
index 744a444..87a186b 100644
--- a/app.wxss
+++ b/app.wxss
@@ -1,3 +1,89 @@
-@import "colorui/main.wxss";
-@import "colorui/icon.wxss";
-@import "utils/iconfont.wxss";
\ No newline at end of file
+page {
+ font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif;
+ font-size: 10pt;
+ line-height: 150%;
+ color: #666;
+ min-height: 100%;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+}
+
+.container {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ min-height: 100%;
+ padding-bottom: 100rpx;
+ box-sizing: border-box;
+}
+
+.remind-box {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.remind-img {
+ width: 250rpx;
+ height: 250rpx;
+ padding-bottom: 25rpx;
+}
+
+.remind-text {
+ font-size: 12pt;
+ line-height: 150%;
+}
+
+.remind-btn {
+ margin-top: 20rpx;
+ font-size: 9pt;
+ padding: 5rpx 20rpx;
+ text-align: center;
+ background-color: #7acfa6;
+ border-radius: 25rpx;
+ border-bottom: 2px solid #4fc08d;
+ color: #fff;
+}
+
+.fix_tip {
+ position: fixed;
+ bottom: 50rpx;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ opacity: 0;
+ transform: translate3d(0, 80rpx, 0);
+ transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
+}
+
+.fix_tip.active {
+ opacity: 1;
+ transform: translate3d(0, 0, 0);
+}
+
+.fix_tip text {
+ font-size: 9pt;
+ line-height: 100%;
+ padding: 10rpx 20rpx;
+ border-radius: 10rpx;
+ background: rgba(66, 66, 66, 0.6);
+ color: #fff;
+}
+
+.lanshan-studio {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ font-size: 9pt;
+ line-height: 100%;
+ padding: 9pt 0;
+ text-align: center;
+ opacity: 0.15;
+}
diff --git a/colorui/animation.wxss b/colorui/animation.wxss
deleted file mode 100644
index 931bb51..0000000
--- a/colorui/animation.wxss
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- Animation 微动画
- 基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28
- */
-
-/* css 滤镜 控制黑白底色gif的 */
-.gif-black{
- mix-blend-mode: screen;
-}
-.gif-white{
- mix-blend-mode: multiply;
-}
-
-
-/* Animation css */
-[class*=animation-] {
- animation-duration: .5s;
- animation-timing-function: ease-out;
- animation-fill-mode: both
-}
-
-.animation-fade {
- animation-name: fade;
- animation-duration: .8s;
- animation-timing-function: linear
-}
-
-.animation-scale-up {
- animation-name: scale-up
-}
-
-.animation-scale-down {
- animation-name: scale-down
-}
-
-.animation-slide-top {
- animation-name: slide-top
-}
-
-.animation-slide-bottom {
- animation-name: slide-bottom
-}
-
-.animation-slide-left {
- animation-name: slide-left
-}
-
-.animation-slide-right {
- animation-name: slide-right
-}
-
-.animation-shake {
- animation-name: shake
-}
-
-.animation-reverse {
- animation-direction: reverse
-}
-
-@keyframes fade {
- 0% {
- opacity: 0
- }
-
- 100% {
- opacity: 1
- }
-}
-
-@keyframes scale-up {
- 0% {
- opacity: 0;
- transform: scale(.2)
- }
-
- 100% {
- opacity: 1;
- transform: scale(1)
- }
-}
-
-@keyframes scale-down {
- 0% {
- opacity: 0;
- transform: scale(1.8)
- }
-
- 100% {
- opacity: 1;
- transform: scale(1)
- }
-}
-
-@keyframes slide-top {
- 0% {
- opacity: 0;
- transform: translateY(-100%)
- }
-
- 100% {
- opacity: 1;
- transform: translateY(0)
- }
-}
-
-@keyframes slide-bottom {
- 0% {
- opacity: 0;
- transform: translateY(100%)
- }
-
- 100% {
- opacity: 1;
- transform: translateY(0)
- }
-}
-
-@keyframes shake {
-
- 0%,
- 100% {
- transform: translateX(0)
- }
-
- 10% {
- transform: translateX(-9px)
- }
-
- 20% {
- transform: translateX(8px)
- }
-
- 30% {
- transform: translateX(-7px)
- }
-
- 40% {
- transform: translateX(6px)
- }
-
- 50% {
- transform: translateX(-5px)
- }
-
- 60% {
- transform: translateX(4px)
- }
-
- 70% {
- transform: translateX(-3px)
- }
-
- 80% {
- transform: translateX(2px)
- }
-
- 90% {
- transform: translateX(-1px)
- }
-}
-
-@keyframes slide-left {
- 0% {
- opacity: 0;
- transform: translateX(-100%)
- }
-
- 100% {
- opacity: 1;
- transform: translateX(0)
- }
-}
-
-@keyframes slide-right {
- 0% {
- opacity: 0;
- transform: translateX(100%)
- }
-
- 100% {
- opacity: 1;
- transform: translateX(0)
- }
-}
\ No newline at end of file
diff --git a/colorui/components/cu-custom.js b/colorui/components/cu-custom.js
deleted file mode 100644
index 2833b04..0000000
--- a/colorui/components/cu-custom.js
+++ /dev/null
@@ -1,60 +0,0 @@
-const app = getApp();
-Component({
- /**
- * 组件的一些选项
- */
- options: {
- addGlobalClass: true,
- multipleSlots: true
- },
- /**
- * 组件的对外属性
- */
- properties: {
- bgColor: {
- type: String,
- default: ''
- },
- isCustom: {
- type: [Boolean, String],
- default: false
- },
- isBack: {
- type: [Boolean, String],
- default: false
- },
- bgImage: {
- type: String,
- default: ''
- },
- },
- /**
- * 组件的初始数据
- */
- data: {
- StatusBar: app.globalData.StatusBar,
- CustomBar: app.globalData.CustomBar,
- Custom: app.globalData.Custom
- },
- /**
- * 组件的方法列表
- */
- methods: {
- BackPage() {
- try {
- const _this = this
- wx.navigateBack({
- delta: 1,
- fail() { _this.toHome()}
- });
- } catch (error) {
- this.toHome()
- }
- },
- toHome(){
- wx.reLaunch({
- url: '/pages/index/index',
- })
- }
- }
-})
\ No newline at end of file
diff --git a/colorui/components/cu-custom.json b/colorui/components/cu-custom.json
deleted file mode 100644
index e8cfaaf..0000000
--- a/colorui/components/cu-custom.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "component": true,
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/colorui/components/cu-custom.wxml b/colorui/components/cu-custom.wxml
deleted file mode 100644
index c248d48..0000000
--- a/colorui/components/cu-custom.wxml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/colorui/components/cu-custom.wxss b/colorui/components/cu-custom.wxss
deleted file mode 100644
index 07675e2..0000000
--- a/colorui/components/cu-custom.wxss
+++ /dev/null
@@ -1 +0,0 @@
-/* colorui/components/cu-custom.wxss */
\ No newline at end of file
diff --git a/colorui/icon.wxss b/colorui/icon.wxss
deleted file mode 100644
index e19a7bb..0000000
--- a/colorui/icon.wxss
+++ /dev/null
@@ -1,1226 +0,0 @@
-@keyframes cuIcon-spin {
- 0% {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-
-.iconfont-spin {
- -webkit-animation: cuIcon-spin 2s infinite linear;
- animation: cuIcon-spin 2s infinite linear;
- display: inline-block;
-}
-
-.iconfont-pulse {
- -webkit-animation: cuIcon-spin 1s infinite steps(8);
- animation: cuIcon-spin 1s infinite steps(8);
- display: inline-block;
-}
-
-[class*="cuIcon-"] {
- font-family: "cuIcon";
- font-size: inherit;
- font-style: normal;
-}
-
-@font-face {
- font-family: "cuIcon";
- src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831');
- /* IE9*/
- src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'),
- /* IE6-IE8 */
- url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),
- url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'),
- /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
- url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#iconfont') format('svg');
- /* iOS 4.1- */
-}
-
-.cuIcon-appreciate:before {
- content: "\e644";
-}
-
-.cuIcon-check:before {
- content: "\e645";
-}
-
-.cuIcon-close:before {
- content: "\e646";
-}
-
-.cuIcon-edit:before {
- content: "\e649";
-}
-
-.cuIcon-emoji:before {
- content: "\e64a";
-}
-
-.cuIcon-favorfill:before {
- content: "\e64b";
-}
-
-.cuIcon-favor:before {
- content: "\e64c";
-}
-
-.cuIcon-loading:before {
- content: "\e64f";
-}
-
-.cuIcon-locationfill:before {
- content: "\e650";
-}
-
-.cuIcon-location:before {
- content: "\e651";
-}
-
-.cuIcon-phone:before {
- content: "\e652";
-}
-
-.cuIcon-roundcheckfill:before {
- content: "\e656";
-}
-
-.cuIcon-roundcheck:before {
- content: "\e657";
-}
-
-.cuIcon-roundclosefill:before {
- content: "\e658";
-}
-
-.cuIcon-roundclose:before {
- content: "\e659";
-}
-
-.cuIcon-roundrightfill:before {
- content: "\e65a";
-}
-
-.cuIcon-roundright:before {
- content: "\e65b";
-}
-
-.cuIcon-search:before {
- content: "\e65c";
-}
-
-.cuIcon-taxi:before {
- content: "\e65d";
-}
-
-.cuIcon-timefill:before {
- content: "\e65e";
-}
-
-.cuIcon-time:before {
- content: "\e65f";
-}
-
-.cuIcon-unfold:before {
- content: "\e661";
-}
-
-.cuIcon-warnfill:before {
- content: "\e662";
-}
-
-.cuIcon-warn:before {
- content: "\e663";
-}
-
-.cuIcon-camerafill:before {
- content: "\e664";
-}
-
-.cuIcon-camera:before {
- content: "\e665";
-}
-
-.cuIcon-commentfill:before {
- content: "\e666";
-}
-
-.cuIcon-comment:before {
- content: "\e667";
-}
-
-.cuIcon-likefill:before {
- content: "\e668";
-}
-
-.cuIcon-like:before {
- content: "\e669";
-}
-
-.cuIcon-notificationfill:before {
- content: "\e66a";
-}
-
-.cuIcon-notification:before {
- content: "\e66b";
-}
-
-.cuIcon-order:before {
- content: "\e66c";
-}
-
-.cuIcon-samefill:before {
- content: "\e66d";
-}
-
-.cuIcon-same:before {
- content: "\e66e";
-}
-
-.cuIcon-deliver:before {
- content: "\e671";
-}
-
-.cuIcon-evaluate:before {
- content: "\e672";
-}
-
-.cuIcon-pay:before {
- content: "\e673";
-}
-
-.cuIcon-send:before {
- content: "\e675";
-}
-
-.cuIcon-shop:before {
- content: "\e676";
-}
-
-.cuIcon-ticket:before {
- content: "\e677";
-}
-
-.cuIcon-back:before {
- content: "\e679";
-}
-
-.cuIcon-cascades:before {
- content: "\e67c";
-}
-
-.cuIcon-discover:before {
- content: "\e67e";
-}
-
-.cuIcon-list:before {
- content: "\e682";
-}
-
-.cuIcon-more:before {
- content: "\e684";
-}
-
-.cuIcon-scan:before {
- content: "\e689";
-}
-
-.cuIcon-settings:before {
- content: "\e68a";
-}
-
-.cuIcon-questionfill:before {
- content: "\e690";
-}
-
-.cuIcon-question:before {
- content: "\e691";
-}
-
-.cuIcon-shopfill:before {
- content: "\e697";
-}
-
-.cuIcon-form:before {
- content: "\e699";
-}
-
-.cuIcon-pic:before {
- content: "\e69b";
-}
-
-.cuIcon-filter:before {
- content: "\e69c";
-}
-
-.cuIcon-footprint:before {
- content: "\e69d";
-}
-
-.cuIcon-top:before {
- content: "\e69e";
-}
-
-.cuIcon-pulldown:before {
- content: "\e69f";
-}
-
-.cuIcon-pullup:before {
- content: "\e6a0";
-}
-
-.cuIcon-right:before {
- content: "\e6a3";
-}
-
-.cuIcon-refresh:before {
- content: "\e6a4";
-}
-
-.cuIcon-moreandroid:before {
- content: "\e6a5";
-}
-
-.cuIcon-deletefill:before {
- content: "\e6a6";
-}
-
-.cuIcon-refund:before {
- content: "\e6ac";
-}
-
-.cuIcon-cart:before {
- content: "\e6af";
-}
-
-.cuIcon-qrcode:before {
- content: "\e6b0";
-}
-
-.cuIcon-remind:before {
- content: "\e6b2";
-}
-
-.cuIcon-delete:before {
- content: "\e6b4";
-}
-
-.cuIcon-profile:before {
- content: "\e6b7";
-}
-
-.cuIcon-home:before {
- content: "\e6b8";
-}
-
-.cuIcon-cartfill:before {
- content: "\e6b9";
-}
-
-.cuIcon-discoverfill:before {
- content: "\e6ba";
-}
-
-.cuIcon-homefill:before {
- content: "\e6bb";
-}
-
-.cuIcon-message:before {
- content: "\e6bc";
-}
-
-.cuIcon-addressbook:before {
- content: "\e6bd";
-}
-
-.cuIcon-link:before {
- content: "\e6bf";
-}
-
-.cuIcon-lock:before {
- content: "\e6c0";
-}
-
-.cuIcon-unlock:before {
- content: "\e6c2";
-}
-
-.cuIcon-vip:before {
- content: "\e6c3";
-}
-
-.cuIcon-weibo:before {
- content: "\e6c4";
-}
-
-.cuIcon-activity:before {
- content: "\e6c5";
-}
-
-.cuIcon-friendaddfill:before {
- content: "\e6c9";
-}
-
-.cuIcon-friendadd:before {
- content: "\e6ca";
-}
-
-.cuIcon-friendfamous:before {
- content: "\e6cb";
-}
-
-.cuIcon-friend:before {
- content: "\e6cc";
-}
-
-.cuIcon-goods:before {
- content: "\e6cd";
-}
-
-.cuIcon-selection:before {
- content: "\e6ce";
-}
-
-.cuIcon-explore:before {
- content: "\e6d2";
-}
-
-.cuIcon-present:before {
- content: "\e6d3";
-}
-
-.cuIcon-squarecheckfill:before {
- content: "\e6d4";
-}
-
-.cuIcon-square:before {
- content: "\e6d5";
-}
-
-.cuIcon-squarecheck:before {
- content: "\e6d6";
-}
-
-.cuIcon-round:before {
- content: "\e6d7";
-}
-
-.cuIcon-roundaddfill:before {
- content: "\e6d8";
-}
-
-.cuIcon-roundadd:before {
- content: "\e6d9";
-}
-
-.cuIcon-add:before {
- content: "\e6da";
-}
-
-.cuIcon-notificationforbidfill:before {
- content: "\e6db";
-}
-
-.cuIcon-explorefill:before {
- content: "\e6dd";
-}
-
-.cuIcon-fold:before {
- content: "\e6de";
-}
-
-.cuIcon-game:before {
- content: "\e6df";
-}
-
-.cuIcon-redpacket:before {
- content: "\e6e0";
-}
-
-.cuIcon-selectionfill:before {
- content: "\e6e1";
-}
-
-.cuIcon-similar:before {
- content: "\e6e2";
-}
-
-.cuIcon-appreciatefill:before {
- content: "\e6e3";
-}
-
-.cuIcon-infofill:before {
- content: "\e6e4";
-}
-
-.cuIcon-info:before {
- content: "\e6e5";
-}
-
-.cuIcon-forwardfill:before {
- content: "\e6ea";
-}
-
-.cuIcon-forward:before {
- content: "\e6eb";
-}
-
-.cuIcon-rechargefill:before {
- content: "\e6ec";
-}
-
-.cuIcon-recharge:before {
- content: "\e6ed";
-}
-
-.cuIcon-vipcard:before {
- content: "\e6ee";
-}
-
-.cuIcon-voice:before {
- content: "\e6ef";
-}
-
-.cuIcon-voicefill:before {
- content: "\e6f0";
-}
-
-.cuIcon-friendfavor:before {
- content: "\e6f1";
-}
-
-.cuIcon-wifi:before {
- content: "\e6f2";
-}
-
-.cuIcon-share:before {
- content: "\e6f3";
-}
-
-.cuIcon-wefill:before {
- content: "\e6f4";
-}
-
-.cuIcon-we:before {
- content: "\e6f5";
-}
-
-.cuIcon-lightauto:before {
- content: "\e6f6";
-}
-
-.cuIcon-lightforbid:before {
- content: "\e6f7";
-}
-
-.cuIcon-lightfill:before {
- content: "\e6f8";
-}
-
-.cuIcon-camerarotate:before {
- content: "\e6f9";
-}
-
-.cuIcon-light:before {
- content: "\e6fa";
-}
-
-.cuIcon-barcode:before {
- content: "\e6fb";
-}
-
-.cuIcon-flashlightclose:before {
- content: "\e6fc";
-}
-
-.cuIcon-flashlightopen:before {
- content: "\e6fd";
-}
-
-.cuIcon-searchlist:before {
- content: "\e6fe";
-}
-
-.cuIcon-service:before {
- content: "\e6ff";
-}
-
-.cuIcon-sort:before {
- content: "\e700";
-}
-
-.cuIcon-down:before {
- content: "\e703";
-}
-
-.cuIcon-mobile:before {
- content: "\e704";
-}
-
-.cuIcon-mobilefill:before {
- content: "\e705";
-}
-
-.cuIcon-copy:before {
- content: "\e706";
-}
-
-.cuIcon-countdownfill:before {
- content: "\e707";
-}
-
-.cuIcon-countdown:before {
- content: "\e708";
-}
-
-.cuIcon-noticefill:before {
- content: "\e709";
-}
-
-.cuIcon-notice:before {
- content: "\e70a";
-}
-
-.cuIcon-upstagefill:before {
- content: "\e70e";
-}
-
-.cuIcon-upstage:before {
- content: "\e70f";
-}
-
-.cuIcon-babyfill:before {
- content: "\e710";
-}
-
-.cuIcon-baby:before {
- content: "\e711";
-}
-
-.cuIcon-brandfill:before {
- content: "\e712";
-}
-
-.cuIcon-brand:before {
- content: "\e713";
-}
-
-.cuIcon-choicenessfill:before {
- content: "\e714";
-}
-
-.cuIcon-choiceness:before {
- content: "\e715";
-}
-
-.cuIcon-clothesfill:before {
- content: "\e716";
-}
-
-.cuIcon-clothes:before {
- content: "\e717";
-}
-
-.cuIcon-creativefill:before {
- content: "\e718";
-}
-
-.cuIcon-creative:before {
- content: "\e719";
-}
-
-.cuIcon-female:before {
- content: "\e71a";
-}
-
-.cuIcon-keyboard:before {
- content: "\e71b";
-}
-
-.cuIcon-male:before {
- content: "\e71c";
-}
-
-.cuIcon-newfill:before {
- content: "\e71d";
-}
-
-.cuIcon-new:before {
- content: "\e71e";
-}
-
-.cuIcon-pullleft:before {
- content: "\e71f";
-}
-
-.cuIcon-pullright:before {
- content: "\e720";
-}
-
-.cuIcon-rankfill:before {
- content: "\e721";
-}
-
-.cuIcon-rank:before {
- content: "\e722";
-}
-
-.cuIcon-bad:before {
- content: "\e723";
-}
-
-.cuIcon-cameraadd:before {
- content: "\e724";
-}
-
-.cuIcon-focus:before {
- content: "\e725";
-}
-
-.cuIcon-friendfill:before {
- content: "\e726";
-}
-
-.cuIcon-cameraaddfill:before {
- content: "\e727";
-}
-
-.cuIcon-apps:before {
- content: "\e729";
-}
-
-.cuIcon-paintfill:before {
- content: "\e72a";
-}
-
-.cuIcon-paint:before {
- content: "\e72b";
-}
-
-.cuIcon-picfill:before {
- content: "\e72c";
-}
-
-.cuIcon-refresharrow:before {
- content: "\e72d";
-}
-
-.cuIcon-colorlens:before {
- content: "\e6e6";
-}
-
-.cuIcon-markfill:before {
- content: "\e730";
-}
-
-.cuIcon-mark:before {
- content: "\e731";
-}
-
-.cuIcon-presentfill:before {
- content: "\e732";
-}
-
-.cuIcon-repeal:before {
- content: "\e733";
-}
-
-.cuIcon-album:before {
- content: "\e734";
-}
-
-.cuIcon-peoplefill:before {
- content: "\e735";
-}
-
-.cuIcon-people:before {
- content: "\e736";
-}
-
-.cuIcon-servicefill:before {
- content: "\e737";
-}
-
-.cuIcon-repair:before {
- content: "\e738";
-}
-
-.cuIcon-file:before {
- content: "\e739";
-}
-
-.cuIcon-repairfill:before {
- content: "\e73a";
-}
-
-.cuIcon-taoxiaopu:before {
- content: "\e73b";
-}
-
-.cuIcon-weixin:before {
- content: "\e612";
-}
-
-.cuIcon-attentionfill:before {
- content: "\e73c";
-}
-
-.cuIcon-attention:before {
- content: "\e73d";
-}
-
-.cuIcon-commandfill:before {
- content: "\e73e";
-}
-
-.cuIcon-command:before {
- content: "\e73f";
-}
-
-.cuIcon-communityfill:before {
- content: "\e740";
-}
-
-.cuIcon-community:before {
- content: "\e741";
-}
-
-.cuIcon-read:before {
- content: "\e742";
-}
-
-.cuIcon-calendar:before {
- content: "\e74a";
-}
-
-.cuIcon-cut:before {
- content: "\e74b";
-}
-
-.cuIcon-magic:before {
- content: "\e74c";
-}
-
-.cuIcon-backwardfill:before {
- content: "\e74d";
-}
-
-.cuIcon-playfill:before {
- content: "\e74f";
-}
-
-.cuIcon-stop:before {
- content: "\e750";
-}
-
-.cuIcon-tagfill:before {
- content: "\e751";
-}
-
-.cuIcon-tag:before {
- content: "\e752";
-}
-
-.cuIcon-group:before {
- content: "\e753";
-}
-
-.cuIcon-all:before {
- content: "\e755";
-}
-
-.cuIcon-backdelete:before {
- content: "\e756";
-}
-
-.cuIcon-hotfill:before {
- content: "\e757";
-}
-
-.cuIcon-hot:before {
- content: "\e758";
-}
-
-.cuIcon-post:before {
- content: "\e759";
-}
-
-.cuIcon-radiobox:before {
- content: "\e75b";
-}
-
-.cuIcon-rounddown:before {
- content: "\e75c";
-}
-
-.cuIcon-upload:before {
- content: "\e75d";
-}
-
-.cuIcon-writefill:before {
- content: "\e760";
-}
-
-.cuIcon-write:before {
- content: "\e761";
-}
-
-.cuIcon-radioboxfill:before {
- content: "\e763";
-}
-
-.cuIcon-punch:before {
- content: "\e764";
-}
-
-.cuIcon-shake:before {
- content: "\e765";
-}
-
-.cuIcon-move:before {
- content: "\e768";
-}
-
-.cuIcon-safe:before {
- content: "\e769";
-}
-
-.cuIcon-activityfill:before {
- content: "\e775";
-}
-
-.cuIcon-crownfill:before {
- content: "\e776";
-}
-
-.cuIcon-crown:before {
- content: "\e777";
-}
-
-.cuIcon-goodsfill:before {
- content: "\e778";
-}
-
-.cuIcon-messagefill:before {
- content: "\e779";
-}
-
-.cuIcon-profilefill:before {
- content: "\e77a";
-}
-
-.cuIcon-sound:before {
- content: "\e77b";
-}
-
-.cuIcon-sponsorfill:before {
- content: "\e77c";
-}
-
-.cuIcon-sponsor:before {
- content: "\e77d";
-}
-
-.cuIcon-upblock:before {
- content: "\e77e";
-}
-
-.cuIcon-weblock:before {
- content: "\e77f";
-}
-
-.cuIcon-weunblock:before {
- content: "\e780";
-}
-
-.cuIcon-my:before {
- content: "\e78b";
-}
-
-.cuIcon-myfill:before {
- content: "\e78c";
-}
-
-.cuIcon-emojifill:before {
- content: "\e78d";
-}
-
-.cuIcon-emojiflashfill:before {
- content: "\e78e";
-}
-
-.cuIcon-flashbuyfill:before {
- content: "\e78f";
-}
-
-.cuIcon-text:before {
- content: "\e791";
-}
-
-.cuIcon-goodsfavor:before {
- content: "\e794";
-}
-
-.cuIcon-musicfill:before {
- content: "\e795";
-}
-
-.cuIcon-musicforbidfill:before {
- content: "\e796";
-}
-
-.cuIcon-card:before {
- content: "\e624";
-}
-
-.cuIcon-triangledownfill:before {
- content: "\e79b";
-}
-
-.cuIcon-triangleupfill:before {
- content: "\e79c";
-}
-
-.cuIcon-roundleftfill-copy:before {
- content: "\e79e";
-}
-
-.cuIcon-font:before {
- content: "\e76a";
-}
-
-.cuIcon-title:before {
- content: "\e82f";
-}
-
-.cuIcon-recordfill:before {
- content: "\e7a4";
-}
-
-.cuIcon-record:before {
- content: "\e7a6";
-}
-
-.cuIcon-cardboardfill:before {
- content: "\e7a9";
-}
-
-.cuIcon-cardboard:before {
- content: "\e7aa";
-}
-
-.cuIcon-formfill:before {
- content: "\e7ab";
-}
-
-.cuIcon-coin:before {
- content: "\e7ac";
-}
-
-.cuIcon-cardboardforbid:before {
- content: "\e7af";
-}
-
-.cuIcon-circlefill:before {
- content: "\e7b0";
-}
-
-.cuIcon-circle:before {
- content: "\e7b1";
-}
-
-.cuIcon-attentionforbid:before {
- content: "\e7b2";
-}
-
-.cuIcon-attentionforbidfill:before {
- content: "\e7b3";
-}
-
-.cuIcon-attentionfavorfill:before {
- content: "\e7b4";
-}
-
-.cuIcon-attentionfavor:before {
- content: "\e7b5";
-}
-
-.cuIcon-titles:before {
- content: "\e701";
-}
-
-.cuIcon-icloading:before {
- content: "\e67a";
-}
-
-.cuIcon-full:before {
- content: "\e7bc";
-}
-
-.cuIcon-mail:before {
- content: "\e7bd";
-}
-
-.cuIcon-peoplelist:before {
- content: "\e7be";
-}
-
-.cuIcon-goodsnewfill:before {
- content: "\e7bf";
-}
-
-.cuIcon-goodsnew:before {
- content: "\e7c0";
-}
-
-.cuIcon-medalfill:before {
- content: "\e7c1";
-}
-
-.cuIcon-medal:before {
- content: "\e7c2";
-}
-
-.cuIcon-newsfill:before {
- content: "\e7c3";
-}
-
-.cuIcon-newshotfill:before {
- content: "\e7c4";
-}
-
-.cuIcon-newshot:before {
- content: "\e7c5";
-}
-
-.cuIcon-news:before {
- content: "\e7c6";
-}
-
-.cuIcon-videofill:before {
- content: "\e7c7";
-}
-
-.cuIcon-video:before {
- content: "\e7c8";
-}
-
-.cuIcon-exit:before {
- content: "\e7cb";
-}
-
-.cuIcon-skinfill:before {
- content: "\e7cc";
-}
-
-.cuIcon-skin:before {
- content: "\e7cd";
-}
-
-.cuIcon-moneybagfill:before {
- content: "\e7ce";
-}
-
-.cuIcon-usefullfill:before {
- content: "\e7cf";
-}
-
-.cuIcon-usefull:before {
- content: "\e7d0";
-}
-
-.cuIcon-moneybag:before {
- content: "\e7d1";
-}
-
-.cuIcon-redpacket_fill:before {
- content: "\e7d3";
-}
-
-.cuIcon-subscription:before {
- content: "\e7d4";
-}
-
-.cuIcon-loading1:before {
- content: "\e633";
-}
-
-.cuIcon-github:before {
- content: "\e692";
-}
-
-.cuIcon-global:before {
- content: "\e7eb";
-}
-
-.cuIcon-settingsfill:before {
- content: "\e6ab";
-}
-
-.cuIcon-back_android:before {
- content: "\e7ed";
-}
-
-.cuIcon-expressman:before {
- content: "\e7ef";
-}
-
-.cuIcon-evaluate_fill:before {
- content: "\e7f0";
-}
-
-.cuIcon-group_fill:before {
- content: "\e7f5";
-}
-
-.cuIcon-play_forward_fill:before {
- content: "\e7f6";
-}
-
-.cuIcon-deliver_fill:before {
- content: "\e7f7";
-}
-
-.cuIcon-notice_forbid_fill:before {
- content: "\e7f8";
-}
-
-.cuIcon-fork:before {
- content: "\e60c";
-}
-
-.cuIcon-pick:before {
- content: "\e7fa";
-}
-
-.cuIcon-wenzi:before {
- content: "\e6a7";
-}
-
-.cuIcon-ellipse:before {
- content: "\e600";
-}
-
-.cuIcon-qr_code:before {
- content: "\e61b";
-}
-
-.cuIcon-dianhua:before {
- content: "\e64d";
-}
-
-.cuIcon-icon:before {
- content: "\e602";
-}
-
-.cuIcon-loading2:before {
- content: "\e7f1";
-}
-
-.cuIcon-btn:before {
- content: "\e601";
-}
diff --git a/colorui/main.wxss b/colorui/main.wxss
deleted file mode 100644
index 6b8cc76..0000000
--- a/colorui/main.wxss
+++ /dev/null
@@ -1,3990 +0,0 @@
-/* ==================
- 初始化
- ==================== */
-page {
- /* Color 可以自定义相关配色 */
- /* var属性兼容性 --> https://www.caniuse.com/#feat=css-variables */
- /* 标准色 */
- --red: #e54d42;
- --orange: #f37b1d;
- --yellow: #fbbd08;
- --olive: #8dc63f;
- --green: #39b54a;
- --cyan: #1cbbb4;
- --blue: #0081ff;
- --purple: #6739b6;
- --mauve: #9c26b0;
- --pink: #e03997;
- --brown: #a5673f;
- --grey: #8799a3;
- --black: #333333;
- --darkGray: #666666;
- --gray: #aaaaaa;
- --ghostWhite: #f1f1f1;
- --white: #ffffff;
- --wegreen: #7acfa6;
- /* 浅色 */
- --redLight: #fadbd9;
- --orangeLight: #fde6d2;
- --yellowLight: #fef2ce;
- --oliveLight: #e8f4d9;
- --greenLight: #d7f0db;
- --cyanLight: #d2f1f0;
- --blueLight: #cce6ff;
- --purpleLight: #e1d7f0;
- --mauveLight: #ebd4ef;
- --pinkLight: #f9d7ea;
- --brownLight: #ede1d9;
- --greyLight: #e7ebed;
- /* 渐变色 */
- --gradualRed: linear-gradient(45deg, #f43f3b, #ec008c);
- --gradualOrange: linear-gradient(45deg, #ff9700, #ed1c24);
- --gradualGreen: linear-gradient(45deg, #39b54a, #8dc63f);
- --gradualPurple: linear-gradient(45deg, #9000ff, #5e00ff);
- --gradualPink: linear-gradient(45deg, #ec008c, #6739b6);
- --gradualBlue: linear-gradient(45deg, #0081ff, #1cbbb4);
- /* 阴影透明色 */
- --ShadowSize: 6rpx 6rpx 8rpx;
- --redShadow: rgba(204, 69, 59, 0.2);
- --orangeShadow: rgba(217, 109, 26, 0.2);
- --yellowShadow: rgba(224, 170, 7, 0.2);
- --oliveShadow: rgba(124, 173, 55, 0.2);
- --greenShadow: rgba(48, 156, 63, 0.2);
- --cyanShadow: rgba(28, 187, 180, 0.2);
- --blueShadow: rgba(0, 102, 204, 0.2);
- --purpleShadow: rgba(88, 48, 156, 0.2);
- --mauveShadow: rgba(133, 33, 150, 0.2);
- --pinkShadow: rgba(199, 50, 134, 0.2);
- --brownShadow: rgba(140, 88, 53, 0.2);
- --greyShadow: rgba(114, 130, 138, 0.2);
- --grayShadow: rgba(114, 130, 138, 0.2);
- --blackShadow: rgba(26, 26, 26, 0.2);
-
- background-color: var(--ghostWhite);
- font-size: 28rpx;
- color: var(--black);
- font-family: Helvetica Neue, Helvetica, sans-serif;
-}
-
-view,
-scroll-view,
-swiper,
-button,
-input,
-textarea,
-label,
-navigator,
-image {
- box-sizing: border-box;
-}
-
-.round {
- border-radius: 5000rpx;
-}
-
-.radius {
- border-radius: 15rpx;
-}
-
-.radius-left {
- border-bottom-left-radius: 15rpx;
- border-top-left-radius: 15rpx;
-}
-
-.radius-right {
- border-bottom-right-radius: 15rpx;
- border-top-right-radius: 15rpx;
-}
-
-.radius-top {
- border-top-left-radius: 15rpx;
- border-top-right-radius: 15rpx;
-}
-
-.radius-bottom {
- border-bottom-left-radius: 15rpx;
- border-bottom-right-radius: 15rpx;
-}
-
-/* ==================
- 图片
- ==================== */
-
-image {
- max-width: 100%;
- display: inline-block;
- position: relative;
- z-index: 0;
-}
-
-image.loading::before {
- content: "";
- background-color: #f5f5f5;
- display: block;
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: -2;
-}
-
-image.loading::after {
- content: "\e7f1";
- font-family: "cuIcon";
- position: absolute;
- top: 0;
- left: 0;
- width: 32rpx;
- height: 32rpx;
- line-height: 32rpx;
- right: 0;
- bottom: 0;
- z-index: -1;
- font-size: 32rpx;
- margin: auto;
- color: #ccc;
- -webkit-animation: cuIcon-spin 2s infinite linear;
- animation: cuIcon-spin 2s infinite linear;
- display: block;
-}
-
-.response {
- width: 100%;
-}
-
-/* ==================
- 开关
- ==================== */
-
-switch,
-checkbox,
-radio {
- position: relative;
-}
-
-switch::after,
-switch::before {
- font-family: "cuIcon";
- content: "\e645";
- position: absolute;
- color: var(--white) !important;
- top: 0%;
- left: 0rpx;
- font-size: 26rpx;
- line-height: 26px;
- width: 50%;
- text-align: center;
- pointer-events: none;
- transform: scale(0, 0);
- transition: all 0.3s ease-in-out 0s;
- z-index: 9;
- bottom: 0;
- height: 26px;
- margin: auto;
-}
-
-switch::before {
- content: "\e646";
- right: 0;
- transform: scale(1, 1);
- left: auto;
-}
-
-switch[checked]::after,
-switch.checked::after {
- transform: scale(1, 1);
-}
-
-switch[checked]::before,
-switch.checked::before {
- transform: scale(0, 0);
-}
-
-switch[checked]::before {
- transform: scale(0, 0);
-}
-
-radio::before,
-checkbox::before {
- font-family: "cuIcon";
- content: "\e645";
- position: absolute;
- color: var(--white) !important;
- top: 50%;
- margin-top: -8px;
- right: 5px;
- font-size: 32rpx;
- line-height: 16px;
- pointer-events: none;
- transform: scale(1, 1);
- transition: all 0.3s ease-in-out 0s;
- z-index: 9;
-}
-
-radio .wx-radio-input,
-checkbox .wx-checkbox-input {
- margin: 0;
- width: 24px;
- height: 24px;
-}
-
-checkbox.round .wx-checkbox-input {
- border-radius: 100rpx;
-}
-
-switch .wx-switch-input {
- border: none;
- padding: 0 24px;
- width: 48px;
- height: 26px;
- margin: 0;
- border-radius: 100rpx;
-}
-
-switch .wx-switch-input:not([class*="bg-"]) {
- background: var(--grey) !important;
-}
-
-switch .wx-switch-input::after {
- margin: auto;
- width: 26px;
- height: 26px;
- border-radius: 100rpx;
- left: 0rpx;
- top: 0rpx;
- bottom: 0rpx;
- position: absolute;
- transform: scale(0.9, 0.9);
- transition: all 0.1s ease-in-out 0s;
-}
-
-switch .wx-switch-input.wx-switch-input-checked::after {
- margin: auto;
- left: 22px;
- box-shadow: none;
- transform: scale(0.9, 0.9);
-}
-
-radio-group {
- display: inline-block;
-}
-
-
-
-switch.radius .wx-switch-input::after,
-switch.radius .wx-switch-input,
-switch.radius .wx-switch-input::before {
- border-radius: 10rpx;
-}
-
-switch .wx-switch-input::before,
-radio.radio::before,
-checkbox .wx-checkbox-input::before,
-radio .wx-radio-input::before,
-radio.radio::before {
- display: none;
-}
-
-radio.radio[checked]::after {
- content: "";
- background-color: transparent;
- display: block;
- position: absolute;
- width: 8px;
- height: 8px;
- z-index: 999;
- top: 0rpx;
- left: 0rpx;
- right: 0;
- bottom: 0;
- margin: auto;
- border-radius: 200rpx;
- border: 8px solid var(--white) !important;
-}
-
-.switch-sex::after {
- content: "\e71c";
-}
-
-.switch-sex::before {
- content: "\e71a";
-}
-
-.switch-sex .wx-switch-input {
- background: var(--red) !important;
- border-color: var(--red) !important;
-}
-
-.switch-sex[checked] .wx-switch-input {
- background: var(--blue) !important;
- border-color: var(--blue) !important;
-}
-
-switch.red[checked] .wx-switch-input,
-checkbox.red[checked] .wx-checkbox-input,
-radio.red[checked] .wx-radio-input {
- border-color: var(--red) !important;
-}
-
-switch.orange[checked] .wx-switch-input,
-checkbox.orange[checked] .wx-checkbox-input,
-radio.orange[checked] .wx-radio-input {
- border-color: var(--orange) !important;
-}
-
-switch.yellow[checked] .wx-switch-input,
-checkbox.yellow[checked] .wx-checkbox-input,
-radio.yellow[checked] .wx-radio-input {
- border-color: var(--yellow) !important;
-}
-
-switch.olive[checked] .wx-switch-input,
-checkbox.olive[checked] .wx-checkbox-input,
-radio.olive[checked] .wx-radio-input {
- border-color: var(--olive) !important;
-}
-
-switch.green[checked] .wx-switch-input,
-checkbox.green[checked] .wx-checkbox-input,
-checkbox[checked] .wx-checkbox-input,
-radio.green[checked] .wx-radio-input {
- border-color: var(--green) !important;
-}
-
-switch.cyan[checked] .wx-switch-input,
-checkbox.cyan[checked] .wx-checkbox-input,
-radio.cyan[checked] .wx-radio-input {
- border-color: var(--cyan) !important;
-}
-
-switch.blue[checked] .wx-switch-input,
-checkbox.blue[checked] .wx-checkbox-input,
-radio.blue[checked] .wx-radio-input {
- border-color: var(--blue) !important;
-}
-
-switch.purple[checked] .wx-switch-input,
-checkbox.purple[checked] .wx-checkbox-input,
-radio.purple[checked] .wx-radio-input {
- border-color: var(--purple) !important;
-}
-
-switch.mauve[checked] .wx-switch-input,
-checkbox.mauve[checked] .wx-checkbox-input,
-radio.mauve[checked] .wx-radio-input {
- border-color: var(--mauve) !important;
-}
-
-switch.pink[checked] .wx-switch-input,
-checkbox.pink[checked] .wx-checkbox-input,
-radio.pink[checked] .wx-radio-input {
- border-color: var(--pink) !important;
-}
-
-switch.brown[checked] .wx-switch-input,
-checkbox.brown[checked] .wx-checkbox-input,
-radio.brown[checked] .wx-radio-input {
- border-color: var(--brown) !important;
-}
-
-switch.grey[checked] .wx-switch-input,
-checkbox.grey[checked] .wx-checkbox-input,
-radio.grey[checked] .wx-radio-input {
- border-color: var(--grey) !important;
-}
-
-switch.gray[checked] .wx-switch-input,
-checkbox.gray[checked] .wx-checkbox-input,
-radio.gray[checked] .wx-radio-input {
- border-color: var(--grey) !important;
-}
-
-switch.black[checked] .wx-switch-input,
-checkbox.black[checked] .wx-checkbox-input,
-radio.black[checked] .wx-radio-input {
- border-color: var(--black) !important;
-}
-
-switch.white[checked] .wx-switch-input,
-checkbox.white[checked] .wx-checkbox-input,
-radio.white[checked] .wx-radio-input {
- border-color: var(--white) !important;
-}
-
-switch.red[checked] .wx-switch-input.wx-switch-input-checked,
-checkbox.red[checked] .wx-checkbox-input,
-radio.red[checked] .wx-radio-input {
- background-color: var(--red) !important;
- color: var(--white) !important;
-}
-
-switch.orange[checked] .wx-switch-input,
-checkbox.orange[checked] .wx-checkbox-input,
-radio.orange[checked] .wx-radio-input {
- background-color: var(--orange) !important;
- color: var(--white) !important;
-}
-
-switch.yellow[checked] .wx-switch-input,
-checkbox.yellow[checked] .wx-checkbox-input,
-radio.yellow[checked] .wx-radio-input {
- background-color: var(--yellow) !important;
- color: var(--black) !important;
-}
-
-switch.olive[checked] .wx-switch-input,
-checkbox.olive[checked] .wx-checkbox-input,
-radio.olive[checked] .wx-radio-input {
- background-color: var(--olive) !important;
- color: var(--white) !important;
-}
-
-switch.green[checked] .wx-switch-input,
-switch[checked] .wx-switch-input,
-checkbox.green[checked] .wx-checkbox-input,
-checkbox[checked] .wx-checkbox-input,
-radio.green[checked] .wx-radio-input,
-radio[checked] .wx-radio-input {
- background-color: var(--green) !important;
- color: var(--white) !important;
-}
-
-switch.cyan[checked] .wx-switch-input,
-checkbox.cyan[checked] .wx-checkbox-input,
-radio.cyan[checked] .wx-radio-input {
- background-color: var(--cyan) !important;
- color: var(--white) !important;
-}
-
-switch.blue[checked] .wx-switch-input,
-checkbox.blue[checked] .wx-checkbox-input,
-radio.blue[checked] .wx-radio-input {
- background-color: var(--blue) !important;
- color: var(--white) !important;
-}
-
-switch.purple[checked] .wx-switch-input,
-checkbox.purple[checked] .wx-checkbox-input,
-radio.purple[checked] .wx-radio-input {
- background-color: var(--purple) !important;
- color: var(--white) !important;
-}
-
-switch.mauve[checked] .wx-switch-input,
-checkbox.mauve[checked] .wx-checkbox-input,
-radio.mauve[checked] .wx-radio-input {
- background-color: var(--mauve) !important;
- color: var(--white) !important;
-}
-
-switch.pink[checked] .wx-switch-input,
-checkbox.pink[checked] .wx-checkbox-input,
-radio.pink[checked] .wx-radio-input {
- background-color: var(--pink) !important;
- color: var(--white) !important;
-}
-
-switch.brown[checked] .wx-switch-input,
-checkbox.brown[checked] .wx-checkbox-input,
-radio.brown[checked] .wx-radio-input {
- background-color: var(--brown) !important;
- color: var(--white) !important;
-}
-
-switch.grey[checked] .wx-switch-input,
-checkbox.grey[checked] .wx-checkbox-input,
-radio.grey[checked] .wx-radio-input {
- background-color: var(--grey) !important;
- color: var(--white) !important;
-}
-
-switch.gray[checked] .wx-switch-input,
-checkbox.gray[checked] .wx-checkbox-input,
-radio.gray[checked] .wx-radio-input {
- background-color: #f0f0f0 !important;
- color: var(--black) !important;
-}
-
-switch.black[checked] .wx-switch-input,
-checkbox.black[checked] .wx-checkbox-input,
-radio.black[checked] .wx-radio-input {
- background-color: var(--black) !important;
- color: var(--white) !important;
-}
-
-switch.white[checked] .wx-switch-input,
-checkbox.white[checked] .wx-checkbox-input,
-radio.white[checked] .wx-radio-input {
- background-color: var(--white) !important;
- color: var(--black) !important;
-}
-
-/* ==================
- 边框
- ==================== */
-
-/* -- 实线 -- */
-
-.solid,
-.solid-top,
-.solid-right,
-.solid-bottom,
-.solid-left,
-.solids,
-.solids-top,
-.solids-right,
-.solids-bottom,
-.solids-left,
-.dashed,
-.dashed-top,
-.dashed-right,
-.dashed-bottom,
-.dashed-left {
- position: relative;
-}
-
-.solid::after,
-.solid-top::after,
-.solid-right::after,
-.solid-bottom::after,
-.solid-left::after,
-.solids::after,
-.solids-top::after,
-.solids-right::after,
-.solids-bottom::after,
-.solids-left::after,
-.dashed::after,
-.dashed-top::after,
-.dashed-right::after,
-.dashed-bottom::after,
-.dashed-left::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border-radius: inherit;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
-}
-
-.solid::after {
- border: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-
-.solid-top::after {
- border-top: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-
-.solid-right::after {
- border-right: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-
-.solid-bottom::after {
- border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-
-.solid-left::after {
- border-left: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-
-.solids::after {
- border: 8rpx solid #eee;
-}
-
-.solids-top::after {
- border-top: 8rpx solid #eee;
-}
-
-.solids-right::after {
- border-right: 8rpx solid #eee;
-}
-
-.solids-bottom::after {
- border-bottom: 8rpx solid #eee;
-}
-
-.solids-left::after {
- border-left: 8rpx solid #eee;
-}
-
-/* -- 虚线 -- */
-
-.dashed::after {
- border: 1rpx dashed #ddd;
-}
-
-.dashed-top::after {
- border-top: 1rpx dashed #ddd;
-}
-
-.dashed-right::after {
- border-right: 1rpx dashed #ddd;
-}
-
-.dashed-bottom::after {
- border-bottom: 1rpx dashed #ddd;
-}
-
-.dashed-left::after {
- border-left: 1rpx dashed #ddd;
-}
-
-/* -- 阴影 -- */
-
-.shadow[class*='white'] {
- --ShadowSize: 0 1rpx 6rpx;
-}
-
-.shadow-lg {
- --ShadowSize: 0rpx 40rpx 100rpx 0rpx;
-}
-
-.shadow-warp {
- position: relative;
- box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1);
-}
-
-.shadow-warp:before,
-.shadow-warp:after {
- position: absolute;
- content: "";
- top: 20rpx;
- bottom: 30rpx;
- left: 20rpx;
- width: 50%;
- box-shadow: 0 30rpx 20rpx rgba(0, 0, 0, 0.2);
- transform: rotate(-3deg);
- z-index: -1;
-}
-
-.shadow-warp:after {
- right: 20rpx;
- left: auto;
- transform: rotate(3deg);
-}
-
-.shadow-blur {
- position: relative;
-}
-
-.shadow-blur::before {
- content: "";
- display: block;
- background: inherit;
- filter: blur(10rpx);
- position: absolute;
- width: 100%;
- height: 100%;
- top: 10rpx;
- left: 10rpx;
- z-index: -1;
- opacity: 0.4;
- transform-origin: 0 0;
- border-radius: inherit;
- transform: scale(1, 1);
-}
-
-/* ==================
- 按钮
- ==================== */
-
-.cu-btn {
- position: relative;
- border: 0rpx;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- padding: 0 30rpx;
- font-size: 28rpx;
- height: 64rpx;
- line-height: 1;
- text-align: center;
- text-decoration: none;
- overflow: visible;
- margin-left: initial;
- transform: translate(0rpx, 0rpx);
- margin-right: initial;
-}
-
-.cu-btn::after {
- display: none;
-}
-
-.cu-btn:not([class*="bg-"]) {
- background-color: #f0f0f0;
-}
-
-.cu-btn[class*="line"] {
- background-color: transparent;
-}
-
-.cu-btn[class*="line"]::after {
- content: " ";
- display: block;
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border: 1rpx solid currentColor;
- transform: scale(0.5);
- transform-origin: 0 0;
- box-sizing: border-box;
- border-radius: 12rpx;
- z-index: 1;
- pointer-events: none;
-}
-
-.cu-btn.round[class*="line"]::after {
- border-radius: 1000rpx;
-}
-
-.cu-btn[class*="lines"]::after {
- border: 6rpx solid currentColor;
-}
-
-.cu-btn[class*="bg-"]::after {
- display: none;
-}
-
-.cu-btn.sm {
- padding: 0 20rpx;
- font-size: 20rpx;
- height: 48rpx;
-}
-
-.cu-btn.lg {
- padding: 0 40rpx;
- font-size: 32rpx;
- height: 80rpx;
-}
-
-.cu-btn.icon.sm {
- width: 48rpx;
- height: 48rpx;
-}
-
-.cu-btn.icon {
- width: 64rpx;
- height: 64rpx;
- border-radius: 500rpx;
- padding: 0;
-}
-
-button.icon.lg {
- width: 80rpx;
- height: 80rpx;
-}
-
-.cu-btn.shadow-blur::before {
- top: 4rpx;
- left: 4rpx;
- filter: blur(6rpx);
- opacity: 0.6;
-}
-
-.cu-btn.button-hover {
- transform: translate(1rpx, 1rpx);
-}
-
-.block {
- display: block;
-}
-
-.cu-btn.block {
- display: flex;
-}
-
-.cu-btn[disabled] {
- opacity: 0.6;
- color: var(--white);
-}
-
-/* ==================
- 徽章
- ==================== */
-
-.cu-tag {
- font-size: 24rpx;
- vertical-align: middle;
- position: relative;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- padding: 0rpx 16rpx;
- height: 48rpx;
- font-family: Helvetica Neue, Helvetica, sans-serif;
- white-space: nowrap;
-}
-
-.cu-tag:not([class*="bg"]):not([class*="line"]) {
- background-color: var(--ghostWhite);
-}
-
-.cu-tag[class*="line-"]::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border: 1rpx solid currentColor;
- transform: scale(0.5);
- transform-origin: 0 0;
- box-sizing: border-box;
- border-radius: inherit;
- z-index: 1;
- pointer-events: none;
-}
-
-.cu-tag.radius[class*="line"]::after {
- border-radius: 12rpx;
-}
-
-.cu-tag.round[class*="line"]::after {
- border-radius: 1000rpx;
-}
-
-.cu-tag[class*="line-"]::after {
- border-radius: 0;
-}
-
-.cu-tag+.cu-tag {
- margin-left: 10rpx;
-}
-
-.cu-tag.sm {
- font-size: 20rpx;
- padding: 0rpx 12rpx;
- height: 32rpx;
-}
-
-.cu-capsule {
- display: inline-flex;
- vertical-align: middle;
-}
-
-.cu-capsule+.cu-capsule {
- margin-left: 10rpx;
-}
-
-.cu-capsule .cu-tag {
- margin: 0;
-}
-
-.cu-capsule .cu-tag[class*="line-"]:last-child::after {
- border-left: 0rpx solid transparent;
-}
-
-.cu-capsule .cu-tag[class*="line-"]:first-child::after {
- border-right: 0rpx solid transparent;
-}
-
-.cu-capsule.radius .cu-tag:first-child {
- border-top-left-radius: 6rpx;
- border-bottom-left-radius: 6rpx;
-}
-
-.cu-capsule.radius .cu-tag:last-child::after,
-.cu-capsule.radius .cu-tag[class*="line-"] {
- border-top-right-radius: 12rpx;
- border-bottom-right-radius: 12rpx;
-}
-
-.cu-capsule.round .cu-tag:first-child {
- border-top-left-radius: 200rpx;
- border-bottom-left-radius: 200rpx;
- text-indent: 4rpx;
-}
-
-.cu-capsule.round .cu-tag:last-child::after,
-.cu-capsule.round .cu-tag:last-child {
- border-top-right-radius: 200rpx;
- border-bottom-right-radius: 200rpx;
- text-indent: -4rpx;
-}
-
-.cu-tag.badge {
- border-radius: 200rpx;
- position: absolute;
- top: -10rpx;
- right: -10rpx;
- font-size: 20rpx;
- padding: 0rpx 10rpx;
- height: 28rpx;
- color: var(--white);
-}
-
-.cu-tag.badge:not([class*="bg-"]) {
- background-color: #dd514c;
-}
-
-.cu-tag:empty:not([class*="cuIcon-"]) {
- padding: 0rpx;
- width: 16rpx;
- height: 16rpx;
- top: -4rpx;
- right: -4rpx;
-}
-
-.cu-tag[class*="cuIcon-"] {
- width: 32rpx;
- height: 32rpx;
- top: -4rpx;
- right: -4rpx;
-}
-
-/* ==================
- 头像
- ==================== */
-
-.cu-avatar {
- font-variant: small-caps;
- margin: 0;
- padding: 0;
- display: inline-flex;
- text-align: center;
- justify-content: center;
- align-items: center;
- background-color: #ccc;
- color: var(--white);
- white-space: nowrap;
- position: relative;
- width: 64rpx;
- height: 64rpx;
- background-size: cover;
- background-position: center;
- vertical-align: middle;
- font-size: 1.5em;
-}
-
-.cu-avatar.sm {
- width: 48rpx;
- height: 48rpx;
- font-size: 1em;
-}
-
-.cu-avatar.lg {
- width: 96rpx;
- height: 96rpx;
- font-size: 2em;
-}
-
-.cu-avatar.xl {
- width: 128rpx;
- height: 128rpx;
- font-size: 2.5em;
-}
-
-.cu-avatar.xxl {
- width: 168rpx;
- height: 168rpx;
- font-size: 3em;
-}
-
-.cu-avatar.xxl {
- width: 256rpx;
- height: 256rpx;
- font-size: 3.5em;
-}
-
-.cu-avatar .avatar-text {
- font-size: 0.4em;
-}
-
-.cu-avatar-group {
- direction: rtl;
- unicode-bidi: bidi-override;
- padding: 0 10rpx 0 40rpx;
- display: inline-block;
-}
-
-.cu-avatar-group .cu-avatar {
- margin-left: -30rpx;
- border: 4rpx solid var(--ghostWhite);
- vertical-align: middle;
-}
-
-.cu-avatar-group .cu-avatar.sm {
- margin-left: -20rpx;
- border: 1rpx solid var(--ghostWhite);
-}
-
-/* ==================
- 进度条
- ==================== */
-
-.cu-progress {
- overflow: hidden;
- height: 28rpx;
- background-color: #ebeef5;
- display: inline-flex;
- align-items: center;
- width: 100%;
-}
-
-.cu-progress+view,
-.cu-progress+text {
- line-height: 1;
-}
-
-.cu-progress.xs {
- height: 10rpx;
-}
-
-.cu-progress.sm {
- height: 20rpx;
-}
-
-.cu-progress view {
- width: 0;
- height: 100%;
- align-items: center;
- display: flex;
- justify-items: flex-end;
- justify-content: space-around;
- font-size: 20rpx;
- color: var(--white);
- transition: width 0.6s ease;
-}
-
-.cu-progress text {
- align-items: center;
- display: flex;
- font-size: 20rpx;
- color: var(--black);
- text-indent: 10rpx;
-}
-
-.cu-progress.text-progress {
- padding-right: 60rpx;
-}
-
-.cu-progress.striped view {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 72rpx 72rpx;
-}
-
-.cu-progress.active view {
- animation: progress-stripes 2s linear infinite;
-}
-
-@keyframes progress-stripes {
- from {
- background-position: 72rpx 0;
- }
-
- to {
- background-position: 0 0;
- }
-}
-
-/* ==================
- 加载
- ==================== */
-
-.cu-load {
- display: block;
- line-height: 3em;
- text-align: center;
-}
-
-.cu-load::before {
- font-family: "cuIcon";
- display: inline-block;
- margin-right: 6rpx;
-}
-
-.cu-load.loading::before {
- content: "\e67a";
- animation: cuIcon-spin 2s infinite linear;
-}
-
-.cu-load.loading::after {
- content: "加载中...";
-}
-
-.cu-load.over::before {
- content: "\e64a";
-}
-
-.cu-load.over::after {
- content: "没有更多了";
-}
-
-.cu-load.erro::before {
- content: "\e658";
-}
-
-.cu-load.erro::after {
- content: "加载失败";
-}
-
-.cu-load.load-icon::before {
- font-size: 32rpx;
-}
-
-.cu-load.load-icon::after {
- display: none;
-}
-
-.cu-load.load-icon.over {
- display: none;
-}
-
-.cu-load.load-modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 140rpx;
- left: 0;
- margin: auto;
- width: 260rpx;
- height: 260rpx;
- background-color: var(--white);
- border-radius: 10rpx;
- box-shadow: 0 0 0rpx 2000rpx rgba(0, 0, 0, 0.5);
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
- font-size: 28rpx;
- z-index: 9999;
- line-height: 2.4em;
-}
-
-.cu-load.load-modal [class*="cuIcon-"] {
- font-size: 60rpx;
-}
-
-.cu-load.load-modal image {
- width: 70rpx;
- height: 70rpx;
-}
-
-.cu-load.load-modal::after {
- content: "";
- position: absolute;
- background-color: var(--white);
- border-radius: 50%;
- width: 200rpx;
- height: 200rpx;
- font-size: 10px;
- border-top: 6rpx solid rgba(0, 0, 0, 0.05);
- border-right: 6rpx solid rgba(0, 0, 0, 0.05);
- border-bottom: 6rpx solid rgba(0, 0, 0, 0.05);
- border-left: 6rpx solid var(--orange);
- animation: cuIcon-spin 1s infinite linear;
- z-index: -1;
-}
-
-.load-progress {
- pointer-events: none;
- top: 0;
- position: fixed;
- width: 100%;
- left: 0;
- z-index: 2000;
-}
-
-.load-progress.hide {
- display: none;
-}
-
-.load-progress .load-progress-bar {
- position: relative;
- width: 100%;
- height: 4rpx;
- overflow: hidden;
- transition: all 200ms ease 0s;
-}
-
-.load-progress .load-progress-spinner {
- position: absolute;
- top: 10rpx;
- right: 10rpx;
- z-index: 2000;
- display: block;
-}
-
-.load-progress .load-progress-spinner::after {
- content: "";
- display: block;
- width: 24rpx;
- height: 24rpx;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- border: solid 4rpx transparent;
- border-top-color: inherit;
- border-left-color: inherit;
- border-radius: 50%;
- -webkit-animation: load-progress-spinner 0.4s linear infinite;
- animation: load-progress-spinner 0.4s linear infinite;
-}
-
-@-webkit-keyframes load-progress-spinner {
- 0% {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-@keyframes load-progress-spinner {
- 0% {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-/* ==================
- 列表
- ==================== */
-.grayscale {
- filter: grayscale(1);
-}
-
-.cu-list+.cu-list {
- margin-top: 30rpx
-}
-
-.cu-list>.cu-item {
- transition: all .6s ease-in-out 0s;
- transform: translateX(0rpx)
-}
-
-.cu-list>.cu-item.move-cur {
- transform: translateX(-260rpx)
-}
-
-.cu-list>.cu-item .move {
- position: absolute;
- right: 0;
- display: flex;
- width: 260rpx;
- height: 100%;
- transform: translateX(100%)
-}
-
-.cu-list>.cu-item .move view {
- display: flex;
- flex: 1;
- justify-content: center;
- align-items: center
-}
-
-.cu-list.menu-avatar {
- overflow: hidden;
-}
-
-.cu-list.menu-avatar>.cu-item {
- position: relative;
- display: flex;
- padding-right: 10rpx;
- height: 140rpx;
- background-color: var(--white);
- justify-content: flex-end;
- align-items: center
-}
-
-.cu-list.menu-avatar>.cu-item>.cu-avatar {
- position: absolute;
- left: 30rpx
-}
-
-.cu-list.menu-avatar>.cu-item .flex .text-cut {
- max-width: 510rpx
-}
-
-.cu-list.menu-avatar>.cu-item .content {
- position: absolute;
- left: 146rpx;
- width: calc(100% - 96rpx - 60rpx - 120rpx - 20rpx);
- line-height: 1.6em;
-}
-
-.cu-list.menu-avatar>.cu-item .content.flex-sub {
- width: calc(100% - 96rpx - 60rpx - 20rpx);
-}
-
-.cu-list.menu-avatar>.cu-item .content>view:first-child {
- font-size: 30rpx;
- display: flex;
- align-items: center
-}
-
-.cu-list.menu-avatar>.cu-item .content .cu-tag.sm {
- display: inline-block;
- margin-left: 10rpx;
- height: 28rpx;
- font-size: 16rpx;
- line-height: 32rpx
-}
-
-.cu-list.menu-avatar>.cu-item .action {
- width: 100rpx;
- text-align: center
-}
-
-.cu-list.menu-avatar>.cu-item .action view+view {
- margin-top: 10rpx
-}
-
-.cu-list.menu-avatar.comment>.cu-item .content {
- position: relative;
- left: 0;
- width: auto;
- flex: 1;
-}
-
-.cu-list.menu-avatar.comment>.cu-item {
- padding: 30rpx 30rpx 30rpx 120rpx;
- height: auto
-}
-
-.cu-list.menu-avatar.comment .cu-avatar {
- align-self: flex-start
-}
-
-.cu-list.menu>.cu-item {
- position: relative;
- display: flex;
- padding: 0 30rpx;
- min-height: 100rpx;
- background-color: var(--white);
- justify-content: space-between;
- align-items: center
-}
-
-.cu-list.menu>.cu-item:last-child:after {
- border: none
-}
-
-.cu-list.menu>.cu-item:after {
- position: absolute;
- top: 0;
- left: 0;
- box-sizing: border-box;
- width: 200%;
- height: 200%;
- border-bottom: 1rpx solid #ddd;
- border-radius: inherit;
- content: " ";
- transform: scale(.5);
- transform-origin: 0 0;
- pointer-events: none
-}
-
-.cu-list.menu>.cu-item.grayscale {
- background-color: #f5f5f5
-}
-
-.cu-list.menu>.cu-item.cur {
- background-color: #fcf7e9
-}
-
-.cu-list.menu>.cu-item.arrow {
- padding-right: 90rpx
-}
-
-.cu-list.menu>.cu-item.arrow:before {
- position: absolute;
- top: 0;
- right: 30rpx;
- bottom: 0;
- display: block;
- margin: auto;
- width: 30rpx;
- height: 30rpx;
- color: var(--grey);
- content: "\e6a3";
- text-align: center;
- font-size: 34rpx;
- font-family: "cuIcon";
- line-height: 30rpx
-}
-
-.cu-list.menu>.cu-item button.content {
- padding: 0;
- background-color: transparent;
- justify-content: flex-start
-}
-
-.cu-list.menu>.cu-item button.content:after {
- display: none
-}
-
-.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar {
- border-color: var(--white)
-}
-
-.cu-list.menu>.cu-item .content>view:first-child {
- display: flex;
- align-items: center
-}
-
-.cu-list.menu>.cu-item .content>text[class*=cuIcon] {
- display: inline-block;
- margin-right: 10rpx;
- width: 1.6em;
- text-align: center
-}
-
-.cu-list.menu>.cu-item .content>image {
- display: inline-block;
- margin-right: 10rpx;
- width: 1.6em;
- height: 1.6em;
- vertical-align: middle
-}
-
-.cu-list.menu>.cu-item .content {
- font-size: 30rpx;
- line-height: 1.6em;
- flex: 1
-}
-
-.cu-list.menu>.cu-item .content .cu-tag.sm {
- display: inline-block;
- margin-left: 10rpx;
- height: 28rpx;
- font-size: 16rpx;
- line-height: 32rpx
-}
-
-.cu-list.menu>.cu-item .action .cu-tag:empty {
- right: 10rpx
-}
-
-.cu-list.menu {
- display: block;
- overflow: hidden
-}
-
-.cu-list.menu.sm-border>.cu-item:after {
- left: 30rpx;
- width: calc(200% - 120rpx)
-}
-
-.cu-list.grid>.cu-item {
- position: relative;
- display: flex;
- padding: 20rpx 0 30rpx;
- transition-duration: 0s;
- flex-direction: column
-}
-
-.cu-list.grid>.cu-item:after {
- position: absolute;
- top: 0;
- left: 0;
- box-sizing: border-box;
- width: 200%;
- height: 200%;
- border-right: 1px solid rgba(0, 0, 0, .1);
- border-bottom: 1px solid rgba(0, 0, 0, .1);
- border-radius: inherit;
- content: " ";
- transform: scale(.5);
- transform-origin: 0 0;
- pointer-events: none
-}
-
-.cu-list.grid>.cu-item text {
- display: block;
- margin-top: 10rpx;
- color: #888;
- font-size: 26rpx;
- line-height: 40rpx
-}
-
-.cu-list.grid>.cu-item [class*=cuIcon] {
- position: relative;
- display: block;
- margin-top: 20rpx;
- width: 100%;
- font-size: 48rpx
-}
-
-.cu-list.grid>.cu-item .cu-tag {
- right: auto;
- left: 50%;
- margin-left: 20rpx
-}
-
-.cu-list.grid {
- background-color: var(--white);
- text-align: center
-}
-
-.cu-list.grid.no-border>.cu-item {
- padding-top: 10rpx;
- padding-bottom: 20rpx
-}
-
-.cu-list.grid.no-border>.cu-item:after {
- border: none
-}
-
-.cu-list.grid.no-border {
- padding: 20rpx 10rpx
-}
-
-.cu-list.grid.col-3>.cu-item:nth-child(3n):after,
-.cu-list.grid.col-4>.cu-item:nth-child(4n):after,
-.cu-list.grid.col-5>.cu-item:nth-child(5n):after {
- border-right-width: 0
-}
-
-.cu-list.card-menu {
- overflow: hidden;
- margin-right: 30rpx;
- margin-left: 30rpx;
- border-radius: 20rpx
-}
-
-
-/* ==================
- 操作条
- ==================== */
-
-.cu-bar {
- display: flex;
- position: relative;
- align-items: center;
- min-height: 100rpx;
- justify-content: space-between;
-}
-
-.cu-bar .action {
- display: flex;
- align-items: center;
- height: 100%;
- justify-content: center;
- max-width: 100%;
-}
-
-.cu-bar .action.border-title {
- position: relative;
- top: -10rpx;
-}
-
-.cu-bar .action.border-title text[class*="bg-"]:last-child {
- position: absolute;
- bottom: -0.5rem;
- min-width: 2rem;
- height: 6rpx;
- left: 0;
-}
-
-.cu-bar .action.sub-title {
- position: relative;
- top: -0.2rem;
-}
-
-.cu-bar .action.sub-title text {
- position: relative;
- z-index: 1;
-}
-
-.cu-bar .action.sub-title text[class*="bg-"]:last-child {
- position: absolute;
- display: inline-block;
- bottom: -0.2rem;
- border-radius: 6rpx;
- width: 100%;
- height: 0.6rem;
- left: 0.6rem;
- opacity: 0.3;
- z-index: 0;
-}
-
-.cu-bar .action.sub-title text[class*="text-"]:last-child {
- position: absolute;
- display: inline-block;
- bottom: -0.7rem;
- left: 0.5rem;
- opacity: 0.2;
- z-index: 0;
- text-align: right;
- font-weight: 900;
- font-size: 36rpx;
-}
-
-.cu-bar.justify-center .action.border-title text:last-child,
-.cu-bar.justify-center .action.sub-title text:last-child {
- left: 0;
- right: 0;
- margin: auto;
- text-align: center;
-}
-
-.cu-bar .action:first-child {
- margin-left: 30rpx;
- font-size: 30rpx;
-}
-
-.cu-bar .action text.text-cut {
- text-align: left;
- width: 100%;
-}
-
-.cu-bar .cu-avatar:first-child {
- margin-left: 20rpx;
-}
-
-.cu-bar .action:first-child>text[class*="cuIcon-"] {
- margin-left: -0.3em;
- margin-right: 0.3em;
-}
-
-.cu-bar .action:last-child {
- margin-right: 30rpx;
-}
-
-.cu-bar .action>text[class*="cuIcon-"],
-.cu-bar .action>view[class*="cuIcon-"] {
- font-size: 36rpx;
-}
-
-.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] {
- margin-left: 0.5em;
-}
-
-.cu-bar .content {
- position: absolute;
- text-align: center;
- width: calc(100% - 340rpx);
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- margin: auto;
- height: 60rpx;
- font-size: 32rpx;
- line-height: 60rpx;
- cursor: none;
- pointer-events: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.cu-bar.ios .content {
- bottom: 7px;
- height: 30px;
- font-size: 32rpx;
- line-height: 30px;
-}
-
-.cu-bar.btn-group {
- justify-content: space-around;
-}
-
-.cu-bar.btn-group button {
- padding: 20rpx 32rpx;
-}
-
-.cu-bar.btn-group button {
- flex: 1;
- margin: 0 20rpx;
- max-width: 50%;
-}
-
-.cu-bar .search-form {
- background-color: #f5f5f5;
- line-height: 64rpx;
- height: 64rpx;
- font-size: 24rpx;
- color: var(--black);
- flex: 1;
- display: flex;
- align-items: center;
- margin: 0 30rpx;
-}
-
-.cu-bar .search-form+.action {
- margin-right: 30rpx;
-}
-
-.cu-bar .search-form input {
- flex: 1;
- padding-right: 30rpx;
- height: 64rpx;
- line-height: 64rpx;
- font-size: 26rpx;
- background-color: transparent;
-}
-
-.cu-bar .search-form [class*="cuIcon-"] {
- margin: 0 0.5em 0 0.8em;
-}
-
-.cu-bar .search-form [class*="cuIcon-"]::before {
- top: 0rpx;
-}
-
-.cu-bar.fixed,
-.nav.fixed {
- position: fixed;
- width: 100%;
- top: 0;
- z-index: 1024;
- box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-
-.cu-bar.foot {
- position: fixed;
- width: 100%;
- bottom: 0;
- z-index: 1024;
- box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-
-.cu-bar.tabbar {
- padding: 0;
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
- padding-bottom: calc(env(safe-area-inset-bottom) / 2);
-}
-
-.cu-tabbar-height {
- min-height: 100rpx;
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
-}
-
-.cu-bar.tabbar.shadow {
- box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-
-.cu-bar.tabbar .action {
- font-size: 22rpx;
- position: relative;
- flex: 1;
- text-align: center;
- padding: 0;
- display: block;
- height: auto;
- line-height: 1;
- margin: 0;
- overflow: initial;
-}
-
-.cu-bar.tabbar.shop .action {
- width: 140rpx;
- flex: initial;
-}
-
-.cu-bar.tabbar .action.add-action {
- position: relative;
- z-index: 2;
- padding-top: 50rpx;
- background-color: inherit;
-}
-
-.cu-bar.tabbar .action.add-action [class*="cuIcon-"] {
- position: absolute;
- width: 70rpx;
- z-index: 2;
- height: 70rpx;
- border-radius: 50%;
- line-height: 70rpx;
- font-size: 50rpx;
- top: -35rpx;
- left: 0;
- right: 0;
- margin: auto;
- padding: 0;
-}
-
-.cu-bar.tabbar .action.add-action::after {
- content: "";
- position: absolute;
- width: 100rpx;
- height: 100rpx;
- top: -50rpx;
- left: 0;
- right: 0;
- margin: auto;
- box-shadow: 0 -3rpx 8rpx rgba(0, 0, 0, 0.08);
- border-radius: 50rpx;
- background-color: inherit;
- z-index: 0;
-}
-
-.cu-bar.tabbar .action.add-action::before {
- content: "";
- position: absolute;
- width: 100rpx;
- height: 30rpx;
- bottom: 30rpx;
- left: 0;
- right: 0;
- margin: auto;
- background-color: inherit;
- z-index: 1;
-}
-
-.cu-bar.tabbar .btn-group {
- flex: 1;
- display: flex;
- justify-content: space-around;
- align-items: center;
- padding: 0 10rpx;
-}
-
-.cu-bar.tabbar button.action::after {
- border: 0;
-}
-
-.cu-bar.tabbar .action [class*="cuIcon-"] {
- width: 100rpx;
- position: relative;
- display: block;
- height: auto;
- margin: 0 auto 10rpx;
- text-align: center;
- font-size: 40rpx;
-}
-
-.cu-bar.tabbar .action .cuIcon-cu-image {
- margin: 0 auto;
-}
-
-.cu-bar.tabbar .action .cuIcon-cu-image image {
- width: 50rpx;
- height: 50rpx;
- display: inline-block;
-}
-
-.cu-bar.tabbar .submit {
- align-items: center;
- display: flex;
- justify-content: center;
- text-align: center;
- position: relative;
- flex: 2;
- align-self: stretch;
-}
-
-.cu-bar.tabbar .submit:last-child {
- flex: 2.6;
-}
-
-.cu-bar.tabbar .submit+.submit {
- flex: 2;
-}
-
-.cu-bar.tabbar.border .action::before {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- transform: scale(0.5);
- transform-origin: 0 0;
- border-right: 1rpx solid rgba(0, 0, 0, 0.1);
- z-index: 3;
-}
-
-.cu-bar.tabbar.border .action:last-child:before {
- display: none;
-}
-
-.cu-bar.input {
- padding-right: 20rpx;
- background-color: var(--white);
-}
-
-.cu-bar.input input {
- overflow: initial;
- line-height: 64rpx;
- height: 64rpx;
- min-height: 64rpx;
- flex: 1;
- font-size: 30rpx;
- margin: 0 20rpx;
-}
-
-.cu-bar.input .action {
- margin-left: 20rpx;
-}
-
-.cu-bar.input .action [class*="cuIcon-"] {
- font-size: 48rpx;
-}
-
-.cu-bar.input input+.action {
- margin-right: 20rpx;
- margin-left: 0rpx;
-}
-
-.cu-bar.input .action:first-child [class*="cuIcon-"] {
- margin-left: 0rpx;
-}
-
-.cu-custom {
- display: block;
- position: relative;
-}
-
-.cu-custom .cu-bar .content {
- width: calc(100% - 440rpx);
-}
-
-
-.cu-custom .cu-bar .content image {
- height: 60rpx;
- width: 240rpx;
-}
-
-.cu-custom .cu-bar {
- min-height: 0px;
- padding-right: 220rpx;
- box-shadow: 0rpx 0rpx 0rpx;
- z-index: 9999;
-}
-
-.cu-custom .cu-bar .border-custom {
- position: relative;
- background: rgba(0, 0, 0, 0.15);
- border-radius: 1000rpx;
- height: 30px;
-}
-
-.cu-custom .cu-bar .border-custom::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border-radius: inherit;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
- border: 1rpx solid var(--white);
- opacity: 0.5;
-}
-
-.cu-custom .cu-bar .border-custom::before {
- content: " ";
- width: 1rpx;
- height: 110%;
- position: absolute;
- top: 22.5%;
- left: 0;
- right: 0;
- margin: auto;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
- opacity: 0.6;
- background-color: var(--white);
-}
-
-.cu-custom .cu-bar .border-custom text {
- display: block;
- flex: 1;
- margin: auto !important;
- text-align: center;
- font-size: 34rpx;
-}
-
-/* ==================
- 导航栏
- ==================== */
-
-.nav {
- white-space: nowrap;
-}
-
-::-webkit-scrollbar {
- display: none;
-}
-
-.nav .cu-item {
- height: 90rpx;
- display: inline-block;
- line-height: 90rpx;
- margin: 0 10rpx;
- padding: 0 20rpx;
-}
-
-.nav .cu-item.cur {
- border-bottom: 4rpx solid;
-}
-
-/* ==================
- 时间轴
- ==================== */
-
-.cu-timeline {
- display: block;
- background-color: var(--white);
-}
-
-.cu-timeline .cu-time {
- width: 120rpx;
- text-align: center;
- padding: 20rpx 0;
- font-size: 26rpx;
- color: #888;
- display: block;
-}
-
-.cu-timeline>.cu-item {
- padding: 30rpx 30rpx 30rpx 120rpx;
- position: relative;
- display: block;
- z-index: 0;
-}
-
-.cu-timeline>.cu-item:not([class*="text-"]) {
- color: #ccc;
-}
-
-.cu-timeline>.cu-item::after {
- content: "";
- display: block;
- position: absolute;
- width: 1rpx;
- background-color: #bbb;
- left: 60rpx;
- height: 100%;
- top: 0;
- z-index: 8;
-}
-
-.cu-timeline>.cu-item::before {
- font-family: "cuIcon";
- display: block;
- position: absolute;
- top: 36rpx;
- z-index: 9;
- background-color: var(--white);
- width: 50rpx;
- height: 50rpx;
- text-align: center;
- border: none;
- line-height: 50rpx;
- left: 36rpx;
-}
-
-.cu-timeline>.cu-item:not([class*="cuIcon-"])::before {
- content: "\e763";
-}
-
-.cu-timeline>.cu-item[class*="cuIcon-"]::before {
- background-color: var(--white);
- width: 50rpx;
- height: 50rpx;
- text-align: center;
- border: none;
- line-height: 50rpx;
- left: 36rpx;
-}
-
-.cu-timeline>.cu-item>.content {
- padding: 30rpx;
- border-radius: 6rpx;
- display: block;
- line-height: 1.6;
-}
-
-.cu-timeline>.cu-item>.content:not([class*="bg-"]) {
- background-color: var(--ghostWhite);
- color: var(--black);
-}
-
-.cu-timeline>.cu-item>.content+.content {
- margin-top: 20rpx;
-}
-
-/* ==================
- 聊天
- ==================== */
-
-.cu-chat {
- display: flex;
- flex-direction: column;
-}
-
-.cu-chat .cu-item {
- display: flex;
- padding: 30rpx 30rpx 70rpx;
- position: relative;
-}
-
-.cu-chat .cu-item>.cu-avatar {
- width: 80rpx;
- height: 80rpx;
-}
-
-.cu-chat .cu-item>.main {
- max-width: calc(100% - 260rpx);
- margin: 0 40rpx;
- display: flex;
- align-items: center;
-}
-
-.cu-chat .cu-item>image {
- height: 320rpx;
-}
-
-.cu-chat .cu-item>.main .content {
- padding: 20rpx;
- border-radius: 6rpx;
- display: inline-flex;
- max-width: 100%;
- align-items: center;
- font-size: 30rpx;
- position: relative;
- min-height: 80rpx;
- line-height: 40rpx;
- text-align: left;
-}
-
-.cu-chat .cu-item>.main .content:not([class*="bg-"]) {
- background-color: var(--white);
- color: var(--black);
-}
-
-.cu-chat .cu-item .date {
- position: absolute;
- font-size: 24rpx;
- color: var(--grey);
- width: calc(100% - 320rpx);
- bottom: 20rpx;
- left: 160rpx;
-}
-
-.cu-chat .cu-item .action {
- padding: 0 30rpx;
- display: flex;
- align-items: center;
-}
-
-.cu-chat .cu-item>.main .content::after {
- content: "";
- top: 27rpx;
- transform: rotate(45deg);
- position: absolute;
- z-index: 100;
- display: inline-block;
- overflow: hidden;
- width: 24rpx;
- height: 24rpx;
- left: -12rpx;
- right: initial;
- background-color: inherit;
-}
-
-.cu-chat .cu-item.self>.main .content::after {
- left: auto;
- right: -12rpx;
-}
-
-.cu-chat .cu-item>.main .content::before {
- content: "";
- top: 30rpx;
- transform: rotate(45deg);
- position: absolute;
- z-index: -1;
- display: inline-block;
- overflow: hidden;
- width: 24rpx;
- height: 24rpx;
- left: -12rpx;
- right: initial;
- background-color: inherit;
- filter: blur(5rpx);
- opacity: 0.3;
-}
-
-.cu-chat .cu-item>.main .content:not([class*="bg-"])::before {
- background-color: var(--black);
- opacity: 0.1;
-}
-
-.cu-chat .cu-item.self>.main .content::before {
- left: auto;
- right: -12rpx;
-}
-
-.cu-chat .cu-item.self {
- justify-content: flex-end;
- text-align: right;
-}
-
-.cu-chat .cu-info {
- display: inline-block;
- margin: 20rpx auto;
- font-size: 24rpx;
- padding: 8rpx 12rpx;
- background-color: rgba(0, 0, 0, 0.2);
- border-radius: 6rpx;
- color: var(--white);
- max-width: 400rpx;
- line-height: 1.4;
-}
-
-/* ==================
- 卡片
- ==================== */
-
-.cu-card {
- display: block;
- overflow: hidden;
-}
-
-.cu-card>.cu-item {
- display: block;
- background-color: var(--white);
- overflow: hidden;
- border-radius: 10rpx;
- margin: 30rpx;
-}
-
-.cu-card>.cu-item.shadow-blur {
- overflow: initial;
-}
-
-.cu-card.no-card>.cu-item {
- margin: 0rpx;
- border-radius: 0rpx;
-}
-
-.cu-card .grid.grid-square {
- margin-bottom: -20rpx;
-}
-
-.cu-card.case .image {
- position: relative;
-}
-
-.cu-card.case .image image {
- width: 100%;
-}
-
-.cu-card.case .image .cu-tag {
- position: absolute;
- right: 0;
- top: 0;
-}
-
-.cu-card.case .image .cu-bar {
- position: absolute;
- bottom: 0;
- width: 100%;
- background-color: transparent;
- padding: 0rpx 30rpx;
-}
-
-.cu-card.case.no-card .image {
- margin: 30rpx 30rpx 0;
- overflow: hidden;
- border-radius: 10rpx;
-}
-
-.cu-card.dynamic {
- display: block;
-}
-
-.cu-card.dynamic>.cu-item {
- display: block;
- background-color: var(--white);
- overflow: hidden;
-}
-
-.cu-card.dynamic>.cu-item>.text-content {
- padding: 0 30rpx 0;
- max-height: 6.4em;
- overflow: hidden;
- font-size: 30rpx;
- margin-bottom: 20rpx;
-}
-
-.cu-card.dynamic>.cu-item .square-img {
- width: 100%;
- height: 200rpx;
- border-radius: 6rpx;
-}
-
-.cu-card.dynamic>.cu-item .only-img {
- width: 100%;
- height: 320rpx;
- border-radius: 6rpx;
-}
-
-.cu-card.article {
- display: block;
-}
-
-.cu-card.article>.cu-item {
- padding-bottom: 30rpx;
-}
-
-.cu-card.article>.cu-item .title {
- font-size: 30rpx;
- font-weight: 900;
- color: var(--black);
- line-height: 100rpx;
- padding: 0 30rpx;
-}
-
-.cu-card.article>.cu-item .content {
- display: flex;
- padding: 0 30rpx;
-}
-
-.cu-card.article>.cu-item .content>image {
- width: 240rpx;
- height: 6.4em;
- margin-right: 20rpx;
- border-radius: 6rpx;
-}
-
-.cu-card.article>.cu-item .content .desc {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
-}
-
-.cu-card.article>.cu-item .content .text-content {
- font-size: 28rpx;
- color: #888;
- height: 4.8em;
- overflow: hidden;
-}
-
-/* ==================
- 表单
- ==================== */
-
-.cu-form-group {
- background-color: var(--white);
- padding: 1rpx 30rpx;
- display: flex;
- align-items: center;
- min-height: 100rpx;
- justify-content: space-between;
-}
-
-.cu-form-group+.cu-form-group {
- border-top: 1rpx solid #eee;
-}
-
-.cu-form-group .title {
- text-align: justify;
- padding-right: 30rpx;
- font-size: 30rpx;
- position: relative;
- height: 60rpx;
- line-height: 60rpx;
-}
-
-.cu-form-group input {
- flex: 1;
- font-size: 30rpx;
- color: #555;
- padding-right: 20rpx;
-}
-
-.cu-form-group>text[class*="cuIcon-"] {
- font-size: 36rpx;
- padding: 0;
- box-sizing: border-box;
-}
-
-.cu-form-group textarea {
- margin: 32rpx 0 30rpx;
- height: 4.6em;
- width: 100%;
- line-height: 1.2em;
- flex: 1;
- font-size: 28rpx;
- padding: 0;
-}
-
-.cu-form-group.align-start .title {
- height: 1em;
- margin-top: 32rpx;
- line-height: 1em;
-}
-
-.cu-form-group picker {
- flex: 1;
- padding-right: 40rpx;
- overflow: hidden;
- position: relative;
-}
-
-.cu-form-group picker .picker {
- line-height: 100rpx;
- font-size: 28rpx;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- width: 100%;
- text-align: right;
-}
-
-.cu-form-group picker::after {
- font-family: "cuIcon";
- display: block;
- content: "\e6a3";
- position: absolute;
- font-size: 34rpx;
- color: var(--grey);
- line-height: 100rpx;
- width: 60rpx;
- text-align: center;
- top: 0;
- bottom: 0;
- right: -20rpx;
- margin: auto;
-}
-
-.cu-form-group textarea[disabled],
-.cu-form-group textarea[disabled] .placeholder {
- color: transparent;
-}
-
-/* ==================
- 模态窗口
- ==================== */
-
-.cu-modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1110;
- opacity: 0;
- outline: 0;
- text-align: center;
- -ms-transform: scale(1.185);
- transform: scale(1.185);
- backface-visibility: hidden;
- perspective: 2000rpx;
- background: rgba(0, 0, 0, 0.6);
- transition: all 0.3s ease-in-out 0s;
- pointer-events: none;
-}
-
-.cu-modal::before {
- content: "\200B";
- display: inline-block;
- height: 100%;
- vertical-align: middle;
-}
-
-.cu-modal.show {
- opacity: 1;
- transition-duration: 0.3s;
- -ms-transform: scale(1);
- transform: scale(1);
- overflow-x: hidden;
- overflow-y: auto;
- pointer-events: auto;
-}
-
-.cu-dialog {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- margin-left: auto;
- margin-right: auto;
- width: 680rpx;
- max-width: 100%;
- background-color: #f8f8f8;
- border-radius: 10rpx;
- overflow: hidden;
-}
-
-.cu-modal.bottom-modal::before {
- vertical-align: bottom;
-}
-
-.cu-modal.bottom-modal .cu-dialog {
- width: 100%;
- border-radius: 0;
-}
-
-.cu-modal.bottom-modal {
- margin-bottom: -1000rpx;
-}
-
-.cu-modal.bottom-modal.show {
- margin-bottom: 0;
-}
-
-.cu-modal.drawer-modal {
- transform: scale(1);
- display: flex;
-}
-
-.cu-modal.drawer-modal .cu-dialog {
- height: 100%;
- min-width: 200rpx;
- border-radius: 0;
- margin: initial;
- transition-duration: 0.3s;
-}
-
-.cu-modal.drawer-modal.justify-start .cu-dialog {
- transform: translateX(-100%);
-}
-
-.cu-modal.drawer-modal.justify-end .cu-dialog {
- transform: translateX(100%);
-}
-
-.cu-modal.drawer-modal.show .cu-dialog {
- transform: translateX(0%);
-}
-.cu-modal .cu-dialog>.cu-bar:first-child .action{
- min-width: 100rpx;
- margin-right: 0;
- min-height: 100rpx;
-}
-/* ==================
- 轮播
- ==================== */
-swiper .a-swiper-dot {
- display: inline-block;
- width: 16rpx;
- height: 16rpx;
- background: rgba(0, 0, 0, .3);
- border-radius: 50%;
- vertical-align: middle;
-}
-
-swiper[class*="-dot"] .wx-swiper-dots {
- display: flex;
- align-items: center;
- width: 100%;
- justify-content: center;
-}
-
-swiper.square-dot .wx-swiper-dot {
- background-color: var(--white);
- opacity: 0.4;
- width: 10rpx;
- height: 10rpx;
- border-radius: 20rpx;
- margin: 0 8rpx !important;
-}
-
-swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active {
- opacity: 1;
- width: 30rpx;
-}
-
-swiper.round-dot .wx-swiper-dot {
- width: 10rpx;
- height: 10rpx;
- position: relative;
- margin: 4rpx 8rpx !important;
-}
-
-swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after {
- content: "";
- position: absolute;
- width: 10rpx;
- height: 10rpx;
- top: 0rpx;
- left: 0rpx;
- right: 0;
- bottom: 0;
- margin: auto;
- background-color: var(--white);
- border-radius: 20rpx;
-}
-
-swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active {
- width: 18rpx;
- height: 18rpx;
-}
-
-.screen-swiper {
- min-height: 375rpx;
-}
-
-.screen-swiper image,
-.screen-swiper video,
-.swiper-item image,
-.swiper-item video {
- width: 100%;
- display: block;
- height: 100%;
- margin: 0;
- pointer-events: none;
-}
-
-.card-swiper {
- height: 420rpx !important;
-}
-
-.card-swiper swiper-item {
- width: 610rpx !important;
- left: 70rpx;
- box-sizing: border-box;
- padding: 40rpx 0rpx 70rpx;
- overflow: initial;
-}
-
-.card-swiper swiper-item .swiper-item {
- width: 100%;
- display: block;
- height: 100%;
- border-radius: 10rpx;
- transform: scale(0.9);
- transition: all 0.2s ease-in 0s;
- overflow: hidden;
-}
-
-.card-swiper swiper-item.cur .swiper-item {
- transform: none;
- transition: all 0.2s ease-in 0s;
-}
-
-
-.tower-swiper {
- height: 420rpx;
- position: relative;
- max-width: 750rpx;
- overflow: hidden;
-}
-
-.tower-swiper .tower-item {
- position: absolute;
- width: 300rpx;
- height: 380rpx;
- top: 0;
- bottom: 0;
- left: 50%;
- margin: auto;
- transition: all 0.2s ease-in 0s;
- opacity: 1;
-}
-
-.tower-swiper .tower-item.none {
- opacity: 0;
-}
-
-.tower-swiper .tower-item .swiper-item {
- width: 100%;
- height: 100%;
- border-radius: 6rpx;
- overflow: hidden;
-}
-
-/* ==================
- 步骤条
- ==================== */
-
-.cu-steps {
- display: flex;
-}
-
-scroll-view.cu-steps {
- display: block;
- white-space: nowrap;
-}
-
-scroll-view.cu-steps .cu-item {
- display: inline-block;
-}
-
-.cu-steps .cu-item {
- flex: 1;
- text-align: center;
- position: relative;
- min-width: 100rpx;
-}
-
-.cu-steps .cu-item:not([class*="text-"]) {
- color: var(--grey);
-}
-
-.cu-steps .cu-item [class*="cuIcon-"],
-.cu-steps .cu-item .num {
- display: block;
- font-size: 40rpx;
- line-height: 80rpx;
-}
-
-.cu-steps .cu-item::before,
-.cu-steps .cu-item::after,
-.cu-steps.steps-arrow .cu-item::before,
-.cu-steps.steps-arrow .cu-item::after {
- content: "";
- display: block;
- position: absolute;
- height: 0px;
- width: calc(100% - 80rpx);
- border-bottom: 1px solid #ccc;
- left: calc(0px - (100% - 80rpx) / 2);
- top: 40rpx;
- z-index: 0;
-}
-
-.cu-steps.steps-arrow .cu-item::before,
-.cu-steps.steps-arrow .cu-item::after {
- content: "\e6a3";
- font-family: "cuIcon";
- height: 30rpx;
- border-bottom-width: 0px;
- line-height: 30rpx;
- top: 0;
- bottom: 0;
- margin: auto;
- color: #ccc;
-}
-
-.cu-steps.steps-bottom .cu-item::before,
-.cu-steps.steps-bottom .cu-item::after {
- bottom: 40rpx;
- top: initial;
-}
-
-.cu-steps .cu-item::after {
- border-bottom: 1px solid currentColor;
- width: 0px;
- transition: all 0.3s ease-in-out 0s;
-}
-
-.cu-steps .cu-item[class*="text-"]::after {
- width: calc(100% - 80rpx);
- color: currentColor;
-}
-
-.cu-steps .cu-item:first-child::before,
-.cu-steps .cu-item:first-child::after {
- display: none;
-}
-
-.cu-steps .cu-item .num {
- width: 40rpx;
- height: 40rpx;
- border-radius: 50%;
- line-height: 40rpx;
- margin: 20rpx auto;
- font-size: 24rpx;
- border: 1px solid currentColor;
- position: relative;
- overflow: hidden;
-}
-
-.cu-steps .cu-item[class*="text-"] .num {
- background-color: currentColor;
-}
-
-.cu-steps .cu-item .num::before,
-.cu-steps .cu-item .num::after {
- content: attr(data-index);
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- margin: auto;
- transition: all 0.3s ease-in-out 0s;
- transform: translateY(0rpx);
-}
-
-.cu-steps .cu-item[class*="text-"] .num::before {
- transform: translateY(-40rpx);
- color: var(--white);
-}
-
-.cu-steps .cu-item .num::after {
- transform: translateY(40rpx);
- color: var(--white);
- transition: all 0.3s ease-in-out 0s;
-}
-
-.cu-steps .cu-item[class*="text-"] .num::after {
- content: "\e645";
- font-family: "cuIcon";
- color: var(--white);
- transform: translateY(0rpx);
-}
-
-.cu-steps .cu-item[class*="text-"] .num.err::after {
- content: "\e646";
-}
-
-/* ==================
- 布局
- ==================== */
-
-/* -- flex弹性布局 -- */
-
-.flex {
- display: flex;
-}
-
-.basis-xs {
- flex-basis: 20%;
-}
-
-.basis-xxs {
- flex-basis: 30%;
-}
-
-.basis-sm {
- flex-basis: 40%;
-}
-
-.basis-df {
- flex-basis: 50%;
-}
-
-.basis-lg {
- flex-basis: 60%;
-}
-
-.basis-llg {
- flex-basis: 70%;
-}
-
-.basis-xl {
- flex-basis: 80%;
-}
-
-.flex-sub {
- flex: 1;
-}
-
-.flex-twice {
- flex: 2;
-}
-
-.flex-treble {
- flex: 3;
-}
-
-.flex-direction {
- flex-direction: column;
-}
-
-.flex-wrap {
- flex-wrap: wrap;
-}
-
-.align-start {
- align-items: flex-start;
-}
-
-.align-end {
- align-items: flex-end;
-}
-
-.align-center {
- align-items: center;
-}
-
-.align-stretch {
- align-items: stretch;
-}
-
-.self-start {
- align-self: flex-start;
-}
-
-.self-center {
- align-self: flex-center;
-}
-
-.self-end {
- align-self: flex-end;
-}
-
-.self-stretch {
- align-self: stretch;
-}
-
-.align-stretch {
- align-items: stretch;
-}
-
-.justify-start {
- justify-content: flex-start;
-}
-
-.justify-end {
- justify-content: flex-end;
-}
-
-.justify-center {
- justify-content: center;
-}
-
-.justify-between {
- justify-content: space-between;
-}
-
-.justify-around {
- justify-content: space-around;
-}
-
-/* grid布局 */
-
-.grid {
- display: flex;
- flex-wrap: wrap;
-}
-
-.grid.grid-square {
- overflow: hidden;
-}
-
-.grid.grid-square .cu-tag {
- position: absolute;
- right: 0;
- top: 0;
- border-bottom-left-radius: 6rpx;
- padding: 6rpx 12rpx;
- height: auto;
- background-color: rgba(0, 0, 0, 0.5);
-}
-
-.grid.grid-square>view>text[class*="cuIcon-"] {
- font-size: 52rpx;
- position: absolute;
- color: var(--grey);
- margin: auto;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-
-.grid.grid-square>view {
- margin-right: 20rpx;
- margin-bottom: 20rpx;
- border-radius: 6rpx;
- position: relative;
- overflow: hidden;
-}
-
-.grid.grid-square>view.bg-img image {
- width: 100%;
- height: 100%;
- position: absolute;
-}
-
-.grid.col-1.grid-square>view {
- padding-bottom: 100%;
- height: 0;
- margin-right: 0;
-}
-
-.grid.col-2.grid-square>view {
- padding-bottom: calc((100% - 20rpx)/2);
- height: 0;
- width: calc((100% - 20rpx)/2);
-}
-
-.grid.col-3.grid-square>view {
- padding-bottom: calc((100% - 40rpx)/3);
- height: 0;
- width: calc((100% - 40rpx)/3);
-}
-
-.grid.col-4.grid-square>view {
- padding-bottom: calc((100% - 60rpx)/4);
- height: 0;
- width: calc((100% - 60rpx)/4);
-}
-
-.grid.col-5.grid-square>view {
- padding-bottom: calc((100% - 80rpx)/5);
- height: 0;
- width: calc((100% - 80rpx)/5);
-}
-
-.grid.col-2.grid-square>view:nth-child(2n),
-.grid.col-3.grid-square>view:nth-child(3n),
-.grid.col-4.grid-square>view:nth-child(4n),
-.grid.col-5.grid-square>view:nth-child(5n){
- margin-right: 0;
-}
-
-.grid.col-1>view {
- width: 100%;
-}
-
-.grid.col-2>view {
- width: 50%;
-}
-
-.grid.col-3>view {
- width: 33.33%;
-}
-
-.grid.col-4>view {
- width: 25%;
-}
-
-.grid.col-5>view {
- width: 20%;
-}
-
-/* -- 内外边距 -- */
-
-.margin-0 {
- margin: 0;
-}
-
-.margin-xs {
- margin: 10rpx;
-}
-
-.margin-sm {
- margin: 20rpx;
-}
-
-.margin {
- margin: 30rpx;
-}
-
-.margin-lg {
- margin: 40rpx;
-}
-
-.margin-xl {
- margin: 50rpx;
-}
-
-.margin-top-xs {
- margin-top: 10rpx;
-}
-
-.margin-top-sm {
- margin-top: 20rpx;
-}
-
-.margin-top {
- margin-top: 30rpx;
-}
-
-.margin-top-lg {
- margin-top: 40rpx;
-}
-
-.margin-top-xl {
- margin-top: 50rpx;
-}
-
-.margin-right-xs {
- margin-right: 10rpx;
-}
-
-.margin-right-sm {
- margin-right: 20rpx;
-}
-
-.margin-right {
- margin-right: 30rpx;
-}
-
-.margin-right-lg {
- margin-right: 40rpx;
-}
-
-.margin-right-xl {
- margin-right: 50rpx;
-}
-
-.margin-bottom-xs {
- margin-bottom: 10rpx;
-}
-
-.margin-bottom-sm {
- margin-bottom: 20rpx;
-}
-
-.margin-bottom {
- margin-bottom: 30rpx;
-}
-
-.margin-bottom-lg {
- margin-bottom: 40rpx;
-}
-
-.margin-bottom-xl {
- margin-bottom: 50rpx;
-}
-
-.margin-left-xs {
- margin-left: 10rpx;
-}
-
-.margin-left-sm {
- margin-left: 20rpx;
-}
-
-.margin-left {
- margin-left: 30rpx;
-}
-
-.margin-left-lg {
- margin-left: 40rpx;
-}
-
-.margin-left-xl {
- margin-left: 50rpx;
-}
-
-.margin-lr-xs {
- margin-left: 10rpx;
- margin-right: 10rpx;
-}
-
-.margin-lr-sm {
- margin-left: 20rpx;
- margin-right: 20rpx;
-}
-
-.margin-lr {
- margin-left: 30rpx;
- margin-right: 30rpx;
-}
-
-.margin-lr-lg {
- margin-left: 40rpx;
- margin-right: 40rpx;
-}
-
-.margin-lr-xl {
- margin-left: 50rpx;
- margin-right: 50rpx;
-}
-
-.margin-tb-xs {
- margin-top: 10rpx;
- margin-bottom: 10rpx;
-}
-
-.margin-tb-sm {
- margin-top: 20rpx;
- margin-bottom: 20rpx;
-}
-
-.margin-tb {
- margin-top: 30rpx;
- margin-bottom: 30rpx;
-}
-
-.margin-tb-lg {
- margin-top: 40rpx;
- margin-bottom: 40rpx;
-}
-
-.margin-tb-xl {
- margin-top: 50rpx;
- margin-bottom: 50rpx;
-}
-
-.padding-0 {
- padding: 0;
-}
-
-.padding-xs {
- padding: 10rpx;
-}
-
-.padding-sm {
- padding: 20rpx;
-}
-
-.padding {
- padding: 30rpx;
-}
-
-.padding-lg {
- padding: 40rpx;
-}
-
-.padding-xl {
- padding: 50rpx;
-}
-
-.padding-top-xs {
- padding-top: 10rpx;
-}
-
-.padding-top-sm {
- padding-top: 20rpx;
-}
-
-.padding-top {
- padding-top: 30rpx;
-}
-
-.padding-top-lg {
- padding-top: 40rpx;
-}
-
-.padding-top-xl {
- padding-top: 50rpx;
-}
-
-.padding-right-xs {
- padding-right: 10rpx;
-}
-
-.padding-right-sm {
- padding-right: 20rpx;
-}
-
-.padding-right {
- padding-right: 30rpx;
-}
-
-.padding-right-lg {
- padding-right: 40rpx;
-}
-
-.padding-right-xl {
- padding-right: 50rpx;
-}
-
-.padding-bottom-xs {
- padding-bottom: 10rpx;
-}
-
-.padding-bottom-sm {
- padding-bottom: 20rpx;
-}
-
-.padding-bottom {
- padding-bottom: 30rpx;
-}
-
-.padding-bottom-lg {
- padding-bottom: 40rpx;
-}
-
-.padding-bottom-xl {
- padding-bottom: 50rpx;
-}
-
-.padding-left-xs {
- padding-left: 10rpx;
-}
-
-.padding-left-sm {
- padding-left: 20rpx;
-}
-
-.padding-left {
- padding-left: 30rpx;
-}
-
-.padding-left-lg {
- padding-left: 40rpx;
-}
-
-.padding-left-xl {
- padding-left: 50rpx;
-}
-
-.padding-lr-xs {
- padding-left: 10rpx;
- padding-right: 10rpx;
-}
-
-.padding-lr-sm {
- padding-left: 20rpx;
- padding-right: 20rpx;
-}
-
-.padding-lr {
- padding-left: 30rpx;
- padding-right: 30rpx;
-}
-
-.padding-lr-lg {
- padding-left: 40rpx;
- padding-right: 40rpx;
-}
-
-.padding-lr-xl {
- padding-left: 50rpx;
- padding-right: 50rpx;
-}
-
-.padding-tb-xs {
- padding-top: 10rpx;
- padding-bottom: 10rpx;
-}
-
-.padding-tb-sm {
- padding-top: 20rpx;
- padding-bottom: 20rpx;
-}
-
-.padding-tb {
- padding-top: 30rpx;
- padding-bottom: 30rpx;
-}
-
-.padding-tb-lg {
- padding-top: 40rpx;
- padding-bottom: 40rpx;
-}
-
-.padding-tb-xl {
- padding-top: 50rpx;
- padding-bottom: 50rpx;
-}
-
-/* -- 浮动 -- */
-
-.cf::after,
-.cf::before {
- content: " ";
- display: table;
-}
-
-.cf::after {
- clear: both;
-}
-
-.fl {
- float: left;
-}
-
-.fr {
- float: right;
-}
-
-/* ==================
- 背景
- ==================== */
-
-.line-red::after,
-.lines-red::after {
- border-color: var(--red);
-}
-
-.line-orange::after,
-.lines-orange::after {
- border-color: var(--orange);
-}
-
-.line-yellow::after,
-.lines-yellow::after {
- border-color: var(--yellow);
-}
-
-.line-olive::after,
-.lines-olive::after {
- border-color: var(--olive);
-}
-
-.line-green::after,
-.lines-green::after {
- border-color: var(--green);
-}
-
-.line-cyan::after,
-.lines-cyan::after {
- border-color: var(--cyan);
-}
-
-.line-blue::after,
-.lines-blue::after {
- border-color: var(--blue);
-}
-
-.line-purple::after,
-.lines-purple::after {
- border-color: var(--purple);
-}
-
-.line-mauve::after,
-.lines-mauve::after {
- border-color: var(--mauve);
-}
-
-.line-pink::after,
-.lines-pink::after {
- border-color: var(--pink);
-}
-
-.line-brown::after,
-.lines-brown::after {
- border-color: var(--brown);
-}
-
-.line-grey::after,
-.lines-grey::after {
- border-color: var(--grey);
-}
-
-.line-gray::after,
-.lines-gray::after {
- border-color: var(--gray);
-}
-
-.line-black::after,
-.lines-black::after {
- border-color: var(--black);
-}
-
-.line-white::after,
-.lines-white::after {
- border-color: var(--white);
-}
-
-.bg-red {
- background-color: var(--red);
- color: var(--white);
-}
-
-.bg-orange {
- background-color: var(--orange);
- color: var(--white);
-}
-
-.bg-yellow {
- background-color: var(--yellow);
- color: var(--black);
-}
-
-.bg-olive {
- background-color: var(--olive);
- color: var(--white);
-}
-
-.bg-green {
- background-color: var(--green);
- color: var(--white);
-}
-
-.bg-cyan {
- background-color: var(--cyan);
- color: var(--white);
-}
-
-.bg-blue {
- background-color: var(--blue);
- color: var(--white);
-}
-
-.bg-purple {
- background-color: var(--purple);
- color: var(--white);
-}
-
-.bg-mauve {
- background-color: var(--mauve);
- color: var(--white);
-}
-
-.bg-pink {
- background-color: var(--pink);
- color: var(--white);
-}
-
-.bg-brown {
- background-color: var(--brown);
- color: var(--white);
-}
-
-.bg-grey {
- background-color: var(--grey);
- color: var(--white);
-}
-
-.bg-gray {
- background-color: #f0f0f0;
- color: var(--black);
-}
-
-.bg-black {
- background-color: var(--black);
- color: var(--white);
-}
-
-.bg-white {
- background-color: var(--white);
- color: var(--darkGray);
-}
-
-.bg-wegreen {
- background-color: var(--wegreen);
- color: var(--white);
-}
-
-.bg-netfee {
- background-color: #ffcb63;
- color: var(--white);
-}
-
-.bg-shadeTop {
- background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01));
- color: var(--white);
-}
-
-.bg-shadeBottom {
- background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1));
- color: var(--white);
-}
-
-.bg-red.light {
- color: var(--red);
- background-color: var(--redLight);
-}
-
-.bg-orange.light {
- color: var(--orange);
- background-color: var(--orangeLight);
-}
-
-.bg-yellow.light {
- color: var(--yellow);
- background-color: var(--yellowLight);
-}
-
-.bg-olive.light {
- color: var(--olive);
- background-color: var(--oliveLight);
-}
-
-.bg-green.light {
- color: var(--green);
- background-color: var(--greenLight);
-}
-
-.bg-cyan.light {
- color: var(--cyan);
- background-color: var(--cyanLight);
-}
-
-.bg-blue.light {
- color: var(--blue);
- background-color: var(--blueLight);
-}
-
-.bg-purple.light {
- color: var(--purple);
- background-color: var(--purpleLight);
-}
-
-.bg-mauve.light {
- color: var(--mauve);
- background-color: var(--mauveLight);
-}
-
-.bg-pink.light {
- color: var(--pink);
- background-color: var(--pinkLight);
-}
-
-.bg-brown.light {
- color: var(--brown);
- background-color: var(--brownLight);
-}
-
-.bg-grey.light {
- color: var(--grey);
- background-color: var(--greyLight);
-}
-
-.bg-gradual-red {
- background-image: var(--gradualRed);
- color: var(--white);
-}
-
-.bg-gradual-orange {
- background-image: var(--gradualOrange);
- color: var(--white);
-}
-
-.bg-gradual-green {
- background-image: var(--gradualGreen);
- color: var(--white);
-}
-
-.bg-gradual-purple {
- background-image: var(--gradualPurple);
- color: var(--white);
-}
-
-.bg-gradual-pink {
- background-image: var(--gradualPink);
- color: var(--white);
-}
-
-.bg-gradual-blue {
- background-image: var(--gradualBlue);
- color: var(--white);
-}
-
-.shadow[class*="-red"] {
- box-shadow: var(--ShadowSize) var(--redShadow);
-}
-
-.shadow[class*="-orange"] {
- box-shadow: var(--ShadowSize) var(--orangeShadow);
-}
-
-.shadow[class*="-yellow"] {
- box-shadow: var(--ShadowSize) var(--yellowShadow);
-}
-
-.shadow[class*="-olive"] {
- box-shadow: var(--ShadowSize) var(--oliveShadow);
-}
-
-.shadow[class*="-green"] {
- box-shadow: var(--ShadowSize) var(--greenShadow);
-}
-
-.shadow[class*="-cyan"] {
- box-shadow: var(--ShadowSize) var(--cyanShadow);
-}
-
-.shadow[class*="-blue"] {
- box-shadow: var(--ShadowSize) var(--blueShadow);
-}
-
-.shadow[class*="-purple"] {
- box-shadow: var(--ShadowSize) var(--purpleShadow);
-}
-
-.shadow[class*="-mauve"] {
- box-shadow: var(--ShadowSize) var(--mauveShadow);
-}
-
-.shadow[class*="-pink"] {
- box-shadow: var(--ShadowSize) var(--pinkShadow);
-}
-
-.shadow[class*="-brown"] {
- box-shadow: var(--ShadowSize) var(--brownShadow);
-}
-
-.shadow[class*="-grey"] {
- box-shadow: var(--ShadowSize) var(--greyShadow);
-}
-
-.shadow[class*="-gray"] {
- box-shadow: var(--ShadowSize) var(--grayShadow);
-}
-
-.shadow[class*="-black"] {
- box-shadow: var(--ShadowSize) var(--blackShadow);
-}
-
-.shadow[class*="-white"] {
- box-shadow: var(--ShadowSize) var(--blackShadow);
-}
-
-.text-shadow[class*="-red"] {
- text-shadow: var(--ShadowSize) var(--redShadow);
-}
-
-.text-shadow[class*="-orange"] {
- text-shadow: var(--ShadowSize) var(--orangeShadow);
-}
-
-.text-shadow[class*="-yellow"] {
- text-shadow: var(--ShadowSize) var(--yellowShadow);
-}
-
-.text-shadow[class*="-olive"] {
- text-shadow: var(--ShadowSize) var(--oliveShadow);
-}
-
-.text-shadow[class*="-green"] {
- text-shadow: var(--ShadowSize) var(--greenShadow);
-}
-
-.text-shadow[class*="-cyan"] {
- text-shadow: var(--ShadowSize) var(--cyanShadow);
-}
-
-.text-shadow[class*="-blue"] {
- text-shadow: var(--ShadowSize) var(--blueShadow);
-}
-
-.text-shadow[class*="-purple"] {
- text-shadow: var(--ShadowSize) var(--purpleShadow);
-}
-
-.text-shadow[class*="-mauve"] {
- text-shadow: var(--ShadowSize) var(--mauveShadow);
-}
-
-.text-shadow[class*="-pink"] {
- text-shadow: var(--ShadowSize) var(--pinkShadow);
-}
-
-.text-shadow[class*="-brown"] {
- text-shadow: var(--ShadowSize) var(--brownShadow);
-}
-
-.text-shadow[class*="-grey"] {
- text-shadow: var(--ShadowSize) var(--greyShadow);
-}
-
-.text-shadow[class*="-gray"] {
- text-shadow: var(--ShadowSize) var(--grayShadow);
-}
-
-.text-shadow[class*="-black"] {
- text-shadow: var(--ShadowSize) var(--blackShadow);
-}
-
-.bg-img {
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-.bg-mask {
- background-color: var(--black);
- position: relative;
-}
-
-.bg-mask::after {
- content: "";
- border-radius: inherit;
- width: 100%;
- height: 100%;
- display: block;
- background-color: rgba(0, 0, 0, 0.4);
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
-}
-
-.bg-mask view,
-.bg-mask cover-view {
- z-index: 5;
- position: relative;
-}
-
-.bg-video {
- position: relative;
-}
-
-.bg-video video {
- display: block;
- height: 100%;
- width: 100%;
- -o-object-fit: cover;
- object-fit: cover;
- position: absolute;
- top: 0;
- z-index: 0;
- pointer-events: none;
-}
-
-/* ==================
- 文本
- ==================== */
-
-.text-xs {
- font-size: 20rpx;
-}
-
-.text-sm {
- font-size: 24rpx;
-}
-
-.text-df {
- font-size: 28rpx;
-}
-
-.text-lg {
- font-size: 32rpx;
-}
-
-.text-xl {
- font-size: 36rpx;
-}
-
-.text-xxl {
- font-size: 44rpx;
-}
-
-.text-sl {
- font-size: 80rpx;
-}
-
-.text-xsl {
- font-size: 120rpx;
-}
-
-.text-Abc {
- text-transform: Capitalize;
-}
-
-.text-ABC {
- text-transform: Uppercase;
-}
-
-.text-abc {
- text-transform: Lowercase;
-}
-
-.text-price::before {
- content: "¥";
- font-size: 80%;
- margin-right: 4rpx;
-}
-
-.text-cut {
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.text-bold {
- font-weight: bold;
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-content {
- line-height: 1.6;
-}
-
-.text-left {
- text-align: left;
-}
-
-.text-right {
- text-align: right;
-}
-
-.text-red,
-.line-red,
-.lines-red {
- color: var(--red);
-}
-
-.text-orange,
-.line-orange,
-.lines-orange {
- color: var(--orange);
-}
-
-.text-wegreen,
-.line-wegreen,
-.lines-wegreen {
- color: var(--wegreen);
-}
-
-.text-yellow,
-.line-yellow,
-.lines-yellow {
- color: var(--yellow);
-}
-
-.text-olive,
-.line-olive,
-.lines-olive {
- color: var(--olive);
-}
-
-.text-green,
-.line-green,
-.lines-green {
- color: var(--green);
-}
-
-.text-cyan,
-.line-cyan,
-.lines-cyan {
- color: var(--cyan);
-}
-
-.text-blue,
-.line-blue,
-.lines-blue {
- color: var(--blue);
-}
-
-.text-purple,
-.line-purple,
-.lines-purple {
- color: var(--purple);
-}
-
-.text-mauve,
-.line-mauve,
-.lines-mauve {
- color: var(--mauve);
-}
-
-.text-pink,
-.line-pink,
-.lines-pink {
- color: var(--pink);
-}
-
-.text-brown,
-.line-brown,
-.lines-brown {
- color: var(--brown);
-}
-
-.text-grey,
-.line-grey,
-.lines-grey {
- color: var(--grey);
-}
-
-.text-gray,
-.line-gray,
-.lines-gray {
- color: var(--gray);
-}
-
-.text-black,
-.line-black,
-.lines-black {
- color: var(--black);
-}
-
-.text-white,
-.line-white,
-.lines-white {
- color: var(--white);
-}
diff --git a/config.js b/config.js
new file mode 100644
index 0000000..909b9ff
--- /dev/null
+++ b/config.js
@@ -0,0 +1,40 @@
+/**
+ * 小程序配置文件
+ */
+
+// 此处主机域名是腾讯云解决方案分配的域名
+// 小程序后台服务解决方案:https://www.qcloud.com/solution/la
+
+var host = "14592619.qcloud.la"
+
+var config = {
+
+ // 下面的地址配合云端 Server 工作
+ host,
+
+ // 登录地址,用于建立会话
+ loginUrl: `https://${host}/login`,
+
+ // 测试的请求地址,用于测试会话
+ requestUrl: `https://${host}/testRequest`,
+
+ // 用code换取openId
+ openIdUrl: `https://${host}/openid`,
+
+ // 测试的信道服务接口
+ tunnelUrl: `https://${host}/tunnel`,
+
+ // 生成支付订单的接口
+ paymentUrl: `https://${host}/payment`,
+
+ // 发送模板消息接口
+ templateMessageUrl: `https://${host}/templateMessage`,
+
+ // 上传文件接口
+ uploadFileUrl: `https://${host}/upload`,
+
+ // 下载示例图片接口
+ downloadExampleUrl: `https://${host}/static/weapp.jpg`
+};
+
+module.exports = config
\ No newline at end of file
diff --git a/images/base64.js b/images/base64.js
new file mode 100644
index 0000000..97e51d0
--- /dev/null
+++ b/images/base64.js
@@ -0,0 +1,4 @@
+module.exports = {
+ icon20: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAMAAABgZ9sFAAAAVFBMVEXx8fHMzMzr6+vn5+fv7+/t7e3d3d2+vr7W1tbHx8eysrKdnZ3p6enk5OTR0dG7u7u3t7ejo6PY2Njh4eHf39/T09PExMSvr6+goKCqqqqnp6e4uLgcLY/OAAAAnklEQVRIx+3RSRLDIAxE0QYhAbGZPNu5/z0zrXHiqiz5W72FqhqtVuuXAl3iOV7iPV/iSsAqZa9BS7YOmMXnNNX4TWGxRMn3R6SxRNgy0bzXOW8EBO8SAClsPdB3psqlvG+Lw7ONXg/pTld52BjgSSkA3PV2OOemjIDcZQWgVvONw60q7sIpR38EnHPSMDQ4MjDjLPozhAkGrVbr/z0ANjAF4AcbXmYAAAAASUVORK5CYII=",
+ icon60: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAAeFBMVEUAwAD///+U5ZTc9twOww7G8MYwzDCH4YcfyR9x23Hw+/DY9dhm2WZG0kbT9NP0/PTL8sux7LFe115T1VM+zz7i+OIXxhes6qxr2mvA8MCe6J6M4oz6/frr+us5zjn2/fa67rqB4IF13XWn6ad83nxa1loqyirn+eccHxx4AAAC/klEQVRo3u2W2ZKiQBBF8wpCNSCyLwri7v//4bRIFVXoTBBB+DAReV5sG6lTXDITiGEYhmEYhmEYhmEYhmEY5v9i5fsZGRx9PyGDne8f6K9cfd+mKXe1yNG/0CcqYE86AkBMBh66f20deBc7wA/1WFiTwvSEpBMA2JJOBsSLxe/4QEEaJRrASP8EVF8Q74GbmevKg0saa0B8QbwBdjRyADYxIhqxAZ++IKYtciPXLQVG+imw+oo4Bu56rjEJ4GYsvPmKOAB+xlz7L5aevqUXuePWVhvWJ4eWiwUQ67mK51qPj4dFDMlRLBZTqF3SDvmr4BwtkECu5gHWPkmDfQh02WLxXuvbvC8ku8F57GsI5e0CmUwLz1kq3kD17R1In5816rGvQ5VMk5FEtIiWislTffuDpl/k/PzscdQsv8r9qWq4LRWX6tQYtTxvI3XyrwdyQxChXioOngH3dLgOFjk0all56XRi/wDFQrGQU3Os5t0wJu1GNtNKHdPqYaGYQuRDfbfDf26AGLYSyGS3ZAK4S8XuoAlxGSdYMKwqZKM9XJMtyqXi7HX/CiAZS6d8bSVUz5J36mEMFDTlAFQzxOT1dzLRljjB6+++ejFqka+mXIe6F59mw22OuOw1F4T6lg/9VjL1rLDoI9Xzl1MSYDNHnPQnt3D1EE7PrXjye/3pVpr1Z45hMUdcACc5NVQI0bOdS1WA0wuz73e7/5TNqBPhQXPEFGJNV2zNqWI7QKBd2Gn6AiBko02zuAOXeWIXjV0jNqdKegaE/kJQ6Bfs4aju04lMLkA2T5wBSYPKDGF3RKhFYEa6A1L1LG2yacmsaZ6YPOSAMKNsO+N5dNTfkc5Aqe26uxHpx7ZirvgCwJpWq/lmX1hA7LyabQ34tt5RiJKXSwQ+0KU0V5xg+hZrd4Bn1n4EID+WkQdgLfRNtvil9SPfwy+WQ7PFBWQz6dGWZBLkeJFXZGCfLUjCgGgqXo5TuSu3cugdcTv/HjqnBTEMwzAMwzAMwzAMwzAMw/zf/AFbXiOA6frlMAAAAABJRU5ErkJggg=="
+};
\ No newline at end of file
diff --git a/images/bjkb.png b/images/bjkb.png
new file mode 100644
index 0000000..9c42e23
Binary files /dev/null and b/images/bjkb.png differ
diff --git a/images/call.png b/images/call.png
new file mode 100644
index 0000000..d259c52
Binary files /dev/null and b/images/call.png differ
diff --git a/images/call_HL.png b/images/call_HL.png
new file mode 100644
index 0000000..75705a3
Binary files /dev/null and b/images/call_HL.png differ
diff --git a/images/cjcx.png b/images/cjcx.png
new file mode 100644
index 0000000..d638b63
Binary files /dev/null and b/images/cjcx.png differ
diff --git a/images/dfcx.png b/images/dfcx.png
new file mode 100644
index 0000000..f0cc2bd
Binary files /dev/null and b/images/dfcx.png differ
diff --git a/images/findCET.png b/images/findCET.png
new file mode 100644
index 0000000..e9229bc
Binary files /dev/null and b/images/findCET.png differ
diff --git a/images/grkb.png b/images/grkb.png
new file mode 100644
index 0000000..b34028d
Binary files /dev/null and b/images/grkb.png differ
diff --git a/images/gyhz.png b/images/gyhz.png
new file mode 100644
index 0000000..a0aa63c
Binary files /dev/null and b/images/gyhz.png differ
diff --git a/images/isbn.png b/images/isbn.png
new file mode 100644
index 0000000..acec3e9
Binary files /dev/null and b/images/isbn.png differ
diff --git a/images/jskb.png b/images/jskb.png
new file mode 100644
index 0000000..80740cf
Binary files /dev/null and b/images/jskb.png differ
diff --git a/images/jy.png b/images/jy.png
new file mode 100644
index 0000000..70f6224
Binary files /dev/null and b/images/jy.png differ
diff --git a/images/jyxx.png b/images/jyxx.png
new file mode 100644
index 0000000..3c243ea
Binary files /dev/null and b/images/jyxx.png differ
diff --git a/images/kefu.png b/images/kefu.png
new file mode 100644
index 0000000..db95f73
Binary files /dev/null and b/images/kefu.png differ
diff --git a/images/search-sign.png b/images/search-sign.png
new file mode 100644
index 0000000..d62c785
Binary files /dev/null and b/images/search-sign.png differ
diff --git a/images/service.png b/images/service.png
new file mode 100644
index 0000000..ee7ead6
Binary files /dev/null and b/images/service.png differ
diff --git a/images/share_green.png b/images/share_green.png
new file mode 100644
index 0000000..936bf53
Binary files /dev/null and b/images/share_green.png differ
diff --git a/images/smcs.png b/images/smcs.png
new file mode 100644
index 0000000..c67f37c
Binary files /dev/null and b/images/smcs.png differ
diff --git a/images/tel.png b/images/tel.png
new file mode 100644
index 0000000..0171ced
Binary files /dev/null and b/images/tel.png differ
diff --git a/images/wfcx.png b/images/wfcx.png
new file mode 100644
index 0000000..ef34145
Binary files /dev/null and b/images/wfcx.png differ
diff --git a/images/xl.png b/images/xl.png
new file mode 100644
index 0000000..d720a0c
Binary files /dev/null and b/images/xl.png differ
diff --git a/images/xycx.png b/images/xycx.png
new file mode 100644
index 0000000..7a2ac2a
Binary files /dev/null and b/images/xycx.png differ
diff --git a/images/xydh.png b/images/xydh.png
new file mode 100644
index 0000000..3a83e30
Binary files /dev/null and b/images/xydh.png differ
diff --git a/package.json b/package.json
deleted file mode 100644
index 7a0c0c9..0000000
--- a/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "name": "shellbox",
- "version": "3.4.7",
- "description": "更新社科馆音像室放映地点",
- "author": "Airmole"
- }
\ No newline at end of file
diff --git a/pages/Transport/Transport.js b/pages/Transport/Transport.js
new file mode 100644
index 0000000..8b5c0f3
--- /dev/null
+++ b/pages/Transport/Transport.js
@@ -0,0 +1,85 @@
+var sliderWidth = 96; // 需要设置slider的宽度,用于计算中间位置
+
+Page({
+ data: {
+ tabs: ["北京", "天津", "宝坻"],
+ activeIndex: 1,
+ sliderOffset: 0,
+ sliderLeft: 0,
+ isLoading: true,
+ },
+ onLoad: function(r) {
+ var that = this;
+ wx.getSystemInfo({
+ success: function(res) {
+ that.setData({
+ sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
+ sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex
+ });
+ }
+ });
+ if (r.activeIndex) {
+ that.setData({
+ sliderOffset: r.activeIndex * that.data.sliderOffset,
+ activeIndex: r.activeIndex,
+ })
+
+ }
+ },
+ onReady: function() {
+ var that = this;
+ setTimeout(function() {
+ that.setData({
+ isLoading: false
+ });
+ }, 400);
+ },
+ tabClick: function(e) {
+ this.setData({
+ sliderOffset: e.currentTarget.offsetLeft,
+ activeIndex: e.currentTarget.id
+ });
+ },
+ goJJXCStation: function() {
+ wx.getLocation({
+ type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
+ success(res) {
+ wx.openLocation({
+ latitude: 39.548662,
+ longitude: 117.363274,
+ scale: 17,
+ name: '京津新城公交站',
+ address: '京津新城北京国贸商务班车'
+ })
+ }
+ })
+ },
+ goBJGMStation: function() {
+ wx.getLocation({
+ type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
+ success(res) {
+ wx.openLocation({
+ latitude: 39.905531,
+ longitude: 116.461934,
+ scale: 17,
+ name: '北京国贸乘车点',
+ address: '北京国贸桥南艾维克酒店西门三环辅路'
+ })
+ }
+ })
+ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function(res) {
+ var that = this;
+ if (res.from === 'button') {
+ // 来自页面内转发按钮
+ console.log(res.target.id)
+ }
+ return {
+ title: '贝壳田园到' + that.data.tabs[that.data.activeIndex] + '出行方案',
+ path: 'pages/Transport/Transport?activeIndex=' + that.data.activeIndex,
+ }
+ }
+});
\ No newline at end of file
diff --git a/pages/Transport/Transport.json b/pages/Transport/Transport.json
new file mode 100644
index 0000000..c5752a5
--- /dev/null
+++ b/pages/Transport/Transport.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "校园出行 - 贝壳小盒子",
+ "usingComponents": {
+ "wux-steps": "../common/steps/index",
+ "wux-step": "../common/step/index"
+ }
+}
\ No newline at end of file
diff --git a/pages/Transport/Transport.wxml b/pages/Transport/Transport.wxml
new file mode 100644
index 0000000..92eb7f4
--- /dev/null
+++ b/pages/Transport/Transport.wxml
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+
+ 京津新城 ↔ 北京国贸
+
+
+ 班车往返于天津市京津新城公交站与北京国贸桥南艾维克酒店西门三环辅路,每日于京津新城与北京两地各发车2车次,每周五有加车。
+ 新的运营车辆车牌号为:京B15506 ,白色大巴车。车辆风挡玻璃内有京津新城标识牌,请乘客注意。
+ 提示:资料来源于网络搜集整理,仅供参考。节假日及特殊情况变动以“京津新城北京国贸商务班车”公众号通知为准。班车具体情况咨询站点服务人员.
+
+
+
+
+
+ 京津新城
+
+
+ 发车时间
+ 8:00,17:30
+
+
+ 周五加班车
+ 10:30,13:00
+
+
+ 票价
+ ¥ 36元(支持微信/支付宝)
+
+
+ 购票、乘车地点
+ 📍京津新城公交站
+
+
+
+
+
+
+
+
+
+ 北京国贸
+
+
+ 发车时间
+ 7:30,16:00
+
+
+ 周五加班车
+ 10:30,14:00
+
+
+ 票价
+ ¥ 36元((支持微信/支付宝))
+
+
+ 乘车地点
+ 📍北京国贸桥南艾维克酒店西门三环辅路(到站后买票)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 温馨提示
+
+
+ 乘车地点:学院西门
+ 票价:全程¥15元(按距离5/10/15元,只收现金)
+ 京津新城至白庙站: 6:00~18:00,每30分钟一班
+ 白庙站至京津新城: 7:30~19:30,每30分钟一班
+
+
+
+ 提示:资料来源于网络搜集整理,仅供参考
+
+
+
+
+
+
+ 京津新城 ←_→ 天津(公交160路)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 温馨提示
+
+
+ 运行时间
+ 6:30 ~ 17:30
+
+
+ 票价
+ ¥ 2 ~ 6元(现金)
+
+
+ 提示:资料来源于网络搜集整理,仅供参考
+
+
+
+
+
+
+ 学院 ←_→ 宝坻(公交宝13路)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/Transport/Transport.wxss b/pages/Transport/Transport.wxss
new file mode 100644
index 0000000..f8f8044
--- /dev/null
+++ b/pages/Transport/Transport.wxss
@@ -0,0 +1,88 @@
+@import "../common/weui.wxss";
+
+Page {
+ background-color: #7acfa6;
+}
+
+.ads {
+ padding: 0rpx 15rpx 15rpx 15rpx;
+}
+
+page, .page, .page__bd {
+ height: 100%;
+}
+
+image {
+ margin: 4px 0;
+}
+
+.page__bd {
+ padding-bottom: 0;
+}
+
+.weui-tab__content {
+ /* padding-top: 30px; */
+ text-align: center;
+}
+
+.history-table-wrap {
+ position: absolute;
+ width: 668rpx;
+ /* height: 578rpx; */
+ left: 50%;
+ margin-left: -334rpx;
+ top: 70rpx;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+.shareIcon {
+ width: 26px;
+ height: 26px;
+ vertical-align: middle;
+}
+
+.setCenter {
+ text-align: center;
+ padding-top: 30px;
+}
+
+/* preview代码 */
+
+.weui-form-preview {
+ margin-bottom: 25px;
+}
+
+.login-btn {
+ font-size: 13pt;
+ line-height: 85rpx;
+ height: 85rpx;
+ background: #04c065;
+ color: #fff;
+ text-align: center;
+ border-radius: 25px;
+ box-shadow: 5rpx 5rpx 15rpx #ccc;
+ margin: 0 30rpx 30rpx;
+}
+
+.ykt-detail-wraper {
+ display: flex;
+ flex-direction: column;
+ margin: 0 30rpx 30rpx;
+ background: rgba(255, 255, 255, 0.3);
+ border-radius: 15px;
+ box-shadow: 5rpx 5rpx 15rpx #ccc;
+}
+
+.wraper {
+ background: rgba(255, 255, 255, 0.3);
+ margin: 0 30rpx 30rpx;
+ border-radius: 15px;
+ box-shadow: 5rpx 5rpx 15rpx #ccc;
+ text-align: left;
+}
+
+.warmtips {
+ text-align: center;
+ color: #000;
+}
diff --git a/pages/bookSearch/bookInfo/bookDetail.js b/pages/bookSearch/bookInfo/bookDetail.js
new file mode 100644
index 0000000..3d1eb26
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookDetail.js
@@ -0,0 +1,74 @@
+// pages/bookSearch/bookInfo/bookDetail.js
+var app = getApp();
+Page({
+ data: {
+ marc_no: "",
+ ISBN: "",
+ jsonStr: "",
+ doubanStr: '',
+ },
+ onLoad: function(options) {
+ console.log(options);
+ wx.showToast({
+ title: "loading",
+ icon: "loading",
+ duration: 20000
+ })
+ wx.setNavigationBarTitle({
+ title: options.title
+ })
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/book/marcno2info.php?marc_no=' + options.marc_no,
+ success: function(res) {
+ that.setData({
+ jsonStr: res.data,
+ })
+ console.log(res.data);
+ if (res.data[0][5] !== "") {
+ wx.request({
+ url: app.globalData.doubanApi + '/book/isbn/' + res.data[0][5],
+ method: 'GET',
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ success: function(res) {
+ that.setData({
+ doubanStr: res.data,
+ })
+ // console.log(res.statusCode)
+ if (res.statusCode == 404) {
+ that.setData({
+ doubanStr: 'null',
+ })
+ }
+ }
+ })
+ } else {
+ that.setData({
+ doubanStr: 'null',
+ })
+ }
+ wx.hideToast();
+ }
+ });
+ },
+ goLibrary: function(ep) {
+ console.log(ep.currentTarget.dataset.place);
+ var placeArr = ["理工馆", "社科馆"];
+ var markerIdArr = [5, 4];
+ var result = placeArr.indexOf(ep.currentTarget.dataset.place.substr(0, 3));
+ console.log(result);
+ wx.navigateTo({
+ url: '/pages/schoolNav/schoolNav?markerId=' + markerIdArr[result],
+ })
+ },
+ onShareAppMessage: function(res) {
+ console.log(this.options.marc_no)
+ return {
+ title: '我在北科天院图书馆找到本《' + this.data.doubanStr.title + '》,你也来看看吧~',
+ path: 'pages/bookSearch/bookInfo/bookDetail?marc_no=' + this.options.marc_no,
+ imageUrl: this.data.doubanStr.images.large
+ }
+ },
+});
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookDetail.json b/pages/bookSearch/bookInfo/bookDetail.json
new file mode 100644
index 0000000..8a0d326
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookDetail.json
@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "图书 - 贝壳小盒子"
+}
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookDetail.wxml b/pages/bookSearch/bookInfo/bookDetail.wxml
new file mode 100644
index 0000000..38831b6
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookDetail.wxml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+ {{doubanStr.title}}
+ 作者:{{doubanStr.author[0]}}
+ 出版社:{{doubanStr.publisher}}
+ 出版日期:{{doubanStr.pubdate}}
+
+
+ {{doubanStr.rating.average}}
+ {{doubanStr.rating.numRaters}}参与
+
+
+
+
+
+
+
+
+ 只有馆藏信息哦
+
+
+
+
+
+ 图书馆OPAC系统无响应,请耐心等待
+ 您可以先看看该书的简介信息
+
+
+
+
+
+ 本校图书馆暂无馆藏
+
+
+
+ 图书馆馆藏
+
+
+ 索书号:{{item[0]}}
+ 条码号:{{item[1]}}
+ 图书状态:
+ {{item[4]}}
+ {{item[4]}}
+
+
+
+
+
+ 📍{{jsonStr[0][3]}}
+
+
+
+
+
+ {{doubanStr.summary}}
+
+
+
+ {{doubanStr.author_intro}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookDetail.wxss b/pages/bookSearch/bookInfo/bookDetail.wxss
new file mode 100644
index 0000000..c06ac8c
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookDetail.wxss
@@ -0,0 +1,168 @@
+/* pages/bookSearch/bookInfo/bookDetail.wxss */
+@import "../../common/weui.wxss";
+
+page {
+ background-color: #eee;
+ font-size: 16px;
+ font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif;
+}
+
+.page__hd {
+ padding: 40px;
+}
+
+.page__bd {
+ padding-bottom: 40px;
+}
+
+.page__bd_spacing {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.page__ft {
+ padding-bottom: 10px;
+ text-align: center;
+}
+
+.page__title {
+ text-align: left;
+ font-size: 20px;
+ font-weight: 400;
+}
+
+.page__desc {
+ margin-top: 5px;
+ color: #888;
+ text-align: left;
+ font-size: 14px;
+}
+
+.raduis {
+ border-radius: 25px;
+}
+
+.ads {
+ padding: 30rpx 15rpx 30rpx 15rpx;
+}
+
+.suoshuNO {
+ font-family: 'Times New Roman', Times, serif;
+}
+
+.sharerange {
+ position: absolute;
+ top: 190rpx;
+ right: 20rpx;
+ width: 200rpx;
+ text-align: center;
+ box-shadow: 2px 2px 10px #ccc;
+}
+
+.cover-container {
+ background: #7acfa6;
+ text-align: center;
+ padding: 50rpx 0;
+}
+
+.cover-container image {
+ display: inline-block;
+ width: 300rpx;
+ height: 400rpx;
+}
+
+.book-meta {
+ position: relative;
+ padding: 20rpx;
+ overflow: hidden;
+}
+
+.book-meta .range {
+ position: absolute;
+ top: 10rpx;
+ right: 20rpx;
+ width: 180rpx;
+ background: #fff;
+ padding: 20rpx 10rpx;
+ text-align: center;
+ box-shadow: 2px 2px 10px #ccc;
+}
+
+.book-meta .meta-info {
+ margin-right: 200rpx;
+}
+
+.meta-info text {
+ display: block;
+}
+
+.book-title {
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.other-meta {
+ padding-top: 10rpx;
+ color: #888;
+ font-size: 30rpx;
+}
+
+.range text {
+ display: block;
+}
+
+.range .score {
+ font-size: 50rpx;
+ font-weight: bold;
+}
+
+.range .starts {
+ font-size: 40rpx;
+}
+
+.range .viewers {
+ font-size: 30rpx;
+}
+
+.book-intro {
+ margin-bottom: 40rpx;
+ padding: 20rpx;
+ background: #fafafa;
+}
+
+.book-intro .intro-header {
+ color: #888;
+ font-weight: bold;
+ padding: 40rpx 0;
+}
+
+.book-intro .intro-content {
+ font-size: 35rpx;
+ line-height: 2;
+ text-align: justify;
+}
+
+.shareIcon {
+ width: 26px;
+ height: 26px;
+ vertical-align: middle;
+}
+
+.remind-box {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.remind-img {
+ width: 250rpx;
+ height: 250rpx;
+ padding-bottom: 25rpx;
+}
+
+.remind-text {
+ font-size: 12pt;
+ line-height: 150%;
+}
diff --git a/pages/bookSearch/bookInfo/bookInfo.js b/pages/bookSearch/bookInfo/bookInfo.js
new file mode 100644
index 0000000..213ae16
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookInfo.js
@@ -0,0 +1,60 @@
+var app = getApp();
+Page({
+ data: {
+ ISBN: "",
+ jsonStr: "",
+ doubanStr: '',
+ },
+ onLoad: function(options) {
+ wx.showToast({
+ title: "loading",
+ icon: "loading",
+ duration: 10000
+ })
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/book/isbn2info2.php?ISBN=' + options.ISBN,
+ success: function(res) {
+ that.setData({
+ jsonStr: res.data,
+ })
+ console.log(res.data)
+ }
+ });
+ wx.request({
+ url: app.globalData.doubanApi + '/book/isbn/' + options.ISBN,
+ method: 'GET',
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ success: function(res) {
+ that.setData({
+ doubanStr: res.data,
+ })
+ // console.log(res.data);
+ wx.hideToast()
+ }
+ })
+ },
+ onReady: function() {
+
+ },
+ goLibrary: function(ep) {
+ console.log(ep.currentTarget.dataset.place);
+ var placeArr = ["理工馆", "社科馆"];
+ var markerIdArr = [5, 4];
+ var result = placeArr.indexOf(ep.currentTarget.dataset.place.substr(0, 3));
+ console.log(result);
+ wx.navigateTo({
+ url: '/pages/schoolNav/schoolNav?markerId=' + markerIdArr[result],
+ })
+ },
+ onShareAppMessage: function(res) {
+ console.log(this)
+ return {
+ title: '我在北科天院图书馆找到本《' + this.data.doubanStr.title + '》,你也来看看吧~',
+ path: 'pages/bookSearch/bookInfo/bookInfo?ISBN=' + this.options.ISBN,
+ imageUrl: this.data.doubanStr.images.large
+ }
+ },
+});
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookInfo.json b/pages/bookSearch/bookInfo/bookInfo.json
new file mode 100644
index 0000000..8a0d326
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookInfo.json
@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "图书 - 贝壳小盒子"
+}
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookInfo.wxml b/pages/bookSearch/bookInfo/bookInfo.wxml
new file mode 100644
index 0000000..22702fe
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookInfo.wxml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+ {{doubanStr.title}}
+ 作者:{{doubanStr.author[0]}}
+ 出版社:{{doubanStr.publisher}}
+ 出版日期:{{doubanStr.pubdate}}
+
+
+ {{doubanStr.rating.average}}
+ {{doubanStr.rating.numRaters}}参与
+
+
+
+
+
+
+
+
+ 图书馆OPAC系统无响应,请耐心等待
+ 您可以先看看该书的简介信息
+
+
+
+
+
+ 本校图书馆暂无馆藏
+
+
+
+ 图书馆馆藏
+
+
+ 索书号:{{item[0]}}
+ 条码号:{{item[1]}}
+ 图书状态:
+ {{item[4]}}
+ {{item[4]}}
+
+
+
+
+
+ 📍{{jsonStr[0][3]}}
+
+
+
+
+
+ {{doubanStr.summary}}
+
+
+
+ {{doubanStr.author_intro}}
+
+
+
+
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookInfo.wxss b/pages/bookSearch/bookInfo/bookInfo.wxss
new file mode 100644
index 0000000..498d41c
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookInfo.wxss
@@ -0,0 +1,132 @@
+/* pages/bookSearch/bookInfo/bookInfo.wxss */
+@import "../../common/weui.wxss";
+
+page {
+ background: #eee;
+}
+
+.raduis {
+ border-radius: 25px;
+}
+
+.suoshuNO {
+ font-family: 'Times New Roman', Times, serif;
+}
+
+.cover-container {
+ background: #7acfa6;
+ text-align: center;
+ padding: 50rpx 0;
+}
+
+.cover-container image {
+ display: inline-block;
+ width: 300rpx;
+ height: 400rpx;
+}
+
+.book-meta {
+ position: relative;
+ padding: 20rpx;
+ padding-bottom: 40rpx;
+ overflow: hidden;
+}
+
+.sharerange {
+ position: absolute;
+ top: 190rpx;
+ right: 20rpx;
+ width: 200rpx;
+ text-align: center;
+ box-shadow: 2px 2px 10px #ccc;
+}
+
+.book-meta .range {
+ position: absolute;
+ top: 10rpx;
+ right: 20rpx;
+ width: 180rpx;
+ background: #fff;
+ padding: 20rpx 10rpx;
+ text-align: center;
+ box-shadow: 2px 2px 10px #ccc;
+}
+
+.book-meta .meta-info {
+ margin-right: 200rpx;
+}
+
+.meta-info text {
+ display: block;
+}
+
+.book-title {
+ font-weight: bold;
+ font-size: 40rpx;
+}
+
+.other-meta {
+ padding-top: 10rpx;
+ color: #888;
+ font-size: 30rpx;
+}
+
+.range text {
+ display: block;
+}
+
+.range .score {
+ font-size: 50rpx;
+ font-weight: bold;
+}
+
+.range .starts {
+ font-size: 40rpx;
+}
+
+.range .viewers {
+ font-size: 30rpx;
+}
+
+.book-intro {
+ margin-bottom: 40rpx;
+ padding: 20rpx;
+ background: #fafafa;
+}
+
+.book-intro .intro-header {
+ color: #888;
+ font-weight: bold;
+ padding: 40rpx 0;
+}
+
+.book-intro .intro-content {
+ font-size: 35rpx;
+ line-height: 2;
+ text-align: justify;
+}
+
+.shareIcon {
+ width: 26px;
+ height: 26px;
+ vertical-align: middle;
+}
+
+.remind-box {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.remind-img {
+ width: 250rpx;
+ height: 250rpx;
+ padding-bottom: 25rpx;
+}
+
+.remind-text {
+ font-size: 12pt;
+ line-height: 150%;
+}
diff --git a/pages/bookSearch/bookInfo/bookList.js b/pages/bookSearch/bookInfo/bookList.js
new file mode 100644
index 0000000..e480700
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookList.js
@@ -0,0 +1,86 @@
+// pages/bookSearch/bookInfo/bookList.js
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ keyword: "",
+ keywordStr: "",
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ console.log(options)
+ wx.showToast({
+ title: "loading",
+ icon: "loading",
+ duration: 5000
+ })
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/book/booksearch_adv.php?type=' + options.SearchType + '&keyword=' + options.keyword,
+ success: function(res) {
+ that.setData({
+ keywordStr: res.data,
+ })
+ console.log(res.data);
+ wx.hideToast()
+ if (res.data.total == 0) {
+ wx.redirectTo({
+ url: '/pages/error/queryerror?ErrorTips=' + '您查找的图书暂无馆藏'
+ })
+ }
+ }
+ })
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function() {
+ return {
+ path: 'pages/bookSearch/bookInfo/bookList?keyword=' + this.options.keyword + '&SearchType=' + this.options.SearchType,
+ title: '相见恨晚!原来图书馆有这么多关于"' + this.options.keyword + '"的书啊~',
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookList.json b/pages/bookSearch/bookInfo/bookList.json
new file mode 100644
index 0000000..624730b
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookList.json
@@ -0,0 +1,5 @@
+{
+ "navigationBarBackgroundColor": "#73b4ef",
+ "backgroundColor": "#73b4ef",
+ "navigationBarTitleText": "图书查找 - 贝壳小盒子"
+}
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookList.wxml b/pages/bookSearch/bookInfo/bookList.wxml
new file mode 100644
index 0000000..aa42d75
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookList.wxml
@@ -0,0 +1,24 @@
+
+
+ 查询结果
+ 在经历{{keywordStr.cost}}秒的折腾后,我们为您找到了以下{{keywordStr.total}}条内容:
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ 作者:{{item.author}}
+ 索书号:{{item.callNo}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/bookSearch/bookInfo/bookList.wxss b/pages/bookSearch/bookInfo/bookList.wxss
new file mode 100644
index 0000000..e41a1d6
--- /dev/null
+++ b/pages/bookSearch/bookInfo/bookList.wxss
@@ -0,0 +1,44 @@
+/* pages/bookSearch/bookInfo/bookList.wxss */
+@import "../../common/weui.wxss";
+
+.bookImg {
+ width: 120rpx;
+ height: 160rpx;
+}
+
+page {
+ background-color: #f8f8f8;
+ font-size: 16px;
+ font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif;
+}
+
+.page__hd {
+ padding: 40px;
+}
+
+.page__bd {
+ padding-bottom: 40px;
+}
+
+.page__bd_spacing {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.page__ft {
+ padding-bottom: 10px;
+ text-align: center;
+}
+
+.page__title {
+ text-align: left;
+ font-size: 20px;
+ font-weight: 400;
+}
+
+.page__desc {
+ margin-top: 5px;
+ color: #888;
+ text-align: left;
+ font-size: 14px;
+}
diff --git a/pages/bookSearch/index.js b/pages/bookSearch/index.js
new file mode 100644
index 0000000..93749a2
--- /dev/null
+++ b/pages/bookSearch/index.js
@@ -0,0 +1,322 @@
+var app = getApp();
+var timeJs = require('../../utils/time.js');
+var utilsJs = require('../../utils/util.js');
+Page({
+ data: {
+ offlinePeronalClass: 'null', //缓存的今天全天的课表数组
+ nextCourse: "null",
+ inputShowed: false,
+ adsError: false,
+ isLoading: '加载中',
+ isShowAllCourse: false,
+ isLogined: false,
+ keyword: "",
+ jsonStr: "",
+ dayOfWeek: '',
+ keywordStr: '',
+ shouldReturnBook:[],
+ SearchType: '02',
+ radioItems: [{
+ name: '书名',
+ value: '02',
+ checked: true
+ },
+ {
+ name: '作者',
+ value: '03'
+ }, {
+ name: '主题',
+ value: '04'
+ },
+ {
+ name: '出版社',
+ value: '09'
+ }
+ ]
+ },
+ onLoad: function() {
+
+ this.checkEffectiveIdAndPasswoed();
+ this.showReadingBooks();
+
+ },
+ onReady: function() {
+
+ },
+
+ onShow: function() {
+ this.onLoad();
+ },
+ setTodayOfflineClass: function(personalClass) {
+ var that = this;
+ var date = new Date();
+ var dayOfWeek = date.getDay();
+ var weekArr = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
+ var createArr = [];
+ var nextCourseArr = [];
+
+ personalClass = personalClass.course[weekArr[dayOfWeek]];
+ for (let i in personalClass) {
+ if (personalClass[i].length > 1) {
+ for (let j in personalClass[i]) {
+ createArr.push(personalClass[i][j]);
+ }
+ } else {
+ createArr.push(personalClass[i]);
+ }
+ }
+ let nowMintues = date.getMinutes();
+ if (nowMintues < 10) {
+ nowMintues = "0" + nowMintues;
+ }
+ var nowTime = date.getHours() + ':' + nowMintues;
+ // console.log(createArr);
+ for (let i = 0; i < createArr.length; i++) {
+ if (createArr[i]['startTime'] != '') {
+ // if (timeJs.CompareDate(nowTime, createArr[i]['startTime']) && utilsJs.needThisWeekGo(that.data.jsonStr.teachWeek, createArr[i]['teachWeek'])) {
+ // nextCourseArr = createArr[i];
+ // }
+ if (timeJs.CompareDate(nowTime, createArr[i]['startTime'])) {
+ nextCourseArr = createArr[i];
+ break;
+ }
+ }
+ }
+ // console.log(nextCourseArr)
+ that.setData({
+ offlinePeronalClass: createArr,
+ nextCourse: nextCourseArr
+ })
+
+
+ },
+ checkEffectiveIdAndPasswoed: function() {
+ var that = this;
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ var netPassword = wx.getStorageSync('netPassword');
+ var zhai = wx.getStorageSync('building');
+ var room = wx.getStorageSync('roomNo');
+ if (uid != '' && pwd != '') {
+ this.getWelcomeJson(uid, pwd, zhai, room, netPassword);
+ } else {
+ this.getWelcomeJson(uid, pwd, zhai, room, netPassword);
+ that.setData({
+ isLogined: false
+ })
+ }
+ },
+ isShowAllCourse: function() {
+ this.setData({
+ isShowAllCourse: !this.data.isShowAllCourse
+ })
+ },
+ showInput: function() {
+ this.setData({
+ inputShowed: true
+ });
+ },
+ onBindFocus: function(event) {
+
+ },
+ onBindBlur: function(event) {
+ this.setData({
+ inputVal: "",
+ inputShowed: false
+ })
+ },
+ hideInput: function() {
+ this.setData({
+ inputVal: "",
+ inputShowed: false
+ });
+ },
+ radioChange: function(e) {
+ // console.log(e.detail.value);
+ this.setData({
+ SearchType: e.detail.value
+ })
+ var radioItems = this.data.radioItems;
+ for (var i = 0, len = radioItems.length; i < len; ++i) {
+ radioItems[i].checked = radioItems[i].value == e.detail.value;
+ }
+ this.setData({
+ radioItems: radioItems,
+ });
+ },
+ inputTyping: function(e) {
+ this.setData({
+ keyword: e.detail.value
+ });
+ // console.log("输入了" + this.data.keyword);
+ },
+ clearInput: function() {
+ this.setData({
+ inputVal: ""
+ });
+ },
+ searchIt: function(e) {
+ var that = this;
+ if (that.data.keyword == 0) {
+ wx.showToast({
+ title: '请输入检索关键字',
+ icon: 'none',
+ duration: 2000
+ });
+ } else {
+ wx.showToast({
+ title: "正在搜索..",
+ icon: "loading",
+ duration: 10000
+ })
+ wx.request({
+ url: app.globalData.apiURL + '/book/booksearch_adv.php?type=' + that.data.SearchType + '&keyword=' + that.data.keyword,
+ success: function(res) {
+ that.setData({
+ keywordStr: res.data,
+ })
+ // console.log(res.data);
+ wx.hideToast()
+ if (res.data.total == '图书馆系统无响应') {
+ wx.navigateTo({
+ url: '/pages/error/queryerror?ErrorTips=' + "图书馆OPAC系统无响应"
+ })
+ } else if (res.data.total == 0) {
+ wx.showToast({
+ title: '本馆暂无此书',
+ image: '/images/info.png',
+ icon: 'none',
+ duration: 2000
+ });
+ } else {
+ wx.navigateTo({
+ url: '../bookSearch/bookInfo/bookList?keyword=' + that.data.keyword + '&SearchType=' + that.data.SearchType,
+ })
+ }
+ }
+ })
+ }
+ },
+ getWelcomeJson: function(uid, pwd, zhai, room, netPassword) {
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/v2/welcome.php',
+ method: "POST",
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ data: {
+ uid: uid,
+ pwd: pwd,
+ netPassword: netPassword,
+ zhai: zhai,
+ room: room,
+ },
+ success: function(res) {
+ that.setData({
+ jsonStr: res.data
+ })
+ // console.log(res.data);
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ var personalClass = wx.getStorageSync('personal19Class');
+ if (res.data.todayCourse.getCourseStatus != 403) {
+ that.setData({
+ isLoading: "finished",
+ isLogined: true
+ })
+ if (uid == '' || pwd == '') {
+ that.setData({
+ isLogined: false
+ })
+ } else {
+ if (personalClass != '') {
+ // console.log(personalClass)
+ that.setTodayOfflineClass(personalClass);
+ }
+ }
+
+ } else {
+ that.setData({
+ isLoading: "finished",
+ isLogined: false
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function() {
+ var that = this;
+ that.onLoad();
+ wx.stopPullDownRefresh();
+ wx.showToast({
+ title: "刷新完成",
+ icon: "succeed",
+ duration: 3000
+ })
+ },
+ onReachBottom: function() {
+ //拉到底了,做点什么好呢
+ },
+ adsError: function(e) {
+ // console.log(e)
+ var that = this;
+ that.setData({
+ adsError: true
+ })
+ },
+ bindGetUserInfo: function(e) {
+ console.log(e);
+ app.globalData.nickName = e.detail.userInfo.nickName;
+ this.toLogin();
+ },
+ toLogin: function() {
+ wx.navigateTo({
+ url: '/pages/index/index',
+ })
+ },
+ showRule: function() {
+ this.setData({
+ isRuleTrue: true
+ })
+ },
+ hideRule: function() {
+ this.setData({
+ isRuleTrue: false
+ })
+ wx.setStorageSync('whShowStatus', 'saw');
+ },
+ showBigWH: function() {
+ wx.previewImage({
+ urls: ["https://z4a.net/images/2019/10/28/lite.jpg"],
+ })
+ wx.showToast({
+ title: '长按保存后,打开QQ扫一扫识别',
+ icon: 'none',
+ duration: 3000
+ })
+ },
+ showReadingBooks: function() {
+ var that = this;
+ var readingBook = wx.getStorageSync('readingBook');
+ var nowTimestamp = new Date().getTime();
+ var bookReturnDate = new Date();
+ var shouldReturnBook = [];
+
+ for (let i in readingBook) {
+ let formatedNeedReturnDate = readingBook[i].needReturnDate;
+ var needReturnDateArr = formatedNeedReturnDate.split("-");
+ bookReturnDate.setFullYear(needReturnDateArr[0], needReturnDateArr[1] - 1, needReturnDateArr[2]);
+ if (nowTimestamp < bookReturnDate.getTime()) {
+ shouldReturnBook.push(readingBook[i]);
+ }
+ }
+ that.setData({
+ shouldReturnBook: shouldReturnBook
+ })
+ }
+});
\ No newline at end of file
diff --git a/pages/bookSearch/index.json b/pages/bookSearch/index.json
new file mode 100644
index 0000000..1c155c7
--- /dev/null
+++ b/pages/bookSearch/index.json
@@ -0,0 +1,8 @@
+{
+ "enablePullDownRefresh": true,
+ "backgroundColor": "#7acfa6",
+ "navigationBarTitleText": "贝壳小盒子",
+ "usingComponents": {
+ "wux-notice-bar": "../common/notice-bar/index"
+ }
+}
\ No newline at end of file
diff --git a/pages/bookSearch/index.wxml b/pages/bookSearch/index.wxml
new file mode 100644
index 0000000..12d5fc7
--- /dev/null
+++ b/pages/bookSearch/index.wxml
@@ -0,0 +1,518 @@
+
+
+
+
+
+ 📖
+ 图书检索查询
+
+
+
+
+
+
+
+
+
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 您咋还没绑定学号呢?
+
+
+
+
+
+
+
+
+ {{jsonStr.notice}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hi!
+ 🎉
+
+
+
+
+ 今天是:
+
+
+ {{jsonStr.year}} 年 {{jsonStr.month}} 月 {{jsonStr.day}} 日 {{jsonStr.dayOfWeek}}
+
+
+
+ 第
+ {{jsonStr.teachWeek}}
+ 周
+
+
+
+
+
+
+
+
+
+
+
+
+ Hi!
+ 🎉
+
+
+
+
+
+ 假期就要痛快玩啊🏃
+
+
+
+
+
+
+
+
+
+
+ 💀
+ 讲个鬼故事
+
+
+
+
+
+
+ 您的 假期余额
+
+
+ 已不足
+ {{jsonStr.gap2StartClass}}
+ 天
+
+
+
+
+
+
+
+
+
+
+
+ 🎓
+ 下节课
+
+
+
+
+
+ {{nextCourse.courseName}}
+ {{nextCourse.startTime}}上课 ~ {{nextCourse.endTime}}下课
+
+ {{nextCourse.place}}
+
+
+
+
+ 展示全天课表👇
+
+
+ 朕知道了,赶紧收起来吧😂
+
+
+
+
+
+ 😭
+ 下一节
+
+
+
+
+
+
+ 你还没有查询过课表,点我查下😁
+
+
+
+
+
+ 展示全天课表👇
+
+
+ 朕知道了,赶紧收起来吧😂
+
+
+
+
+
+ 😁
+ 下一节
+
+
+
+
+
+
+ 没有课啦,休息一下吧😊
+
+
+
+
+
+ 展示全天课表👇
+
+
+ 朕知道了,赶紧收起来吧😂
+
+
+
+
+
+
+
+
+
+ 😎
+ 今日({{jsonStr['month']}}月{{jsonStr['day']}}日 {{jsonStr['dayOfWeek']}})
+
+
+
+
+
+ 一整天都没课,出去嗨啊🏃
+
+
+
+
+
+
+
+
+ 😭
+ 无数据
+
+
+
+
+
+ 你还没有查询过课表,点我查下
+
+
+
+
+
+
+
+
+
+ 😡
+ ({{jsonStr['month']}}月{{jsonStr['day']}}日 {{jsonStr['dayOfWeek']}})课表
+
+
+
+
+ {{item.courseName}}【{{item.teachWeek}}】
+ {{item.startTime}}上课 - {{item.endTime}}下课
+
+ {{item.place}}
+
+
+
+ 查看完整个人课表
+
+
+
+
+
+
+
+
+
+
+ 📚
+ 借阅图书
+
+
+
+
+
+
+ {{item.bookName}}
+
+
+
+
+ 借阅日期:
+ {{item.brrowDate}}
+
+
+ 归还日期:
+ {{item.needReturnDate}}
+
+
+
+
+
+
+ 不想交罚款就按时归还图书📕
+
+
+
+
+
+
+ 🍪
+ 广告赞助
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.holidayName}}
+
+
+
+
+
+ 今天距 {{item.holidayName}}
+
+
+ 还有
+ {{item.gapDays}}
+ 天
+
+
+
+
+
+
+
+
+ 今天是
+ {{item.holidayName}}
+ 哟~
+
+
+
+
+
+
+
+
+
+
+
+ 🖊
+ 考试
+
+
+
+
+
+ 今天距 集中考试周
+
+
+ 仅剩
+ {{jsonStr.gap2ExamWeek}}
+ 天
+
+
+
+
+
+
+
+
+
+
+
+ 🌐
+ 网费余额
+
+
+
+
+ {{jsonStr.netInfo.name}}
+
+
+ 截至时间:{{jsonStr.netInfo.time}}
+
+
+
+
+ 账户余额
+ {{jsonStr.netInfo.balance}}
+ 元
+
+
+
+
+
+
+
+
+ 🌐
+ 网费余额
+
+
+
+
+ 系统关闭,暂时无法查询(;′⌒`)
+
+
+
+
+
+
+
+ 🌐
+ 网费余额
+
+
+
+
+ 绑定一下校园网账号嘛(ಥ _ ಥ)
+ 绑定校园网
+
+
+
+
+
+
+
+
+
+ ⚡
+ 宿舍用电
+
+
+
+
+ {{jsonStr.eleInfo.zhai}}斋{{jsonStr.eleInfo.room}}
+
+
+ 截至时间:{{jsonStr.eleInfo.time}}
+
+
+
+
+ 剩余电量
+ {{jsonStr.eleInfo.Balance}}
+ 度
+
+
+
+
+
+
+
+
+ ⚡
+ 宿舍用电
+
+
+
+
+ 建议您绑定一下宿舍
+ 绑定宿舍
+
+
+
+
+
+
+
+ ⚡
+ 宿舍用电
+
+
+
+
+ 系统维护,暂时无法查询(ಥ _ ಥ)
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/bookSearch/index.wxss b/pages/bookSearch/index.wxss
new file mode 100644
index 0000000..8cc7e61
--- /dev/null
+++ b/pages/bookSearch/index.wxss
@@ -0,0 +1,699 @@
+/* pages/bookSearch/index.wxss */
+@import "../common/weui.wxss";
+
+.login-btn {
+ margin-top: 20rpx;
+ font-size: 9pt;
+ text-align: center;
+ background-color: #7acfa6;
+ border-radius: 25rpx;
+ border-bottom: 2px solid #4fc08d;
+ color: #fff;
+}
+
+.ads {
+ padding: 30rpx 15rpx 30rpx 15rpx;
+}
+
+.noDisplay {
+ visibility: hidden;
+ height: 230rpx;
+}
+
+.blockView {
+ display: inline-block;
+}
+
+.radio {
+ margin-right: 10rpx;
+}
+
+.radios {
+ margin-top: 20rpx;
+ margin-bottom: 70rpx;
+ flex-direction: row;
+ align-items: baseline;
+}
+
+.mini-btn {
+ float: right;
+ display: inline-block;
+ margin-top: -8rpx;
+}
+
+/* @import '/utils/weui-searchbar.wxss'; */
+
+.container {
+ padding-bottom: 0;
+ background-color: #f0eff5;
+ background-repeat: no-repeat;
+ background-size: 100% auto;
+ background-position: bottom center;
+ /* background-image: url('/images/index/tri.png'); *//*微信暂不支持静态bgimg文件,改用服务器url*//* background-image: url('https://z4a.net/images/2019/02/01/tri.png'); */
+ background-image: url('https://z4a.net/images/2019/02/01/timmg.png');
+}
+
+/**功能导航**/
+
+.main-core {
+ display: flex;
+ flex-flow: row wrap;
+ align-content: flex-start;
+ background: #fff;
+ border-bottom: 1rpx solid #e5e5e5;
+ padding: 15rpx 10rpx 10rpx;
+ min-height: 350rpx;
+ overflow: hidden;
+}
+
+.main-core-item {
+ display: flex;
+ flex-flow: column wrap;
+ justify-content: center;
+ align-items: center;
+ box-sizing: border-box;
+ width: 20%;
+ height: 170rpx;
+}
+
+.main-core-item.disabled {
+ color: #9c9c9c;
+}
+
+.core-item-icon {
+ display: block;
+ width: 85rpx;
+ height: 85rpx;
+ margin: 15rpx auto;
+}
+
+.core-item-name {
+ display: block;
+ margin: 5rpx;
+}
+
+.main-swpier {
+ height: 390rpx;
+ margin-bottom: 20rpx;
+}
+
+.main-swpier .wx-swiper-dots.wx-swiper-dots-horizontal {
+ bottom: 0;
+ margin-bottom: -5rpx;
+}
+
+/**卡片列表**/
+
+.main-card {
+ padding-bottom: 300rpx;
+}
+
+.main-card-item {
+ display: flex;
+ flex-direction: column;
+ background: #fff;
+ border-top: 1rpx solid #e5e5e5;
+ border-bottom: 1rpx solid #e5e5e5;
+ border-radius: 25rpx;
+ margin-bottom: 20rpx;
+ background-repeat: no-repeat;
+ background-size: 100% auto;
+ background-position: bottom center;
+ overflow: hidden;
+}
+
+.examWeek-Margin {
+ margin-bottom: 40rpx;
+}
+
+.main-card-item#kb {
+ background-image: url('https://z4a.net/images/2019/02/01/kb-bg.png');
+}
+
+.main-card-item#nextCourse {
+ background-image: url('https://z4a.net/images/2019/02/01/kb-bg.png');
+}
+
+.main-card-item#jwClosed {
+ background-image: url('https://z4a.net/images/2019/02/03/profile-first-issue.png');
+}
+
+.main-card-item#ks {
+ background-image: url('https://z4a.net/images/2019/02/02/tools.png');
+}
+
+.main-card-item#kaixue {
+ background-image: url('https://z4a.net/images/2019/02/03/f916aa746928d9b32ff09fe82c61f54c.png');
+}
+
+.main-card-item#vocation {
+ background-image: url('https://z4a.net/images/2019/02/03/profile-first-repo.png');
+}
+
+.main-card-item#ykt {
+ /*background-image: url('/images/index/ykt-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://z4a.net/images/2019/03/10/ykt-bg.png');
+}
+
+.main-card-item#chashu {
+ /*background-image: url('/images/index/ykt-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://z4a.net/images/2019/02/02/books.png');
+}
+
+.main-card-item#jy {
+ /*background-image: url('/images/index/jy-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://we.cqu.pt/app/images/index/ykt-bg.png');
+}
+
+.main-card-item#fj {
+ /*background-image: url('/images/index/jy-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://we.cqu.pt/app/images/index/ykt-bg.png');
+}
+
+.main-card-item#mk {
+ /*background-image: url('/images/index/jy-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://z4a.net/images/2019/02/02/profile-joined-github.png');
+}
+
+.main-card-item#sdf {
+ /*background-image: url('/images/index/sdf-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://i.loli.net/2019/06/22/5d0d1dc62946864090.png');
+}
+
+.main-card-item#swf {
+ /*background-image: url('/images/index/sdf-bg.png');*//*微信暂不支持静态bgimg文件,改用服务器url*/
+ background-image: url('https://z4a.net/images/2019/07/29/netFareBk9b1a72dabcc8947f.png');
+}
+
+.main-card-item navigator {
+ display: flex;
+ flex-direction: column;
+}
+
+page .navigator-hover {
+ background-color: rgba(100, 100, 100, 0.1);
+ opacity: 0.8;
+}
+
+.card-item-hd {
+ display: flex;
+ align-items: center;
+ height: 75rpx;
+ border-bottom: 1rpx solid #e5e5e5;
+ margin-left: 30rpx;
+}
+
+.card-item-icon {
+ width: 40rpx;
+ height: 40rpx;
+ margin-right: 10rpx;
+}
+
+.card-item-name {
+ letter-spacing: 2px;
+}
+
+.card-item-more {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding-right: 25rpx;
+}
+
+.card-item-open {
+ width: 30rpx;
+ height: 30rpx;
+}
+
+.card-item-bd {
+ padding: 20rpx 25rpx 30rpx 0;
+ margin-left: 30rpx;
+ display: flex;
+ flex-direction: column;
+}
+
+.card-info-hd {
+ display: flex;
+ justify-content: space-between;
+}
+
+.card-info-left {
+ display: flex;
+ flex-direction: column;
+}
+
+.card-info-right {
+ display: flex;
+ color: #acacac;
+ flex-direction: column;
+}
+
+.card-info-name {
+ font-size: 16pt;
+ line-height: 1.2;
+ letter-spacing: 1px;
+ color: #acacac;
+}
+
+.card-info-number {
+ line-height: 175%;
+ text-indent: 1px;
+ color: #aaa;
+}
+
+.main-ending {
+ display: none;
+ /*display: flex;*/
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ margin-top: 75rpx;
+ overflow: hidden;
+}
+
+.main-ending-text {
+ width: 72pt;
+ color: #ccc;
+ font-size: 8pt;
+ padding: 0 16rpx;
+ text-align: center;
+ white-space: nowrap;
+}
+
+.main-ending-line {
+ width: 100%;
+ height: 0;
+ border-top: 1rpx solid #e5e5e5;
+}
+
+/**今日课表**/
+
+.main-card-item#kb .card-item-bd {
+ padding: 0;
+ margin-right: 25rpx;
+}
+
+.kb-nothing {
+ align-items: center;
+ justify-content: center;
+ font-size: 11pt;
+ min-height: 150rpx;
+}
+
+.kb-open {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ color: #0d50a3;
+ height: 90rpx;
+ border-top: 1rpx solid #e5e5e5;
+ margin-top: -1rpx;
+}
+
+.kb-item {
+ display: flex;
+ height: 120rpx;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 1px dotted #e5e5e5;
+}
+
+.kb-item-left {
+ flex: 1 1 auto;
+ display: flex;
+ flex-direction: column;
+ padding-right: 30rpx;
+ overflow: hidden;
+}
+
+.kb-item-what {
+ font-size: 12pt;
+ line-height: 200%;
+ color: #777;
+ white-space: nowrap;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.kb-item-when {
+ line-height: 125%;
+ color: #bbb;
+}
+
+.kb-item-where {
+ flex: 0 0 auto;
+ font-size: 14pt;
+ color: #999;
+ letter-spacing: 1px;
+}
+
+/**一卡通**/
+
+.ykt-balance {
+ display: flex;
+ align-items: flex-end;
+ justify-content: center;
+ font-weight: bold;
+ padding: 0rpx 0 10rpx;
+}
+
+.ykt-balance-text {
+ font-size: 17pt;
+ line-height: 2;
+ color: #999;
+}
+
+.ykt-balance-value {
+ font-size: 58pt;
+ line-height: 1;
+ padding: 0 20rpx;
+ color: #ffbf92;
+}
+
+.ykt-cost {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ font-weight: bold;
+ line-height: 200%;
+}
+
+.ykt-cost-text {
+ font-size: 10pt;
+ color: #999;
+}
+
+.ykt-cost-value {
+ font-size: 12pt;
+ font-weight: normal;
+ color: #777;
+ padding: 0 10rpx;
+}
+
+.ykt-cost-total {
+ font-size: 16pt;
+ color: #ffbf92;
+ padding: 0 10rpx;
+}
+
+.ykt-title {
+ font-size: 10pt;
+}
+
+.ykt-no-cost {
+ color: #bbb;
+}
+
+/**借阅信息**/
+
+.main-card-item#jy .card-item-bd {
+ padding-bottom: 85rpx;
+}
+
+.jy-list {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-around;
+}
+
+.jy-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin: 20rpx 15rpx 15rpx;
+}
+
+.jy-book {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ box-sizing: border-box;
+ width: 176rpx;
+ height: 231rpx;
+ background-size: 100% 100%;
+ padding: 5rpx 5rpx 50rpx 30rpx;
+ color: #fff;
+ margin-bottom: 10rpx;
+}
+
+.jy-pickup-time {
+ text-align: right;
+ font-size: 8pt;
+ word-wrap: break-word;
+ white-space: nowrap;
+}
+
+.jy-pickup-time-text {
+ padding-left: 4rpx;
+}
+
+.jy-book-name {
+ height: 126rpx;
+ font-size: 28rpx;
+ font-weight: bold;
+ line-height: 150%;
+ word-wrap: break-word;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+}
+
+.jy-timing, jy-return-time {
+ line-height: 200%;
+}
+
+.jy-timing-value {
+ font-size: 13pt;
+ font-weight: bold;
+ color: #729fc3;
+ padding: 0 8rpx;
+}
+
+.jy-timing-text {
+ font-size: 10pt;
+ color: #acacac;
+}
+
+.jy-return-time-value {
+ font-size: 12pt;
+ color: #7f848a;
+}
+
+.jy-return-time-text {
+ font-size: 10pt;
+ color: #acacac;
+ padding-left: 8rpx;
+}
+
+/**水电费**/
+
+.main-card-item#sdf .card-item-bd {
+ padding-bottom: 80rpx;
+}
+
+.sdf-hd {
+ color: #acacac;
+ margin: 40rpx 0 20rpx;
+}
+
+.sdf-bd {
+ display: flex;
+ justify-content: space-between;
+ padding: 30rpx 0;
+ margin: 0 auto;
+}
+
+.sdf-key {
+ padding: 0 10rpx;
+}
+
+.sdf-value {
+ color: #ffbf92;
+ font-size: 46pt;
+ font-weight: bold;
+ padding: 0 15rpx;
+}
+
+.swf-value {
+ color: #0693d49c;
+ font-size: 46pt;
+ font-weight: bold;
+ padding: 0 15rpx;
+}
+
+.sdf-text {
+ color: #acacac;
+ font-size: 13pt;
+}
+
+.searchbar-result {
+ margin-top: 0;
+ font-size: 14px;
+}
+
+.searchbar-result:before {
+ display: none;
+}
+
+.weui-cell {
+ padding: 12px 15px 12px 35px;
+}
+
+.remind-box {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.remind-img {
+ width: 200rpx;
+ height: 200rpx;
+ padding-bottom: 25rpx;
+}
+
+.remind-text {
+ font-size: 12pt;
+ line-height: 150%;
+}
+
+/* showrule */
+
+.isRuleShow {
+ display: block;
+}
+
+.isRuleHide {
+ display: none;
+}
+
+.ruleZhezhao {
+ height: 100%;
+ width: 100%;
+ position: fixed;
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 2;
+ top: 0;
+ left: 0;
+}
+
+.ruleZhezhaoContent {
+ width: 330px;
+ background: rgba(255, 255, 255, 0.377);
+ margin: 10% auto;
+ border-radius: 20rpx;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ align-items: center;
+ position: relative;
+}
+
+.ruleZhezhaoText {
+ font-size: 30rpx;
+ color: #856d5f;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+}
+
+.ruleZhezhaoText text:nth-child(1) {
+ color: #fff;
+ font-size: 40rpx;
+ height: 60rpx;
+ width: 60rpx;
+ background: #664a2c;
+ display: block;
+ text-align: center;
+ line-height: 60rpx;
+ border-radius: 30rpx;
+ margin-right: 10rpx;
+}
+
+.ruleZhezhaoText text:nth-child(2) {
+ flex-wrap: wrap;
+ width: 80%;
+}
+
+.ruleHide {
+ height: 60rpx !important;
+ width: 60rpx !important;
+ position: absolute;
+ top: -20rpx;
+ right: -20rpx;
+}
+
+.rule {
+ display: block;
+ border: 1px solid #fff;
+ width: 100rpx;
+ text-align: center;
+ line-height: 60rpx;
+ color: #fff;
+ height: 60rpx;
+ font-size: 30rpx;
+ border-radius: 30rpx;
+ position: absolute;
+ top: 10%;
+ right: 5%;
+}
+
+/* end */
+
+.book-wraper {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: space-between;
+ overflow: hidden;
+ padding: 35rpx 30rpx 10rpx;
+ background: #fff;
+ border-radius: 3px;
+}
+
+.book-name {
+ font-size: 15pt;
+ line-height: 135%;
+ word-break: break-all;
+}
+
+.bookeNameTxt {
+ float: left;
+ width: 240px;
+ white-space: nowrap; /*强制在一行显示*/
+ text-overflow: ellipsis; /*设置超出内容显示...*/
+ overflow: hidden; /*一定不能少 超出的内容进行隐藏*/
+}
+
+.historyBookeNameTxt {
+ float: left;
+ width: 100%;
+ white-space: nowrap; /*强制在一行显示*/
+ text-overflow: ellipsis; /*设置超出内容显示...*/
+ overflow: hidden; /*一定不能少 超出的内容进行隐藏*/
+}
+
+.book-date {
+ display: flex;
+ align-items: flex-end;
+ justify-content: space-between;
+ font-size: 9pt;
+ color: #888;
+}
+
+.book-img {
+ height: 13pt;
+ width: 13pt;
+ margin-top: 2pt;
+ margin-right: 10rpx;
+}
+.yhrq-value {
+ font-size: 13pt;
+}
\ No newline at end of file
diff --git a/pages/bookSearch/isbn/iputIsbn.js b/pages/bookSearch/isbn/iputIsbn.js
new file mode 100644
index 0000000..59a5a8a
--- /dev/null
+++ b/pages/bookSearch/isbn/iputIsbn.js
@@ -0,0 +1,57 @@
+// pages/bookSearch/bookInfo/isbn/iputIsbn.js
+Page({
+ data: {
+ isLoading: true,
+ },
+ onReady: function() {
+ var that = this;
+ setTimeout(function() {
+ that.setData({
+ isLoading: false
+ });
+ }, 500);
+ },
+ ISBNInput: function(e) {
+ //console.log(e.detail.value['isbn']);
+ if (e.detail.value['isbn'] == '' || e.detail.value['isbn'].length < 10) {
+ wx.showToast({
+ title: '请输入ISBN码',
+ image: '/images/info.png',
+ icon: 'none',
+ duration: 2000
+ });
+ } else {
+ wx.navigateTo({
+ url: '/pages/bookSearch/bookInfo/bookInfo?ISBN=' + e.detail.value['isbn']
+ })
+ }
+ },
+ /**
+ * 扫码
+ */
+ scan: function() {
+ wx.scanCode({
+ success: (res) => {
+ if (res.errMsg !== 'scanCode:ok') {
+ wx.showToast({
+ title: res.errMsg,
+ icon: 'loading',
+ duration: 8000
+ })
+ return false;
+ }
+ if (res.scanType !== 'EAN_13') {
+ wx.showToast({
+ title: '这不是ISBN码',
+ icon: 'loading',
+ duration: 8000
+ })
+ return false;
+ }
+ wx.navigateTo({
+ url: '/pages/bookSearch/bookInfo/bookInfo?ISBN=' + res.result
+ })
+ }
+ })
+ }
+});
\ No newline at end of file
diff --git a/pages/bookSearch/isbn/iputIsbn.json b/pages/bookSearch/isbn/iputIsbn.json
new file mode 100644
index 0000000..2743978
--- /dev/null
+++ b/pages/bookSearch/isbn/iputIsbn.json
@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "扫码查书 - 贝壳小盒子"
+}
\ No newline at end of file
diff --git a/pages/bookSearch/isbn/iputIsbn.wxml b/pages/bookSearch/isbn/iputIsbn.wxml
new file mode 100644
index 0000000..625c1aa
--- /dev/null
+++ b/pages/bookSearch/isbn/iputIsbn.wxml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ 请扫描或输入书籍背面的的ISBN码
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/bookSearch/isbn/iputIsbn.wxss b/pages/bookSearch/isbn/iputIsbn.wxss
new file mode 100644
index 0000000..9308e5f
--- /dev/null
+++ b/pages/bookSearch/isbn/iputIsbn.wxss
@@ -0,0 +1,378 @@
+/* pages/bookSearch/bookInfo/isbn/iputIsbn.wxss */
+@import "../../common/weui.wxss";
+
+Page {
+ /* background-color: #7acfa6; */
+ background: linear-gradient(#7acfa6, #93f9b9, #1d976c);
+}
+
+.login-btn {
+ font-size: 13pt;
+ line-height: 85rpx;
+ height: 85rpx;
+ background: #04c065;
+ color: #fff;
+ text-align: center;
+ border-radius: 25px;
+ box-shadow: 5rpx 5rpx 15rpx #ccc;
+ margin: 0 30rpx 30rpx;
+}
+
+.shareIcon {
+ width: 26px;
+ height: 26px;
+ vertical-align: middle;
+}
+
+.button-sp-area {
+ margin: 0 auto;
+ padding-top: 15px;
+ width: 60%;
+}
+
+.mini-btn {
+ margin-right: 5px;
+}
+
+.logo-sub {
+ text-align: center;
+ margin-top: 50rpx;
+ margin-bottom: 50rpx;
+ color: #666;
+}
+
+/**login.wxss**/
+
+.container {
+ background: #7acfa6;
+ align-items: stretch;
+ padding: 0;
+ height: 100%;
+ overflow: hidden;
+}
+
+.content {
+ flex: 1;
+ display: flex;
+ position: relative;
+ z-index: 10;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: center;
+ width: 100%;
+ height: 100%;
+ padding-bottom: 450rpx;
+ background: -webkit-gradient(linear, left top, left bottom, from(rgba(244, 244, 244, 0)), color-stop(0.1, #f4f4f4), to(#f4f4f4));
+ opacity: 0;
+ transform: translate3d(0, 100%, 0);
+ animation: rise 3s cubic-bezier(0.19, 1, 0.22, 1) 0.25s forwards;
+}
+
+.ykt-detail-wraper {
+ display: flex;
+ flex-direction: column;
+ margin: 0 30rpx 30rpx;
+ background: rgba(255, 255, 255, 0.4);
+ border-radius: 25rpx;
+ box-shadow: 5rpx 5rpx 15rpx #ccc;
+}
+
+@keyframes rise {
+ 0% {
+ opacity: 0;
+ transform: translate3d(0, 100%, 0);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translate3d(0, 450rpx, 0);
+ }
+}
+
+.title {
+ position: absolute;
+ top: 30rpx;
+ left: 50%;
+ width: 600rpx;
+ height: 200rpx;
+ margin-left: -300rpx;
+ opacity: 0;
+ animation: show 2.5s cubic-bezier(0.19, 1, 0.22, 1) 0.5s forwards;
+}
+
+@keyframes show {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 0.95;
+ }
+}
+
+.hd {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ width: 1000rpx;
+ margin-left: -500rpx;
+ height: 200rpx;
+ transition: all 0.35s ease;
+}
+
+@keyframes sway {
+ 0% {
+ transform: translate3d(0, 20rpx, 0) rotate(-15deg);
+ }
+
+ 17% {
+ transform: translate3d(0, 0rpx, 0) rotate(25deg);
+ }
+
+ 34% {
+ transform: translate3d(0, -20rpx, 0) rotate(-20deg);
+ }
+
+ 50% {
+ transform: translate3d(0, -10rpx, 0) rotate(15deg);
+ }
+
+ 67% {
+ transform: translate3d(0, 10rpx, 0) rotate(-25deg);
+ }
+
+ 84% {
+ transform: translate3d(0, 15rpx, 0) rotate(15deg);
+ }
+
+ 100% {
+ transform: translate3d(0, 20rpx, 0) rotate(-15deg);
+ }
+}
+
+.wave {
+ position: absolute;
+ z-index: 3;
+ right: 0;
+ bottom: 0;
+ opacity: 0.725;
+ height: 260rpx;
+ width: 2250rpx;
+ animation: wave 10s linear infinite;
+}
+
+.wave-bg {
+ z-index: 1;
+ animation: wave-bg 10.25s linear infinite;
+}
+
+@keyframes wave {
+ from {
+ transform: translate3d(125rpx, 0, 0);
+ }
+
+ to {
+ transform: translate3d(1125rpx, 0, 0);
+ }
+}
+
+@keyframes wave-bg {
+ from {
+ transform: translate3d(375rpx, 0, 0);
+ }
+
+ to {
+ transform: translate3d(1375rpx, 0, 0);
+ }
+}
+
+.bd {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ animation: bd-rise 2s cubic-bezier(0.23, 1, 0.32, 1) 0.75s forwards;
+ opacity: 0;
+}
+
+@keyframes bd-rise {
+ from {
+ opacity: 0;
+ transform: translate3d(0, 60rpx, 0);
+ }
+
+ to {
+ opacity: 1;
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+form {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: center;
+}
+
+.input-group {
+ display: flex;
+ align-items: center;
+ padding: 25rpx 10rpx;
+ margin: 40rpx 3%;
+ background: #fff;
+ border-radius: 5px;
+ border: 2px solid #f4f4f4;
+ transition: all 0.25s ease-in-out;
+}
+
+.input-group.active {
+ border: 2px solid #7acfa6;
+}
+
+.input-label {
+ color: #888;
+ font-size: 13pt;
+ height: 25rpx;
+ line-height: 25rpx;
+ padding: 0 25rpx;
+ border-right: 1px solid #d8d8d8;
+}
+
+.input-group input, .input-group picker {
+ flex: 1;
+ font-size: 13pt;
+ min-height: 52rpx;
+ height: 52rpx;
+ line-height: 52rpx;
+ padding: 0 25rpx;
+}
+
+.input-placeholder, .input-group picker.placeholder {
+ color: #ccc;
+}
+
+.login-help {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0 30rpx;
+ font-size: 10pt;
+ color: #bbb;
+}
+
+.login-help-img {
+ width: 11pt;
+ height: 11pt;
+ margin: 0 5rpx;
+}
+
+.confirm-btn {
+ font-size: 13pt;
+ line-height: 85rpx;
+ height: 85rpx;
+ background: #7acfa6;
+ color: #fff;
+ text-align: center;
+ border-radius: 5px;
+ margin: 50rpx 3%;
+}
+
+.confirm-btn:active {
+ opacity: 0.8;
+}
+
+.help {
+ position: absolute;
+ z-index: 100;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.box {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ width: 80%;
+ background: #fff;
+ border-radius: 10px;
+ box-shadow: 0 0 50px rgba(22, 22, 22, 0.35);
+ transform: translate3d(0, -400rpx, 0);
+}
+
+.box-hd {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100rpx;
+ border-bottom: 1px solid #eee;
+}
+
+.box-title {
+ font-size: 13pt;
+}
+
+.box-close {
+ position: absolute;
+ right: 20rpx;
+ width: 35rpx;
+ height: 35rpx;
+ padding: 15rpx;
+}
+
+.box-bd {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ padding: 15rpx 40rpx 30rpx;
+}
+
+.help-q {
+ color: #999;
+ font-size: 11pt;
+ line-height: 200%;
+ margin-top: 5rpx;
+}
+
+.help-a {
+ text-indent: 1em;
+ line-height: 160%;
+ display: flex;
+ flex-direction: column;
+}
+
+.help-a text {
+ word-break: break-all;
+}
+
+/**登录动画**/
+
+.login_video {
+ position: absolute;
+ z-index: 1;
+ top: 50%;
+ left: 50%;
+ width: 750rpx;
+ margin-left: -375rpx;
+ height: 1334rpx;
+ margin-top: -667rpx;
+}
+
+.video_hidden {
+ visibility: hidden;
+}
+
+page .wx-video-bar {
+ display: none;
+}
diff --git a/pages/books/detail.js b/pages/books/detail.js
deleted file mode 100644
index 8bf5638..0000000
--- a/pages/books/detail.js
+++ /dev/null
@@ -1,233 +0,0 @@
-// pages/books/detail.js
-var app = getApp();
-Page({
- data: {
- isLoading: '加载中',
- code: "",
- codeType: '',
- jsonStr: "",
- doubanStr: '',
- title: '',
- isbn: '',
- place: '',
- placeType: 0,
- showCollection: true,
- showDistribution: true,
- showBookInfo: true,
- showSameAuthor: true,
- socialDistribution: [
- { floor: '四层', content: ['A', 'B', 'C', 'D'], desc: '中文社科图书A,B,C,D类', infloor: false },
- { floor: '三层', content: ['D', 'E', 'F', 'G', 'H', 'I'], desc: '中文社科图书D、E、F、G、H、I类', infloor: false },
- { floor: '二层', content: ['I', 'J', 'K'], desc: '中文社科图书I、J、K类、社科馆外文书库', infloor: false },
- { floor: '一层', content: [], desc: '借还处、音像制品库、新书库、图书漂流区', infloor: false }
- ],
- industryDistribution: [
- { room: '101', content: ['TP'], desc: '理工馆中文书库101室 TP', infloor: false },
- { room: '102', content: ['TP'], desc: '理工馆中文书库102室 TP', infloor: false },
- { room: '103', content: ['TB', 'TD', 'TE', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TM', 'TN'], desc: '理工馆中文书库103室', infloor: false },
- { room: '104', content: ['TQ', 'TS', 'TU', 'TV'], desc: '理工馆中文书库104室', infloor: false },
- { room: '106', content: ['O', 'P', 'Q', 'R', 'U', 'V', 'X', 'Z'], desc: '理工馆中文书库106室', infloor: false },
- { room: '107', content: [], desc: '理工馆中文书库107室', infloor: false },
- { room: '108', content: [], desc: '理工馆中文书库108 过刊、最新书库', infloor: false },
- { room: '202', content: [], desc: '报刊阅览室', infloor: false },
- ]
- },
- onLoad: function (options) {
- wx.showLoading({ title: "等我加载一下~" });
- let codeType = options.codeType ? options.codeType : 'marc';
- this.setData({ code: options.code, codeType: codeType });
- if (codeType == 'marc') {
- this.getBookDetailByMarc(options.code);
- }
- if (codeType == 'isbn') {
- this.getBookDetailByIsbn(options.code);
- }
-
- wx.showShareMenu({
- withShareTicket: true,
- menus: ['shareAppMessage', 'shareTimeline']
- })
- },
- getBookDetailByMarc: function (marc) {
- var _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/marc/${marc}`,
- success: function (res) {
- try {
- _this.bookPossibleInfloor(res.data)
- _this.setData({
- jsonStr: res.data,
- title: _this.getTitleFromBookInfo(res.data.bookInfo),
- isbn: _this.getIsbnFromBookInfo(res.data.bookInfo),
- isLoading: false
- });
- wx.hideLoading();
- } catch (error) {
- wx.showModal({
- title: '嘿嘿嘿',
- content: res.data.message,
- showCancel: false,
- success() { wx.navigateBack({ delta: 1 }) }
- });
- }
- }
- });
- },
- getBookDetailByIsbn: function (isbn) {
- var _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/isbn/${isbn}`,
- success: function (res) {
- if (res.data.length != 0) {
- _this.bookPossibleInfloor(res.data)
- _this.setData({ jsonStr: res.data, title: res.data.bookInfo[0].value, isLoading: false, isbn: isbn });
- wx.hideLoading();
- } else {
- wx.hideLoading();
- wx.showModal({
- title: '温馨提醒',
- content: '图书馆貌似没有这本书',
- showCancel: false,
- success() { wx.navigateBack({ delta: 1 }) }
- });
- }
- }
- });
- },
- goLibrary: function (e) {
- console.log(e.currentTarget.dataset.place);
- var placeArr = ["理工馆", "社科馆"];
- var markerIdArr = [5, 4];
- var result = placeArr.indexOf(e.currentTarget.dataset.place.substr(0, 3));
- console.log(result);
- wx.navigateTo({
- url: '../traffic/navi?markerId=' + markerIdArr[result],
- })
- },
- getIsbnFromBookInfo: function (bookInfo) {
- let isbn = '';
- let pattern = /((978[\--– ])?[0-9][0-9\--– ]{10}[\--– ][0-9xX])|((978)?[0-9]{9}[0-9Xx])/;
- for (let index = 0; index < bookInfo.length; index++) {
- const element = bookInfo[index];
- if (element.name.indexOf('ISBN') >= 0) {
- let isbnMatched = pattern.exec(element.value);
- isbn = isbnMatched == null ? element.value : isbnMatched[1];
- break;
- }
- }
- return isbn;
- },
- getTitleFromBookInfo: function (bookInfo) {
- let title = '';
- let pattern = /(.*?)\//;
- for (let index = 0; index < bookInfo.length; index++) {
- const element = bookInfo[index];
- if (element.name.indexOf('题名') >= 0) {
- let titleMatched = pattern.exec(element.value);
- title = titleMatched == null ? element.value : titleMatched[1];
- break;
- }
- }
- return title;
- },
- go2Douban: function () {
- var _this = this;
- const isbn = _this.data.isbn;
- wx.request({
- url: `${app.globalData.domain}/book/isbn/douban/${isbn}`,
- success: function (res) {
- if (res.data.code == 301) {
- wx.navigateToMiniProgram({
- appId: 'wx2f9b06c1de1ccfca',
- path: `pages/subject/subject?id=${res.data.id}&type=book`
- })
- } else {
- wx.showToast({ title: '豆瓣未收录', icon: 'none' });
- }
- }
- });
- },
- go2Dangdang: function () {
- const title = this.data.title;
- wx.navigateToMiniProgram({
- appId: 'wx7bb576902363f4ff',
- path: `pages/search/index?keyword=${title}&cid=0`
- })
- },
- bookPossibleInfloor(book) {
- let callNo = '' // 索书号
- let callNoPrefix = '' // 索书号字母前缀
- let place = ''
- // 索书号
- book.bookInfo.forEach(element => {
- if (element.name.indexOf('中图法分类号') >= 0) {
- callNo = element.value
- return
- }
- })
- // 馆藏地
- for (let index = 0; index < book.collection.length; index++) {
- const bookItem = book.collection[index];
- bookItem.forEach(prop => {
- console.log('prop', prop.title.indexOf('馆藏地'))
- if (prop.title == '索书号' && prop.value.length > 0) callNo = prop.value
- if (prop.title.indexOf('馆藏地') >= 0) place = prop.value
- })
- break
- }
- const pattern = /^[a-zA-Z]+/
- const matchedCallNoPrefix = pattern.exec(callNo)
- callNoPrefix = matchedCallNoPrefix == null ? '' : matchedCallNoPrefix[0]
- // 社科馆图书
- if (place.indexOf('社科馆') >= 0) {
- let socialDistribution = this.data.socialDistribution
- if (place.indexOf('音像制品') === -1) {
- socialDistribution.forEach((floor, index) => {
- if (floor.content.includes(callNoPrefix)) socialDistribution[index].infloor = true
- })
- }
- if (place.indexOf('新书库') >= 0 || place.indexOf('音像制品') >= 0) socialDistribution[3].infloor = true
- this.setData({ socialDistribution: socialDistribution, place: place, placeType: 0 })
- return
- }
- // 理工馆图书
- let industryDistribution = this.data.industryDistribution
- if (place.indexOf('理工馆') >= 0) {
- industryDistribution.forEach((room, index) => {
- if (room.content.includes(callNoPrefix)) industryDistribution[index].infloor = true
- })
- }
- if (place.indexOf('新书库') >= 0) industryDistribution[6].infloor = true
- if (place.indexOf('期刊室') >= 0) industryDistribution[industryDistribution.length - 1].infloor = true
- this.setData({ industryDistribution: industryDistribution, place: place, placeType: 1 })
- console.log('馆藏地,索书号', callNo, place)
- },
- distributionChanged() {
- const currentValue = this.data.showDistribution
- this.setData({ showDistribution: !currentValue })
- },
- showCollectionChanged() {
- const currentValue = this.data.showCollection
- this.setData({ showCollection: !currentValue })
- },
- showBookInfoChanged() {
- const currentValue = this.data.showBookInfo
- this.setData({ showBookInfo: !currentValue })
- },
- showSameAuthorChanged() {
- const currentValue = this.data.showSameAuthor
- this.setData({ showSameAuthor: !currentValue })
- },
- onShareAppMessage: function (res) {
- let code = this.data.code;
- let codeType = this.data.codeType;
- if (this.data.isbn.length >= 13) {
- code = this.data.isbn;
- codeType = 'isbn';
- }
- return {
- title: '《' + this.data.title + '》 - 贝壳小盒子',
- path: `pages/books/detail?code=${code}&codeType=${codeType}`
- }
- },
-});
\ No newline at end of file
diff --git a/pages/books/detail.json b/pages/books/detail.json
deleted file mode 100644
index 8835af0..0000000
--- a/pages/books/detail.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/pages/books/detail.wxml b/pages/books/detail.wxml
deleted file mode 100644
index 637973d..0000000
--- a/pages/books/detail.wxml
+++ /dev/null
@@ -1,212 +0,0 @@
-
- {{title}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/detail.wxss b/pages/books/detail.wxss
deleted file mode 100644
index 4a3ed29..0000000
--- a/pages/books/detail.wxss
+++ /dev/null
@@ -1,10 +0,0 @@
-/* pages/books/detail.wxss */
-@import "../index/index.wxss";
-
-page{
- background: var(--cyan);
-}
-
-.infloor {
- border: 1px solid #1CBBB4;
-}
\ No newline at end of file
diff --git a/pages/books/hot/index.js b/pages/books/hot/index.js
deleted file mode 100644
index dc9fc10..0000000
--- a/pages/books/hot/index.js
+++ /dev/null
@@ -1,195 +0,0 @@
-// pages/books/hot/index.js
-const app = getApp();
-Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- title: '热门图书',
- isLoading: '加载中',
- screenHeight: '900',
- orderby: 'lend',
- type: 'ALL',
- orderbyList: [{
- title: '借阅',
- value: 'lend'
- }, {
- title: '评分',
- value: 'score'
- }, {
- title: '收藏',
- value: 'shelf'
- }, {
- title: '浏览',
- value: 'book'
- }],
- typeList: [{
- title: '总体排行',
- value: 'ALL'
- }, {
- title: '马列主义、毛泽东思想、邓小平理论',
- value: 'A'
- }, {
- title: '哲学、宗教',
- value: 'B'
- }, {
- title: '社会科学总论',
- value: 'C'
- }, {
- title: '政治、法律',
- value: 'D'
- }, {
- title: '军事',
- value: 'E'
- }, {
- title: '经济',
- value: 'F'
- }, {
- title: '文化、科学、教育、体育',
- value: 'G'
- }, {
- title: '语言、文字',
- value: 'H'
- }, {
- title: '文学',
- value: 'I'
- }, {
- title: '艺术',
- value: 'J'
- }, {
- title: '历史、地理',
- value: 'K'
- }, {
- title: '自然科学总论',
- value: 'N'
- }, {
- title: '自然科学总论',
- value: 'N'
- }, {
- title: '自然科学总论',
- value: 'O'
- }, {
- title: '天文学、地球科学',
- value: 'P'
- }, {
- title: '生物科学',
- value: 'Q'
- }, {
- title: '医药、卫生',
- value: 'R'
- }, {
- title: '农业科学',
- value: 'S'
- }, {
- title: '工业技术',
- value: 'T'
- }, {
- title: '交通运输',
- value: 'U'
- }, {
- title: '航空、航天',
- value: 'V'
- }, {
- title: '环境科学,安全科学',
- value: 'X'
- }, {
- title: '综合性图书',
- value: 'Z'
- }],
- type: 'ALL',
- booklist: []
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- const type = options.type ? options.type : 'ALL';
- const orderby = options.orderby ? options.orderby : 'lend';
- this.inital(type, orderby);
- this.getHotBooksData(orderby, type);
- },
- inital: function (type, orderby) {
- const device = wx.getSystemInfoSync();
- this.setData({ screenHeight: device.screenHeight, type: type, orderby: orderby });
- wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'] });
- },
- getHotBooksData: function (orderby = 'lend', type = 'ALL') {
- const _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/hot/${orderby}/${type}`,
- timeout: app.globalData.requestTimeout,
- success: (res) => {
- _this.setData({booklist: res.data, isLoading: false})
- wx.vibrateShort({ type: 'medium' })
- }
- })
- },
- typeChanged: function (e) {
- const type = this.data.typeList[e.currentTarget.dataset.index].value;
- const orderby = this.data.orderby;
- // console.log(type, orderby);
- this.setData({ type: type});
- this.getHotBooksData(orderby, type);
- },
- orderbyChanged: function (e) {
- const orderby = this.data.orderbyList[e.currentTarget.dataset.index].value;
- const type = this.data.type;
- // console.log(type, orderby);
- this.setData({ orderby: orderby});
- this.getHotBooksData(orderby, type);
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- // var _this = this;
- // setTimeout(function () { _this.setData({ isLoading: false }) }, 1000);
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
-
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- return {
- path: `pages/books/hot/index?orderby=${this.data.orderby}&type=${this.data.type}`,
- title: `【贝壳小盒子】 - 北科天院图书馆热门图书排行榜单~`,
- }
- }
-})
\ No newline at end of file
diff --git a/pages/books/hot/index.json b/pages/books/hot/index.json
deleted file mode 100644
index 2e3378c..0000000
--- a/pages/books/hot/index.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {
- "tips": "../../index/component/tips"
- }
-}
\ No newline at end of file
diff --git a/pages/books/hot/index.wxml b/pages/books/hot/index.wxml
deleted file mode 100644
index 4653b68..0000000
--- a/pages/books/hot/index.wxml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
- {{title}}
-
-
-
-
-
-
-
-
-
-
- {{item.title}}
-
-
-
-
-
-
- {{item.value}} {{item.title}}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/hot/index.wxss b/pages/books/hot/index.wxss
deleted file mode 100644
index 23f43f7..0000000
--- a/pages/books/hot/index.wxss
+++ /dev/null
@@ -1,2 +0,0 @@
-/* pages/books/hot/index.wxss */
-@import "../../school/cert.wxss";
\ No newline at end of file
diff --git a/pages/books/index.js b/pages/books/index.js
deleted file mode 100644
index 5753577..0000000
--- a/pages/books/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// pages/books/index.js
-var app = getApp();
-Page({
- /**
- * 页面的初始数据
- */
- data: {
- keyword: "",
- searchType: '',
- searchResult: {},
- isLoading: true
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function(options) {
- const searchType = options.type;
- const keyword = options.keyword;
- if (keyword.indexOf('978') >= 0) {
- wx.redirectTo({ url: `../books/detail?code=${keyword}&codeType=isbn` })
- return
- }
- // console.log(options)
- this.setData({ searchType: searchType, keyword: keyword })
- wx.showLoading({ title: '在找了在找了...' });
- var _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/search`,
- data: {type: searchType, keyword: keyword},
- timeout: app.globalData.requestTimeout,
- method: 'GET',
- success: function(res) {
- wx.hideLoading({})
- _this.setData({ isLoading: '' })
- if (res.data.total > 0) {
- _this.setData({
- searchResult: res.data
- })
- }
- }
- })
- wx.showShareMenu({
- withShareTicket: true,
- menus: ['shareAppMessage', 'shareTimeline']
- })
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function() {
- return {
- path: `pages/books/index?keyword=${this.data.keyword}&type=${this.data.searchType}`,
- title: `图书馆有这么多关于【${this.data.keyword}】的书啊~`,
- }
- }
-})
\ No newline at end of file
diff --git a/pages/books/index.json b/pages/books/index.json
deleted file mode 100644
index 10ada01..0000000
--- a/pages/books/index.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {
- "tips": "../index/component/tips"
- }
-}
\ No newline at end of file
diff --git a/pages/books/index.wxml b/pages/books/index.wxml
deleted file mode 100644
index 2fd0197..0000000
--- a/pages/books/index.wxml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- 图书查询
-
-
-
-
-
-
-
-
-
- 【{{keyword}}】相关的图书
-
-
-
- 在经历{{searchResult.cost}}秒的折腾后,我们为您找到了以下{{searchResult.total}}条内容
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/index.wxss b/pages/books/index.wxss
deleted file mode 100644
index d06fa53..0000000
--- a/pages/books/index.wxss
+++ /dev/null
@@ -1,6 +0,0 @@
-/* pages/books/index.wxss */
-@import "../school/cert.wxss";
-
-page {
- background: var(--cyan);
-}
\ No newline at end of file
diff --git a/pages/books/overdue/index.js b/pages/books/overdue/index.js
deleted file mode 100644
index e279b31..0000000
--- a/pages/books/overdue/index.js
+++ /dev/null
@@ -1,136 +0,0 @@
-// pages/books/overdue/index.js
-const app = getApp();
-Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- title: '图书超期',
- isLoading: '加载中',
- screenHeight: '900',
- type: 'bulletin',
- uid: '',
- myFine: '',
- typeList: [{
- title: '超期催还',
- value: 'bulletin'
- }, {
- title: '超期欠款',
- value: 'debt'
- }],
- datalist: []
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- const type = options.type ? options.type : 'bulletin';
- this.inital(type);
- this.getDatalist(type);
- },
- inital: function (type) {
- const device = wx.getSystemInfoSync();
- const uid = app.globalData.edusysUserInfo.uid;
- this.setData({ screenHeight: device.screenHeight, type: type, uid: uid });
- wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'] });
- },
- typeChanged: function (e) {
- const type = this.data.typeList[e.currentTarget.dataset.index].value;
- // console.log(type);
- this.setData({ type: type});
- this.getDatalist(type);
- },
- getDatalist: function (type = 'bulletin', page = '1') {
- const _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/overdue/${type}`,
- data: { page: page},
- timeout: app.globalData.requestTimeout,
- success: (res) => {
- _this.setData({datalist: res.data, isLoading: false})
- wx.vibrateShort({ type: 'medium' })
- }
- })
- },
- // 上一页
- lastPage: function () {
- const current = this.data.datalist.pagination.current;
- const targetPage = current > 1 ? Number(current) - 1 : 2;
- this.getDatalist(this.data.type, targetPage);
- },
- // 下一页
- nextPage: function () {
- const current = this.data.datalist.pagination.current;
- const last = this.data.datalist.pagination.last;
- const targetPage = current < last ? Number(current) + 1 : last;
- this.getDatalist(this.data.type, targetPage);
- },
- searchInput: function (e) {
- const value = e.detail.value;
- // console.log(value)
- this.setData({ uid: value });
- },
- search: function () {
- const uid = this.data.uid;
- const _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/fine/${uid}`,
- timeout: app.globalData.requestTimeout,
- success: (res) => {
- _this.setData({myFine: res.data})
- wx.vibrateShort({ type: 'medium' })
- }
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- var _this = this;
- setTimeout(function () { _this.setData({ isLoading: false }) }, 1000);
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
-
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
-
- }
-})
\ No newline at end of file
diff --git a/pages/books/overdue/index.json b/pages/books/overdue/index.json
deleted file mode 100644
index 8835af0..0000000
--- a/pages/books/overdue/index.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/pages/books/overdue/index.wxml b/pages/books/overdue/index.wxml
deleted file mode 100644
index 30ceabc..0000000
--- a/pages/books/overdue/index.wxml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
- {{title}}
-
-
-
-
-
-
-
-
-
-
- {{item.title}}
-
-
-
-
-
- 检索我的借阅超期信息
-
-
-
- 证件号
-
-
-
-
-
-
-
-
-
- 查找结果
-
-
-
-
- 您有{{myFine.overdueCount}}条超期图书记录 \n {{myFine.fineCount}}条欠款记录,共{{myFine.fineSum}}元\n
-
- 您所查找的证件号:{{myFine.opacid}}
-
-
-
-
-
-
-
- 书已经超期,请及时归还
- 有超期欠款未缴纳
-
-
-
-
-
-
-
-
-
-
- {{datalist.pagination.current}} /
- {{datalist.pagination.last}}
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/overdue/index.wxss b/pages/books/overdue/index.wxss
deleted file mode 100644
index 4d83faf..0000000
--- a/pages/books/overdue/index.wxss
+++ /dev/null
@@ -1,2 +0,0 @@
-/* pages/books/overdue/index.wxss */
-@import "../../school/cert.wxss";
\ No newline at end of file
diff --git a/pages/books/recommend/index.js b/pages/books/recommend/index.js
deleted file mode 100644
index ba7a018..0000000
--- a/pages/books/recommend/index.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// pages/books/recommend/index.js
-const app = getApp();
-Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- title: '图书荐购',
- isLoading: '加载中',
- screenHeight: '900',
- datalist: []
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- this.inital();
- },
- inital: function () {
- this.getRecommendBooks();
- },
- getRecommendBooks:function () {
- var _this = this
- wx.request({
- url: `${app.globalData.domain}/book/recommend/history`,
- timeout: app.globalData.requestTimeout,
- success: function(res) {
- _this.setData({
- datalist: res.data
- })
- }
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- var _this = this;
- setTimeout(function () { _this.setData({ isLoading: false }) }, 1000);
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
-
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
-
- }
-})
\ No newline at end of file
diff --git a/pages/books/recommend/index.json b/pages/books/recommend/index.json
deleted file mode 100644
index 8835af0..0000000
--- a/pages/books/recommend/index.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/pages/books/recommend/index.wxml b/pages/books/recommend/index.wxml
deleted file mode 100644
index 7592d49..0000000
--- a/pages/books/recommend/index.wxml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- {{title}}
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/recommend/index.wxss b/pages/books/recommend/index.wxss
deleted file mode 100644
index c79a027..0000000
--- a/pages/books/recommend/index.wxss
+++ /dev/null
@@ -1,2 +0,0 @@
-/* pages/books/recommend/index.wxss */
-@import "../../school/cert.wxss";
\ No newline at end of file
diff --git a/pages/books/search.js b/pages/books/search.js
deleted file mode 100644
index b46a07d..0000000
--- a/pages/books/search.js
+++ /dev/null
@@ -1,108 +0,0 @@
-// pages/books/search.js
-var app = getApp();
-Page({
- /**
- * 页面的初始数据
- */
- data: {
- searchType: '02',
- radioItems: [
- { name: '书名', value: '02', checked: true },
- { name: '作者', value: '03' },
- { name: '主题', value: '04' },
- { name: '出版社', value: '09' }
- ],
- keyword: '',
- hotwords: [],
- shelfCatalog: []
- },
- onLoad: function() {
- this.inital()
- },
- inital: function () {
- this.getHotKeyword()
- this.getShelfCatalog()
-
- wx.showShareMenu({
- withShareTicket: true,
- menus: ['shareAppMessage', 'shareTimeline']
- })
- },
- getHotKeyword: function () {
- var _this = this
- wx.request({
- url: `${app.globalData.domain}/book/hot/keyword/top10`,
- timeout: app.globalData.requestTimeout,
- success: function (res) {
- _this.setData({ hotwords: res.data })
- }
- })
- },
- getShelfCatalog: function () {
- var _this = this
- wx.request({
- url: `${app.globalData.domain}/book/shelf/catalog`,
- timeout: app.globalData.requestTimeout,
- success: function (res) {
- _this.setData({ shelfCatalog: res.data })
- }
- })
- },
- radioChange: function (e) {
- this.setData({ searchType: e.detail.value })
- var radioItems = this.data.radioItems;
- for (var i = 0, len = radioItems.length; i < len; ++i) {
- radioItems[i].checked = radioItems[i].value == e.detail.value;
- }
- this.setData({
- radioItems: radioItems,
- });
- },
- keywordInput: function (e) {
- this.setData({
- keyword: e.detail.value
- });
- },
- searchBook: function () {
- const searchType = this.data.searchType;
- const keyword = this.data.keyword;
- // console.log(searchType, keyword);
- if(keyword.length == 0){
- wx.showToast({ title: '请输入检索关键字', icon: 'none' });
- return
- }
- wx.showLoading({ title: '在找了在找了...' })
- if (keyword.indexOf('978') >= 0) {
- wx.navigateTo({ url: `../books/detail?code=${keyword}&codeType=isbn` })
- return
- }
- wx.request({
- url: `${app.globalData.domain}/book/search`,
- data: {type: searchType, keyword: keyword},
- method: 'GET',
- success: function (res) {
- wx.hideLoading()
- if (res.data.total == '图书馆系统无响应') {
- wx.showToast({ title: '图书馆OPAC系统无响应', icon: 'none' });
- } else if (res.data.total == 0) {
- wx.showToast({ title: '本馆暂无此书', icon: 'none' });
- } else if (res.data.code == 500) {
- wx.showToast({ title: res.data.message, icon: 'none' });
- } else {
- wx.navigateTo({
- url: `../books/index?type=${searchType}&keyword=${keyword}`,
- })
- }
- }
- })
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- return {
- path: `pages/books/search`,
- title: `图书查找检索 - 贝壳小盒子`,
- }
- }
-})
\ No newline at end of file
diff --git a/pages/books/search.json b/pages/books/search.json
deleted file mode 100644
index 8835af0..0000000
--- a/pages/books/search.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/pages/books/search.wxml b/pages/books/search.wxml
deleted file mode 100644
index a71af4e..0000000
--- a/pages/books/search.wxml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- 贝壳小盒子 - 图书检索
-
-
-
-
-
- 馆藏图书检索
-
-
-
-
-
-
-
-
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
- 热门检索关键词
-
- 储物柜
- {{item}}
-
-
-
-
-
- 学科图书类别导航
-
-
- {{item.title}}
- {{citem.title}}
-
-
-
\ No newline at end of file
diff --git a/pages/books/search.wxss b/pages/books/search.wxss
deleted file mode 100644
index e1166fb..0000000
--- a/pages/books/search.wxss
+++ /dev/null
@@ -1,4 +0,0 @@
-/* pages/books/search.wxss */
-page {
- background-color: var(--wegreen);
-}
\ No newline at end of file
diff --git a/pages/books/shelf.js b/pages/books/shelf.js
deleted file mode 100644
index e1e51f6..0000000
--- a/pages/books/shelf.js
+++ /dev/null
@@ -1,86 +0,0 @@
-// pages/books/shelf.js
-var app = getApp();
-Page({
- /**
- * 页面的初始数据
- */
- data: {
- isLoading: true,
- title: '',
- id: '',
- shelf: [],
- clc: '',
- slc: '',
- shelfType: 'personal',
- year: 5
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- let shelfType = options.shelfType ? options.shelfType : 'personal'; // personal或public
- if (shelfType == 'personal') {
- this.setData({
- title: options.title,
- shelfType: shelfType,
- id: options.id
- })
- this.getShelf(options.id)
- }
- if (shelfType == 'public') {
- this.setData({
- title: options.title,
- clc: options.clc,
- slc: options.slc,
- shelfType: shelfType
- })
- this.getShelfCatalogBooks(options.title, options.clc, options.slc)
- }
-
- wx.showShareMenu({
- withShareTicket: true,
- menus: ['shareAppMessage', 'shareTimeline']
- })
- },
- getShelf: function (id) {
- var _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/shelf/${id}`,
- method: 'GET',
- success: function(res) {
- _this.setData({shelf: res.data, isLoading: ''})
- wx.vibrateShort({ type: 'medium' })
- }
- })
- },
- getShelfCatalogBooks: function (title, clc, slc) {
- var _this = this;
- wx.request({
- url: `${app.globalData.domain}/book/shelf/catalog/books?name=${title}&clc=${clc}&slc=${slc}`,
- method: 'GET',
- timeout: app.globalData.requestTimeout,
- success: function(res) {
- _this.setData({shelf: res.data, isLoading: ''})
- wx.vibrateShort({ type: 'medium' })
- }
- })
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- let para = `?shelfType=${this.data.shelfType}&title=${this.data.title}`
- if (this.data.shelfType == 'personal') {
- para = `${para}&id=${this.data.id}`
- }
- if (this.data.shelfType == 'public') {
- para = `${para}&clc=${this.data.clc}&slc=${this.data.slc}`
- }
-
- return {
- path: `pages/books/shelf?shelfType=${this.data.shelfType}&type=${this.data.searchType}`,
- title: `贝壳小盒子 - 书架【${this.data.title}】`,
- }
- }
-})
\ No newline at end of file
diff --git a/pages/books/shelf.json b/pages/books/shelf.json
deleted file mode 100644
index 10ada01..0000000
--- a/pages/books/shelf.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {
- "tips": "../index/component/tips"
- }
-}
\ No newline at end of file
diff --git a/pages/books/shelf.wxml b/pages/books/shelf.wxml
deleted file mode 100644
index a05afee..0000000
--- a/pages/books/shelf.wxml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- 书架 - {{title}}
-
-
-
-
-
-
-
-
-
- 【{{title}}】书架图书
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/books/shelf.wxss b/pages/books/shelf.wxss
deleted file mode 100644
index 3bf7e42..0000000
--- a/pages/books/shelf.wxss
+++ /dev/null
@@ -1,6 +0,0 @@
-/* pages/books/shelf.wxss */
-@import "../school/cert.wxss";
-
-page {
- background: var(--cyan);
-}
\ No newline at end of file
diff --git a/pages/calendar/calendar.js b/pages/calendar/calendar.js
new file mode 100644
index 0000000..f96b181
--- /dev/null
+++ b/pages/calendar/calendar.js
@@ -0,0 +1,65 @@
+// pages/calendar/calendar.js
+var util = require('../../utils/time.js');
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isLoading: true,
+ jsonContent: ''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ // 调用函数时,传入new Date()参数,返回值是日期和时间
+ var time = util.formatTime(new Date());
+ // 再通过setData更改Page()里面的data,动态更新页面的数据
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/calendar.php',
+ success(res) {
+ console.log(res.data)
+ that.setData({
+ jsonContent: res.data,
+ })
+ setTimeout(function() {
+ that.setData({
+ isLoading: false
+ });
+ }, 800);
+ }
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function() {
+
+ },
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function(res) {
+ return {
+ title: '北京科技大学天津学院校历',
+ path: 'pages/calendar/calendar',
+ }
+ },
+ showPic: function() {
+ wx.previewImage({
+ current: 'https://z4a.net/images/2019/06/22/19-20II.jpg', // 当前显示图片的http链接
+ urls: ["https://z4a.net/images/2019/06/22/19-20II.jpg"] // 需要预览的图片http链接列表
+ })
+ }
+})
\ No newline at end of file
diff --git a/pages/calendar/calendar.json b/pages/calendar/calendar.json
new file mode 100644
index 0000000..c684348
--- /dev/null
+++ b/pages/calendar/calendar.json
@@ -0,0 +1,5 @@
+{
+ "navigationBarBackgroundColor": "#030c13",
+ "backgroundColor": "#030c13",
+ "navigationBarTitleText": "校历 - 贝壳小盒子"
+}
\ No newline at end of file
diff --git a/pages/calendar/calendar.wxml b/pages/calendar/calendar.wxml
new file mode 100644
index 0000000..17e9854
--- /dev/null
+++ b/pages/calendar/calendar.wxml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+ 校历
+
+ {{jsonContent.schoolYear}}学年 第{{jsonContent.semester}}学期\n
+ {{jsonContent.month}} 月{{jsonContent.day}} 日(第 {{jsonContent.teachWeek}} 周) {{jsonContent.dayOfWeek}}
+ {{jsonContent.month}} 月 {{jsonContent.day}} 日(假期) {{jsonContent.dayOfWeek}}
+
+
+
+
+
+
+
+ 开学
+
+ {{jsonContent.startClassDate}}
+
+
+ {{jsonContent.gap2StartClass}}天
+
+
+
+
+
+ 本周(第{{jsonContent.teachWeek}}周)事项
+
+
+ 大一
+ {{jsonContent.thisWeekWork.freshmanWork}}
+
+
+ 大二
+ {{jsonContent.thisWeekWork.sophomoreWork}}
+
+
+ 大三
+ {{jsonContent.thisWeekWork.juniorWork}}
+
+
+ 大四
+ {{jsonContent.thisWeekWork.seniorWork}}
+
+
+
+
+
+
+
+
+
+
+
+ 下周(第{{jsonContent.teachWeek+1}}周)事项
+
+
+ 大一
+ {{jsonContent.nextWeekWork.freshmanWork}}
+
+
+ 大二
+ {{jsonContent.nextWeekWork.sophomoreWork}}
+
+
+ 大三
+ {{jsonContent.nextWeekWork.juniorWork}}
+
+
+ 大四
+ {{jsonContent.nextWeekWork.seniorWork}}
+
+
+
+
+
+
+
+
+
+ {{item.holidayName}}
+
+ {{item.holidayRestInfo}}
+ {{item.holidayDate}}
+
+
+ {{item.gapDays}}天
+
+
+
+
+
+
+
+
+
+ 考试周
+
+ {{jsonContent.examWeekDate}}
+
+
+ {{jsonContent.gap2ExamWeek}}天
+
+
+
+
+
+
+
+
+ 放{{jsonContent.month
+ <8? '暑': '寒'}}假
+ {{jsonContent.vactionDate}}
+
+
+ {{jsonContent.gap2Vaction}}天
+
+
+
+
+
+
+
+ 查看校历
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/calendar/calendar.wxss b/pages/calendar/calendar.wxss
new file mode 100644
index 0000000..132f6ce
--- /dev/null
+++ b/pages/calendar/calendar.wxss
@@ -0,0 +1,227 @@
+/* pages/calendar/calendar.wxss */
+@import "../common/weui.wxss";
+
+Page {
+ background-color: #030c13;
+}
+
+.page__hd {
+ padding: 40px;
+}
+
+.page__bd_spacing {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+.page__ft {
+ padding-bottom: 10px;
+ text-align: center;
+}
+
+.page__title {
+ color: #fff;
+ margin-left: 30rpx;
+ text-align: left;
+ font-size: 20px;
+ font-weight: 400;
+}
+
+.page__desc {
+ margin-top: 5px;
+ color: #fee;
+ text-align: left;
+ font-size: 30rpx;
+ margin-left: 30rpx;
+}
+
+.panelBK {
+ margin: 25rpx;
+ background-color: #fff;
+ padding: 25rpx 0;
+ border-radius: 25rpx;
+}
+
+.setCenter {
+ text-align: center;
+}
+
+.shareIcon {
+ width: 26px;
+ height: 26px;
+ vertical-align: text-bottom;
+}
+
+.page__bd {
+ margin-top: 30rpx;
+ padding-bottom: 1rpx;
+}
+
+.page__hd {
+ padding: 20rpx 35rpx 0 35rpx;
+}
+
+.weui-items {
+ margin: 30rpx 20rpx;
+}
+
+.weui-item {
+ margin: 30rpx 5rpx;
+ padding: 20rpx;
+ color: #fff;
+ height: 150rpx;
+}
+
+.weui-flex {
+ justify-content: space-between;
+ align-items: center;
+}
+
+.background-1 {
+ background: #ad8dd6;
+}
+
+.background-2 {
+ background: #ff9abc;
+}
+
+.thisWeek {
+ color: #010c10;
+ background: #18febd;
+ height: 450rpx;
+}
+
+.nextWeek {
+ color: #010c10;
+ background: #4ac3d6;
+ height: 450rpx;
+}
+
+.kaixue {
+ background: #3494e6;
+}
+
+.hanshujia {
+ background: #f80759;
+}
+
+.kaoshi {
+ background: #ff7a5b;
+}
+
+.work {
+ color: #010c10;
+ font-size: 32rpx;
+}
+
+.wraper {
+ /* background: linear-gradient(to right, #77a1d3, #79cbca, #e684ae); */
+ color: #d6eceb;
+ height: 150rpx;
+ border-radius: 15px;
+ text-align: left;
+ margin-top: -50rpx;
+}
+
+.tt {
+ color: #010c10;
+ margin-bottom: 15rpx;
+ font-size: 42rpx;
+ text-align: center;
+}
+
+.warmtips {
+ text-align: center;
+ color: #e5f6f5;
+ font-size: 42rpx;
+}
+
+.weui-item__title {
+ font-size: 42rpx;
+}
+
+.weui-item__desc {
+ font-size: 28rpx;
+}
+
+.border-shadow {
+ border-radius: 15rpx;
+}
+
+.clear {
+ position: inherit;
+ display: inherit;
+ margin-left: inherit;
+ margin-right: inherit;
+ padding-left: 0;
+ padding-right: 0;
+ box-sizing: inherit;
+ font-size: inherit;
+ text-align: inherit;
+ text-decoration: inherit;
+ line-height: inherit;
+ border-radius: inherit;
+ -webkit-tap-highlight-color: inherit;
+ overflow: inherit;
+ color: inherit;
+ background-color: inherit;
+}
+
+button::after {
+ content: inherit;
+ width: inherit;
+ height: inherit;
+ position: inherit;
+ top: inherit;
+ left: inherit;
+ border: inherit;
+ -webkit-transform: inherit;
+ transform: inherit;
+ -webkit-transform-origin: inherit;
+ transform-origin: inherit;
+ box-sizing: inherit;
+ border-radius: inherit;
+}
+
+.button-sp-area {
+ margin: 0 auto;
+ padding-top: 15px;
+ width: 60%;
+}
+
+.mini-btn {
+ margin-right: 5px;
+}
+
+.login-btn {
+ font-size: 13pt;
+ line-height: 85rpx;
+ height: 85rpx;
+ background: #18febd;
+ color: #010c10;
+ text-align: center;
+ border-radius: 15rpx;
+}
+
+/* 悬浮按钮的 */
+
+.round-click {
+ height: 120rpx;
+ width: 120rpx;
+ background-color: #bc3e49;
+ border-radius: 100%;
+ position: fixed;
+ bottom: 50rpx;
+ right: 25rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 9;
+}
+
+.round-click text {
+ font-size: 32rpx;
+ max-width: 80rpx;
+ color: #fff;
+ text-align: center;
+}
diff --git a/pages/cet/find.js b/pages/cet/find.js
new file mode 100644
index 0000000..66a6ed4
--- /dev/null
+++ b/pages/cet/find.js
@@ -0,0 +1,139 @@
+// pages/cet/find.js
+var app = getApp()
+Page({
+ data: {
+ needCookie: '',
+ needPcookie: '',
+ PreInfo: {},
+ defaultUid: ''
+ },
+ onLoad: function() {
+
+ var nowTimestamp = new Date().getTime();
+ var stopCanQueryTime = '1582300800000';
+
+
+ if (nowTimestamp > stopCanQueryTime) {
+ wx.showToast({
+ title: '已超过准考证查询时间,可能查询不到',
+ icon: 'none',
+ duration: 10000
+ })
+ return;
+ }
+
+ var that = this;
+ var uid = wx.getStorageSync('uid');
+ that.setData({
+ defaultUid: uid
+ })
+ this.getVcode();
+ },
+ submitInfo: function(e) {
+ wx.showToast({
+ title: "查询中...",
+ icon: "loading",
+ duration: 10000
+ })
+ var that = this;
+ var uid = e.detail.value.username;
+ var idcard = e.detail.value.idcard;
+ var name = e.detail.value.name;
+ var vcode = e.detail.value.vcode;
+ if ((uid.length == 0 || idcard.length != 18) || (vcode.length != 4 || name.length == 0)) {
+ wx.showToast({
+ title: '输入有误',
+ image: '/images/info.png',
+ icon: 'none',
+ duration: 1000
+ });
+ } else {
+ wx.request({
+ url: app.globalData.apiURL + '/CET/findCETNO.php',
+ method: "POST",
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ data: {
+ uid: uid,
+ idcard: idcard,
+ name: name,
+ cookie: that.data.PreInfo.cookie,
+ vcode: vcode,
+ pcookie: that.data.PreInfo.pcookie,
+ },
+ success: function(res) {
+ console.log(res.data)
+ wx.hideToast()
+ // console.log(res.data);
+ try {
+ if (res.data[0].TestTicket.length == 15) {
+ var modalText = res.data[0].SubjectName + ':' + res.data[0].TestTicket;
+ if (res.data.length > 1) {
+ modalText = res.data[0].SubjectName + ':' + res.data[0].TestTicket + '\r\n' + res.data[1].SubjectName + ':' + res.data[1].TestTicket
+ }
+ wx.showModal({
+ title: '查询成功',
+ content: modalText,
+ showCancel: false,
+ confirmText: '复制',
+ success(ress) {
+ if (ress.confirm) {
+ wx.setClipboardData({
+ data: modalText,
+ success(ress) {
+ wx.showToast({
+ icon: 'success',
+ title: '已复制到粘贴板',
+ })
+ }
+ })
+ }
+ }
+ })
+ }
+ } catch (error) {
+ wx.showToast({
+ icon: 'none',
+ title: res.data.desc,
+ })
+ }
+ },
+ complete: function() {
+ that.getVcode();
+ }
+ })
+ }
+ },
+ getVcode: function() {
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/CET/getVcode.php',
+ success: function(res) {
+ // console.log(res.data);
+ that.setData({
+ PreInfo: res.data,
+ })
+ }
+ });
+ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function(res) {
+ if (res.from === 'button') {
+ // 来自页面内转发按钮
+ }
+ return {
+ title: '忘记四六级准考证号?来小盒子查查看',
+ path: 'pages/cet/find',
+ imageUrl: 'https://z4a.net/images/2020/02/13/cetfind.jpg',
+ success: function(res) {
+ // 转发成功
+ },
+ fail: function(res) {
+ // 转发失败
+ }
+ }
+ },
+})
\ No newline at end of file
diff --git a/pages/cet/find.json b/pages/cet/find.json
new file mode 100644
index 0000000..9dea0a5
--- /dev/null
+++ b/pages/cet/find.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarBackgroundColor": "#0FA0D8",
+ "navigationBarTitleText": "四六级准考证找回"
+}
\ No newline at end of file
diff --git a/pages/cet/find.wxml b/pages/cet/find.wxml
new file mode 100644
index 0000000..95bf0e2
--- /dev/null
+++ b/pages/cet/find.wxml
@@ -0,0 +1,41 @@
+
+
+
+ 为避免(2月21日)当天服务器压力过大,请务必提前几天查询\n 查询成功后建议截图保存或记录好自己的准考证号
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/cet/find.wxss b/pages/cet/find.wxss
new file mode 100644
index 0000000..1f6cb16
--- /dev/null
+++ b/pages/cet/find.wxss
@@ -0,0 +1,33 @@
+/* pages/cet/find.wxss */
+@import "../bookSearch/isbn/iputIsbn.wxss";
+
+Page {
+ /* background-color: #7acfa6; */
+ background: linear-gradient(45deg, #0081ff, #1cbbb4);
+}
+
+.ads {
+ padding: 10rpx 15rpx 0rpx 15rpx;
+}
+
+.bg-white {
+ box-shadow: 1rpx #1cbbb4;
+ background-color: var(--white);
+ color: var(--darkGray);
+}
+
+.transparent {
+ background: rgba(255, 255, 255, 0.35);
+}
+
+
+.input-group {
+ display: flex;
+ align-items: center;
+ padding: 25rpx 10rpx;
+ margin: 40rpx 3%;
+ background: #fff;
+ border-radius: 15px;
+ border: 2px solid #f4f4f4;
+ transition: all 0.25s ease-in-out;
+}
\ No newline at end of file
diff --git a/pages/classQuery/index.js b/pages/classQuery/index.js
new file mode 100644
index 0000000..68dbf9a
--- /dev/null
+++ b/pages/classQuery/index.js
@@ -0,0 +1,406 @@
+//获取应用实例
+var app = getApp();
+Page({
+ data: {
+ uid: '',
+ pwd: '',
+ nickName: '',
+ remind: '加载中',
+ isLoading: true,
+ _days: ['一', '二', '三', '四', '五', '六', '日'],
+ activeClass: '',
+ activeClassItem: 0,
+ painting: {},
+ shareImage: '',
+ whichDayOfWeek: '',
+ scroll: {
+ left: 0 //判断今天是不周末,是的话滚一下
+ },
+ timeRow: [{
+ l1: '第一小节',
+ l2: '第二小节',
+ t1: '8:00-8:45',
+ t2: '8:50-9:35'
+ },
+ {
+ l1: '第三小节',
+ l2: '第四小节',
+ t1: '9:55-10:40',
+ t2: '10:45-11:30'
+ },
+ {
+ l1: '第五小节',
+ l2: '第六小节',
+ t1: '13:10-13:55',
+ t2: '14:00-14:45'
+ },
+ {
+ l1: '第七小节',
+ l2: '第八小节',
+ t1: '15:00-15:45',
+ t2: '15:50-16:35'
+ },
+ {
+ l1: '第九小节',
+ l2: '第十小节',
+ t1: '16:50-17:35',
+ t2: '17:40-18:25'
+ },
+ ],
+ classJson: '',
+ targetLessons: [],
+ targetX: 0, //target x轴top距离
+ targetY: 0, //target y轴left距离
+ targetDay: 0, //target day
+ targetWid: 0, //target wid
+ targetI: 0, //target 第几个active
+ targetLen: 0, //target 课程长度
+ blur: false,
+ is_vacation: false, // 是否为假期
+ },
+ onLoad: function(options) {
+ console.log('openID:' + app.globalData.openid)
+
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ var courseCache = wx.getStorageSync('personal19Class');
+ var cookie = options.cookie;
+ var vcode = options.vcode;
+
+ if ((typeof(options.cookie) == 'undefined' || typeof(options.vcode) == 'undefined') && courseCache.length == 0) {
+ wx.redirectTo({
+ url: '/pages/index/vcode?to=grkb&update=0',
+ })
+ }
+ var that = this;
+ that.setInfo();
+ console.log(pwd)
+ that.setData({
+ uid: uid,
+ pwd: pwd,
+ })
+
+
+ let showCache = true;
+ if (options.update == '1') {
+ showCache = false;
+ that.getTable(uid, pwd, false, cookie, vcode);
+ }
+ if (options.isShareFrom == 'tiue') {
+ showCache = false;
+ that.getTable(options.uid, options.pwd, showCache, 'cookie', 'code');
+ }
+
+ if (courseCache != "" && showCache) {
+ that.setData({
+ uid: uid,
+ pwd: pwd,
+ classJson: courseCache,
+ isLoading: false
+ })
+ } else if ((uid == '' || pwd == '') || (vcode == '' || cookie == '')) {
+ wx.navigateTo({
+ url: '/pages/index/index'
+ })
+
+ } else {
+ that.getTable(uid, pwd, false, cookie, vcode);
+ }
+
+ that.setData({
+ nickName: app.globalData.nickName
+ })
+ },
+ bindGetUserInfo(e) {
+ console.log(e.detail.userInfo)
+ },
+ setInfo: function() {
+ var that = this;
+ const whichDayOfWeek = new Date().getDay();
+ const arr = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'staturday'];
+ that.setData({
+ whichDayOfWeek: arr[whichDayOfWeek],
+ })
+ },
+ getTable: function(uid, pwd, showCookieClass, cookie, vcode) {
+ var that = this;
+ wx.request({
+ url: app.globalData.apiURL + '/v4/courseTable.php',
+ method: "POST",
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ data: {
+ username: uid,
+ password: pwd,
+ cookie: cookie,
+ vcode: vcode,
+ openid: app.globalData.openid,
+ },
+ success: function(res) {
+ that.setData({
+ classJson: res.data,
+ isLoading: false
+ })
+ console.log(res.data);
+ if (res.data.status == 200) {
+ wx.setStorageSync('personal19Class', res.data);
+ wx.showToast({
+ title: "刷新完成",
+ icon: "succeed",
+ duration: 2000
+ })
+ }
+ if (res.data.status == 401) {
+ wx.navigateTo({
+ url: '/pages/error/queryerror?ErrorTips=' + "学号密码不对,请重新登录",
+ })
+ }
+ if (res.data.status == 500) {
+ var personalClass = wx.getStorageSync('personal19Class');
+ if (personalClass != "" && showCookieClass == true) {
+ that.setData({
+ classJson: personalClass,
+ isLoading: false
+ })
+ wx.showToast({
+ title: '教务无法访问,当前展示离线缓存课表',
+ icon: 'none',
+ duration: 2000
+ })
+ } else {}
+ }
+ }
+ })
+ },
+ changeActiveItem: function(e) {
+ var that = this;
+ // console.log(e);
+ that.setData({
+ activeClassItem: e.currentTarget.dataset.num,
+ })
+ },
+ onShow: function() {
+ var _this = this;
+
+ },
+ onReady: function() {
+ var that = this;
+ },
+ showDetail: function(e) {
+ console.log(e)
+ // 点击课程卡片后执行
+ var that = this;
+ that.setData({
+ targetX: e.detail.x,
+ targetY: e.detail.y,
+ targetDay: 1,
+ targetWid: 2,
+ targetI: 1,
+ blur: true,
+ activeClass: e.currentTarget.dataset
+ });
+ },
+ goClassPlace: function(ep) {
+ console.log(ep.target.dataset.place);
+ var placeArr = ["1教", "2教", "3教", "4教", "5教", "6教", "7教", "8教", "9教", "10教", "11教", "12教", "理工馆", "社科馆"];
+ var markerIdArr = [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 5, 4];
+ var result = placeArr.indexOf(ep.target.dataset.place.slice(0, -3));
+ // console.log(result);
+ wx.navigateTo({
+ url: '/pages/schoolNav/schoolNav?markerId=' + markerIdArr[result],
+ })
+ },
+ hideDetail: function() {
+ var that = this;
+ // 点击遮罩层时触发,取消主体部分的模糊,清空target
+ that.setData({
+ blur: false,
+ targetLessons: [],
+ targetX: 0,
+ targetY: 0,
+ targetDay: 0,
+ targetWid: 0,
+ targetI: 0,
+ targetLen: 0,
+ activeClassItem: 0,
+ });
+ },
+ catchMoveDetail: function() { /*阻止滑动穿透*/ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function(res) {
+ var that = this;
+ // console.log(res);
+ return {
+ title: that.data.nickName + '的个人课表',
+ path: 'pages/classQuery/index?isShareFrom=true&uid=' + that.data.uid + '&pwd=' + that.data.pwd,
+ }
+ },
+ refreshData: function() {
+ wx.redirectTo({
+ url: '/pages/index/vcode?to=grkb&update=1',
+ })
+ },
+ eventDraw() {
+ var that = this;
+ if (that.data.shareImage != '') {
+ wx.previewImage({
+ urls: [that.data.shareImage],
+ })
+ wx.showToast({
+ title: '图片已存至相册,可发给好友或设为壁纸',
+ icon: 'none',
+ duration: 3000
+ })
+ return
+ }
+ wx.showLoading({
+ title: '绘制分享图片中',
+ mask: true
+ })
+ const deviceInfo = wx.getSystemInfoSync();
+ const screenWidth = deviceInfo.screenWidth;
+ const screenHeight = deviceInfo.screenHeight;
+ let topMargin = 10;
+ if (screenHeight / screenWidth >= 1.8) {
+ //检测是否为全面屏
+ topMargin = 30;
+ }
+ var viewsArr = [{
+ type: 'rect',
+ background: '#fff',
+ top: 0,
+ left: 0,
+ width: screenWidth,
+ height: screenHeight
+ }];
+ //绘制星期
+ const weekArr = ['周一', '周二', '周三', '周四', '周五'];
+ for (let i = 0; i < weekArr.length; i++) {
+ let rowTempArr = {
+ type: 'text',
+ content: weekArr[i],
+ fontSize: 16,
+ color: '#402D16',
+ textAlign: 'left',
+ top: topMargin,
+ left: 30 + (i * ((screenWidth - 30) / weekArr.length)),
+ bolder: true
+ };
+ viewsArr.push(rowTempArr);
+ }
+ //绘制节数
+ for (let i = 1; i <= 12; i++) {
+ let columnTempArr = {
+ type: 'text',
+ content: i,
+ fontSize: 16,
+ color: '#402D16',
+ textAlign: 'center',
+ top: (topMargin - 30) + (i * ((screenHeight - 30) / 12)),
+ left: 10,
+ bolder: true
+ };
+ viewsArr.push(columnTempArr);
+ }
+
+ const allCourseArr = that.data.classJson.course;
+ let j = 0;
+ for (let w in allCourseArr) {
+ if (j < 5) {
+ for (let i in allCourseArr[w]) {
+ try {
+ if (allCourseArr[w][i].courseName.length > 0) {
+ let classTempBgArr = {
+ type: 'rect',
+ background: '#7acfa6',
+ top: (topMargin + 30) + (2 * (i - 1) * ((screenHeight - 30) / 12)),
+ left: Number(30 + (j * ((screenWidth - 30) / weekArr.length))),
+ width: ((screenWidth - 30) / weekArr.length) - 1,
+ height: (1 * ((screenHeight - 30) / 6)) - 1
+ };
+ viewsArr.push(classTempBgArr);
+ let classTextTempArr = {
+ type: 'text',
+ content: allCourseArr[w][i].place + ' ' + allCourseArr[w][i].courseName,
+ fontSize: 16,
+ color: '#fff',
+ textAlign: 'left',
+ top: (topMargin + 30) + (2 * (i - 1) * ((screenHeight - 30) / 12) + 5),
+ left: Number(30 + (j * ((screenWidth - 30) / weekArr.length)) + 5),
+ breakWord: true,
+ MaxLineNumber: 7,
+ width: ((screenWidth - 30) / weekArr.length) - 20
+ };
+ viewsArr.push(classTextTempArr);
+ }
+ } catch (error) {
+ let classTempBgArr = {
+ type: 'rect',
+ background: '#7acfa6',
+ top: (topMargin + 30) + (2 * (i - 1) * ((screenHeight - 30) / 12)),
+ left: Number(30 + (j * ((screenWidth - 30) / weekArr.length))),
+ width: ((screenWidth - 30) / weekArr.length) - 1,
+ height: (1 * ((screenHeight - 30) / 6)) - 1
+ };
+ viewsArr.push(classTempBgArr);
+ let classTextTempArr = {
+ type: 'text',
+ content: allCourseArr[w][i][0].place + allCourseArr[w][i][0].courseName + ' ' + allCourseArr[w][i][1].place + allCourseArr[w][i][1].courseName,
+ fontSize: 16,
+ color: '#fff',
+ textAlign: 'left',
+ top: (topMargin + 30) + (2 * (i - 1) * ((screenHeight - 30) / 12) + 5),
+ left: Number(30 + (j * ((screenWidth - 30) / weekArr.length)) + 5),
+ breakWord: true,
+ MaxLineNumber: 7,
+ width: ((screenWidth - 30) / weekArr.length) - 20
+ };
+ viewsArr.push(classTextTempArr);
+ }
+ }
+ j++;
+ }
+ }
+ var canvasJson = {
+ width: screenWidth,
+ height: screenHeight,
+ views: viewsArr
+ };
+ that.setData({
+ painting: canvasJson
+ })
+ },
+ eventGetImage(event) {
+ var that = this;
+ console.log(event)
+ wx.hideLoading()
+ const {
+ tempFilePath,
+ errMsg
+ } = event.detail
+ if (errMsg === 'canvasdrawer:ok') {
+ this.setData({
+ shareImage: tempFilePath
+ })
+ wx.previewImage({
+ urls: [tempFilePath],
+ })
+ that.eventSave();
+ }
+ },
+ eventSave() {
+ wx.saveImageToPhotosAlbum({
+ filePath: this.data.shareImage,
+ success(res) {
+ wx.showToast({
+ title: '图片已存至相册,可发给好友或设为壁纸',
+ icon: 'none',
+ duration: 3000
+ })
+ }
+ })
+ },
+});
\ No newline at end of file
diff --git a/pages/course/my.json b/pages/classQuery/index.json
similarity index 70%
rename from pages/course/my.json
rename to pages/classQuery/index.json
index da49f2a..8b46196 100644
--- a/pages/course/my.json
+++ b/pages/classQuery/index.json
@@ -1,9 +1,8 @@
-{
+{
"navigationBarBackgroundColor": "#73b4ef",
- "navigationBarTitleText": "我的课表",
+ "navigationBarTitleText": "个人课表 - 贝壳小盒子",
"backgroundColor": "#73b4ef",
"enablePullDownRefresh": false,
- "navigationStyle": "default",
"usingComponents": {
"canvasdrawer": "/utils/canvasdrawer/canvasdrawer"
}
diff --git a/pages/classQuery/index.wxml b/pages/classQuery/index.wxml
new file mode 100644
index 0000000..b39eb86
--- /dev/null
+++ b/pages/classQuery/index.wxml
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+
+
+ {{dates[week-1][0].month}}
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+
+
+
+
+
+
+ 周{{item}}
+
+
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{value.length}}项课程同节异周
+
+ 点击展开查看
+
+
+
+
+
+
+ {{value.place}}
+
+ {{value.courseName}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.l1}}
+ {{item.t1}}
+ {{item.l2}}
+ {{item.t2}}
+
+
+
+
+
+ 第十一节课
+ 19:10-19:55
+ 第十二节课
+ 20:00-20:45
+ 第十三节课
+ 20:50-21:35
+
+
+
+
+
+
+
+
+
+
+ {{activeClass.place}}
+
+ {{activeClass.coursename}}
+
+
+
+
+
+
+
+
+
+
+ {{classJson.teachWeek}}周{{classJson.dayOfWeek}}
+
+
+ 课程{{key+1}}
+
+
+
+
+
+ {{classJson.teachWeek}}周{{classJson.dayOfWeek}}
+ {{classJson.schoolYear}}学年第{{classJson.semester}}学期
+ 更新
+ 存图
+
+
+
+
+
+
+
+
+ {{activeClass.json[activeClassItem].courseName}}
+
+
+
+ 课程
+
+
+ {{activeClass.whichjie}}
+
+ 教师: {{activeClass.json[activeClassItem].teacher}}
+
+
+ 地点: {{activeClass.json[activeClassItem].place}}(📍前往)
+
+
+ 上课周: {{activeClass.json[activeClassItem].teachWeek}}
+
+
+ 上课: {{activeClass.json[activeClassItem].startTime}}
+
+
+ 下课: {{activeClass.json[activeClassItem].endTime}}
+
+
+
+
+
+
+
+
+
+
+ {{activeClass.coursename}}
+
+
+
+ 课程
+
+
+ {{activeClass.whichjie}}
+
+ 教师: {{activeClass.teacher}}
+
+
+ 地点: {{activeClass.place}}(📍前往)
+
+
+ 上课周: {{activeClass.teachweek}}
+
+
+ 上课: {{activeClass.starttime}}
+
+
+ 下课: {{activeClass.endtime}}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/course/my.wxss b/pages/classQuery/index.wxss
similarity index 69%
rename from pages/course/my.wxss
rename to pages/classQuery/index.wxss
index 97ae864..febcab5 100644
--- a/pages/course/my.wxss
+++ b/pages/classQuery/index.wxss
@@ -1,34 +1,45 @@
-/* pages/course/my.wxss */
-@import "../index/login.wxss";
-@import "../../app.wxss";
-
-.container{
+.container {
background-color: #fff;
padding-bottom: 0;
overflow: hidden;
}
+.navText {
+ color: #0069d9;
+}
+
+.bdwz {
+ background-color: #7399ff;
+ color: #fff;
+}
+
/**.main-box**/
-.main-box{
+
+.main-box {
position: relative;
width: 100%;
height: 1328rpx;
display: flex;
flex-direction: row;
padding-bottom: 100rpx;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.main-box-active{
+
+.main-box-active {
padding-bottom: 500rpx;
}
-.blur-area{
+
+.blur-area {
overflow: hidden;
}
-.blur{
- filter: blur(3px);
+
+.blur {
+ filter: blur(3px);
}
+
/**.kb-num-ctn**/
-.kb-num-ctn{
+
+.kb-num-ctn {
position: absolute;
top: 0;
left: 0;
@@ -45,29 +56,34 @@
color: #777;
padding-bottom: 100rpx;
}
-.kb-num-ctn-inner{
+
+.kb-num-ctn-inner {
z-index: 1;
}
-.kb-num-ctn-hide{
- transform: translate3d(-35rpx,0,0);
+
+.kb-num-ctn-hide {
+ transform: translate3d(-35rpx, 0, 0);
}
-.kb-num-ctn view{
+
+.kb-num-ctn view {
height: 100rpx;
line-height: 100rpx;
text-align: center;
}
+
.kb-num-ctn .kb-timeline-tri {
position: absolute;
left: 0;
top: 50%;
- margin-top: 58rpx;
+ margin-top: 58rpx;
width: 0;
height: 0;
line-height: 0;
border: 10rpx solid transparent;
border-left-color: #0069d9;
- opacity: .6;
+ opacity: 0.6;
}
+
.kb-num-ctn .kb-mon {
height: 60rpx;
font-size: 9pt;
@@ -78,26 +94,32 @@
justify-content: center;
border-bottom: 1rpx solid #eee;
}
-.mg-t{
+
+.mg-t {
padding-top: 8rpx;
}
-.mg-8{
+
+.mg-8 {
margin-bottom: 8rpx;
}
-.mg-12{
+
+.mg-12 {
margin-bottom: 12rpx;
}
+
/**.kb-ctn**/
-.kb-ctn{
+
+.kb-ctn {
flex: 1;
width: 100%;
height: 1416rpx;
display: flex;
flex-direction: column;
align-items: stretch;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-title{
+
+.kb-title {
position: absolute;
top: 0;
left: 0;
@@ -109,10 +131,12 @@
margin-left: 35rpx;
color: #777;
}
-.kb-date{
+
+.kb-date {
color: #909090;
}
-.kb-title-item{
+
+.kb-title-item {
flex: 1;
display: flex;
flex-direction: column;
@@ -124,23 +148,36 @@
font-size: 9pt;
line-height: 120%;
}
+.kb-title-itemTime {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ justify-content: center;
+ text-align: center;
+ width: 180rpx;
+ margin-left: 10rpx;
+ font-size: 9pt;
+ line-height: 120%;
+}
-.kb-cards-ctn{
+.kb-cards-ctn {
position: absolute;
top: 0;
left: 0;
flex: 1;
width: 1100rpx;
- height: 1416rpx;
+ height: 1248rpx;
display: flex;
align-items: stretch;
padding: 8rpx 0 12rpx 10rpx;
margin-left: 35rpx;
margin-top: 60rpx;
padding-bottom: 100rpx;
- transition: margin-bottom .15s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: margin-bottom 0.15s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-cards-column{
+
+.kb-cards-column {
position: relative;
flex: 1;
display: flex;
@@ -152,17 +189,30 @@
margin-right: 10rpx;
}
-.kb-bg{
+.kb-cards-columnTime {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ width: 180rpx;
+ height: 100%;
+ background: #eee;
+ margin-left: 10rpx;
+}
+
+.kb-bg {
position: absolute;
width: 120rpx;
top: -8rpx;
bottom: -12rpx;
background: -webkit-gradient(linear, left top, left bottom, from(#eff7ff), color-stop(0.5, #8cc4ff), to(#eff7ff));
z-index: 1;
- opacity: .6;
- transition: all .1s;
+ opacity: 0.6;
+ transition: all 0.1s;
}
-.kb-timeline{
+
+.kb-timeline {
display: none;
position: absolute;
left: 0;
@@ -173,10 +223,10 @@
height: 5rpx;
background: #0069d9;
z-index: 99;
- opacity: .6;
+ opacity: 0.6;
}
-.kb-timeline::before,
-.kb-timeline::after{
+
+.kb-timeline::before, .kb-timeline::after {
content: '';
position: absolute;
width: 5rpx;
@@ -184,16 +234,18 @@
border-radius: 1rpx;
background: #0069d9;
}
-.kb-timeline::before{
+
+.kb-timeline::before {
left: -3rpx;
top: -2rpx;
}
-.kb-timeline::after{
+
+.kb-timeline::after {
right: -3rpx;
top: -2rpx;
}
-.kb-card{
+.kb-card {
position: relative;
z-index: 10;
width: 120rpx;
@@ -201,12 +253,20 @@
border-radius: 5rpx;
}
-.kb-card-content{
+.kb-cardTime {
+ position: relative;
+ z-index: 10;
+ width: 180rpx;
+ min-height: 200rpx;
+ border-radius: 5rpx;
+}
+
+.kb-card-content {
position: absolute;
z-index: 11;
background: #eee;
width: 120rpx;
- height: 200rpx;
+ min-height: 200rpx;
padding: 0 10rpx;
text-align: center;
box-sizing: border-box;
@@ -215,25 +275,58 @@
flex-flow: column nowrap;
overflow: hidden;
color: #fff;
- box-shadow: 0 0 6rpx 2rpx rgba(255,255,255,.45)
+ box-shadow: 0 0 6rpx 2rpx rgba(255, 255, 255, 0.45);
+}
+
+.kb-card-contentTime {
+ position: absolute;
+ z-index: 11;
+ /* background: #eee; */
+ width: 180rpx;
+ min-height: 200rpx;
+ padding: 0 10rpx;
+ text-align: center;
+ box-sizing: border-box;
+ border-radius: 5rpx;
+ display: flex;
+ flex-flow: column nowrap;
+ overflow: hidden;
+ color: #000;
+ box-shadow: 0 0 6rpx 2rpx rgba(255, 255, 255, 0.45);
}
-.kb-card-place-num{
+
+.kb-card-place-num {
font-size: 13pt;
padding: 15rpx 0;
}
-.kb-card-place-words{
+
+.kb-card-place-words {
font-size: 10pt;
padding: 15rpx 0;
- line-height: 120%;
+ line-height: 120%;
}
-.kb-card-name{
+
+.kb-card-place-wordsTime {
+ font-size: 10pt;
+ padding: 15rpx 0;
+ line-height: 80%;
+}
+
+.kb-card-place-wordsTime2 {
+ font-size: 10pt;
+ padding: 15rpx 0;
+ line-height: 25%;
+}
+
+.kb-card-name {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
-.kb-card-name-text{
+
+.kb-card-name-text {
font-size: 10pt;
padding-bottom: 5rpx;
display: -webkit-box;
@@ -242,7 +335,8 @@
overflow: hidden;
line-height: 130%;
}
-.k-sec::before{
+
+.k-sec::before {
content: '';
position: absolute;
top: 6rpx;
@@ -253,43 +347,30 @@
border-radius: 2rpx;
background: #fff;
}
-.green{
+
+.green {
background: #7acfa6;
}
-.blue{
- background: #73b4ef;
-}
-.purple{
- background: #9f8bea;
-}
-.red{
- background: #e286ab;
-}
-.yellow{
- background: #ffcb63;
-}
-.orange{
- background: #f37b1d;
+.blue {
+ background: #73b4ef;
}
-.olive{
- background: #8dc63f;
+.purple {
+ background: #9f8bea;
}
-.cyan{
-background: #1cbbb4;
+.red {
+ background: #e286ab;
}
-.blue{
-background: #0081ff;
+.yellow {
+ background: #ffcb63;
}
-.mauve{
-background: #9c26b0;
-}
/* 遮罩层样式 */
-.kb-detail{
+
+.kb-detail {
position: absolute;
z-index: 998;
top: 0;
@@ -298,25 +379,29 @@ background: #9c26b0;
width: 910rpx;
height: 1248rpx;
padding: 68rpx 0 100rpx 45rpx;
- background: rgba(166,166,166,.45);
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ background: rgba(166, 166, 166, 0.45);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-detail-card-content{
+
+.kb-detail-card-content {
position: absolute;
box-shadow: 0 0 50rpx #bbb;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-detail-card-content-active{
- transform: scale(1.08,1.08);
+
+.kb-detail-card-content-active {
+ transform: scale(1.08, 1.08);
}
-.kb-detaile-card-ctn{
+
+.kb-detaile-card-ctn {
position: absolute;
z-index: 999;
width: 120rpx;
}
/* 底部详情样式 */
-.kb-info-ctn{
+
+.kb-info-ctn {
position: fixed;
z-index: 1000;
left: 0;
@@ -331,30 +416,34 @@ background: #9c26b0;
border-top-right-radius: 15rpx;
background: #73b4ef;
font-size: 11pt;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
- transform: translate3d(0,400rpx,0);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
+ transform: translate3d(0, 400rpx, 0);
}
-.kb-info-ctn-open{
- transform: translate3d(0,0,0);
+
+.kb-info-ctn-open {
+ transform: translate3d(0, 0, 0);
}
-.kb-info-title{
+
+.kb-info-title {
color: #fff;
height: 100rpx;
width: 100%;
display: flex;
align-items: center;
}
-.kb-term{
+
+.kb-term {
flex: 1;
- text-align: left;
- margin-left: 30rpx;
+ text-align: center;
}
-.kb-choose-view-box{
+
+.kb-choose-view-box {
display: flex;
margin: 0 20rpx 0 62rpx;
padding: 25rpx;
}
-.kb-choose-view{
+
+.kb-choose-view {
position: relative;
display: flex;
flex-direction: column;
@@ -363,7 +452,8 @@ background: #9c26b0;
width: 38rpx;
height: 38rpx;
}
-.kb-choose-view text{
+
+.kb-choose-view text {
font-size: 24rpx;
width: 28rpx;
height: 28rpx;
@@ -377,6 +467,7 @@ background: #9c26b0;
bottom: 0;
right: 0;
}
+
.kb-choose-view text.active {
z-index: 2;
top: 0;
@@ -386,35 +477,40 @@ background: #9c26b0;
color: #73b4ef;
background: #fff;
}
-.kb-info-week{
+
+.kb-info-week {
width: 150rpx;
padding: 20rpx 10rpx;
text-align: center;
}
-.kb-swipers{
+
+.kb-swipers {
flex: 1;
position: relative;
font-size: 11pt;
height: 100%;
margin: 0 50rpx;
}
-.kb-week-swiper{
+
+.kb-week-swiper {
width: 100%;
height: 100%;
}
-.kb-week-swiper-item{
+
+.kb-week-swiper-item {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
- text-align: center;
+ text-align: center;
}
-.kb-week-swiper-item text.active{
+
+.kb-week-swiper-item text.active {
font-weight: bold;
}
-.kb-swiper-mask-left,
-.kb-swiper-mask-right{
+
+.kb-swiper-mask-left, .kb-swiper-mask-right {
position: absolute;
z-index: 999;
top: 0;
@@ -424,34 +520,38 @@ background: #9c26b0;
align-items: center;
justify-content: center;
}
-.kb-swiper-mask-left{
+
+.kb-swiper-mask-left {
left: 0;
- background: -webkit-gradient(linear, left top, right top, from(#73b4ef), to(rgba(86,165,238,0)));
+ background: -webkit-gradient(linear, left top, right top, from(#73b4ef), to(rgba(86, 165, 238, 0)));
}
-.kb-swiper-mask-right{
+
+.kb-swiper-mask-right {
right: 0;
- background: -webkit-gradient(linear, left top, right top, from(rgba(86,165,238,0)), to(#73b4ef));
+ background: -webkit-gradient(linear, left top, right top, from(rgba(86, 165, 238, 0)), to(#73b4ef));
}
-.kb-swiper-mask-left image,
-.kb-swiper-mask-right image {
+
+.kb-swiper-mask-left image, .kb-swiper-mask-right image {
width: 30rpx;
height: 30rpx;
- opacity: .2;
+ opacity: 0.2;
}
-.kb-lesson-time{
+
+.kb-lesson-time {
font-size: 10pt;
flex: 1;
width: 250rpx;
text-align: left;
padding-left: 10rpx;
}
-.kb-info-card-close{
+
+.kb-info-card-close {
width: 30rpx;
height: 30rpx;
- font-size: 22px;
padding: 25rpx 35rpx;
}
-.kb-info-card-tabs{
+
+.kb-info-card-tabs {
display: flex;
flex-wrap: nowrap;
width: 100%;
@@ -461,30 +561,34 @@ background: #9c26b0;
padding-left: 20rpx;
overflow: hidden;
opacity: 0;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
- transform: translate3d(0,400rpx,0);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
+ transform: translate3d(0, 400rpx, 0);
}
-.kb-info-ctn-open .kb-info-card-tabs{
+
+.kb-info-ctn-open .kb-info-card-tabs {
opacity: 1;
- transform: translate3d(0,0,0);
+ transform: translate3d(0, 0, 0);
}
-.kb-info-card-swipers{
+
+.kb-info-card-swipers {
position: relative;
height: 0;
overflow: hidden;
opacity: 0;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-info-ctn-open .kb-info-card-swipers{
+
+.kb-info-ctn-open .kb-info-card-swipers {
height: 400rpx;
opacity: 1;
}
-.kb-info-card-swipers swiper{
+
+.kb-info-card-swipers swiper {
width: 100%;
height: 400rpx;
}
-.kb-info-swiper-mask-left,
-.kb-info-swiper-mask-right{
+
+.kb-info-swiper-mask-left, .kb-info-swiper-mask-right {
position: absolute;
z-index: 1;
top: 50%;
@@ -492,44 +596,52 @@ background: #9c26b0;
height: 30rpx;
margin-top: -35rpx;
padding: 10rpx;
- opacity: .2;
+ opacity: 0.2;
}
-.kb-info-swiper-mask-left{
+
+.kb-info-swiper-mask-left {
left: -5rpx;
}
-.kb-info-swiper-mask-right{
+
+.kb-info-swiper-mask-right {
right: -5rpx;
}
-.kb-info-swiper-mask-left image,
-.kb-info-swiper-mask-right image{
+
+.kb-info-swiper-mask-left image, .kb-info-swiper-mask-right image {
width: 100%;
height: 100%;
}
-.kb-info-card{
+
+.kb-info-card {
position: relative;
display: flex;
align-items: center;
justify-content: center;
background: #73b4ef;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
box-sizing: border-box;
transform: translateZ(0);
}
-.kb-info-card-static{
+
+.kb-info-card-static {
flex-shrink: 0;
max-width: 100rpx;
}
-.kb-info-card-static .kb-info-card-content{
- opacity: .88;
+
+.kb-info-card-static .kb-info-card-content {
+ opacity: 0.88;
}
-.kb-info-card-active{
+
+.kb-info-card-active {
max-width: 750rpx;
flex: 1;
}
-.kb-info-card-shadow{
- box-shadow: -10px 0 20px -10px rgba(100, 100, 100, .5);
+
+.kb-info-card-shadow {
+ box-shadow: -10px 0 20px -10px rgba(100, 100, 100, 0.5);
}
-.kb-info-card-content{
+
+.kb-info-card-content {
width: 100%;
height: 400rpx;
display: flex;
@@ -538,33 +650,49 @@ background: #9c26b0;
color: #fff;
box-sizing: border-box;
padding: 0 10rpx;
- transition: all .2s cubic-bezier(0.19, 1, 0.22, 1);
+ transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
-.kb-info-card-swipers .kb-info-card-content{
+
+.kb-info-card-swipers .kb-info-card-content {
padding: 0 40rpx 20rpx;
}
-.info-name{
+
+.info-name {
display: flex;
align-items: center;
- height: 80rpx;
+ height: 100rpx;
width: 580rpx;
- padding: 0 0 0 20rpx;
+ padding: 0 0 20rpx 20rpx;
}
-.info-name text{
+
+.info-name text {
font-size: 16pt;
line-height: 120%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
-.info-bd{
+
+.info-bd {
flex: 1;
width: 100%;
display: flex;
align-items: center;
padding-bottom: 40rpx;
}
-.info-type{
+
+.version-text {
+ font-size: 10pt;
+ line-height: 100%;
+ color: #fff;
+ border: 1px solid #fff;
+ padding: 5rpx 10rpx;
+ border-radius: 5rpx;
+ margin-left: 10rpx;
+ text-align: center;
+}
+
+.info-type {
flex-shrink: 0;
display: flex;
flex-direction: column;
@@ -572,7 +700,8 @@ background: #9c26b0;
justify-content: center;
margin: 20rpx;
}
-.info-type text{
+
+.info-type text {
display: inline-block;
width: 10pt;
height: 64rpx;
@@ -585,6 +714,7 @@ background: #9c26b0;
border-radius: 8rpx;
background: #e78ab0;
}
+
.info-list {
position: relative;
flex: 1;
@@ -594,10 +724,12 @@ background: #9c26b0;
justify-content: center;
padding-left: 15rpx;
}
-.kb-info-card-active .info-list{
+
+.kb-info-card-active .info-list {
min-width: none;
}
-.info-item{
+
+.info-item {
position: relative;
z-index: 2;
display: flex;
@@ -607,17 +739,20 @@ background: #9c26b0;
font-size: 10pt;
padding: 6rpx 0;
}
-.info-item-value{
+
+.info-item-value {
flex-shrink: 0;
font-size: 12pt;
}
-.info-item-icon{
+
+.info-item-icon {
flex-shrink: 0;
width: 35rpx;
height: 35rpx;
margin-right: 10rpx;
}
-.info-text{
+
+.info-text {
position: absolute;
z-index: 1;
top: 50%;
@@ -626,76 +761,42 @@ background: #9c26b0;
font-size: 100pt;
line-height: 100%;
font-weight: bold;
- opacity: .15;
+ opacity: 0.15;
}
+
/*重定义swiper-dots样式*/
-page .wx-swiper-dots.wx-swiper-dots-horizontal{
+
+page .wx-swiper-dots.wx-swiper-dots-horizontal {
margin-bottom: -5rpx;
}
-page .wx-swiper-dot{
- color: rgba(255,255,255,.5);
-}
-page .wx-swiper-dot-active{
- color: #fff;
-}
-/* 课表时间列*/
-.kb-cards-columnTime {
- position: relative;
- flex: 1;
- display: flex;
- flex-direction: column;
- align-items: stretch;
- width: 180rpx;
- height: 100%;
- background: #eee;
- margin-left: 10rpx;
+page .wx-swiper-dot {
+ color: rgba(255, 255, 255, 0.5);
}
-.kb-card-contentTime {
- position: absolute;
- z-index: 11;
- /* background: #eee; */
- width: 180rpx;
- min-height: 200rpx;
- padding: 0 10rpx;
- text-align: center;
- box-sizing: border-box;
- border-radius: 5rpx;
- display: flex;
- flex-flow: column nowrap;
- overflow: hidden;
- color: #000;
- box-shadow: 0 0 6rpx 2rpx rgba(255, 255, 255, 0.45);
-}
-.kb-card-place-wordsTime {
- font-size: 10pt;
- padding: 15rpx 0;
- line-height: 80%;
+page .wx-swiper-dot-active {
+ color: #fff;
}
-.kb-card-place-wordsTime2 {
- font-size: 10pt;
- padding: 15rpx 0;
- line-height: 25%;
-}
+/* 悬浮按钮的 */
-.kb-title-itemTime {
- flex: 1;
+.round-click {
+ height: 120rpx;
+ width: 120rpx;
+ background-color: rgb(115, 180, 240);
+ border-radius: 100%;
+ position: fixed;
+ bottom: 120rpx;
+ right: 25rpx;
display: flex;
- flex-direction: column;
- align-items: stretch;
+ align-items: center;
justify-content: center;
- text-align: center;
- width: 180rpx;
- margin-left: 10rpx;
- font-size: 9pt;
- line-height: 120%;
+ z-index: 9;
}
-.kb-card-time{
- position: relative;
- z-index: 10;
- width: 180rpx;
- min-height: 200rpx;
-}
\ No newline at end of file
+.round-click text {
+ font-size: 32rpx;
+ max-width: 80rpx;
+ color: #fff;
+ text-align: center;
+}
diff --git a/pages/classQuery/jskb.js b/pages/classQuery/jskb.js
new file mode 100644
index 0000000..095c1ae
--- /dev/null
+++ b/pages/classQuery/jskb.js
@@ -0,0 +1,179 @@
+// pages/classQuery/jskb.js
+//获取应用实例
+var app = getApp();
+
+Page({
+ data: {
+ header: {
+ defaultValue: '',
+ inputValue: '',
+ help_status: false,
+ help_class_status: false
+ },
+ main: {
+ mainDisplay: true, // main 显示的变化标识
+ list: []
+ },
+ pageType: 'teacher'
+ },
+
+ bindClearSearchTap: function(e) {
+ this.setData({
+ 'main.mainDisplay': true,
+ 'main.total': 0,
+ 'header.inputValue': ''
+ });
+ },
+
+ bindSearchInput: function(e) {
+ if (this.data.main.mainDisplay != false) {
+ this.setData({
+ 'main.mainDisplay': !this.data.main.mainDisplay
+ });
+ }
+ this.setData({
+ 'header.inputValue': e.detail.value
+ });
+ this.search();
+ return e.detail.value;
+ },
+
+ bindSearchInputClass: function(e) {
+ if (this.data.main.mainDisplay != false) {
+ this.setData({
+ 'main.mainDisplay': !this.data.main.mainDisplay
+ });
+ }
+ this.setData({
+ 'header.inputValue': e.detail.value
+ });
+ this.searchClass();
+ return e.detail.value;
+ },
+
+ // 点击搜索教师
+ bindConfirmSearchTap: function() {
+ this.search();
+ },
+ // 点击搜索班级
+ bindConfirmSearchTapClass: function() {
+ this.searchClass();
+ },
+ // 搜索教师
+ search: function(key) {
+ if (this.data.header.inputValue.length < 1) {
+ wx.showToast({
+ title: '请输入教师名',
+ image: '/images/info.png'
+ })
+ return;
+ }
+ var that = this;
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ wx.request({
+ url: app.globalData.apiURL + '/v4/teacherTable/teacherTableList.php',
+ method: "POST",
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ data: {
+ username: uid,
+ password: pwd,
+ keyword: that.data.header.inputValue
+ },
+ success: function(res) {
+ if (res.data.code == '500') {
+ wx.showToast({
+ title: '教务异常不可查',
+ image: '/images/info.png'
+ })
+ }
+ that.setData({
+ 'main.list': res.data
+ })
+ }
+ })
+
+ },
+ // 搜索班级
+ searchClass: function(key) {
+ if (this.data.header.inputValue.length < 1) {
+ wx.showToast({
+ title: '请输入班级名',
+ image: '/images/info.png'
+ })
+ return;
+ }
+ var that = this;
+ var uid = wx.getStorageSync('uid');
+ var pwd = wx.getStorageSync('newpwd');
+ wx.request({
+ url: app.globalData.apiURL + '/v4/classTable/classCourseTableList.php',
+ method: "POST",
+ header: {
+ 'content-type': 'application/x-www-form-urlencoded',
+ },
+ data: {
+ username: uid,
+ password: pwd,
+ keyword: that.data.header.inputValue
+ },
+ success: function(res) {
+ if (res.data.code == '500') {
+ wx.showToast({
+ title: '教务异常不可查',
+ image: '/images/info.png'
+ })
+ }
+ that.setData({
+ 'main.list': res.data
+ })
+ }
+ })
+
+ },
+
+
+ onLoad: function(options) {
+ var that = this;
+ if (options.type == 'class') {
+ wx.setNavigationBarTitle({
+ title: '班级课表查询'
+ })
+ that.setData({
+ pageType: 'class'
+ })
+ } else {
+ that.setData({
+ pageType: 'teacher'
+ })
+ }
+ },
+
+ tapHelp: function(e) {
+ if (e.target.id == 'help') {
+ this.hideHelp();
+ }
+ },
+ showHelp: function(e) {
+ console.log(e)
+ var that = this;
+ that.setData({
+ 'header.help_status': true
+ });
+ },
+ showHelpClass: function(e) {
+ console.log(e)
+ var that = this;
+ that.setData({
+ 'header.help_class_status': true
+ });
+ },
+ hideHelp: function(e) {
+ this.setData({
+ 'header.help_status': false,
+ 'header.help_class_status': false,
+ });
+ }
+});
\ No newline at end of file
diff --git a/pages/classQuery/jskb.json b/pages/classQuery/jskb.json
new file mode 100644
index 0000000..782a34b
--- /dev/null
+++ b/pages/classQuery/jskb.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarBackgroundColor": "#9f8bea",
+ "navigationBarTitleText": "教师课表",
+ "backgroundColor": "#9f8bea",
+ "enablePullDownRefresh": false
+}
\ No newline at end of file
diff --git a/pages/course/search.wxml b/pages/classQuery/jskb.wxml
similarity index 82%
rename from pages/course/search.wxml
rename to pages/classQuery/jskb.wxml
index 2b5d8f8..2fdd983 100644
--- a/pages/course/search.wxml
+++ b/pages/classQuery/jskb.wxml
@@ -1,10 +1,10 @@
-
+
+