From 247eef3bcac7f7ba1f42d921eba7fd017eb2018b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A6=86=E9=92=B1=E8=90=BD=E5=B0=BD=E6=A7=BF=E8=8A=B1?= =?UTF-8?q?=E7=A8=80?= <2675540038@qq.com> Date: Thu, 10 Jul 2025 16:27:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + app.js | 370 ++++++++ app.json | 75 ++ app.wxss | 927 +++++++++++++++++++++ common.wxss | 410 +++++++++ components/calendar/calendar.js | 472 +++++++++++ components/calendar/calendar.json | 4 + components/calendar/calendar.wxml | 73 ++ components/calendar/calendar.wxss | 260 ++++++ components/calendarn/calendar.js | 475 +++++++++++ components/calendarn/calendar.json | 4 + components/calendarn/calendar.wxml | 73 ++ components/calendarn/calendar.wxss | 258 ++++++ components/empty/index.js | 23 + components/empty/index.json | 4 + components/empty/index.wxml | 4 + components/empty/index.wxss | 21 + components/parser/libs/CssHandler.js | 97 +++ components/parser/libs/MpHtmlParser.js | 526 ++++++++++++ components/parser/libs/config.js | 63 ++ components/parser/parser.js | 204 +++++ components/parser/parser.json | 6 + components/parser/parser.wxml | 3 + components/parser/parser.wxss | 19 + components/parser/trees/handler.wxs | 42 + components/parser/trees/trees.js | 122 +++ components/parser/trees/trees.json | 6 + components/parser/trees/trees.wxml | 65 ++ components/parser/trees/trees.wxss | 184 ++++ components/shortcut/shortcut.js | 57 ++ components/shortcut/shortcut.json | 4 + components/shortcut/shortcut.wxml | 32 + components/shortcut/shortcut.wxss | 205 +++++ ec-canvas/ec-canvas.js | 235 ++++++ ec-canvas/ec-canvas.json | 4 + ec-canvas/ec-canvas.wxml | 4 + ec-canvas/ec-canvas.wxss | 5 + ec-canvas/echarts.js | 22 + ec-canvas/wx-canvas.js | 121 +++ images/0181008111258.png | Bin 0 -> 17312 bytes images/1.png | Bin 0 -> 7176 bytes images/17169030f9c6767c9d17a78db1332f1.png | Bin 0 -> 316 bytes images/2.png | Bin 0 -> 7161 bytes images/3.png | Bin 0 -> 7615 bytes images/5-121204193R0-50.gif | Bin 0 -> 3897 bytes images/add_to_min_program_arrow.png | Bin 0 -> 427 bytes images/add_to_min_program_close.png | Bin 0 -> 225 bytes images/add_to_min_program_more.png | Bin 0 -> 381 bytes images/avds.png | Bin 0 -> 22227 bytes images/back.png | Bin 0 -> 2548 bytes images/bk.png | Bin 0 -> 2995 bytes images/closeLogin.png | Bin 0 -> 2565 bytes images/default-avatar.jpg | Bin 0 -> 5474 bytes images/deng.png | Bin 0 -> 8829 bytes images/dianzan.png | Bin 0 -> 781 bytes images/ditu.png | Bin 0 -> 5417 bytes images/fabulous.png | Bin 0 -> 412 bytes images/fan.png | Bin 0 -> 2789 bytes images/guan.png | Bin 0 -> 5383 bytes images/guane.png | Bin 0 -> 2481 bytes images/guasn.png | Bin 0 -> 1651 bytes images/guji.png | Bin 0 -> 1701 bytes images/gzh_btn.png | Bin 0 -> 10098 bytes images/handle_calendar.png | Bin 0 -> 1105 bytes images/icon-index-empty.png | Bin 0 -> 6670 bytes images/link_more.png | Bin 0 -> 225 bytes images/moah.png | Bin 0 -> 1832 bytes images/my_icon.png | Bin 0 -> 2146 bytes images/no_content.png | Bin 0 -> 8448 bytes images/nofabulous.png | Bin 0 -> 1667 bytes images/qi_on.png | Bin 0 -> 930 bytes images/ren.png | Bin 0 -> 3061 bytes images/sacsa.png | Bin 0 -> 79940 bytes images/saoua.png | Bin 0 -> 1784 bytes images/sign_bg.png | Bin 0 -> 60198 bytes images/snji.png | Bin 0 -> 1767 bytes images/suo.png | Bin 0 -> 1961 bytes images/t1.png | Bin 0 -> 2156 bytes images/t2.png | Bin 0 -> 2427 bytes images/t3.png | Bin 0 -> 2370 bytes images/tabBar/cate.png | Bin 0 -> 366 bytes images/tabBar/cate_on.png | Bin 0 -> 759 bytes images/tabBar/home.png | Bin 0 -> 928 bytes images/tabBar/home_on.png | Bin 0 -> 1193 bytes images/tabBar/user.png | Bin 0 -> 1005 bytes images/tabBar/user_on.png | Bin 0 -> 1149 bytes images/tc_bg.jpg | Bin 0 -> 54791 bytes images/tian.png | Bin 0 -> 1495 bytes images/ty.png | Bin 0 -> 1687 bytes images/user-bg.png | Bin 0 -> 7507 bytes images/userHelp1.png | Bin 0 -> 2822 bytes images/userPer.png | Bin 0 -> 949 bytes images/userServer.png | Bin 0 -> 1871 bytes images/userXun.png | Bin 0 -> 1331 bytes images/userhelp.png | Bin 0 -> 1453 bytes images/we.png | Bin 0 -> 14799 bytes images/wei.png | Bin 0 -> 5289 bytes images/wen.png | Bin 0 -> 3089 bytes images/white.png | Bin 0 -> 1906 bytes images/xai.png | Bin 0 -> 4290 bytes images/xasa.png | Bin 0 -> 1470 bytes images/xia.png | Bin 0 -> 1704 bytes images/xiang.png | Bin 0 -> 6780 bytes images/xiea.png | Bin 0 -> 976 bytes images/xinxin.png | Bin 0 -> 1753 bytes images/xunzhang.png | Bin 0 -> 7710 bytes package-lock.json | 6 + packageA/user/editProfile.js | 147 ++++ packageA/user/editProfile.json | 5 + packageA/user/editProfile.wxml | 87 ++ packageA/user/editProfile.wxss | 113 +++ packageA/user/help.js | 37 + packageA/user/help.json | 3 + packageA/user/help.wxml | 10 + packageA/user/help.wxss | 14 + packageA/user/myChallenge.js | 166 ++++ packageA/user/myChallenge.json | 4 + packageA/user/myChallenge.wxml | 146 ++++ packageA/user/myChallenge.wxss | 559 +++++++++++++ packageA/user/myMedal.js | 66 ++ packageA/user/myMedal.json | 3 + packageA/user/myMedal.wxml | 13 + packageA/user/myMedal.wxss | 8 + packageA/user/profile.js | 143 ++++ packageA/user/profile.json | 3 + packageA/user/profile.wxml | 60 ++ packageA/user/profile.wxss | 89 ++ packageB/index/index.js | 594 +++++++++++++ packageB/index/index.json | 6 + packageB/index/index.wxml | 167 ++++ packageB/index/index.wxss | 463 ++++++++++ packageB/rule/index.js | 35 + packageB/rule/index.json | 8 + packageB/rule/index.wxml | 6 + packageB/rule/index.wxss | 12 + packageB/user/sign.js | 107 +++ packageB/user/sign.json | 6 + packageB/user/sign.wxml | 10 + packageB/user/sign.wxss | 26 + pages/category/challenge.js | 66 ++ pages/category/challenge.wxml | 2 + pages/category/index.js | 66 ++ pages/category/index.wxml | 2 + pages/category/team.js | 66 ++ pages/category/team.wxml | 2 + pages/index/china.js | 1 + pages/index/index.js | 205 +++++ pages/index/index.json | 7 + pages/index/index.wxml | 15 + pages/index/index.wxss | 40 + pages/login/login.js | 80 ++ pages/login/login.json | 3 + pages/login/login.wxml | 21 + pages/login/login.wxss | 66 ++ pages/rank/addInfo.js | 44 + pages/rank/addInfo.json | 8 + pages/rank/addInfo.wxml | 19 + pages/rank/addInfo.wxss | 12 + pages/rank/address.js | 97 +++ pages/rank/address.json | 6 + pages/rank/address.wxml | 42 + pages/rank/address.wxss | 40 + pages/rank/components/banner/banner.wxml | 12 + pages/rank/components/banner/banner.wxss | 38 + pages/rank/index.js | 97 +++ pages/rank/index.json | 8 + pages/rank/index.wxml | 85 ++ pages/rank/index.wxss | 186 +++++ pages/topic/addInfo.js | 38 + pages/topic/addInfo.json | 8 + pages/topic/addInfo.wxml | 7 + pages/topic/addInfo.wxss | 6 + pages/topic/addList.js | 55 ++ pages/topic/addList.json | 8 + pages/topic/addList.wxml | 8 + pages/topic/addList.wxss | 20 + pages/topic/address.js | 48 ++ pages/topic/address.json | 6 + pages/topic/address.wxml | 11 + pages/topic/address.wxss | 14 + pages/topic/detail.js | 38 + pages/topic/detail.json | 8 + pages/topic/detail.wxml | 6 + pages/topic/detail.wxss | 6 + pages/topic/index.js | 473 +++++++++++ pages/topic/index.json | 8 + pages/topic/index.wxml | 96 +++ pages/topic/index.wxss | 94 +++ pages/topic/xunzhang.js | 222 +++++ pages/topic/xunzhang.json | 6 + pages/topic/xunzhang.wxml | 10 + pages/topic/xunzhang.wxss | 89 ++ pages/user/index.js | 187 +++++ pages/user/index.json | 5 + pages/user/index.wxml | 148 ++++ pages/user/index.wxss | 353 ++++++++ pages/user/sign.js | 133 +++ pages/user/sign.json | 6 + pages/user/sign.wxml | 18 + pages/user/sign.wxss | 26 + project.private.config.json | 25 + siteinfo.js | 7 + sitemap.json | 7 + utils/common.wxss | 343 ++++++++ utils/iconfont.wxss | 160 ++++ utils/login.js | 10 + utils/md5.js | 58 ++ utils/util.js | 21 + version.json | 3 + weui.wxss | 6 + wxParse/html2json.js | 97 +++ wxParse/htmlparser.js | 48 ++ wxParse/showdown.js | 693 +++++++++++++++ wxParse/wxDiscode.js | 74 ++ wxParse/wxParse.js | 66 ++ wxParse/wxParse.wxml | 370 ++++++++ wxParse/wxParse.wxss | 243 ++++++ 217 files changed, 14331 insertions(+) create mode 100644 .gitignore create mode 100644 app.js create mode 100644 app.json create mode 100644 app.wxss create mode 100644 common.wxss create mode 100644 components/calendar/calendar.js create mode 100644 components/calendar/calendar.json create mode 100644 components/calendar/calendar.wxml create mode 100644 components/calendar/calendar.wxss create mode 100644 components/calendarn/calendar.js create mode 100644 components/calendarn/calendar.json create mode 100644 components/calendarn/calendar.wxml create mode 100644 components/calendarn/calendar.wxss create mode 100644 components/empty/index.js create mode 100644 components/empty/index.json create mode 100644 components/empty/index.wxml create mode 100644 components/empty/index.wxss create mode 100644 components/parser/libs/CssHandler.js create mode 100644 components/parser/libs/MpHtmlParser.js create mode 100644 components/parser/libs/config.js create mode 100644 components/parser/parser.js create mode 100644 components/parser/parser.json create mode 100644 components/parser/parser.wxml create mode 100644 components/parser/parser.wxss create mode 100644 components/parser/trees/handler.wxs create mode 100644 components/parser/trees/trees.js create mode 100644 components/parser/trees/trees.json create mode 100644 components/parser/trees/trees.wxml create mode 100644 components/parser/trees/trees.wxss create mode 100644 components/shortcut/shortcut.js create mode 100644 components/shortcut/shortcut.json create mode 100644 components/shortcut/shortcut.wxml create mode 100644 components/shortcut/shortcut.wxss create mode 100644 ec-canvas/ec-canvas.js create mode 100644 ec-canvas/ec-canvas.json create mode 100644 ec-canvas/ec-canvas.wxml create mode 100644 ec-canvas/ec-canvas.wxss create mode 100644 ec-canvas/echarts.js create mode 100644 ec-canvas/wx-canvas.js create mode 100644 images/0181008111258.png create mode 100644 images/1.png create mode 100644 images/17169030f9c6767c9d17a78db1332f1.png create mode 100644 images/2.png create mode 100644 images/3.png create mode 100644 images/5-121204193R0-50.gif create mode 100644 images/add_to_min_program_arrow.png create mode 100644 images/add_to_min_program_close.png create mode 100644 images/add_to_min_program_more.png create mode 100644 images/avds.png create mode 100644 images/back.png create mode 100644 images/bk.png create mode 100644 images/closeLogin.png create mode 100644 images/default-avatar.jpg create mode 100644 images/deng.png create mode 100644 images/dianzan.png create mode 100644 images/ditu.png create mode 100644 images/fabulous.png create mode 100644 images/fan.png create mode 100644 images/guan.png create mode 100644 images/guane.png create mode 100644 images/guasn.png create mode 100644 images/guji.png create mode 100644 images/gzh_btn.png create mode 100644 images/handle_calendar.png create mode 100644 images/icon-index-empty.png create mode 100644 images/link_more.png create mode 100644 images/moah.png create mode 100644 images/my_icon.png create mode 100644 images/no_content.png create mode 100644 images/nofabulous.png create mode 100644 images/qi_on.png create mode 100644 images/ren.png create mode 100644 images/sacsa.png create mode 100644 images/saoua.png create mode 100644 images/sign_bg.png create mode 100644 images/snji.png create mode 100644 images/suo.png create mode 100644 images/t1.png create mode 100644 images/t2.png create mode 100644 images/t3.png create mode 100644 images/tabBar/cate.png create mode 100644 images/tabBar/cate_on.png create mode 100644 images/tabBar/home.png create mode 100644 images/tabBar/home_on.png create mode 100644 images/tabBar/user.png create mode 100644 images/tabBar/user_on.png create mode 100644 images/tc_bg.jpg create mode 100644 images/tian.png create mode 100644 images/ty.png create mode 100644 images/user-bg.png create mode 100644 images/userHelp1.png create mode 100644 images/userPer.png create mode 100644 images/userServer.png create mode 100644 images/userXun.png create mode 100644 images/userhelp.png create mode 100644 images/we.png create mode 100644 images/wei.png create mode 100644 images/wen.png create mode 100644 images/white.png create mode 100644 images/xai.png create mode 100644 images/xasa.png create mode 100644 images/xia.png create mode 100644 images/xiang.png create mode 100644 images/xiea.png create mode 100644 images/xinxin.png create mode 100644 images/xunzhang.png create mode 100644 package-lock.json create mode 100644 packageA/user/editProfile.js create mode 100644 packageA/user/editProfile.json create mode 100644 packageA/user/editProfile.wxml create mode 100644 packageA/user/editProfile.wxss create mode 100644 packageA/user/help.js create mode 100644 packageA/user/help.json create mode 100644 packageA/user/help.wxml create mode 100644 packageA/user/help.wxss create mode 100644 packageA/user/myChallenge.js create mode 100644 packageA/user/myChallenge.json create mode 100644 packageA/user/myChallenge.wxml create mode 100644 packageA/user/myChallenge.wxss create mode 100644 packageA/user/myMedal.js create mode 100644 packageA/user/myMedal.json create mode 100644 packageA/user/myMedal.wxml create mode 100644 packageA/user/myMedal.wxss create mode 100644 packageA/user/profile.js create mode 100644 packageA/user/profile.json create mode 100644 packageA/user/profile.wxml create mode 100644 packageA/user/profile.wxss create mode 100644 packageB/index/index.js create mode 100644 packageB/index/index.json create mode 100644 packageB/index/index.wxml create mode 100644 packageB/index/index.wxss create mode 100644 packageB/rule/index.js create mode 100644 packageB/rule/index.json create mode 100644 packageB/rule/index.wxml create mode 100644 packageB/rule/index.wxss create mode 100644 packageB/user/sign.js create mode 100644 packageB/user/sign.json create mode 100644 packageB/user/sign.wxml create mode 100644 packageB/user/sign.wxss create mode 100644 pages/category/challenge.js create mode 100644 pages/category/challenge.wxml create mode 100644 pages/category/index.js create mode 100644 pages/category/index.wxml create mode 100644 pages/category/team.js create mode 100644 pages/category/team.wxml create mode 100644 pages/index/china.js create mode 100644 pages/index/index.js create mode 100644 pages/index/index.json create mode 100644 pages/index/index.wxml create mode 100644 pages/index/index.wxss create mode 100644 pages/login/login.js create mode 100644 pages/login/login.json create mode 100644 pages/login/login.wxml create mode 100644 pages/login/login.wxss create mode 100644 pages/rank/addInfo.js create mode 100644 pages/rank/addInfo.json create mode 100644 pages/rank/addInfo.wxml create mode 100644 pages/rank/addInfo.wxss create mode 100644 pages/rank/address.js create mode 100644 pages/rank/address.json create mode 100644 pages/rank/address.wxml create mode 100644 pages/rank/address.wxss create mode 100644 pages/rank/components/banner/banner.wxml create mode 100644 pages/rank/components/banner/banner.wxss create mode 100644 pages/rank/index.js create mode 100644 pages/rank/index.json create mode 100644 pages/rank/index.wxml create mode 100644 pages/rank/index.wxss create mode 100644 pages/topic/addInfo.js create mode 100644 pages/topic/addInfo.json create mode 100644 pages/topic/addInfo.wxml create mode 100644 pages/topic/addInfo.wxss create mode 100644 pages/topic/addList.js create mode 100644 pages/topic/addList.json create mode 100644 pages/topic/addList.wxml create mode 100644 pages/topic/addList.wxss create mode 100644 pages/topic/address.js create mode 100644 pages/topic/address.json create mode 100644 pages/topic/address.wxml create mode 100644 pages/topic/address.wxss create mode 100644 pages/topic/detail.js create mode 100644 pages/topic/detail.json create mode 100644 pages/topic/detail.wxml create mode 100644 pages/topic/detail.wxss create mode 100644 pages/topic/index.js create mode 100644 pages/topic/index.json create mode 100644 pages/topic/index.wxml create mode 100644 pages/topic/index.wxss create mode 100644 pages/topic/xunzhang.js create mode 100644 pages/topic/xunzhang.json create mode 100644 pages/topic/xunzhang.wxml create mode 100644 pages/topic/xunzhang.wxss create mode 100644 pages/user/index.js create mode 100644 pages/user/index.json create mode 100644 pages/user/index.wxml create mode 100644 pages/user/index.wxss create mode 100644 pages/user/sign.js create mode 100644 pages/user/sign.json create mode 100644 pages/user/sign.wxml create mode 100644 pages/user/sign.wxss create mode 100644 project.private.config.json create mode 100644 siteinfo.js create mode 100644 sitemap.json create mode 100644 utils/common.wxss create mode 100644 utils/iconfont.wxss create mode 100644 utils/login.js create mode 100644 utils/md5.js create mode 100644 utils/util.js create mode 100644 version.json create mode 100644 weui.wxss create mode 100644 wxParse/html2json.js create mode 100644 wxParse/htmlparser.js create mode 100644 wxParse/showdown.js create mode 100644 wxParse/wxDiscode.js create mode 100644 wxParse/wxParse.js create mode 100644 wxParse/wxParse.wxml create mode 100644 wxParse/wxParse.wxss diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..772af73 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +project.config.json +.idea diff --git a/app.js b/app.js new file mode 100644 index 0000000..7e7ed81 --- /dev/null +++ b/app.js @@ -0,0 +1,370 @@ +/** + * tabBar页面路径列表 (用于链接跳转时判断) + * tabBarLinks为常量, 无需修改 + */ +const tabBarLinks = [ + 'pages/index/index', + 'pages/category/index', + 'pages/flow/index', + 'pages/user/index' +]; + +// 站点信息 +import siteInfo from 'siteinfo.js'; + +App({ + + /** + * 全局变量 + */ + globalData: { + user_id: null, + }, + + api_root: '', // api地址 + + /** + * 生命周期函数--监听小程序初始化 + */ + onLaunch() { + let App = this; + // 设置api地址 + App.setApiRoot(); + wx.getSystemInfo({ + success: e => { + // 设计稿一般是 750 rpx, 但是 canvas 是 px; + // 1rpx 转换成 px 的时候 + this.globalData.rpx2px = 1 / 750 * e.windowWidth; + } + }); + }, + + + + + /** + * 当小程序启动,或从后台进入前台显示,会触发 onShow + */ + onShow(options) { + + }, + + /** + * 设置api地址 + */ + setApiRoot() { + let App = this; + App.api_root = `${siteInfo.siteroot}index.php?s=/api/`; + }, + + /** + * 获取小程序基础信息 + */ + getWxappBase(callback) { + let App = this; + App._get('wxapp/base', {}, result => { + // 记录小程序基础信息 + wx.setStorageSync('wxapp', result.data.wxapp); + callback && callback(result.data.wxapp); + }, false, false); + }, + + /** + * 执行用户登录 + */ + doLogin() { + // 保存当前页面 + let pages = getCurrentPages(); + if (pages.length) { + let currentPage = pages[pages.length - 1]; + "pages/login/login" != currentPage.route && + wx.setStorageSync("currentPage", currentPage); + } + // 跳转授权页面 + wx.navigateTo({ + url: "/pages/login/login" + }); + }, + + /** + * 当前用户id + */ + getUserId() { + return wx.getStorageSync('user_id') || 0; + }, + + /** + * 显示成功提示框 + */ + showSuccess(msg, callback) { + wx.showToast({ + title: msg, + icon: 'success', + success() { + callback && (setTimeout(() => { + callback(); + }, 1500)); + } + }); + }, + + /** + * 显示失败提示框 + */ + showError(msg, callback) { + wx.showModal({ + title: '友情提示', + content: msg, + showCancel: false, + success(res) { + // callback && (setTimeout(() => { + // callback(); + // }, 1500)); + callback && callback(); + } + }); + }, + + /** + * get请求 + */ + _get(url, data, success, fail, complete, check_login) { + let App = this; + wx.showNavigationBarLoading(); + + // 构造请求参数 + data = Object.assign({ + wxapp_id: 10001, + token: wx.getStorageSync('token') + }, data); + + // if (typeof check_login === 'undefined') + // check_login = true; + + // 构造get请求 + let request = () => { + data.token = wx.getStorageSync('token'); + wx.request({ + url: App.api_root + url, + header: { + 'content-type': 'application/json' + }, + data, + success(res) { + if (res.statusCode !== 200 || typeof res.data !== 'object') { + console.log(res); + App.showError('网络请求出错'); + return false; + } + if (res.data.code === -1) { + // 登录态失效, 重新登录 + wx.hideNavigationBarLoading(); + App.doLogin(); + } else if (res.data.code === 0) { + App.showError(res.data.msg); + return false; + } else { + success && success(res.data); + } + }, + fail(res) { + // console.log(res); + App.showError(res.errMsg, () => { + fail && fail(res); + }); + }, + complete(res) { + wx.hideNavigationBarLoading(); + complete && complete(res); + }, + }); + }; + // 判断是否需要验证登录 + check_login ? App.doLogin(request) : request(); + }, + + /** + * post提交 + */ + _post_form(url, data, success, fail, complete) { + wx.showNavigationBarLoading(); + let App = this; + // 构造请求参数 + data = Object.assign({ + wxapp_id: 10001, + token: wx.getStorageSync('token') + }, data); + wx.request({ + url: App.api_root + url, + header: { + 'content-type': 'application/x-www-form-urlencoded', + }, + method: 'POST', + data, + success(res) { + if (res.statusCode !== 200 || typeof res.data !== 'object') { + App.showError('网络请求出错'); + return false; + } + if (res.data.code === -1) { + // 登录态失效, 重新登录 + App.doLogin(() => { + App._post_form(url, data, success, fail); + }); + return false; + } else if (res.data.code === 0) { + App.showError(res.data.msg, () => { + fail && fail(res); + }); + return false; + } + success && success(res.data); + }, + fail(res) { + // console.log(res); + App.showError(res.errMsg, () => { + fail && fail(res); + }); + }, + complete(res) { + wx.hideLoading(); + wx.hideNavigationBarLoading(); + complete && complete(res); + } + }); + }, + + /** + * 验证是否存在user_info + */ + validateUserInfo() { + let user_info = wx.getStorageSync('user_info'); + return !!wx.getStorageSync('user_info'); + }, + + /** + * 对象转URL + */ + urlEncode(data) { + var _result = []; + for (var key in data) { + var value = data[key]; + if (value.constructor == Array) { + value.forEach(_value => { + _result.push(key + "=" + _value); + }); + } else { + _result.push(key + '=' + value); + } + } + return _result.join('&'); + }, + + /** + * 设置当前页面标题 + */ + setTitle() { + let App = this, + wxapp; + if (wxapp = wx.getStorageSync('wxapp')) { + wx.setNavigationBarTitle({ + title: wxapp.navbar.wxapp_title + }); + } else { + App.getWxappBase(() => { + App.setTitle(); + }); + } + }, + + /** + * 设置navbar标题、颜色 + */ + setNavigationBar() { + let App = this; + // 获取小程序基础信息 + App.getWxappBase(wxapp => { + // 设置navbar标题、颜色 + wx.setNavigationBarColor({ + frontColor: wxapp.navbar.top_text_color.text, + backgroundColor: wxapp.navbar.top_background_color + }) + }); + }, + + /** + * 获取tabBar页面路径列表 + */ + getTabBarLinks() { + return tabBarLinks; + }, + + /** + * 验证登录 + */ + checkIsLogin() { + return wx.getStorageSync('user_id') != ''; + }, + + /** + * 授权登录 + */ + getUserInfo(userInfo,user_id, callback) { + let App = this; + wx.showLoading({ + title: "正在授权", + mask: true + }); + // 执行微信登录 + wx.login({ + success(res) { + // 发送用户信息 + App._post_form('user/login', { + code: res.code, + user_id: user_id, + user_info: JSON.stringify(userInfo) + }, result => { + // 记录token user_id + wx.setStorageSync('token', result.data.token); + // 执行回调函数 + callback && callback(); + }, false, () => { + wx.hideLoading(); + }); + } + }); + }, + + + /** + * 绑定用户身份证号 + */ + getUserInfoByIdCard(idCard, callback) { + let App = this; + wx.showLoading({ + title: "正在验证身份证号", + mask: true + }); + App._post_form('user/checkIdCard',{ + idCard:idCard + }, result => { + //记录user_id + if(!result.data.user_id){ + wx.showToast({ + title: '身份证号不存在', + icon: 'error', + duration: 2000 + }) + }else{ + wx.setStorageSync('user_id', result.data.user_id); + // 执行回调函数 + callback(result.data.user_id); + } + + }, false, () => { + wx.hideLoading(); + }); + }, + + +}); \ No newline at end of file diff --git a/app.json b/app.json new file mode 100644 index 0000000..79552d7 --- /dev/null +++ b/app.json @@ -0,0 +1,75 @@ +{ + "pages": [ + "pages/index/index", + "pages/rank/index", + "pages/rank/address", + "pages/rank/addInfo", + "pages/category/index", + "pages/category/challenge", + "pages/user/index", + "pages/user/sign", + "pages/login/login", + "pages/topic/index", + "pages/topic/addList", + "pages/topic/addInfo", + "pages/topic/xunzhang", + "pages/topic/address", + "pages/topic/detail", + "pages/category/team" + ], + "subpackages": [ + { + "root": "packageA", + "pages": [ + "user/help", + "user/myChallenge", + "user/myMedal", + "user/profile", + "user/editProfile" + ] + }, + { + "root": "packageB", + "pages": [ + "index/index", + "rule/index", + "user/sign" + ] + } + ], + "window": { + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTitleText": "", + "navigationBarTextStyle": "black", + "backgroundTextStyle": "dark" + }, + "tabBar": { + "color": "#6e6d6b", + "selectedColor": "#890001", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "images/tabBar/home.png", + "selectedIconPath": "images/tabBar/home_on.png" + }, + { + "pagePath": "pages/rank/index", + "text": "排行榜", + "iconPath": "images/tabBar/cate.png", + "selectedIconPath": "images/tabBar/cate_on.png" + }, + { + "pagePath": "pages/user/index", + "text": "我的", + "iconPath": "images/tabBar/user.png", + "selectedIconPath": "images/tabBar/user_on.png" + } + ], + "position": "bottom" + }, + "debug": false, + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..3fa7413 --- /dev/null +++ b/app.wxss @@ -0,0 +1,927 @@ +/* common.wxss */ +@import "/utils/common.wxss"; +@import "/common.wxss"; +@import 'weui.wxss'; +page { + background: #f7f7f7; +} + +.common-header-xian { + border-top: 1rpx solid #eee; + position: fixed; + top: 0; + width: 100%; + z-index: 100; +} + +.del { + text-decoration: line-through; + padding-left: 10rpx; + color: #999; +} + +/* 没有更多 */ + +.no-more { + text-align: center; + color: #737373; + padding: 20rpx 0; +} + +.yoshop-notcont { + margin: 130rpx 100rpx; +} + +.yoshop-notcont .cont { + display: block; + text-align: center; + font-size: 30rpx; + color: #999; + margin-top: 20rpx; +} + +.yoshop-notcont .iconfont { + font-size: 150rpx; + color: #ccc; + text-align: center; + display: block; + margin-bottom: 24rpx; +} + +.yoshop-notcont .img { + width: 200px; + height: 120px; + margin: 0 auto; +} + +.yoshop-notcont .img image { + width: 100%; + height: 100%; +} + +.category-list { + overflow: hidden; +} + +.category-list .list { + box-sizing: border-box; + width: 50%; + float: left; +} + +.category-list .list:nth-child(2n) { + border-left: 2px solid #f7f7f7; + border-bottom: 4px solid #f7f7f7; +} + +.category-list .list:nth-child(2n-1) { + border-right: 2px solid #f7f7f7; + border-bottom: 4px solid #f7f7f7; +} + +.category-list .list .left, .category-list .right { + width: 100%; +} + +.category-list .list .left .img image { + width: 100%; + height: 375rpx; + display: block; +} + +.category-list .right .cont { + padding: 0 12rpx; +} + +.category-list .right .cont .title { + height: 76rpx; + line-height: 1.3; +} + +.category-list.arrange .list { + overflow: hidden; + padding: 15rpx; + border-bottom: 1rpx solid #f7f7f7; + width: 100%; +} + +.category-list.arrange .list .left { + width: 35%; + float: left; +} + +.category-list.arrange .list .right { + width: 65%; + float: left; +} + +.category-list.arrange .list .left .img image { + width: 220rpx; + height: 220rpx; +} + +.button-common button { + background: none; + line-height: inherit; + border-radius: 0; + border: 0; + font-size: 30rpx; +} + +.button-common button[disabled]:not([type]) { + color: #fff; + background-color: #ff495e; +} + +.button-common button::after { + content: " "; + width: 0; + height: 0; + border: none; + transform: scale(0); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: 0; +} + +.commont-fixed-footer { + position: fixed; + bottom: 0; + left: 0; + right: 0; + background: #fff; + border-top: 1rpx solid #ddd; + padding: 3px 0; + z-index: 1000; +} + +.commont-fixed-footer .li { + color: #666; +} + +.commont-fixed-footer .li.active { + color: #ff495e; +} + +.commont-fixed-footer .li image { + width: 50rpx; + height: 50rpx; +} + +.bargain-mol { + background: #fff; + position: fixed; + left: 0; + right: 0; + bottom: -100%; + z-index: 120; + visibility: hidden; +} + +.bargain-mol.active { + bottom: 0; + visibility: visible; +} + +.bargain-mol .header { + background: #f1f1f5; +} + +.bargain-mol .footer { + background: #ff495e; + padding: 26rpx 0; + color: #fff; +} + +.bargain-mol .max-cont { + height: 600rpx; +} + +.bargain-mol .icon-guanbi { + font-size: 34rpx; + float: right; + color: #999; +} + +.bargain-commont-bg { + background: rgba(0, 0, 0, 0.6); + position: fixed; + right: 0; + left: 0; + top: 0; + bottom: 0; + z-index: 20; +} + +.selectNumber { + height: 34px; + flex-direction: row; + border: 1rpx solid #eee; + border-radius: 10rpx; + display: inline-block; +} + +.selectNumber .default { + width: 34px; + height: 34px; + float: left; + line-height: 32px; + padding: 0; + background: #fff; + color: #444; + font-size: 48rpx; +} + +.selectNumber .default-active { + background: #f7f7f7; + color: #ddd; +} + +.selectNumber button:after { + content: none; + border: none; +} + +.selectNumber input { + float: left; + width: 50px; + height: 34px; + line-height: 34px; + border-right: 1rpx solid #eee; + border-left: 1rpx solid #eee; + text-align: center; + font-size: 28rpx; + color: #444; +} + +/* 返回顶部 */ + +.widget-goTop { + position: fixed; + bottom: 150rpx; + z-index: 20; + right: 12px; + background: rgba(255, 255, 255, 0.9); + width: 76rpx; + height: 76rpx; + border-radius: 76rpx; + border: 1rpx solid #eee; +} + +.widget-goTop .icon-fanhuidingbu { + color: #666; + display: block; + text-align: center; + line-height: 76rpx; + font-size: 32rpx; +} + +.index-loading .loading { + border-radius: 100%; + margin: 150rpx auto 0; + animation-fill-mode: both; + border: 2px solid #ff495e; + border-bottom-color: transparent; + height: 25px; + width: 25px; + background: transparent !important; + animation: rotate 0.75s 0s linear infinite; +} + +@-webkit-keyframes rotate { + 0% { + transform: rotate(0deg) scale(1); + } + + 100% { + transform: rotate(360deg) scale(1); + } +} + +@keyframes rotate { + 0% { + transform: rotate(0deg) scale(1); + } + + 100% { + transform: rotate(360deg) scale(1); + } +} + +.title-header { + height: 100rpx; + line-height: 100rpx; + font-weight: 700; + margin-left: -10rpx; +} + +.title-footer { + position: relative; + z-index: 1; + height: 80rpx; + line-height: 80rpx; + overflow: hidden; + color: #888; + text-align: center; + margin: 0 18rpx 0; +} + +.title-footer .cont { + padding: 0 12rpx; + font-size: 28rpx; + z-index: 10; + background-color: #FFF; +} + +.title-footer .hr { + background: #eee; + height: 1rpx; + border: 0; + position: absolute; + left: 10%; + right: 10%; + top: 50%; + margin-top: 1px; + z-index: -1; +} + +.slide-image { + width: 100%; + height: 100%; + margin: 0 auto; + display: block; +} + +.index_sale { + background: #fff; + padding: 0 12px 12px 12px; +} + +.index_sale .nav_img, .index-list .nav_img { + padding: 30rpx 0 0 0; + width: 100%; + height: 30rpx; +} + +.index_sale scroll-view { + width: 100%; + white-space: nowrap; +} + +.index_sale .sale_img { + border: 1rpx solid #f2f2f2; + border-radius: 4px; + overflow: hidden; + width: 100%; + height: 300rpx; +} + +.index_sale .sale_img image { + width: 100%; + height: 100%; +} + +.index_sale .price { + margin-top: 10rpx; + display: block; +} + +.index_sale .page-column { + padding: 0 11rpx 11rpx 0; +} + +.index_sale .content { + width: 170rpx; +} + +.index_sale .content text { + font-size: 26rpx; + margin: 5rpx 10rpx; + width: 100%; +} + +/* +.flex { + display: flex; +} */ + +.goods-comment-box .admin { + font-size: 26rpx; + color: #999; + padding-right: 10rpx; +} + +.goods-comment-cont { + font-size: 30rpx; + color: #333; + margin: 10rpx 0; +} + +.footer-fixed { + position: fixed; + display: flex; + bottom: 0px; + left: 0px; + right: 0px; + height: 46px; + z-index: 18; + box-shadow: 1px 5px 15px rgba(50, 50, 50, 0.3); + background: #fff; +} + +.order-bt { + width: 50%; + background-color: #ff495e; + color: #fff; + text-align: center; + line-height: 46px; +} + +.swiper-box .wx-swiper-dot { + /* width: 0rpx; + height: 0rpx; */ +} + +.goods_comment_box .comment_btn { + width: 220rpx; + margin: 0 auto; + padding: 20rpx 0; +} + +.goods_comment_box .comment_btn text { + display: block; + padding: 5rpx 0; + color: #ff495e; + font-size: 26rpx; + text-align: center; + border: 1px solid #ff495e; + border-radius: 30rpx; +} + +.goods-detail-box { + padding: 0; + min-height: 150px; +} + +.com_xing .icon-shoucang1 { + padding-right: 6rpx; + color: #ccc; + font-size: 26rpx; +} + +.com_xing .icon-shoucang1.active { + color: #f4a213; +} + +.goods-comment-box .left { + flex: 3; + position: relative; +} + +.goods-comment-box .right { + flex: 3; +} + +.bright789-text { + font-size: 40rpx; + line-height: 40px; + color: #f00; +} + +.bright789_view_hide { + display: none; +} + +.bright789_view_show { + display: block; +} + +.show { + display: block; +} + +.hide { + display: none; +} + +.com_xing { + display: inline-block; +} + +.flow-checkout-header { + padding: 28rpx 0; + background: #fff url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAANCAYAAADVGpDCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3Yjk4M2ExYy1jMDhkLTQ1OTktYTI0Ny1kZjNjYzdiYTQ5ZTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQwNkY3RkU5N0NGMTFFNUI3N0M4NTU4MzM2RjlFODIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQwNkY3RkQ5N0NGMTFFNUI3N0M4NTU4MzM2RjlFODIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNzgwZWI1NS03OGFhLTQzOTUtODQ4OC1lOWI5YmVlYTY1ZDciIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1OTRiYzUyMy1jMzc3LTExNzgtYTdkZS04NGY3YmM1ZGIxMDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz556PLxAAACBElEQVR42tyaSyhEYRTHP48imlKibDQeSSlkSlEWLCRFsZNH5FE2FqQ8ErIRC9lIkTwXSpMkWWChhEJCSnlkoUZGSsr78f98n43CMFPu/Z/6NZuZ2zn33/+cb869XkmLx8IDEQaGQJbgiytQDSY3MyL+LYnL/HxPXSoHDIJQQq2WQQk4Dbbb/yUB29LJ+6e3B66VB3ZITbUIEqSpCGoJBP1ghtBUD6ARpEtTGSEhXzd+awE9oJzQUPegWdf3QlBPMhgDMYRa7YNisGWkpP5qrBQtVBShUHugUE9hs4fUtwG0utlEjRivoA/Ug1sj3vjffr8FNJEK1auPFHcE9UTq5pdK2PwcoAzMG7mjuRrRYEIfK9jiDJSCBZJ6ynSTsBBqNQ0qgdPISbq6vJCFbJOaagrEk5gqWNczRGiqG1Ah1LLMafRkf5pYIUKtZnMJDXUNasAIST2ZYFioRx9ssQaKwJFZEv5uYmWDXVJTrYBEElP562PfPKGpnkAbSDOTqb6aWAGgW6iHol5kQj2CdtAJngnqkc1hHMQRNr9DPaXWzZj8Z2PZtFCxhEIdaKE2CGqRJ4060AH8CLUaALX6f5VpBZLhI9SaeZXQVHKNLt84SCIxVbhQi5YuQlNd6OVElZlN9TGxrGBUn2PZ4lyoTdIsST0FQj0UDSLUak6ot3gcBLVY3wQYAJoVXxmNERajAAAAAElFTkSuQmCC') bottom left repeat-x; + background-size: 120rpx auto; + position: relative; +} + +.flow-header-left { + flex: 14; +} + +.flow-header-right { + flex: 1; +} + +.flow-header-right image { + width: 34rpx; + height: 34rpx; + margin-top: 20rpx; + float: right; +} + +.flow-checkout-header .flow-checkout-address { + font-size: 26rpx; + color: #777; + margin-top: 6rpx; +} + +.flow-shopList { + padding: 20rpx 0; +} + +.flow-shopList .flow-list-left { + flex: 2; +} + +.flow-shopList .flow-list-left image { + width: 200rpx; + height: 200rpx; + border: 1rpx solid #eee; + background: #fff; +} + +.flow-shopList .flow-list-right { + flex: 4; +} + +.flow-shopList .flow-list-right .h4 { + font-size: 30rpx; + color: #333; +} + +.flow-shopList .flow-list-right .flow-cont { + font-size: 30rpx; + color: #ff495e; +} + +.flow-shopList .flow-list-right .small { + float: right; + font-size: 26rpx; + color: #777; +} + +.flow-shopList .flow-list-right .flow-list-cont { + padding-top: 10rpx; +} + +.flow-fixed-footer { + position: fixed; + bottom: 0; + width: 100%; + background: #fff; + border-top: 1px solid #eee; + z-index: 11; +} + +.flow-num-box { + font-size: 30rpx; + color: #777; + padding: 15rpx 12px; + text-align: right; + /* border-top: 1rpx solid #f1f1f1; */ +} + +.flow-all-money { + padding: 8px 12px; + color: #444; +} + +.flow-all-money .flow-all-list { + font-size: 30rpx; + padding: 20rpx 0; + border-bottom: 1rpx solid #f1f1f1; +} + +.flow-all-money .flow-all-list:last-child { + border-bottom: none; +} + +.flow-all-money .flow-all-list-cont { + font-size: 28rpx; + padding: 6rpx 0; +} + +.flow-all-money .flow-arrow { + justify-content: flex-end; + align-items: center; +} + +.flow-fixed-footer .chackout-left { + font-size: 32rpx; + line-height: 46px; + color: #777; + flex: 4; + padding-left: 12px; +} + +.flow-fixed-footer .chackout-right { + font-size: 34rpx; + flex: 2; +} + +.flow-btn { + background-color: #ff495e; + color: #fff; + text-align: center; + line-height: 46px; + display: block; +} + +.flow-list .header .shop_name { + padding-left: 10rpx; + font-size: 30rpx; + color: #333; +} + +.flow-list .header .icon-dianpu2 { + color: #ff495e; + padding-left: 20rpx; + font-size: 32rpx; +} + +.flow-list .header image { + width: 34rpx; + height: 37rpx; + position: absolute; + top: 50%; + margin-top: -18rpx; + left: 15px; +} + +.flow-list .header { + background: #fdf9f9; + padding: 24rpx 0; + border-top: 1rpx solid #eee; + border-bottom: 1rpx solid #eee; + font-size: 30rpx; + position: relative; +} + +.flow-list custom-li, .addres-list custom-li { + margin-top: 25rpx; + display: block; +} + +.flow-list custom-li:first-child, .addres-list custom-li:first-child { + margin-top: 0; +} + +.flow-distribution-right .icon-xiangyoujiantou { + font-size: 26rpx; + position: absolute; + right: 15px; + top: 50%; + margin-top: -16rpx; + color: #999; +} + +.flow-checkout-address text { + padding-right: 5rpx; +} + +.flow-header-right .icon-xiangyoujiantou { + position: absolute; + right: 15px; + top: 50%; + margin-top: -13rpx; + font-size: 32rpx; + color: #999; +} + +.wxParse-em, .WxEmojiView { + display: inline-block; + color: #333; +} + +.flow-shopList .flow-list-left image { + width: 180rpx; + height: 180rpx; +} + +.profile-btn button { + background: #ff495e; + color: white; + margin-bottom: 20rpx; +} + +.flow-checkout-header .icon-dingwei1 { + position: absolute; + top: 50%; + left: 15px; + font-size: 40rpx; + color: #777; + margin-top: -20rpx; +} + +/* +.index-cont-search { + width: 85%; + font-size: 32rpx; +} */ + +.index-cont-search { + width: 100%; + font-size: 28rpx; + position: relative; + background: #f1f1f1; +} + +.index-cont-search icon { + position: absolute; + left: 50%; + margin-left: -70rpx; + top: 50%; + margin-top: -15rpx; +} + +.index-cont-search text { + margin-left: 72rpx; +} + +@-webkit-keyframes shop { + 0% { + transform: translateY(-80px); + } + + 50% { + transform: translateY(0px); + } + + 100% { + transform: translateY(-80px); + } +} + +@keyframes shop { + 0% { + transform: translateY(-80px); + } + + 50% { + transform: translateY(0px); + } + + 100% { + transform: translateY(-80px); + } +} + +.user-order { + background: #fff; +} + +.user-orderIcon { + width: 46rpx; + height: 46rpx; + padding-left: 15rpx; + margin-top: 15rpx; +} + +.user-orderName { + font-size: 30rpx; + color: #444; + position: absolute; + left: 90rpx; + top: 50%; + margin-top: -21rpx; +} + +.user-orderJtou { + color: #777; + font-size: 26rpx; +} + +.user-orderCont { + font-size: 28rpx; + color: #999; +} + +.user-orderContBox { + float: right; + padding: 15rpx; +} + +.userinfo { + display: flex; + flex-direction: column; + align-items: center; +} + +.address-box .left-name { + width: 95px; +} + +.address-box .right-cont { + padding-right: 15px; + font-size: 30rpx; + color: #444; +} + +.address-box .right-cont input { + width: 100%; + font-size: 30rpx; + color: #444; +} + +.address-cont-box picker { + display: inline-block; + margin-right: 15px; + width: 100%; +} + +.button { + border: 1px solid #1aad19; + border-radius: 2px; +} + +.picker { + padding: 13px; + background-color: #fff; +} + +.profile-list { + padding: 24rpx 0; + border-bottom: 1px solid #f6f6f9; +} + +.profile-list .admin { + font-size: 30rpx; + color: #333; +} + +.profile-btn button { + background: #ff495e; + color: white; +} + +.profile-btn button[disabled] { + background: #f16474; + color: white; +} + +.search-box .left { + width: 28px; +} + +.search-box .left icon { + padding: 18rpx; +} + +.search-box .right { + flex: 1; +} + +.wxParse-img { + display: block; + width: 100%; + margin: 0 auto; +} + +.wxParse-inline { + font-size: 28rpx; + text-align: center; +} + +.wxParse-div { + overflow: hidden; +} + +.wxParse-div .kd_pic { + float: left; + width: 50%; + margin: 0 auto; +} + +.xEmojiView { + margin: 15rpx 0; +} +.relative { + position: relative; +} + +.absolute { + position: absolute; +} + +.fixed { + position: fixed; +} + +.item-box{ + width:100%; + height:380rpx; + border-radius: 12rpx; + overflow: hidden; + margin-bottom:20rpx; +} diff --git a/common.wxss b/common.wxss new file mode 100644 index 0000000..f09076b --- /dev/null +++ b/common.wxss @@ -0,0 +1,410 @@ +/* flex */ +.i-flex { + display: flex; +} + +.i-flex-wrap { + flex-wrap: wrap; +} + +.i-flex-nowrap { + flex-wrap: nowrap; +} + +.i-flex-col { + display: flex; + flex-direction: column; +} + +.i-flex-item { + flex: 1; +} + +.i-flex-alc { + justify-content: center; + align-items: center; +} + +.i-flex-spb { + justify-content: space-between; + align-items: center; +} + +.i-aic { + align-items: center; +} + +.jcontent-c { + justify-content: center; +} + +.jcontent-sb { + justify-content: space-between; +} + +.jcontent-sa { + justify-content: space-around; +} + +.weight { + font-weight: bold; +} + +.text-overflow1 { + overflow: hidden; + text-overflow:ellipsis; + white-space: nowrap; +} + +.text-overflow2 { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} +.text-left { + text-align: left; +} +/* 字体大小 */ +.fsz-16 { + font-size: 16rpx!important; +} + +.fsz-22 { + font-size: 22rpx; +} + +.fsz-24 { + font-size: 24rpx; +} + +.fsz-26 { + font-size: 26rpx; +} + +.fsz-28 { + font-size: 28rpx; +} + +.fsz-30 { + font-size: 30rpx; +} + +.fsz-32 { + font-size: 32rpx; +} + +.fsz-34 { + font-size: 34rpx; +} + +.fsz-36 { + font-size: 36rpx; +} + +.fsz-38 { + font-size: 38rpx; +} + +.fsz-60 { + font-size: 60rpx; +} + +/* 字体颜色 */ +.text-3 { + color: #333!important; +} + +.text-6 { + color: #666; +} + +.text-gray { + color: #999; +} + +.text-white { + color: #fff!important; +} + +.text-dark { + color: #000!important; +} + +.text-sucess { + color: #5cb85c!important; +} + +.text-warning { + color: #f0ad4e!important; +} + +.red { + color: #ff5344; +} + +.bule { + color: rgb(59,140,232); +} + +/* 背景 */ +.bg-f { + background-color: #fff; +} + +.bg-blue { + background-color: rgb(59,140,232); +} + +.bg-primary { + background-color: #ff5344; +} + +.bg-lighter { + background-color: #f8f8f8; +} + +.bg-ccc { + background: #ccc!important; +} + +.bg-sucess { + background: #5cb85c!important; +} + +.bg-warning { + background: #f0ad4e!important; +} + +/* 边距 */ +.ml5 { + margin-left: 10rpx; +} + +.ml10 { + margin-left: 20rpx; +} + +.mb5 { + margin-bottom: 10rpx; +} + +.mt-auto { + margin-top: auto; +} + +.mt5 { + margin-top: 10rpx; +} + +.mx5 { + margin-left: 10rpx; + margin-right: 10rpx; +} + +.m10 { + margin: 20rpx; +} + +.mt10 { + margin-top: 20rpx; +} + +.my10 { + margin-top: 10rpx; + margin-bottom: 10rpx; +} + +.mx10 { + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mx15 { + margin-left: 30rpx; + margin-right: 30rpx; +} + +.mb10 { + margin-bottom: 20rpx; +} + +.mb20 { + margin-bottom: 40rpx; +} + +.m15 { + margin: 30rpx; +} + +.p5 { + padding: 10rpx; +} + +.p10 { + padding: 20rpx; +} + +.p15 { + padding: 30rpx; +} + +.pt10 { + padding-top: 20rpx; +} + +.pb10 { + padding-bottom: 20rpx!important; +} + +.py10 { + padding-top: 20rpx!important; + padding-bottom: 20rpx!important; +} + +.pb15 { + padding-bottom: 30rpx; +} + +.px15 { + padding-left: 30rpx; + padding-right: 30rpx; +} + +.py15 { + padding-top: 30rpx!important; + padding-bottom: 30rpx!important; +} + +.pb20 { + padding-bottom: 40rpx; +} + +.p30 { + padding: 30rpx; +} + +.ml30 { + margin-left: 30rpx; +} + +.pb100 { + padding-bottom: 100rpx; +} + +.w0 { + width: 0; +} + +.w90p { + width: 90%; +} + +.maxH { + max-height: 75vh; +} + +.rounded-mini { + border-radius: 5rpx; +} + +.rounded { + border-radius: 10rpx; +} + +.border-bottom, +.border-top { + position: relative; +} + +.border-bottom::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + right: 0; + border-bottom: 1px solid #e5e5e5; + transform-origin: 0 0; + transform: scaleY(0.5); +} + +.border-top::before { + content: ""; + position: absolute; + left: 0; + top: 0; + right: 0; + border-bottom: 1px solid #e5e5e5; + transform-origin: 0 0; + transform: scaleY(0.5); +} + +.btn-hollow { + border: 1rpx solid #e5e5e5; + padding: 12rpx 20rpx; + border-radius: 30rpx; + font-size: 22rpx; + color: #666; + line-height: 1; +} + +.line-through { + text-decoration: line-through; +} + +.line-height { + line-height: 1.5; +} + +/* 定位 */ +.pos-r { + position: relative; +} + +.pos-a { + position: absolute; +} + +.pos-f { + position: fixed; +} + +.avatar { + width: 80rpx; + height: 80rpx; + border-radius: 50%; +} + +.shadow { + box-shadow: 1px 2px 5px #ccc; +} + +.shadow-top { + box-shadow: 0px -3px 5px -2px #ccc; +} + +.avatar-md { + width: 100rpx; + height: 100rpx; + border-radius: 50%; + overflow: hidden; +} +.pm_index_line{border-bottom: 1px solid #DEDEDE;} +.pm_index{width:40rpx;height:40rpx;border-radius:15rpx;color:#333;text-align:center;line-height:40rpx;} +.pm_index1{ + background-color:#FFDC7A; +} +.pm_index2{ + background-color:#CBCBF6; +} +.pm_index3{ + background-color:#F9A470; +} \ No newline at end of file diff --git a/components/calendar/calendar.js b/components/calendar/calendar.js new file mode 100644 index 0000000..6a126b7 --- /dev/null +++ b/components/calendar/calendar.js @@ -0,0 +1,472 @@ +// components/calendar/calendar.js +Component({ + options: { + styleIsolation: 'apply-shared' + }, + properties: { + date: { + type: null, + value: new Date() + }, + /** + * 选中的日期 + */ + selected: { + type: Array, + value: [], + observer(newVal, oldVal) { + this.getWeek(new Date()) + } + }, + /** + * 锁定日期 + */ + lockDay: { + type: String, + }, + /** + * 是否默认展开, 可以调用open事件展开组件 + */ + isOpen: { + type: Boolean, + value: false + }, + /** + * 是否多选日期 + */ + multiple:{ + type: Boolean, + value: true + }, + /** + * 是否展示头部 + */ + showHeader: { + type: Boolean, + value: false + }, + /** + * 是否不能修改 + */ + readonly: { + type: Boolean, + value: true + }, + /** + * 使用mini样式 + */ + mini:{ + type: Boolean, + value: true + } + }, + + /** + * 组件的初始数据 + */ + data: { + calShow: true, // 日历组件是否打开 + dateShow: false, // 日期是否选择 + selectDay: '', // 当前选择日期 + selectDays: [], //多选日期 + canlender: { + "weeks": [] + }, + currentMonth: null, + nowMonth: new Date().getMonth()+1, + nowDate: new Date().getDate() + }, + ready() { + let sdays = this.data.selected; + sdays.forEach(v=>{ + this.data.selectDays.push(v); + }) + this.getWeek(new Date()); + if (this.data.isOpen) { + this.setData({ + calShow: false, + dateShow: true + }) + } + }, + /** + * 组件的方法列表 + */ + methods: { + open: function(date) { + if(date && date!=''){ + this.data.selectDays = []; //打开时候显示一个 + this.data.selectDays.push(date); + this.setData({ + selectDays: this.data.selectDays + }) + this.getWeek(date); + } + this.dateSelection(); + }, + close: function() { + this.packup(); + }, + clear: function(){ + this.setData({ + selectDays: [] + }) + let m; + if(this.data.currentMonth == null){ + m = this.data.canlender.month + }else{ + m = this.data.currentMonth + } + let year = this.data.canlender.year + "-" + m + "-" + this.data.canlender.date + let _date = this.getDate(year, 0); + this.getWeek(_date); + this.triggerEvent("clear",{}) + }, + dateSelection() { + if (this.data.isOpen) { + return + } + let self = this; + if (self.data.calShow) { + self.setData({ + calShow: false + }, () => { + setTimeout(() => { + self.setData({ + dateShow: true + }, () => { + self.triggerEvent('show', { + ischeck: !self.data.calShow + }) + }) + }, 100) + }) + } else { + self.setData({ + dateShow: false + }, () => { + setTimeout(() => { + self.setData({ + calShow: true + }, () => { + self.triggerEvent('show', { + ischeck: !self.data.calShow + }) + }) + }, 300) + }) + } + }, + //选择日期 + selectDay(e) { + if(this.data.readonly){ + return + } + let index = e.currentTarget.dataset.index; + let week = e.currentTarget.dataset.week; + let ischeck = e.currentTarget.dataset.ischeck; + let canlender = this.data.canlender; + if (!ischeck) return false; + let month = canlender.weeks[week][index].month < 10 ? "0" + canlender.weeks[week][index].month : canlender.weeks[week][index].month + let date = canlender.weeks[week][index].date < 10 ? "0" + canlender.weeks[week][index].date : canlender.weeks[week][index].date + let datestr = canlender.year + "-" + month + "-" + date; + let selectDays = this.data.selectDays; + if (selectDays.indexOf(datestr)==-1) { + if(this.data.multiple){ + //多选 + selectDays.push(datestr); + }else{ + selectDays = []; //只保留最后选的 + selectDays.push(datestr); + } + }else{ + let index = selectDays.indexOf(datestr); + selectDays.splice(index, 1); + } + selectDays.sort(function(a, b){ + let ds1 = a.split("-"); + let ds2 = b.split("-"); + let d1 = new Date(ds1[0], ds1[1], ds1[2]); + let d2 = new Date(ds2[0], ds2[1], ds2[2]); + return d1-d2; + }); + this.data.selectDays = selectDays; + this.getWeek(datestr); + this.triggerEvent('getdate', { + datestr + }) + }, + //点击确定 + packup() { + let self = this; + self.triggerEvent('select', { + selectDays: self.data.selectDays + }) + if (this.data.isOpen) { + let year = self.data.canlender.year + "-" + self.data.canlender.month + "-" + self.data.canlender.date + let _date = self.getDate(year, 0); + self.getWeek(_date); + return + } + self.setData({ + dateShow: false + }, () => { + setTimeout(() => { + self.setData({ + calShow: true + }, () => { + let year = self.data.canlender.year + "-" + self.data.canlender.month + "-" + self.data.canlender.date + let _date = self.getDate(year, 0); + self.getWeek(_date); + }) + }, 300) + }) + }, + /** + * 页面通过事件选中日期后调用refresh方法刷新日历组件 + */ + refresh: function (num){ + this.setData({ + selectDays: num + }) + let m; + if(this.data.currentMonth == null){ + m = this.data.canlender.month + }else{ + m = this.data.currentMonth + } + + let year = this.data.canlender.year + "-" + m + "-" + this.data.canlender.date + let _date = this.getDate(year, 0); + this.getWeek(_date); + }, + // 返回今天 + backtoday() { + if(!this.data.readonly){ + let datestr = this.dateStr(new Date()); + this.data.selectDays.push(datestr); + this.setData({ + selectDays: this.data.selectDays + }); + this.triggerEvent('getdate', { + datestr + }) + } + this.getWeek(new Date()); + }, + // 前一天|| 后一天 + dataBefor(e) { + let num = 0; + let types = e.currentTarget.dataset.type; + + if (e.currentTarget.dataset.id === "0") { + num = -1; + } else { + num = 1 + } + let year = this.data.canlender.year + "-" + this.data.canlender.month + "-" + this.data.canlender.date + let _date = this.getDate(year, num, types === 'month' ? "month" : "day"); + this.getWeek(_date); + }, + + // 获取日历内容 + getWeek(dateData) { + + let selected = this.data.selected + let selectDays = this.data.selectDays + // 判断当前是 安卓还是ios ,传入不容的日期格式 + if (typeof dateData !== 'object') { + dateData = dateData.replace(/-/g, "/") + } + let _date = new Date(dateData); + let year = _date.getFullYear(); //年 + let month = _date.getMonth() + 1; //月 + let date = _date.getDate(); //日 + let day = _date.getDay(); // 天 + let canlender = []; + + let dates = { + firstDay: new Date(year, month - 1, 1).getDay(), + lastMonthDays: [], // 上个月末尾几天 + currentMonthDys: [], // 本月天数 + nextMonthDays: [], // 下个月开始几天 + endDay: new Date(year, month, 0).getDay(), + weeks: [] + } + // 循环上个月末尾几天添加到数组 + for (let i = dates.firstDay; i > 0; i--) { + let dd = new Date(year, month-1, -(i-1)); + let checked = false; + selectDays.forEach(v => { + let selDate = v.date.split('-'); + let ddstr = this.dateStr(dd); + if (ddstr == v) { + checked = true; + } + }) + dates.lastMonthDays.push({ + 'date': '', + 'month': '', + checked + }) + } + // 循环本月天数添加到数组 + for (let i = 1; i <= new Date(year, month, 0).getDate(); i++) { + let have = false; + let checked = false; + let step = ''; + // for (let j = 0; j < selected.length; j++) { + // let selDate = selected[j].split('-'); + // if (Number(year) === Number(selDate[0]) && Number(month) === Number(selDate[1]) && Number(i) === Number(selDate[2])) { + // have = true; + // } + // } + selectDays.forEach(v => { + let selDate = v.date.split('-'); + if (Number(year) === Number(selDate[0]) && Number(month) === Number(selDate[1]) && Number(i) === Number(selDate[2])) { + checked = true; + step = v.step; + } + }) + dates.currentMonthDys.push({ + 'date': i + "", + 'month': month, + // have, + checked, + step + }) + } + // 循环下个月开始几天 添加到数组 + for (let i = 1; i < 7 - dates.endDay; i++) { + dates.nextMonthDays.push({ + 'date': '', + 'month': '' + }) + } + + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 == 0) { + dates.weeks[parseInt(i / 7)] = new Array(7); + } + dates.weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + // 渲染数据 + this.setData({ + selectDay: month + "月" + date + "日", + "canlender.weeks": dates.weeks, + 'canlender.month': month, + 'canlender.date': date, + "canlender.day": day, + 'canlender.year': year, + }) + month = month < 10 ? "0" + month : month + date = date < 10 ? "0" + date : date + // let localstr = year+"-"+month+"-"+date; + // this.triggerEvent('getdate', { + // year, + // month, + // date, + // localstr + // }) + + // console.log(dates.weeks); + + }, + checkall(){ + let date = new Date(); + let m, d, day, dayNum; + let days = []; + if(this.data.currentMonth == null){ + m = parseInt(this.data.nowMonth) + }else{ + m = parseInt(this.data.currentMonth) + } + + switch (m) { + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: + dayNum = 31; + break; + case 4: + case 6: + case 9: + case 11: + dayNum = 30; + break; + case 2: + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + dayNum = 29; + } else { + dayNum = 28; + } + break; + } + for (d = 1; d <= dayNum; d++) { + date.setMonth(m - 1, d); + day = date.getDay(); + let str = this.format(date); + if(date.getMonth() == new Date().getMonth()){ + if(date.getDate() - new Date().getDate() >= 0){ + days.push(str); + } + }else if(date.getMonth() > new Date().getMonth()){ + days.push(str); + } + } + this.refresh(days); + this.triggerEvent('checkall', { + days + }) + }, + /** + * 时间计算 + */ + getDate(date, AddDayCount, str = 'day') { + if (typeof date !== 'object') { + date = date.replace(/-/g, "/") + } + let dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break; + case 'month': + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + break; + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break; + } + let y = dd.getFullYear() + let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) // 获取当前月份的日期,不足10补0 + let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + this.setData({ + currentMonth: m + }) + return y + '-' + m + '-' + d + }, + //日期转字符串 + dateStr(calendar){ + let year = calendar.getFullYear(); + let month = calendar.getMonth()+1; + let date = calendar.getDate(); + month = month < 10 ? "0" + month : month; + date = date < 10 ? "0" + date : date; + let datestr = year + "-" + month + "-" + date; + return datestr; + }, + format(dd){ + let y = dd.getFullYear() + let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) + let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() + return y + '-' + m + '-' + d + } + } +}) \ No newline at end of file diff --git a/components/calendar/calendar.json b/components/calendar/calendar.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/calendar/calendar.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/calendar/calendar.wxml b/components/calendar/calendar.wxml new file mode 100644 index 0000000..a3d338a --- /dev/null +++ b/components/calendar/calendar.wxml @@ -0,0 +1,73 @@ + +var strcontains = function (str,c) { + if (str.indexOf(c) >= 0) { + return true + }else{ + return false + } +} + +var formatNumber = function(n) { + n = n.toString() + return n[1] ? n : '0' + n +} + +module.exports = { + formatNumber: formatNumber, + strcontains: strcontains +} + + + + + + + + + {{canlender.year}}年{{canlender.month}}月 + + + + + + + + + + + {{canlender.year}}年 + {{canlender.month}}月 + + + + + + + + + + + + + + + + + + {{day.date}} + + + + + {{day.date}} + {{day.step}} + + + + + + + + + \ No newline at end of file diff --git a/components/calendar/calendar.wxss b/components/calendar/calendar.wxss new file mode 100644 index 0000000..2dfee45 --- /dev/null +++ b/components/calendar/calendar.wxss @@ -0,0 +1,260 @@ +/* pages/calendar/calendar.wxss */ +cover-view{ + line-height: initial; +} +.calendar-box { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100vh; + background: rgba(0, 0, 0, 0.5); + z-index: 999999; + padding-top: 100rpx; + box-sizing: border-box; + transition: all 0.3s; + opacity: 0; +} + +.calendar-box.active { + opacity: 1; +} + +.calendar-wrapper { + width: 100%; + border-top: 1px #f5f5f5 solid; + border-bottom: 1px #f5f5f5 solid; + box-sizing: border-box; + font-size: 26rpx; + background: #fff; + transition: all 0.3s; + transform: translateY(-100%); +} + +.calendar-wrapper.active { + transform: translateY(0%); +} + +.header { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 100rpx; + background: #fff; + z-index: 10000; +} + +.top-jiantou { + width: 100rpx; + height: 100rpx; + text-align: center; + box-sizing: border-box; + line-height: 100rpx; +} + +.iconfont{ + display: flex; + justify-content: center; + align-items: center; + position: relative; + color: #1AB16C; + width: 53rpx; + height: 53rpx; +} + +.left-color, +.right-color + { + display: block; + width: 0; + height: 0; + border-top: 20rpx solid transparent; + border-bottom: 20rpx solid transparent; +} + +.left-color{ + border-right: 40rpx solid transparent; + border-right-color: #1AB16C; +} + +.right-color{ + border-left: 40rpx solid transparent; + border-left-color: #1AB16C; +} + +.btn { + margin: 0 30rpx; + width: 240rpx; + height: 53rpx; + border: 1rpx solid #1AB16C; + border-radius: 26rpx; + color: #1AB16C; + font-size: 26rpx; + box-sizing: border-box; +} + +.calendar-panel { + position: relative; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + height: 80rpx; +} + +.backtoday { + position: absolute; + right: 0; + top: 15rpx; + padding: 0 10rpx; + padding-left: 20rpx; + height: 50rpx; + line-height: 50rpx; + border: 1px #1AB16C solid; + border-right: none; + font-size: 28rpx; + border-top-left-radius: 50rpx; + border-bottom-left-radius: 50rpx; + color: #1AB16C; + background: rgba(82, 184, 245, 0.1); +} +.checkalllbtn { + position: absolute; + left: 0; + top: 15rpx; + padding: 0 10rpx; + padding-right: 20rpx; + height: 50rpx; + line-height: 50rpx; + border: 1px #1AB16C solid; + border-left: none; + font-size: 28rpx; + border-top-right-radius: 50rpx; + border-bottom-right-radius: 50rpx; + color: #1AB16C; + background: rgba(82, 184, 245, 0.1); +} + +.date-befor, .date-after { + /* border: 1px red solid; */ + display: flex; + justify-content: center; + align-items: center; + height: 80rpx; + width: 80rpx; + text-align: center; + line-height: 80rpx; + /* margin-right: 20rpx; */ +} + +/* .date-after { + margin-left: 20rpx; +} */ + +.calendar-panel-box { + display: flex; +} + +.calendar-header { + display: flex; +} + +.calendar-header view, +.calendar-header cover-view { + width: 100%; + text-align: center; + line-height: 80rpx; + color: #1AB16C; +} +.calendar-header.mini view, +.calendar-header.mini cover-view + { + line-height: 50rpx; +} +.calendar-body { + display: flex; + flex-wrap: wrap; +} + +.calender-body-date-week { + display: flex; + width: 100%; + border-bottom: 1px #f5f5f5 solid; + height:100rpx; + padding:10rpx 0; +} + +.date { + + width: 100%; + display: flex; + color: #1c1c1c; + background: #fff; + align-items: center; + flex-direction: column; + +} +.date.mini{ + line-height: 50rpx; + +} +.date.active { + background: red; +} + +.placeholder { + color: #1c1c1c; +} + +.date-current { + background: #1AB16C; + color: #fff; +} + +.date-lock { + color: #ff5a5f; +} +.data-circle { + color: #1AB16C; + font-weight: bold; +} +.data-circle.mini{ + bottom: 2rpx; +} + +.packup { + width: 100%; + height: 100rpx; + line-height: 100rpx; + text-align: center; + color: #1AB16C; + align-items: center; +} +.packup-button{ + display: flex; + align-items: center; + justify-content: center; + width: 50%; + height: 55px; + line-height:55px!important; +} +.flex{ + display: flex; +} +.flex-between{ + justify-content: space-between; +} +.flex-center { + display: flex; + align-items: center; + justify-content: center; +} +.border-left{ + border-left:1px solid #eee; +} +.cmf-btn{ + background-color: #39b54a; + color: #fff; + border: 1rpx solid #39b54a; +} diff --git a/components/calendarn/calendar.js b/components/calendarn/calendar.js new file mode 100644 index 0000000..8d43665 --- /dev/null +++ b/components/calendarn/calendar.js @@ -0,0 +1,475 @@ +// components/calendar/calendar.js +Component({ + options: { + styleIsolation: 'apply-shared' + }, + properties: { + date: { + type: null, + value: new Date() + }, + /** + * 选中的日期 + */ + selected: { + type: Array, + value: [], + observer(newVal, oldVal) { + this.getWeek(new Date()) + } + }, + /** + * 锁定日期 + */ + lockDay: { + type: String, + }, + /** + * 是否默认展开, 可以调用open事件展开组件 + */ + isOpen: { + type: Boolean, + value: false + }, + /** + * 是否多选日期 + */ + multiple:{ + type: Boolean, + value: true + }, + /** + * 是否展示头部 + */ + showHeader: { + type: Boolean, + value: false + }, + /** + * 是否不能修改 + */ + readonly: { + type: Boolean, + value: true + }, + /** + * 使用mini样式 + */ + mini:{ + type: Boolean, + value: true + } + }, + + /** + * 组件的初始数据 + */ + data: { + calShow: true, // 日历组件是否打开 + dateShow: false, // 日期是否选择 + selectDay: '', // 当前选择日期 + selectDays: [], //多选日期 + canlender: { + "weeks": [] + }, + currentMonth: null, + nowMonth: new Date().getMonth()+1, + nowDate: new Date().getDate() + }, + ready() { + let sdays = this.data.selected; + sdays.forEach(v=>{ + this.data.selectDays.push(v); + }) + this.getWeek(new Date()); + if (this.data.isOpen) { + this.setData({ + calShow: false, + dateShow: true + }) + } + }, + /** + * 组件的方法列表 + */ + methods: { + open: function(date) { + if(date && date!=''){ + this.data.selectDays = []; //打开时候显示一个 + this.data.selectDays.push(date); + this.setData({ + selectDays: this.data.selectDays + }) + this.getWeek(date); + } + this.dateSelection(); + }, + close: function() { + this.packup(); + }, + clear: function(){ + this.setData({ + selectDays: [] + }) + let m; + if(this.data.currentMonth == null){ + m = this.data.canlender.month + }else{ + m = this.data.currentMonth + } + let year = this.data.canlender.year + "-" + m + "-" + this.data.canlender.date + let _date = this.getDate(year, 0); + this.getWeek(_date); + this.triggerEvent("clear",{}) + }, + dateSelection() { + if (this.data.isOpen) { + return + } + let self = this; + if (self.data.calShow) { + self.setData({ + calShow: false + }, () => { + setTimeout(() => { + self.setData({ + dateShow: true + }, () => { + self.triggerEvent('show', { + ischeck: !self.data.calShow + }) + }) + }, 100) + }) + } else { + self.setData({ + dateShow: false + }, () => { + setTimeout(() => { + self.setData({ + calShow: true + }, () => { + self.triggerEvent('show', { + ischeck: !self.data.calShow + }) + }) + }, 300) + }) + } + }, + //选择日期 + selectDay(e) { + if(this.data.readonly){ + return + } + let index = e.currentTarget.dataset.index; + let week = e.currentTarget.dataset.week; + let ischeck = e.currentTarget.dataset.ischeck; + let canlender = this.data.canlender; + if (!ischeck) return false; + let month = canlender.weeks[week][index].month < 10 ? "0" + canlender.weeks[week][index].month : canlender.weeks[week][index].month + let date = canlender.weeks[week][index].date < 10 ? "0" + canlender.weeks[week][index].date : canlender.weeks[week][index].date + let datestr = canlender.year + "-" + month + "-" + date; + let selectDays = this.data.selectDays; + if (selectDays.indexOf(datestr)==-1) { + if(this.data.multiple){ + //多选 + selectDays.push(datestr); + }else{ + selectDays = []; //只保留最后选的 + selectDays.push(datestr); + } + }else{ + let index = selectDays.indexOf(datestr); + selectDays.splice(index, 1); + } + selectDays.sort(function(a, b){ + let ds1 = a.split("-"); + let ds2 = b.split("-"); + let d1 = new Date(ds1[0], ds1[1], ds1[2]); + let d2 = new Date(ds2[0], ds2[1], ds2[2]); + return d1-d2; + }); + this.data.selectDays = selectDays; + this.getWeek(datestr); + this.triggerEvent('getdate', { + datestr + }) + }, + //点击确定 + packup() { + let self = this; + self.triggerEvent('select', { + selectDays: self.data.selectDays + }) + if (this.data.isOpen) { + let year = self.data.canlender.year + "-" + self.data.canlender.month + "-" + self.data.canlender.date + let _date = self.getDate(year, 0); + self.getWeek(_date); + return + } + self.setData({ + dateShow: false + }, () => { + setTimeout(() => { + self.setData({ + calShow: true + }, () => { + let year = self.data.canlender.year + "-" + self.data.canlender.month + "-" + self.data.canlender.date + let _date = self.getDate(year, 0); + self.getWeek(_date); + }) + }, 300) + }) + }, + /** + * 页面通过事件选中日期后调用refresh方法刷新日历组件 + */ + refresh: function (num){ + this.setData({ + selectDays: num + }) + let m; + if(this.data.currentMonth == null){ + m = this.data.canlender.month + }else{ + m = this.data.currentMonth + } + + let year = this.data.canlender.year + "-" + m + "-" + this.data.canlender.date + let _date = this.getDate(year, 0); + this.getWeek(_date); + }, + // 返回今天 + backtoday() { + if(!this.data.readonly){ + let datestr = this.dateStr(new Date()); + this.data.selectDays.push(datestr); + this.setData({ + selectDays: this.data.selectDays + }); + this.triggerEvent('getdate', { + datestr + }) + } + this.getWeek(new Date()); + }, + // 前一天|| 后一天 + dataBefor(e) { + let num = 0; + let types = e.currentTarget.dataset.type; + + if (e.currentTarget.dataset.id === "0") { + num = -1; + } else { + num = 1 + } + let year = this.data.canlender.year + "-" + this.data.canlender.month + "-" + this.data.canlender.date + let _date = this.getDate(year, num, types === 'month' ? "month" : "day"); + this.getWeek(_date); + }, + + // 获取日历内容 + getWeek(dateData) { + + let selected = this.data.selected + let selectDays = this.data.selectDays + // 判断当前是 安卓还是ios ,传入不容的日期格式 + if (typeof dateData !== 'object') { + dateData = dateData.replace(/-/g, "/") + } + let _date = new Date(dateData); + let year = _date.getFullYear(); //年 + let month = _date.getMonth() + 1; //月 + let date = _date.getDate(); //日 + let day = _date.getDay(); // 天 + let canlender = []; + + let dates = { + firstDay: new Date(year, month - 1, 1).getDay(), + lastMonthDays: [], // 上个月末尾几天 + currentMonthDys: [], // 本月天数 + nextMonthDays: [], // 下个月开始几天 + endDay: new Date(year, month, 0).getDay(), + weeks: [] + } + // 循环上个月末尾几天添加到数组 + for (let i = dates.firstDay; i > 0; i--) { + let dd = new Date(year, month-1, -(i-1)); + let checked = false; + selectDays.forEach(v => { + let selDate = v.date.split('-'); + let ddstr = this.dateStr(dd); + if (ddstr == v) { + checked = true; + } + }) + dates.lastMonthDays.push({ + 'date': '', + 'month': '', + checked + }) + } + // 循环本月天数添加到数组 + for (let i = 1; i <= new Date(year, month, 0).getDate(); i++) { + let have = false; + let checked = false; + let step = ''; + let city = ''; + // for (let j = 0; j < selected.length; j++) { + // let selDate = selected[j].split('-'); + // if (Number(year) === Number(selDate[0]) && Number(month) === Number(selDate[1]) && Number(i) === Number(selDate[2])) { + // have = true; + // } + // } + selectDays.forEach(v => { + let selDate = v.date.split('-'); + if (Number(year) === Number(selDate[0]) && Number(month) === Number(selDate[1]) && Number(i) === Number(selDate[2])) { + checked = true; + step = v.step; + city = v.city_id; + } + }) + dates.currentMonthDys.push({ + 'date': i + "", + 'month': month, + // have, + checked, + step, + city + }) + } + // 循环下个月开始几天 添加到数组 + for (let i = 1; i < 7 - dates.endDay; i++) { + dates.nextMonthDays.push({ + 'date': '', + 'month': '' + }) + } + + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 == 0) { + dates.weeks[parseInt(i / 7)] = new Array(7); + } + dates.weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + // 渲染数据 + this.setData({ + selectDay: month + "月" + date + "日", + "canlender.weeks": dates.weeks, + 'canlender.month': month, + 'canlender.date': date, + "canlender.day": day, + 'canlender.year': year, + }) + month = month < 10 ? "0" + month : month + date = date < 10 ? "0" + date : date + // let localstr = year+"-"+month+"-"+date; + // this.triggerEvent('getdate', { + // year, + // month, + // date, + // localstr + // }) + + // console.log(dates.weeks); + + }, + checkall(){ + let date = new Date(); + let m, d, day, dayNum; + let days = []; + if(this.data.currentMonth == null){ + m = parseInt(this.data.nowMonth) + }else{ + m = parseInt(this.data.currentMonth) + } + + switch (m) { + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: + dayNum = 31; + break; + case 4: + case 6: + case 9: + case 11: + dayNum = 30; + break; + case 2: + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + dayNum = 29; + } else { + dayNum = 28; + } + break; + } + for (d = 1; d <= dayNum; d++) { + date.setMonth(m - 1, d); + day = date.getDay(); + let str = this.format(date); + if(date.getMonth() == new Date().getMonth()){ + if(date.getDate() - new Date().getDate() >= 0){ + days.push(str); + } + }else if(date.getMonth() > new Date().getMonth()){ + days.push(str); + } + } + this.refresh(days); + this.triggerEvent('checkall', { + days + }) + }, + /** + * 时间计算 + */ + getDate(date, AddDayCount, str = 'day') { + if (typeof date !== 'object') { + date = date.replace(/-/g, "/") + } + let dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break; + case 'month': + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + break; + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break; + } + let y = dd.getFullYear() + let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) // 获取当前月份的日期,不足10补0 + let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + this.setData({ + currentMonth: m + }) + return y + '-' + m + '-' + d + }, + //日期转字符串 + dateStr(calendar){ + let year = calendar.getFullYear(); + let month = calendar.getMonth()+1; + let date = calendar.getDate(); + month = month < 10 ? "0" + month : month; + date = date < 10 ? "0" + date : date; + let datestr = year + "-" + month + "-" + date; + return datestr; + }, + format(dd){ + let y = dd.getFullYear() + let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) + let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() + return y + '-' + m + '-' + d + } + } +}) \ No newline at end of file diff --git a/components/calendarn/calendar.json b/components/calendarn/calendar.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/calendarn/calendar.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/calendarn/calendar.wxml b/components/calendarn/calendar.wxml new file mode 100644 index 0000000..dc8dc55 --- /dev/null +++ b/components/calendarn/calendar.wxml @@ -0,0 +1,73 @@ + +var strcontains = function (str,c) { + if (str.indexOf(c) >= 0) { + return true + }else{ + return false + } +} + +var formatNumber = function(n) { + n = n.toString() + return n[1] ? n : '0' + n +} + +module.exports = { + formatNumber: formatNumber, + strcontains: strcontains +} + + + + + + + + + {{canlender.year}}年{{canlender.month}}月 + + + + + + + + + + + {{canlender.year}}年 + {{canlender.month}}月 + + + + + + + + + + + + + + + + + + {{day.date}} + + + + + {{day.date}} + {{day.step}} {{day.city}} + + + + + + + + + \ No newline at end of file diff --git a/components/calendarn/calendar.wxss b/components/calendarn/calendar.wxss new file mode 100644 index 0000000..9b7435a --- /dev/null +++ b/components/calendarn/calendar.wxss @@ -0,0 +1,258 @@ +/* pages/calendar/calendar.wxss */ +cover-view{ + line-height: initial; +} +.calendar-box { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100vh; + background: rgba(0, 0, 0, 0.5); + z-index: 999999; + padding-top: 100rpx; + box-sizing: border-box; + transition: all 0.3s; + opacity: 0; +} + +.calendar-box.active { + opacity: 1; +} + +.calendar-wrapper { + width: 100%; + border-top: 1px #f5f5f5 solid; + border-bottom: 1px #f5f5f5 solid; + box-sizing: border-box; + font-size: 26rpx; + background: #fff; + transition: all 0.3s; + transform: translateY(-100%); +} + +.calendar-wrapper.active { + transform: translateY(0%); +} + +.header { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 100rpx; + background: #fff; + z-index: 10000; + padding: 20rpx; +} + +.top-jiantou { + width: 100rpx; + height: 100rpx; + text-align: center; + box-sizing: border-box; + line-height: 100rpx; +} + +.iconfont{ + display: flex; + justify-content: center; + align-items: center; + position: relative; + color: #890001; + width: 53rpx; + height: 53rpx; +} + +.left-color, +.right-color + { + display: block; + width: 0; + height: 0; + border-top: 20rpx solid transparent; + border-bottom: 20rpx solid transparent; +} + +.left-color{ + border-right: 40rpx solid transparent; + border-right-color: #890001; +} + +.right-color{ + border-left: 40rpx solid transparent; + border-left-color: #890001; +} + +.btn { + margin: 0 30rpx; + width: 240rpx; + height: 53rpx; + border: 2rpx solid #890001; + border-radius: 26rpx; + color: #890001; + font-size: 26rpx; + box-sizing: border-box; +} + +.calendar-panel { + position: relative; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + height: 80rpx; +} + +.backtoday { + position: absolute; + right: 0; + top: 15rpx; + padding: 0 10rpx; + padding-left: 20rpx; + height: 50rpx; + line-height: 50rpx; + border: 1px #890001 solid; + border-right: none; + font-size: 28rpx; + border-top-left-radius: 50rpx; + border-bottom-left-radius: 50rpx; + color: #890001; + background: rgba(82, 184, 245, 0.1); +} +.checkalllbtn { + position: absolute; + left: 0; + top: 15rpx; + padding: 0 10rpx; + padding-right: 20rpx; + height: 50rpx; + line-height: 50rpx; + border: 1px #890001 solid; + border-left: none; + font-size: 28rpx; + border-top-right-radius: 50rpx; + border-bottom-right-radius: 50rpx; + color: #890001; + background: rgba(82, 184, 245, 0.1); +} + +.date-befor, .date-after { + /* border: 1px red solid; */ + display: flex; + justify-content: center; + align-items: center; + height: 80rpx; + width: 80rpx; + text-align: center; + line-height: 80rpx; + /* margin-right: 20rpx; */ +} + +/* .date-after { + margin-left: 20rpx; +} */ + +.calendar-panel-box { + display: flex; +} + +.calendar-header { + display: flex; +} + +.calendar-header view, +.calendar-header cover-view { + width: 100%; + text-align: center; + line-height: 80rpx; + color: #890001; +} +.calendar-header.mini view, +.calendar-header.mini cover-view + { + line-height: 50rpx; +} +.calendar-body { + display: flex; + flex-wrap: wrap; +} +.calender-body-date-week { + display: flex; + width: 100%; + border-bottom: 1px #f5f5f5 solid; + height:100rpx; + padding:10rpx 0; +} +.date { + width: 100%; + display: flex; + color: #1c1c1c; + background: #fff; + align-items: center; + flex-direction: column; + +} +.date.mini{ + height:120rpx; +} +.date.active { + background: red; +} + +.placeholder { + color: #1c1c1c; +} + +.date-current { + background: #890001; + color: #fff; +} + +.date-lock { + color: #ff5a5f; +} +.data-circle { + color: #890001; + font-weight: bold; +} +.data-circle.mini{ + bottom: 2rpx; + text-align: center; +} + +.packup { + width: 100%; + height: 100rpx; + line-height: 100rpx; + text-align: center; + color: #890001; + align-items: center; +} +.packup-button{ + display: flex; + align-items: center; + justify-content: center; + width: 50%; + height: 55px; + line-height:55px!important; +} +.flex{ + display: flex; +} +.flex-between{ + justify-content: space-between; +} +.flex-center { + display: flex; + align-items: center; + justify-content: center; +} +.border-left{ + border-left:1px solid #eee; +} +.cmf-btn{ + background-color: #39b54a; + color: #fff; + border: 1rpx solid #39b54a; +} diff --git a/components/empty/index.js b/components/empty/index.js new file mode 100644 index 0000000..37b13f6 --- /dev/null +++ b/components/empty/index.js @@ -0,0 +1,23 @@ +// lionfish_comshop/components/empty/index.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) diff --git a/components/empty/index.json b/components/empty/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/empty/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/empty/index.wxml b/components/empty/index.wxml new file mode 100644 index 0000000..fba2acf --- /dev/null +++ b/components/empty/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/components/empty/index.wxss b/components/empty/index.wxss new file mode 100644 index 0000000..523e5f5 --- /dev/null +++ b/components/empty/index.wxss @@ -0,0 +1,21 @@ +.none-rush-list { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding-bottom: 140rpx; + padding-top: 140rpx; +} + +.none-rush-list .img-block { + width: 240rpx; + height: 240rpx; + margin-bottom: 30rpx; +} + +.none-rush-list .h1 { + font-size: 32rpx; + line-height: 32rpx; + color: #444; + margin-bottom: 20rpx; +} \ No newline at end of file diff --git a/components/parser/libs/CssHandler.js b/components/parser/libs/CssHandler.js new file mode 100644 index 0000000..a238794 --- /dev/null +++ b/components/parser/libs/CssHandler.js @@ -0,0 +1,97 @@ +const cfg = require('./config.js'), + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + +function CssHandler(tagStyle) { + var styles = Object.assign(Object.create(null), cfg.userAgentStyles); + for (var item in tagStyle) + styles[item] = (styles[item] ? styles[item] + ';' : '') + tagStyle[item]; + this.styles = styles; +} +CssHandler.prototype.getStyle = function (data) { + this.styles = new parser(data, this.styles).parse(); +} +CssHandler.prototype.match = function (name, attrs) { + var tmp, matched = (tmp = this.styles[name]) ? tmp + ';' : ''; + if (attrs.class) { + var items = attrs.class.split(' '); + for (var i = 0, item; item = items[i]; i++) + if (tmp = this.styles['.' + item]) + matched += tmp + ';'; + } + if (tmp = this.styles['#' + attrs.id]) + matched += tmp + ';'; + return matched; +} +module.exports = CssHandler; + +function parser(data, init) { + this.data = data; + this.floor = 0; + this.i = 0; + this.list = []; + this.res = init; + this.state = this.Space; +} +parser.prototype.parse = function () { + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + return this.res; +} +parser.prototype.section = function () { + return this.data.substring(this.start, this.i); +} +// 状态机 +parser.prototype.Space = function (c) { + if (c == '.' || c == '#' || isLetter(c)) { + this.start = this.i; + this.state = this.Name; + } else if (c == '/' && this.data[this.i + 1] == '*') + this.Comment(); + else if (!cfg.blankChar[c] && c != ';') + this.state = this.Ignore; +} +parser.prototype.Comment = function () { + this.i = this.data.indexOf('*/', this.i) + 1; + if (!this.i) this.i = this.data.length; + this.state = this.Space; +} +parser.prototype.Ignore = function (c) { + if (c == '{') this.floor++; + else if (c == '}' && !--this.floor) this.state = this.Space; +} +parser.prototype.Name = function (c) { + if (cfg.blankChar[c]) { + this.list.push(this.section()); + this.state = this.NameSpace; + } else if (c == '{') { + this.list.push(this.section()); + this.Content(); + } else if (c == ',') { + this.list.push(this.section()); + this.Comma(); + } else if (!isLetter(c) && (c < '0' || c > '9') && c != '-' && c != '_') + this.state = this.Ignore; +} +parser.prototype.NameSpace = function (c) { + if (c == '{') this.Content(); + else if (c == ',') this.Comma(); + else if (!cfg.blankChar[c]) this.state = this.Ignore; +} +parser.prototype.Comma = function () { + while (cfg.blankChar[this.data[++this.i]]); + if (this.data[this.i] == '{') this.Content(); + else { + this.start = this.i--; + this.state = this.Name; + } +} +parser.prototype.Content = function () { + this.start = ++this.i; + if ((this.i = this.data.indexOf('}', this.i)) == -1) this.i = this.data.length; + var content = this.section(); + for (var i = 0, item; item = this.list[i++];) + if (this.res[item]) this.res[item] += ';' + content; + else this.res[item] = content; + this.list = []; + this.state = this.Space; +} \ No newline at end of file diff --git a/components/parser/libs/MpHtmlParser.js b/components/parser/libs/MpHtmlParser.js new file mode 100644 index 0000000..0b83cf8 --- /dev/null +++ b/components/parser/libs/MpHtmlParser.js @@ -0,0 +1,526 @@ +/** + * html 解析器 + * @tutorial https://github.com/jin-yufeng/Parser + * @version 20200630 + * @author JinYufeng + * @listens MIT + */ +const cfg = require('./config.js'), + blankChar = cfg.blankChar, + CssHandler = require('./CssHandler.js'), + windowWidth = wx.getSystemInfoSync().windowWidth; +var emoji; + +function MpHtmlParser(data, options = {}) { + this.attrs = {}; + this.CssHandler = new CssHandler(options.tagStyle, windowWidth); + this.data = data; + this.domain = options.domain; + this.DOM = []; + this.i = this.start = this.audioNum = this.imgNum = this.videoNum = 0; + options.prot = (this.domain || '').includes('://') ? this.domain.split('://')[0] : 'http'; + this.options = options; + this.state = this.Text; + this.STACK = []; + // 工具函数 + this.bubble = () => { + for (var i = this.STACK.length, item; item = this.STACK[--i];) { + if (cfg.richOnlyTags[item.name]) { + if (item.name == 'table' && !Object.hasOwnProperty.call(item, 'c')) item.c = 1; + return false; + } + item.c = 1; + } + return true; + } + this.decode = (val, amp) => { + var i = -1, + j, en; + while (1) { + if ((i = val.indexOf('&', i + 1)) == -1) break; + if ((j = val.indexOf(';', i + 2)) == -1) break; + if (val[i + 1] == '#') { + en = parseInt((val[i + 2] == 'x' ? '0' : '') + val.substring(i + 2, j)); + if (!isNaN(en)) val = val.substr(0, i) + String.fromCharCode(en) + val.substr(j + 1); + } else { + en = val.substring(i + 1, j); + if (cfg.entities[en] || en == amp) + val = val.substr(0, i) + (cfg.entities[en] || '&') + val.substr(j + 1); + } + } + return val; + } + this.getUrl = url => { + if (url[0] == '/') { + if (url[1] == '/') url = this.options.prot + ':' + url; + else if (this.domain) url = this.domain + url; + } else if (this.domain && url.indexOf('data:') != 0 && !url.includes('://')) + url = this.domain + '/' + url; + return url; + } + this.isClose = () => this.data[this.i] == '>' || (this.data[this.i] == '/' && this.data[this.i + 1] == '>'); + this.section = () => this.data.substring(this.start, this.i); + this.parent = () => this.STACK[this.STACK.length - 1]; + this.siblings = () => this.STACK.length ? this.parent().children : this.DOM; +} +MpHtmlParser.prototype.parse = function () { + if (emoji) this.data = emoji.parseEmoji(this.data); + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + if (this.state == this.Text) this.setText(); + while (this.STACK.length) this.popNode(this.STACK.pop()); + return this.DOM; +} +// 设置属性 +MpHtmlParser.prototype.setAttr = function () { + var name = this.attrName.toLowerCase(), + val = this.attrVal; + if (cfg.boolAttrs[name]) this.attrs[name] = 'T'; + else if (val) { + if (name == 'src' || (name == 'data-src' && !this.attrs.src)) this.attrs.src = this.getUrl(this.decode(val, 'amp')); + else if (name == 'href' || name == 'style') this.attrs[name] = this.decode(val, 'amp'); + else if (name.substr(0, 5) != 'data-') this.attrs[name] = val; + } + this.attrVal = ''; + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } +} +// 设置文本节点 +MpHtmlParser.prototype.setText = function () { + var back, text = this.section(); + if (!text) return; + text = (cfg.onText && cfg.onText(text, () => back = true)) || text; + if (back) { + this.data = this.data.substr(0, this.start) + text + this.data.substr(this.i); + let j = this.start + text.length; + for (this.i = this.start; this.i < j; this.i++) this.state(this.data[this.i]); + return; + } + if (!this.pre) { + // 合并空白符 + var tmp = []; + for (let i = text.length, c; c = text[--i];) + if (!blankChar[c] || (!blankChar[tmp[0]] && (c = ' '))) tmp.unshift(c); + text = tmp.join(''); + } + this.siblings().push({ + type: 'text', + text: this.decode(text) + }); +} +// 设置元素节点 +MpHtmlParser.prototype.setNode = function () { + var node = { + name: this.tagName.toLowerCase(), + attrs: this.attrs + }, + close = cfg.selfClosingTags[node.name]; + this.attrs = {}; + if (!cfg.ignoreTags[node.name]) { + // 处理属性 + var attrs = node.attrs, + style = this.CssHandler.match(node.name, attrs, node) + (attrs.style || ''), + styleObj = {}; + if (attrs.id) { + if (this.options.compress & 1) attrs.id = void 0; + else if (this.options.useAnchor) this.bubble(); + } + if ((this.options.compress & 2) && attrs.class) attrs.class = void 0; + switch (node.name) { + case 'a': + case 'ad': + this.bubble(); + break; + case 'font': + if (attrs.color) { + styleObj['color'] = attrs.color; + attrs.color = void 0; + } + if (attrs.face) { + styleObj['font-family'] = attrs.face; + attrs.face = void 0; + } + if (attrs.size) { + var size = parseInt(attrs.size); + if (size < 1) size = 1; + else if (size > 7) size = 7; + var map = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; + styleObj['font-size'] = map[size - 1]; + attrs.size = void 0; + } + break; + case 'embed': + var src = node.attrs.src || '', + type = node.attrs.type || ''; + if (type.includes('video') || src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8')) + node.name = 'video'; + else if (type.includes('audio') || src.includes('.m4a') || src.includes('.wav') || src.includes('.mp3') || src.includes('.aac')) + node.name = 'audio'; + else break; + if (node.attrs.autostart) + node.attrs.autoplay = 'T'; + node.attrs.controls = 'T'; + // falls through + case 'video': + case 'audio': + if (!attrs.id) attrs.id = node.name + (++this[`${node.name}Num`]); + else this[`${node.name}Num`]++; + if (node.name == 'video') { + if (this.videoNum > 3) + node.lazyLoad = 1; + if (attrs.width) { + styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px'); + attrs.width = void 0; + } + if (attrs.height) { + styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px'); + attrs.height = void 0; + } + } + attrs.source = []; + if (attrs.src) { + attrs.source.push(attrs.src); + attrs.src = void 0; + } + this.bubble(); + break; + case 'td': + case 'th': + if (attrs.colspan || attrs.rowspan) + for (var k = this.STACK.length, item; item = this.STACK[--k];) + if (item.name == 'table') { + item.c = void 0; + break; + } + } + if (attrs.align) { + styleObj['text-align'] = attrs.align; + attrs.align = void 0; + } + // 压缩 style + var styles = style.split(';'); + style = ''; + for (var i = 0, len = styles.length; i < len; i++) { + var info = styles[i].split(':'); + if (info.length < 2) continue; + let key = info[0].trim().toLowerCase(), + value = info.slice(1).join(':').trim(); + if (value.includes('-webkit') || value.includes('-moz') || value.includes('-ms') || value.includes('-o') || value.includes('safe')) + style += `;${key}:${value}`; + else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) + styleObj[key] = value; + } + if (node.name == 'img') { + if (attrs.src && !attrs.ignore) { + if (this.bubble()) + attrs.i = (this.imgNum++).toString(); + else attrs.ignore = 'T'; + } + if (attrs.ignore) { + style += ';-webkit-touch-callout:none'; + styleObj['max-width'] = '100%'; + } + if (!styleObj.position) + styleObj.top = styleObj.bottom = styleObj.left = styleObj.right = styleObj['z-index'] = void 0; + var width; + if (styleObj.width) width = styleObj.width; + else if (attrs.width) width = attrs.width.includes('%') ? attrs.width : attrs.width + 'px'; + if (width) { + styleObj.width = width; + attrs.width = '100%'; + if (parseInt(width) > windowWidth) { + styleObj.height = ''; + if (attrs.height) attrs.height = void 0; + } + } + if (styleObj.height) { + attrs.height = styleObj.height; + styleObj.height = ''; + } else if (attrs.height && !attrs.height.includes('%')) + attrs.height += 'px'; + } + for (var key in styleObj) { + var value = styleObj[key]; + if (!value) continue; + if (key.includes('flex') || key == 'order' || key == 'self-align') node.c = 1; + // 填充链接 + if (value.includes('url')) { + var j = value.indexOf('('); + if (j++ != -1) { + while (value[j] == '"' || value[j] == "'" || blankChar[value[j]]) j++; + value = value.substr(0, j) + this.getUrl(value.substr(j)); + } + } + // 转换 rpx + else if (value.includes('rpx')) + value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * windowWidth / 750 + 'px'); + else if (key == 'white-space' && value.includes('pre') && !close) + this.pre = node.pre = true; + style += `;${key}:${value}`; + } + style = style.substr(1); + if (style) attrs.style = style; + if (!close) { + node.children = []; + if (node.name == 'pre' && cfg.highlight) { + this.remove(node); + this.pre = node.pre = true; + } + this.siblings().push(node); + this.STACK.push(node); + } else if (!cfg.filter || cfg.filter(node, this) != false) + this.siblings().push(node); + } else { + if (!close) this.remove(node); + else if (node.name == 'source') { + var parent = this.parent(); + if (parent && (parent.name == 'video' || parent.name == 'audio') && node.attrs.src) + parent.attrs.source.push(node.attrs.src); + } else if (node.name == 'base' && !this.domain) this.domain = node.attrs.href; + } + if (this.data[this.i] == '/') this.i++; + this.start = this.i + 1; + this.state = this.Text; +} +// 移除标签 +MpHtmlParser.prototype.remove = function (node) { + var name = node.name, + j = this.i; + // 处理 svg + var handleSvg = () => { + var src = this.data.substring(j, this.i + 1); + if (!node.attrs.xmlns) src = ' xmlns="http://www.w3.org/2000/svg"' + src; + var i = j; + while (this.data[j] != '<') j--; + src = this.data.substring(j, i) + src; + var parent = this.parent(); + if (node.attrs.width == '100%' && parent && (parent.attrs.style || '').includes('inline')) + parent.attrs.style = 'width:300px;max-width:100%;' + parent.attrs.style; + this.siblings().push({ + name: 'img', + attrs: { + src: 'data:image/svg+xml;utf8,' + src.replace(/#/g, '%23'), + style: (/vertical[^;]+/.exec(node.attrs.style) || []).shift(), + ignore: 'T' + } + }) + } + if (node.name == 'svg' && this.data[j] == '/') return handleSvg(this.i++); + while (1) { + if ((this.i = this.data.indexOf('', this.i)) == -1) this.i = this.data.length; + if (name == 'svg') handleSvg(); + return; + } + } +} +// 节点出栈处理 +MpHtmlParser.prototype.popNode = function (node) { + // 空白符处理 + if (node.pre) { + node.pre = this.pre = void 0; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].pre) + this.pre = true; + } + var siblings = this.siblings(), + len = siblings.length, + childs = node.children; + if (node.name == 'head' || (cfg.filter && cfg.filter(node, this) == false)) + return siblings.pop(); + var attrs = node.attrs; + // 替换一些标签名 + if (cfg.blockTags[node.name]) node.name = 'div'; + else if (!cfg.trustTags[node.name]) node.name = 'span'; + // 去除块标签前后空串 + if (node.name == 'div' || node.name == 'p' || node.name[0] == 't') { + if (len > 1 && siblings[len - 2].text == ' ') + siblings.splice(--len - 1, 1); + if (childs.length && childs[childs.length - 1].text == ' ') + childs.pop(); + } + // 处理列表 + if (node.c && (node.name == 'ul' || node.name == 'ol')) { + if ((node.attrs.style || '').includes('list-style:none')) { + for (let i = 0, child; child = childs[i++];) + if (child.name == 'li') + child.name = 'div'; + } else if (node.name == 'ul') { + var floor = 1; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].name == 'ul') floor++; + if (floor != 1) + for (let i = childs.length; i--;) + childs[i].floor = floor; + } else { + for (let i = 0, num = 1, child; child = childs[i++];) + if (child.name == 'li') { + child.type = 'ol'; + child.num = ((num, type) => { + if (type == 'a') return String.fromCharCode(97 + (num - 1) % 26); + if (type == 'A') return String.fromCharCode(65 + (num - 1) % 26); + if (type == 'i' || type == 'I') { + num = (num - 1) % 99 + 1; + var one = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'], + ten = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'], + res = (ten[Math.floor(num / 10) - 1] || '') + (one[num % 10 - 1] || ''); + if (type == 'i') return res.toLowerCase(); + return res; + } + return num; + })(num++, attrs.type) + '.'; + } + } + } + // 处理表格的边框 + if (node.name == 'table') { + var padding = attrs.cellpadding, + spacing = attrs.cellspacing, + border = attrs.border; + if (node.c) { + this.bubble(); + attrs.style = (attrs.style || '') + ';display:table'; + if (!padding) padding = 2; + if (!spacing) spacing = 2; + } + if (border) attrs.style = `border:${border}px solid gray;${attrs.style || ''}`; + if (spacing) attrs.style = `border-spacing:${spacing}px;${attrs.style || ''}`; + if (border || padding || node.c) + (function f(ns) { + for (var i = 0, n; n = ns[i]; i++) { + if (n.type == 'text') continue; + var style = n.attrs.style || ''; + if (node.c && n.name[0] == 't') { + n.c = 1; + style += ';display:table-' + (n.name == 'th' || n.name == 'td' ? 'cell' : (n.name == 'tr' ? 'row' : 'row-group')); + } + if (n.name == 'th' || n.name == 'td') { + if (border) style = `border:${border}px solid gray;${style}`; + if (padding) style = `padding:${padding}px;${style}`; + } else f(n.children || []); + if (style) n.attrs.style = style; + } + })(childs) + if (this.options.autoscroll) { + var table = Object.assign({}, node); + node.name = 'div'; + node.attrs = { + style: 'overflow:scroll' + } + node.children = [table]; + } + } + this.CssHandler.pop && this.CssHandler.pop(node); + // 自动压缩 + if (node.name == 'div' && !Object.keys(attrs).length && childs.length == 1 && childs[0].name == 'div') + siblings[len - 1] = childs[0]; +} +// 状态机 +MpHtmlParser.prototype.Text = function (c) { + if (c == '<') { + var next = this.data[this.i + 1], + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + if (isLetter(next)) { + this.setText(); + this.start = this.i + 1; + this.state = this.TagName; + } else if (next == '/') { + this.setText(); + if (isLetter(this.data[++this.i + 1])) { + this.start = this.i + 1; + this.state = this.EndTag; + } else this.Comment(); + } else if (next == '!') { + this.setText(); + this.Comment(); + } + } +} +MpHtmlParser.prototype.Comment = function () { + var key; + if (this.data.substring(this.i + 2, this.i + 4) == '--') key = '-->'; + else if (this.data.substring(this.i + 2, this.i + 9) == '[CDATA[') key = ']]>'; + else key = '>'; + if ((this.i = this.data.indexOf(key, this.i + 2)) == -1) this.i = this.data.length; + else this.i += key.length - 1; + this.start = this.i + 1; + this.state = this.Text; +} +MpHtmlParser.prototype.TagName = function (c) { + if (blankChar[c]) { + this.tagName = this.section(); + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } + } else if (this.isClose()) { + this.tagName = this.section(); + this.setNode(); + } +} +MpHtmlParser.prototype.AttrName = function (c) { + if (c == '=' || blankChar[c] || this.isClose()) { + this.attrName = this.section(); + if (blankChar[c]) + while (blankChar[this.data[++this.i]]); + if (this.data[this.i] == '=') { + while (blankChar[this.data[++this.i]]); + this.start = this.i--; + this.state = this.AttrValue; + } else this.setAttr(); + } +} +MpHtmlParser.prototype.AttrValue = function (c) { + if (c == '"' || c == "'") { + this.start++; + if ((this.i = this.data.indexOf(c, this.i + 1)) == -1) return this.i = this.data.length; + this.attrVal = this.section(); + this.i++; + } else { + for (; !blankChar[this.data[this.i]] && !this.isClose(); this.i++); + this.attrVal = this.section(); + } + this.setAttr(); +} +MpHtmlParser.prototype.EndTag = function (c) { + if (blankChar[c] || c == '>' || c == '/') { + var name = this.section().toLowerCase(); + for (var i = this.STACK.length; i--;) + if (this.STACK[i].name == name) break; + if (i != -1) { + var node; + while ((node = this.STACK.pop()).name != name) this.popNode(node); + this.popNode(node); + } else if (name == 'p' || name == 'br') + this.siblings().push({ + name, + attrs: {} + }); + this.i = this.data.indexOf('>', this.i); + this.start = this.i + 1; + if (this.i == -1) this.i = this.data.length; + else this.state = this.Text; + } +} +module.exports = MpHtmlParser; \ No newline at end of file diff --git a/components/parser/libs/config.js b/components/parser/libs/config.js new file mode 100644 index 0000000..fbb0666 --- /dev/null +++ b/components/parser/libs/config.js @@ -0,0 +1,63 @@ +/* 配置文件 */ +const canIUse = wx.canIUse('editor'); // 高基础库标识,用于兼容 +module.exports = { + // 出错占位图 + errorImg: null, + // 过滤器函数 + filter: null, + // 代码高亮函数 + highlight: null, + // 文本处理函数 + onText: null, + // 实体编码列表 + entities: { + quot: '"', + apos: "'", + semi: ';', + nbsp: '\xA0', + ndash: '–', + mdash: '—', + middot: '·', + lsquo: '‘', + rsquo: '’', + ldquo: '“', + rdquo: '”', + bull: '•', + hellip: '…' + }, + blankChar: makeMap(' ,\xA0,\t,\r,\n,\f'), + boolAttrs: makeMap('autoplay,autostart,controls,ignore,loop,muted'), + // 块级标签,将被转为 div + blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,section' + (canIUse ? '' : ',pre')), + // 将被移除的标签 + ignoreTags: makeMap('area,base,canvas,frame,iframe,input,link,map,meta,param,script,source,style,svg,textarea,title,track,wbr' + (canIUse ? ',rp' : '')), + // 只能被 rich-text 显示的标签 + richOnlyTags: makeMap('a,colgroup,fieldset,legend,table' + (canIUse ? ',bdi,bdo,rt,ruby' : '')), + // 自闭合的标签 + selfClosingTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'), + // 信任的标签 + trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video' + (canIUse ? ',bdi,bdo,caption,pre,rt,ruby' : '')), + // 默认的标签样式 + userAgentStyles: { + address: 'font-style:italic', + big: 'display:inline;font-size:1.2em', + blockquote: 'background-color:#f6f6f6;border-left:3px solid #dbdbdb;color:#6c6c6c;padding:5px 0 5px 10px', + caption: 'display:table-caption;text-align:center', + center: 'text-align:center', + cite: 'font-style:italic', + dd: 'margin-left:40px', + mark: 'background-color:yellow', + pre: 'font-family:monospace;white-space:pre;overflow:scroll', + s: 'text-decoration:line-through', + small: 'display:inline;font-size:0.8em', + u: 'text-decoration:underline' + } +} + +function makeMap(str) { + var map = Object.create(null), + list = str.split(','); + for (var i = list.length; i--;) + map[list[i]] = true; + return map; +} \ No newline at end of file diff --git a/components/parser/parser.js b/components/parser/parser.js new file mode 100644 index 0000000..d4e6e87 --- /dev/null +++ b/components/parser/parser.js @@ -0,0 +1,204 @@ +/** + * Parser 富文本组件 + * @tutorial https://github.com/jin-yufeng/Parser + * @version 20200630 + * @author JinYufeng + * @listens MIT + */ +var cache = {}, + Parser = require('./libs/MpHtmlParser.js'), + fs = wx.getFileSystemManager && wx.getFileSystemManager(); +var dom; +// 计算 cache 的 key +function hash(str) { + for (var i = str.length, val = 5381; i--;) + val += (val << 5) + str.charCodeAt(i); + return val; +} +Component({ + options: { + pureDataPattern: /^[acdgtu]|W/ + }, + data: { + nodes: [] + }, + properties: { + html: { + type: String, + observer(html) { + this.setContent(html); + } + }, + autopause: { + type: Boolean, + value: true + }, + autoscroll: Boolean, + autosetTitle: { + type: Boolean, + value: true + }, + compress: Number, + domain: String, + lazyLoad: Boolean, + loadingImg: String, + selectable: Boolean, + tagStyle: Object, + showWithAnimation: Boolean, + useAnchor: Boolean, + useCache: Boolean + }, + relations: { + '../parser-group/parser-group': { + type: 'ancestor' + } + }, + created() { + // 图片数组 + this.imgList = []; + this.imgList.setItem = function(i, src) { + if (!i || !src) return; + // 去重 + if (src.indexOf('http') == 0 && this.includes(src)) { + var newSrc = ''; + for (var j = 0, c; c = src[j]; j++) { + if (c == '/' && src[j - 1] != '/' && src[j + 1] != '/') break; + newSrc += Math.random() > 0.5 ? c.toUpperCase() : c; + } + newSrc += src.substr(j); + return this[i] = newSrc; + } + this[i] = src; + // 暂存 data src + if (src.includes('data:image')) { + var info = src.match(/data:image\/(\S+?);(\S+?),(.+)/); + if (!info) return; + var filePath = `${wx.env.USER_DATA_PATH}/${Date.now()}.${info[1]}`; + fs && fs.writeFile({ + filePath, + data: info[3], + encoding: info[2], + success: () => this[i] = filePath + }) + } + } + this.imgList.each = function(f) { + for (var i = 0, len = this.length; i < len; i++) + this.setItem(i, f(this[i], i, this)); + } + if (dom) this.document = new dom(this); + }, + detached() { + // 删除暂存 + this.imgList.each(src => { + if (src && src.includes(wx.env.USER_DATA_PATH) && fs) + fs.unlink({ + filePath: src + }) + }) + clearInterval(this._timer); + }, + methods: { + // 锚点跳转 + navigateTo(obj) { + if (!this.data.useAnchor) + return obj.fail && obj.fail({ + errMsg: 'Anchor is disabled' + }) + this.createSelectorQuery() + .select('.top' + (obj.id ? '>>>#' + obj.id : '')).boundingClientRect() + .selectViewport().scrollOffset().exec(res => { + if (!res[0]) + return this.group ? this.group.navigateTo(this.i, obj) : + obj.fail && obj.fail({ + errMsg: 'Label not found' + }); + obj.scrollTop = res[1].scrollTop + res[0].top + (obj.offset || 0); + wx.pageScrollTo(obj); + }) + }, + // 获取文本 + getText(ns = this.data.html) { + var txt = ''; + for (var i = 0, n; n = ns[i++];) { + if (n.type == 'text') txt += n.text.replace(/ /g, '\u00A0').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); + else if (n.type == 'br') txt += '\n'; + else { + // 块级标签前后加换行 + var br = n.name == 'p' || n.name == 'div' || n.name == 'tr' || n.name == 'li' || (n.name[0] == 'h' && n.name[1] > '0' && n.name[1] < '7'); + if (br && txt && txt[txt.length - 1] != '\n') txt += '\n'; + if (n.children) txt += this.getText(n.children); + if (br && txt[txt.length - 1] != '\n') txt += '\n'; + else if (n.name == 'td' || n.name == 'th') txt += '\t'; + } + } + return txt; + }, + // 获取视频 context + getVideoContext(id) { + if (!id) return this.videoContexts; + for (var i = this.videoContexts.length; i--;) + if (this.videoContexts[i].id == id) return this.videoContexts[i]; + }, + // 渲染富文本 + setContent(html, append) { + var nodes, parser = new Parser(html, this.data); + // 缓存读取 + if (this.data.useCache) { + var hashVal = hash(html); + if (cache[hashVal]) nodes = cache[hashVal]; + else cache[hashVal] = nodes = parser.parse(); + } else nodes = parser.parse(); + this.triggerEvent('parse', nodes); + var data = {}; + if (append) + for (let i = this.data.nodes.length, j = nodes.length; j--;) + data[`nodes[${i + j}]`] = nodes[j]; + else data.nodes = nodes; + if (this.showWithAnimation) data.showAm = 'animation: show .5s'; + this.setData(data, () => { + this.triggerEvent('load') + }); + // 设置标题 + if (nodes.title && this.data.autosetTitle) + wx.setNavigationBarTitle({ + title: nodes.title + }) + this.imgList.length = 0; + this.videoContexts = []; + var ns = this.selectAllComponents('.top,.top>>>._node'); + for (let i = 0, n; n = ns[i++];) { + n.top = this; + for (let j = 0, item; item = n.data.nodes[j++];) { + if (item.c) continue; + // 获取图片列表 + if (item.name == 'img') + this.imgList.setItem(item.attrs.i, item.attrs.src); + // 音视频控制 + else if (item.name == 'video' || item.name == 'audio') { + var ctx; + if (item.name == 'video') ctx = wx.createVideoContext(item.attrs.id, n); + else ctx = n.selectComponent('#' + item.attrs.id); + if (ctx) { + ctx.id = item.attrs.id; + this.videoContexts.push(ctx); + } + } + } + } + var height; + clearInterval(this._timer); + this._timer = setInterval(() => { + this.createSelectorQuery().select('.top').boundingClientRect(res => { + if (!res) return; + this.rect = res; + if (res.height == height) { + this.triggerEvent('ready', res) + clearInterval(this._timer); + } + height = res.height; + }).exec(); + }, 350) + } + } +}) \ No newline at end of file diff --git a/components/parser/parser.json b/components/parser/parser.json new file mode 100644 index 0000000..85e49c9 --- /dev/null +++ b/components/parser/parser.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "trees": "./trees/trees" + } +} \ No newline at end of file diff --git a/components/parser/parser.wxml b/components/parser/parser.wxml new file mode 100644 index 0000000..aeeca92 --- /dev/null +++ b/components/parser/parser.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/components/parser/parser.wxss b/components/parser/parser.wxss new file mode 100644 index 0000000..b24180f --- /dev/null +++ b/components/parser/parser.wxss @@ -0,0 +1,19 @@ +:host { + display: block; + overflow: scroll; + -webkit-overflow-scrolling: touch; +} + +.top { + display: inherit; +} + +@keyframes show { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} diff --git a/components/parser/trees/handler.wxs b/components/parser/trees/handler.wxs new file mode 100644 index 0000000..be51e18 --- /dev/null +++ b/components/parser/trees/handler.wxs @@ -0,0 +1,42 @@ +var inlineTags = { + abbr: 1, + b: 1, + big: 1, + code: 1, + del: 1, + em: 1, + i: 1, + ins: 1, + label: 1, + q: 1, + small: 1, + span: 1, + strong: 1 +} +module.exports = { + // 从 rich-text 顶层标签的样式中取出一些给 rich-text + getStyle: function(style, display) { + if (style) { + var i, j, res = ""; + if ((i = style.indexOf("display")) != -1) + res = style.substring(i, (j = style.indexOf(';', i)) == -1 ? style.length : j); + else res = "display:" + display; + if (style.indexOf("flex") != -1) res += ';' + style.match(getRegExp("flex[:-][^;]+/g")).join(';'); + return res; + } else return "display:" + display; + }, + // 处理懒加载 + getNode: function(item, imgLoad) { + if (!imgLoad) { + delete item.attrs.src; + item.attrs.style += ";width:20px !important;height:20px !important"; + } + return [item]; + }, + // 是否通过 rich-text 显示 + useRichText: function(item) { + // rich-text 不支持 inline + if (item.c || inlineTags[item.name] || (item.attrs.style && item.attrs.style.indexOf("display:inline") != -1)) return false; + return true; + } +} \ No newline at end of file diff --git a/components/parser/trees/trees.js b/components/parser/trees/trees.js new file mode 100644 index 0000000..1758b5b --- /dev/null +++ b/components/parser/trees/trees.js @@ -0,0 +1,122 @@ +const errorImg = require('../libs/config.js').errorImg; +Component({ + data: { + canIUse: !!wx.chooseMessageFile, + placeholder: "data:image/svg+xml;utf8," + }, + properties: { + nodes: Array, + lazyLoad: Boolean, + loading: String + }, + methods: { + // 视频播放事件 + play(e) { + this.top.group && this.top.group.pause(this.top.i); + if (this.top.videoContexts.length > 1 && this.top.data.autopause) + for (var i = this.top.videoContexts.length; i--;) + if (this.top.videoContexts[i].id != e.currentTarget.id) + this.top.videoContexts[i].pause(); + }, + // 图片事件 + imgtap(e) { + var attrs = e.currentTarget.dataset.attrs; + if (!attrs.ignore) { + var preview = true; + this.top.triggerEvent('imgtap', { + id: e.currentTarget.id, + src: attrs.src, + ignore: () => preview = false + }) + if (preview) { + if (this.top.group) return this.top.group.preview(this.top.i, attrs.i); + var urls = this.top.imgList, + current = urls[attrs.i] ? urls[attrs.i] : (urls = [attrs.src], attrs.src); + wx.previewImage({ + current, + urls + }) + } + } + }, + loadImg(e) { + var i = e.target.dataset.i; + if (this.data.lazyLoad && !this.data.nodes[i].load) + this.setData({ + [`nodes[${i}].load`]: 1 + }) + else if (this.data.loading && this.data.nodes[i].load != 2) + this.setData({ + [`nodes[${i}].load`]: 2 + }) + }, + // 链接点击事件 + linkpress(e) { + var jump = true, + attrs = e.currentTarget.dataset.attrs; + attrs.ignore = () => jump = false; + this.top.triggerEvent('linkpress', attrs); + if (jump) { + if (attrs['app-id']) + wx.navigateToMiniProgram({ + appId: attrs['app-id'], + path: attrs.path + }) + else if (attrs.href) { + if (attrs.href[0] == '#') + this.top.navigateTo({ + id: attrs.href.substring(1) + }) + else if (attrs.href.indexOf('http') == 0 || attrs.href.indexOf('//') == 0) + wx.setClipboardData({ + data: attrs.href, + success: () => + wx.showToast({ + title: '链接已复制' + }) + }) + else + wx.navigateTo({ + url: attrs.href, + fail() { + wx.switchTab({ + url: attrs.href, + }) + } + }) + } + } + }, + // 错误事件 + error(e) { + var source = e.target.dataset.source, + i = e.target.dataset.i, + node = this.data.nodes[i]; + if (source == 'video' || source == 'audio') { + // 加载其他 source + var index = (node.i || 0) + 1; + if (index < node.attrs.source.length) + return this.setData({ + [`nodes[${i}].i`]: index + }) + } else if (source == 'img' && errorImg) { + this.top.imgList.setItem(e.target.dataset.index, errorImg); + this.setData({ + [`nodes[${i}].attrs.src`]: errorImg + }) + } + this.top && this.top.triggerEvent('error', { + source, + target: e.target, + errMsg: e.detail.errMsg + }) + }, + // 加载视频 + loadVideo(e) { + var i = e.target.dataset.i; + this.setData({ + [`nodes[${i}].attrs.autoplay`]: true + }) + } + } +}) \ No newline at end of file diff --git a/components/parser/trees/trees.json b/components/parser/trees/trees.json new file mode 100644 index 0000000..07cb773 --- /dev/null +++ b/components/parser/trees/trees.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "trees": "./trees" + } +} \ No newline at end of file diff --git a/components/parser/trees/trees.wxml b/components/parser/trees/trees.wxml new file mode 100644 index 0000000..d534f7b --- /dev/null +++ b/components/parser/trees/trees.wxml @@ -0,0 +1,65 @@ + + +var inline = { + abbr: 1, + b: 1, + big: 1, + code: 1, + del: 1, + em: 1, + i: 1, + ins: 1, + label: 1, + q: 1, + small: 1, + span: 1, + strong: 1 +} +module.exports = { + visited: function (e, owner) { + if (!e.instance.hasClass('_visited')) + e.instance.addClass('_visited') + owner.callMethod('linkpress', e) + }, + use: function (item) { + return !item.c && !inline[item.name] && (item.attrs.style || '').indexOf('display:inline') == -1 + } +} + + + + + + + + + {{n.text}} + \n + + + + + + + + + + \ No newline at end of file diff --git a/components/parser/trees/trees.wxss b/components/parser/trees/trees.wxss new file mode 100644 index 0000000..043dd46 --- /dev/null +++ b/components/parser/trees/trees.wxss @@ -0,0 +1,184 @@ +/* 在这里引入自定义样式 */ + +/* 链接和图片效果 */ +._a { + display: inline; + padding: 1.5px 0 1.5px 0; + color: #366092; + word-break: break-all; +} + +._hover { + text-decoration: underline; + opacity: 0.7; +} + +._visited { + color: #551a8b; +} + +._img { + position: relative; + display: inline-block; + max-width: 100%; +} + +/* 内部样式 */ +:host { + display: inline; +} + +._blockquote, +._div, +._p, +._ul, +._ol, +._li { + display: block; +} + +._b, +._strong { + font-weight: bold; +} + +._code { + font-family: monospace; +} + +._del { + text-decoration: line-through; +} + +._em, +._i { + font-style: italic; +} + +._h1 { + font-size: 2em; +} + +._h2 { + font-size: 1.5em; +} + +._h3 { + font-size: 1.17em; +} + +._h5 { + font-size: 0.83em; +} + +._h6 { + font-size: 0.67em; +} + +._h1, +._h2, +._h3, +._h4, +._h5, +._h6 { + display: block; + font-weight: bold; +} + +._image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; +} + +._ins { + text-decoration: underline; +} + +._li { + flex: 1; + width: 0; +} + +._ol-bef { + width: 36px; + margin-right: 5px; + text-align: right; +} + +._ul-bef { + margin: 0 12px 0 23px; + line-height: normal; +} + +._ol-bef, +._ul_bef { + flex: none; + user-select: none; +} + +._ul-p1 { + display: inline-block; + width: 0.3em; + height: 0.3em; + overflow: hidden; + line-height: 0.3em; +} + +._ul-p2 { + display: inline-block; + width: 0.23em; + height: 0.23em; + border: 0.05em solid black; + border-radius: 50%; +} + +._q::before { + content: '"'; +} + +._q::after { + content: '"'; +} + +._sub { + font-size: smaller; + vertical-align: sub; +} + +._sup { + font-size: smaller; + vertical-align: super; +} + +.__bdi, +.__bdo, +.__ruby, +.__rt { + display: inline-block; +} + +._video { + position: relative; + display: inline-block; + width: 300px; + height: 225px; + background-color: black; +} + +._video::after { + position: absolute; + top: 50%; + left: 50%; + margin: -15px 0 0 -15px; + content: ''; + border-color: transparent transparent transparent white; + border-style: solid; + border-width: 15px 0 15px 30px; +} +._img { + vertical-align: top; +} \ No newline at end of file diff --git a/components/shortcut/shortcut.js b/components/shortcut/shortcut.js new file mode 100644 index 0000000..769d3e8 --- /dev/null +++ b/components/shortcut/shortcut.js @@ -0,0 +1,57 @@ +const App = getApp(); + +Component({ + options: { + multipleSlots: true // 在组件定义时的选项中启用多slot支持 + }, + + /** + * 组件的属性列表 + * 用于组件自定义设置 + */ + properties: { + // 弹窗标题 + title: { + type: String, + value: '弹窗标题' + } + }, + + /** + * 私有数据, 组件的初始数据 + * 可用于模版渲染 + */ + data: { + // 弹窗显示控制 + isShow: false, + transparent: true + }, + + /** + * 组件的方法列表 + * 更新属性和数据的方法与更新页面数据的方法类似 + */ + methods: { + + /** + * 导航菜单切换事件 + */ + _onToggleShow(e) { + this.setData({ + isShow: !this.data.isShow, + transparent: false + }) + }, + + /** + * 导航页面跳转 + */ + _onTargetPage(e) { + let urls = App.getTabBarLinks(); + wx.switchTab({ + url: '/' + urls[e.detail.target.dataset.index] + }); + } + + } +}) \ No newline at end of file diff --git a/components/shortcut/shortcut.json b/components/shortcut/shortcut.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/shortcut/shortcut.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/shortcut/shortcut.wxml b/components/shortcut/shortcut.wxml new file mode 100644 index 0000000..775be03 --- /dev/null +++ b/components/shortcut/shortcut.wxml @@ -0,0 +1,32 @@ + + + +
+ +
+ + +
+ +
+ + + +
+ +
+ + +
+ +
+ +
\ No newline at end of file diff --git a/components/shortcut/shortcut.wxss b/components/shortcut/shortcut.wxss new file mode 100644 index 0000000..725d573 --- /dev/null +++ b/components/shortcut/shortcut.wxss @@ -0,0 +1,205 @@ +@import "/utils/common.wxss"; + +/* 快捷导航 */ + +.shortcut { + position: fixed; + right: 12px; + bottom: 250rpx; + width: 76rpx; + line-height: 1; + z-index: 5; + border-radius: 50%; +} + +/* 导航菜单元素 */ + +.nav-item { + position: absolute; + bottom: 0; + padding: 0; + width: 76rpx; + height: 76rpx; + line-height: 76rpx; + color: #fff; + background: rgba(0, 0, 0, 0.4); + border-radius: 50%; + text-align: center; + transform: rotate(0deg); + opacity: 0; +} + +.nav-item text { + font-size: 40rpx; +} + +/* 导航开关 */ + +.nav-item__switch { + opacity: 1; +} + +.shortcut_click_show { + margin-bottom: 0; + background: #ff5454; +} + +/* 显示动画 */ + +.show_80 { + bottom: 384rpx; + animation: show_80 0.3s forwards; +} + +.show_60 { + bottom: 288rpx; + animation: show_60 0.3s forwards; +} + +.show_40 { + bottom: 192rpx; + animation: show_40 0.3s forwards; +} + +.show_20 { + bottom: 96rpx; + animation: show_20 0.3s forwards; +} + +@keyframes show_20 { + from { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } + + to { + bottom: 96rpx; + transform: rotate(360deg); + opacity: 1; + } +} + +@keyframes show_40 { + from { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } + + to { + bottom: 192rpx; + transform: rotate(360deg); + opacity: 1; + } +} + +@keyframes show_60 { + from { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } + + to { + bottom: 288rpx; + transform: rotate(360deg); + opacity: 1; + } +} + +@keyframes show_80 { + from { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } + + to { + bottom: 384rpx; + transform: rotate(360deg); + opacity: 1; + } +} + +/* 隐藏动画 */ + +.hide_80 { + bottom: 0; + animation: hide_80 0.3s; + opacity: 0; +} + +.hide_60 { + bottom: 0; + animation: hide_60 0.3s; + opacity: 0; +} + +.hide_40 { + bottom: 0; + animation: hide_40 0.3s; + opacity: 0; +} + +.hide_20 { + bottom: 0; + animation: hide_20 0.3s; + opacity: 0; +} + +@keyframes hide_20 { + from { + bottom: 96rpx; + transform: rotate(360deg); + opacity: 1; + } + + to { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } +} + +@keyframes hide_40 { + from { + bottom: 192rpx; + transform: rotate(360deg); + opacity: 1; + } + + to { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } +} + +@keyframes hide_60 { + from { + bottom: 288rpx; + transform: rotate(360deg); + opacity: 1; + } + + to { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } +} + +@keyframes hide_80 { + from { + bottom: 384rpx; + transform: rotate(360deg); + opacity: 1; + } + + to { + bottom: 0; + transform: rotate(0deg); + opacity: 0; + } +} diff --git a/ec-canvas/ec-canvas.js b/ec-canvas/ec-canvas.js new file mode 100644 index 0000000..c3c41c8 --- /dev/null +++ b/ec-canvas/ec-canvas.js @@ -0,0 +1,235 @@ +import WxCanvas from './wx-canvas'; +import * as echarts from './echarts'; + +let ctx; + +function compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i]) + const num2 = parseInt(v2[i]) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +Component({ + properties: { + canvasId: { + type: String, + value: 'ec-canvas' + }, + + ec: { + type: Object + }, + + forceUseOldCanvas: { + type: Boolean, + value: false + } + }, + + data: { + isUseNewCanvas: false + }, + + ready: function () { + if (!this.data.ec) { + console.warn('组件需绑定 ec 变量,例:'); + return; + } + + if (!this.data.ec.lazyLoad) { + this.init(); + } + }, + + methods: { + init: function (callback) { + const version = wx.getSystemInfoSync().SDKVersion + + const canUseNewCanvas = compareVersion(version, '2.9.0') >= 0; + const forceUseOldCanvas = this.data.forceUseOldCanvas; + const isUseNewCanvas = canUseNewCanvas && !forceUseOldCanvas; + this.setData({ isUseNewCanvas }); + + if (forceUseOldCanvas && canUseNewCanvas) { + console.warn('开发者强制使用旧canvas,建议关闭'); + } + + if (isUseNewCanvas) { + // console.log('微信基础库版本大于2.9.0,开始使用'); + // 2.9.0 可以使用 + this.initByNewWay(callback); + } else { + const isValid = compareVersion(version, '1.9.91') >= 0 + if (!isValid) { + console.error('微信基础库版本过低,需大于等于 1.9.91。' + + '参见:https://github.com/ecomfe/echarts-for-weixin' + + '#%E5%BE%AE%E4%BF%A1%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82'); + return; + } else { + console.warn('建议将微信基础库调整大于等于2.9.0版本。升级后绘图将有更好性能'); + this.initByOldWay(callback); + } + } + }, + + initByOldWay(callback) { + // 1.9.91 <= version < 2.9.0:原来的方式初始化 + ctx = wx.createCanvasContext(this.data.canvasId, this); + const canvas = new WxCanvas(ctx, this.data.canvasId, false); + + echarts.setCanvasCreator(() => { + return canvas; + }); + // const canvasDpr = wx.getSystemInfoSync().pixelRatio // 微信旧的canvas不能传入dpr + const canvasDpr = 1 + var query = wx.createSelectorQuery().in(this); + query.select('.ec-canvas').boundingClientRect(res => { + if (typeof callback === 'function') { + this.chart = callback(canvas, res.width, res.height, canvasDpr); + } + else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, res.width, res.height, canvasDpr); + } + else { + this.triggerEvent('init', { + canvas: canvas, + width: res.width, + height: res.height, + canvasDpr: canvasDpr // 增加了dpr,可方便外面echarts.init + }); + } + }).exec(); + }, + + initByNewWay(callback) { + // version >= 2.9.0:使用新的方式初始化 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + this.canvasNode = canvasNode + + const canvasDpr = wx.getSystemInfoSync().pixelRatio + const canvasWidth = res[0].width + const canvasHeight = res[0].height + + const ctx = canvasNode.getContext('2d') + + const canvas = new WxCanvas(ctx, this.data.canvasId, true, canvasNode) + echarts.setCanvasCreator(() => { + return canvas + }) + + if (typeof callback === 'function') { + this.chart = callback(canvas, canvasWidth, canvasHeight, canvasDpr) + } else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, canvasWidth, canvasHeight, canvasDpr) + } else { + this.triggerEvent('init', { + canvas: canvas, + width: canvasWidth, + height: canvasHeight, + dpr: canvasDpr + }) + } + }) + }, + canvasToTempFilePath(opt) { + if (this.data.isUseNewCanvas) { + // 新版 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + opt.canvas = canvasNode + wx.canvasToTempFilePath(opt) + }) + } else { + // 旧的 + if (!opt.canvasId) { + opt.canvasId = this.data.canvasId; + } + ctx.draw(true, () => { + wx.canvasToTempFilePath(opt, this); + }); + } + }, + + touchStart(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousedown', { + zrX: touch.x, + zrY: touch.y + }); + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'start'); + } + }, + + touchMove(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'change'); + } + }, + + touchEnd(e) { + if (this.chart) { + const touch = e.changedTouches ? e.changedTouches[0] : {}; + var handler = this.chart.getZr().handler; + handler.dispatch('mouseup', { + zrX: touch.x, + zrY: touch.y + }); + handler.dispatch('click', { + zrX: touch.x, + zrY: touch.y + }); + handler.processGesture(wrapTouch(e), 'end'); + } + } + } +}); + +function wrapTouch(event) { + for (let i = 0; i < event.touches.length; ++i) { + const touch = event.touches[i]; + touch.offsetX = touch.x; + touch.offsetY = touch.y; + } + return event; +} diff --git a/ec-canvas/ec-canvas.json b/ec-canvas/ec-canvas.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/ec-canvas/ec-canvas.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/ec-canvas/ec-canvas.wxml b/ec-canvas/ec-canvas.wxml new file mode 100644 index 0000000..84583a9 --- /dev/null +++ b/ec-canvas/ec-canvas.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/ec-canvas/ec-canvas.wxss b/ec-canvas/ec-canvas.wxss new file mode 100644 index 0000000..70c900b --- /dev/null +++ b/ec-canvas/ec-canvas.wxss @@ -0,0 +1,5 @@ +.ec-canvas { + width: 100%; + height: 100vh; + z-index:1; +} \ No newline at end of file diff --git a/ec-canvas/echarts.js b/ec-canvas/echarts.js new file mode 100644 index 0000000..68264a5 --- /dev/null +++ b/ec-canvas/echarts.js @@ -0,0 +1,22 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";var e=2311,n=function(){return e++},v="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:function(t){var e={},i=t.match(/Firefox\/([\d.]+)/),n=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(e.firefox=!0,e.version=i[1]);n&&(e.ie=!0,e.version=n[1]);o&&(e.edge=!0,e.version=o[1]);a&&(e.weChat=!0);return{browser:e,os:{},node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!e.ie&&!e.edge,pointerEventsSupported:"onpointerdown"in window&&(e.edge||e.ie&&11<=e.version),domSupported:"undefined"!=typeof document}}(navigator.userAgent);var s={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},l={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},u=Object.prototype.toString,i=Array.prototype,r=i.forEach,h=i.filter,o=i.slice,c=i.map,d=i.reduce,a={};function f(t,e){"createCanvas"===t&&(y=null),a[t]=e}function D(t){if(null==t||"object"!=typeof t)return t;var e=t,i=u.call(t);if("[object Array]"===i){if(!$(t)){e=[];for(var n=0,o=t.length;n>1)%2;s.cssText=["position:absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","width:0","height:0",n[l]+":0",o[u]+":0",n[1-l]+":auto",o[1-u]+":auto",""].join("!important;"),t.appendChild(r),i.push(r)}return i}(t,r),r);if(s)return s(zt,n,o),i.zrX=zt[0],void(i.zrY=zt[1])}i.zrX=i.zrY=0}function Vt(t){return t||window.event}function Gt(t,e,i){if(null!=(e=Vt(e)).zrX)return e;var n=e.type;if(n&&0<=n.indexOf("touch")){var o="touchend"!==n?e.targetTouches[0]:e.changedTouches[0];o&&Rt(t,o,e,i)}else Rt(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var a=e.button;return null==e.which&&void 0!==a&&Ot.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function Ft(t,e,i,n){Nt?t.addEventListener(e,i,n):t.attachEvent("on"+e,i)}var Wt=Nt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function Ht(t){return 2===t.which||3===t.which}function Zt(){this._track=[]}function Ut(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}Zt.prototype={constructor:Zt,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var o={points:[],touches:[],target:e,event:t},a=0,r=n.length;an.getWidth()||i<0||i>n.getHeight()}Kt.prototype={constructor:Kt,setHandlerProxy:function(e){this.proxy&&this.proxy.dispose(),e&&(E($t,function(t){e.on&&e.on(t,this[t],this)},this),e.handler=this),this.proxy=e},mousemove:function(t){var e=t.zrX,i=t.zrY,n=Qt(this,e,i),o=this._hovered,a=o.target;a&&!a.__zr&&(a=(o=this.findHover(o.x,o.y)).target);var r=this._hovered=n?{x:e,y:i}:this.findHover(e,i),s=r.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),a&&s!==a&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(r,"mousemove",t),s&&s!==a&&this.dispatchToElement(r,"mouseover",t)},mouseout:function(t){var e=t.zrEventControl,i=t.zrIsToLocalDOM;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&(i||this.trigger("globalout",{type:"globalout",event:t}))},resize:function(t){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){var n=(t=t||{}).target;if(!n||!n.silent){for(var o="on"+e,a=function(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:jt}}(e,t,i);n&&(n[o]&&(a.cancelBubble=n[o].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[o]&&t[o].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),o={x:t,y:e},a=n.length-1;0<=a;a--){var r;if(n[a]!==i&&!n[a].ignore&&(r=Jt(n[a],t,e))&&(o.topTarget||(o.topTarget=n[a]),r!==Yt)){o.target=n[a];break}}return o},processGesture:function(t,e){this._gestureMgr||(this._gestureMgr=new Zt);var i=this._gestureMgr;"start"===e&&i.clear();var n=i.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&i.clear(),n){var o=n.type;t.gestureEvent=o,this.dispatchToElement({target:n.target},o,n.event)}}},E(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(r){Kt.prototype[r]=function(t){var e,i,n=t.zrX,o=t.zrY,a=Qt(this,n,o);if("mouseup"===r&&a||(i=(e=this.findHover(n,o)).target),"mousedown"===r)this._downEl=i,this._downPoint=[t.zrX,t.zrY],this._upEl=i;else if("mouseup"===r)this._upEl=i;else if("click"===r){if(this._downEl!==this._upEl||!this._downPoint||4=this._maxSize&&0>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1),ze(t,e),e):void Pe(e,0,0,0,1):7===o.length?0<=(n=parseInt(o.substr(1),16))&&n<=16777215?(Pe(e,(16711680&n)>>16,(65280&n)>>8,255&n,1),ze(t,e),e):void Pe(e,0,0,0,1):void 0;var a=o.indexOf("("),r=o.indexOf(")");if(-1!==a&&r+1===o.length){var s=o.substr(0,a),l=o.substr(a+1,r-(a+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Pe(e,0,0,0,1);u=Ce(l.pop());case"rgb":return 3!==l.length?void Pe(e,0,0,0,1):(Pe(e,De(l[0]),De(l[1]),De(l[2]),u),ze(t,e),e);case"hsla":return 4!==l.length?void Pe(e,0,0,0,1):(l[3]=Ce(l[3]),Be(l,e),ze(t,e),e);case"hsl":return 3!==l.length?void Pe(e,0,0,0,1):(Be(l,e),ze(t,e),e);default:return}}Pe(e,0,0,0,1)}}function Be(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Ce(t[1]),o=Ce(t[2]),a=o<=.5?o*(n+1):o+n-o*n,r=2*o-a;return Pe(e=e||[],Te(255*Le(r,a,i+1/3)),Te(255*Le(r,a,i)),Te(255*Le(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ve(t,e){var i=Re(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,255e);i++);i=Math.min(i-1,u-2)}C=e;var n=g[(D=i)+1]-g[i];if(0!=n)if(S=(e-g[i])/n,l)if(I=m[i],M=m[0===i?i:i-1],T=m[u-2=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new Mi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},Mi.create=function(t){return new Mi(t.x,t.y,t.width,t.height)};var Ii=function(t){for(var e in t=t||{},mi.call(this,t),t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};Ii.prototype={constructor:Ii,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i>>1])<0?l=a:s=1+a;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function Pi(p,g){var r,s,m=Ai,l=0,v=[];function e(t){var e=r[t],i=s[t],n=r[t+1],o=s[t+1];s[t]=i+o,t===l-3&&(r[t+1]=r[t+2],s[t+1]=s[t+2]),l--;var a=ki(p[n],p,e,i,0,g);e+=a,0!==(i-=a)&&0!==(o=Li(p[e+i-1],p,n,o,o-1,g))&&(i<=o?function(t,e,i,n){var o=0;for(o=0;os[t+1])break;e(t)}},this.forceMergeRuns=function(){for(;1>=1;return t+e}(o);do{if((a=Di(t,i,n,e))=e.maxIterations){t+=e.ellipsis;break}var s=0===r?yn(t,o,e.ascCharWidth,e.cnCharWidth):0f)return{lines:[],width:0,height:0};C.textWidth=hn(C.text,w);var S=x.textWidth,M=null==S||"auto"===S;if("string"==typeof S&&"%"===S.charAt(S.length-1))C.percentWidth=S,u.push(C),S=0;else{if(M){S=C.textWidth;var I=x.textBackgroundColor,T=I&&I.image;T&&nn(T=Qi(T))&&(S=Math.max(S,T.width*b/T.height))}var A=_?_[1]+_[3]:0;S+=A;var D=null!=d?d-v:null;null!=D&&Dn[0]){for(r=0;rt);r++);a=i[n[r]]}if(n.splice(r+1,0,t),!(i[t]=e).virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else fi("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n=a.length&&a.push({option:t})}}),a}function Go(t){var r=Q();ko(t,function(t,e){var i=t.exist;i&&r.set(i.id,t)}),ko(t,function(t,e){var i=t.option;Y(!i||null==i.id||!r.get(i.id)||r.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&r.set(i.id,t),t.keyInfo||(t.keyInfo={})}),ko(t,function(t,e){var i=t.exist,n=t.option,o=t.keyInfo;if(Po(n)){if(o.name=null!=n.name?n.name+"":i?i.name:Oo+e,i)o.id=i.id;else if(null!=n.id)o.id=n.id+"";else for(var a=0;o.id="\0"+o.name+"\0"+a++,r.get(o.id););r.set(o.id,t)}})}function Fo(t){var e=t.name;return!(!e||!e.indexOf(Oo))}function Wo(t){return Po(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Ho(e,t){return null!=t.dataIndexInside?t.dataIndexInside:null!=t.dataIndex?k(t.dataIndex)?N(t.dataIndex,function(t){return e.indexOfRawIndex(t)}):e.indexOfRawIndex(t.dataIndex):null!=t.name?k(t.name)?N(t.name,function(t){return e.indexOfName(t)}):e.indexOfName(t.name):void 0}function Zo(){var e="__\0ec_inner_"+Uo+++"_"+Math.random().toFixed(5);return function(t){return t[e]||(t[e]={})}}var Uo=0;function Xo(s,l,u){if(z(l)){var t={};t[l+"Index"]=0,l=t}var e=u&&u.defaultMainType;!e||Yo(l,e+"Index")||Yo(l,e+"Id")||Yo(l,e+"Name")||(l[e+"Index"]=0);var h={};return ko(l,function(t,e){t=l[e];if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],n=i[1],o=(i[2]||"").toLowerCase();if(!(!n||!o||null==t||"index"===o&&"none"===t||u&&u.includeMainTypes&&_(u.includeMainTypes,n)<0)){var a={mainType:n};"index"===o&&"all"===t||(a[o]=t);var r=s.queryComponents(a);h[n+"Models"]=r,h[n+"Model"]=r[0]}}else h[e]=t}),h}function Yo(t,e){return t&&t.hasOwnProperty(e)}function jo(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function qo(t){return"auto"===t?v.domSupported?"html":"richText":t||"html"}function Ko(t,i){var n=Q(),o=[];return E(t,function(t){var e=i(t);(n.get(e)||(o.push(e),n.set(e,[]))).push(t)}),{keys:o,buckets:n}}var $o=".",Jo="___EC__COMPONENT__CONTAINER___";function Qo(t){var e={main:"",sub:""};return t&&(t=t.split($o),e.main=t[0]||"",e.sub=t[1]||""),e}function ta(t){(t.$constructor=t).extend=function(t){function e(){t.$constructor?t.$constructor.apply(this,arguments):i.apply(this,arguments)}var i=this;return L(e.prototype,t),e.extend=this.extend,e.superCall=na,e.superApply=oa,w(e,this),e.superClass=i,e}}var ea=0;function ia(t){var e=["__\0is_clz",ea++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function na(t,e){var i=U(arguments,2);return this.superClass.prototype[e].apply(t,i)}function oa(t,e,i){return this.superClass.prototype[e].apply(t,i)}function aa(i,t){t=t||{};var o={};if(i.registerClass=function(t,e){if(e)if(function(t){Y(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}(e),(e=Qo(e)).sub){if(e.sub!==Jo){(function(t){var e=o[t.main];e&&e[Jo]||((e=o[t.main]={})[Jo]=!0);return e})(e)[e.sub]=t}}else o[e.main]=t;return t},i.getClass=function(t,e,i){var n=o[t];if(n&&n[Jo]&&(n=e?n[e]:null),i&&!n)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return n},i.getClassesByMainType=function(t){t=Qo(t);var i=[],e=o[t.main];return e&&e[Jo]?E(e,function(t,e){e!==Jo&&i.push(t)}):i.push(e),i},i.hasClass=function(t){return t=Qo(t),!!o[t.main]},i.getAllClassMainTypes=function(){var i=[];return E(o,function(t,e){i.push(e)}),i},i.hasSubTypes=function(t){t=Qo(t);var e=o[t.main];return e&&e[Jo]},i.parseClassType=Qo,t.registerWhenExtend){var n=i.extend;n&&(i.extend=function(t){var e=n.call(this,t);return i.registerClass(e,t.type)})}return i}function ra(s){for(var t=0;tthis._ux||tr(e-this._yi)>this._uy||this._len<5;return this.addData(Za.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,o,a){return this.addData(Za.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(Za.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,o,a){return this.addData(Za.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=$a(o)*i+t,this._yi=Ja(o)*i+e,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(Za.R,t,e,i,n),this},closePath:function(){this.addData(Za.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;il||tr(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case Za.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case Za.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case Za.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=m=pr[n=0]+t&&r<=pr[1]+t?h:0}if(a){l=n;n=sr(o),o=sr(l)}else n=sr(n),o=sr(o);oMath.PI/2&&p<1.5*Math.PI&&(h=-h),c+=h)}}return c}function xr(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;hMath.abs(a[1])?0=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/o*a+i[0]}function Pl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?function(t){return t.replace(/^\s+|\s+$/g,"")}(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Nl(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Ol(t){return t.sort(function(t,e){return t-e}),t}function El(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function zl(t){var e=t.toString(),i=e.indexOf("e");if(0h&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}var Vl=9007199254740991;function Gl(t){var e=2*Math.PI;return(t%e+e)%e}function Fl(t){return-Ll"'])/g,tu={"&":"&","<":"<",">":">",'"':""","'":"'"};function eu(t){return null==t?"":(t+"").replace(Ql,function(t,e){return tu[e]})}function iu(t,e){return"{"+t+(null==e?"":e)+"}"}var nu=["a","b","c","d","e","f","g"];function ou(t,e,i){k(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;a':'':{renderMode:o,content:"{marker"+a+"|} ",style:{color:i}}:""}function su(t,e){return"0000".substr(0,e-(t+="").length)+t}function lu(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Hl(e),o=i?"UTC":"",a=n["get"+o+"FullYear"](),r=n["get"+o+"Month"]()+1,s=n["get"+o+"Date"](),l=n["get"+o+"Hours"](),u=n["get"+o+"Minutes"](),h=n["get"+o+"Seconds"](),c=n["get"+o+"Milliseconds"]();return t=t.replace("MM",su(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",su(s,2)).replace("d",s).replace("hh",su(l,2)).replace("h",l).replace("mm",su(u,2)).replace("m",u).replace("ss",su(h,2)).replace("s",h).replace("SSS",su(c,3))}function uu(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}var hu=gn;var cu=(Object.freeze||Object)({addCommas:Kl,toCamelCase:$l,normalizeCssArray:Jl,encodeHTML:eu,formatTpl:ou,formatTplSimple:au,getTooltipMarker:ru,formatTime:lu,capitalFirst:uu,truncateText:hu,getTextBoundingRect:function(t){return cn(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},getTextRect:function(t,e,i,n,o,a,r,s){return cn(t,e,i,n,o,s,a,r)}}),du=E,fu=["left","right","top","bottom","width","height"],pu=[["width","left","right"],["height","top","bottom"]];function gu(h,c,d,f,p){var g=0,m=0;null==f&&(f=1/0),null==p&&(p=1/0);var v=0;c.eachChild(function(t,e){var i,n,o=t.position,a=t.getBoundingRect(),r=c.childAt(e+1),s=r&&r.getBoundingRect();if("horizontal"===h){var l=a.width+(s?-s.x+a.x:0);v=f<(i=g+l)||t.newline?(g=0,i=l,m+=v+d,a.height):Math.max(v,a.height)}else{var u=a.height+(s?-s.y+a.y:0);v=p<(n=m+u)||t.newline?(g+=v+d,m=0,n=u,a.width):Math.max(v,a.width)}t.newline||(o[0]=g,o[1]=m,"horizontal"===h?g=i+d:m=n+d)})}var mu=gu;T(gu,"vertical"),T(gu,"horizontal");function vu(t,e,i){i=Jl(i||0);var n=e.width,o=e.height,a=Pl(t.left,n),r=Pl(t.top,o),s=Pl(t.right,n),l=Pl(t.bottom,o),u=Pl(t.width,n),h=Pl(t.height,o),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(h)&&(h=o-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(n/oe)return t[n];return t[i-1]}(s,i):r;if((l=l||r)&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},Pu="original",Nu="arrayRows",Ou="objectRows",Eu="keyedColumns",zu="unknown",Ru="typedArray",Bu="column",Vu="row";function Gu(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Eu?{}:[]),this.sourceFormat=t.sourceFormat||zu,this.seriesLayoutBy=t.seriesLayoutBy||Bu,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&Q(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}Gu.seriesDataToSource=function(t){return new Gu({data:t,sourceFormat:V(t)?Ru:Pu,fromDataset:!1})},ia(Gu);var Fu={Must:1,Might:2,Not:3},Wu=Zo();function Hu(t){var e=t.option,i=e.data,n=V(i)?Ru:Pu,o=!1,a=e.seriesLayoutBy,r=e.sourceHeader,s=e.dimensions,l=ju(t);if(l){var u=l.option;i=u.source,n=Wu(l).sourceFormat,o=!0,a=a||u.seriesLayoutBy,null==r&&(r=u.sourceHeader),s=s||u.dimensions}var h=function(t,e,i,n,o){if(!t)return{dimensionsDefine:Zu(o)};var a,r;if(e===Nu)"auto"===n||null==n?Uu(function(t){null!=t&&"-"!==t&&(z(t)?null==r&&(r=1):r=0)},i,t,10):r=n?1:0,o||1!==r||(o=[],Uu(function(t,e){o[e]=null!=t?t:""},i,t)),a=o?o.length:i===Vu?t.length:t[0]?t[0].length:null;else if(e===Ou)o=o||function(t){var e,i=0;for(;i":"\n",f="richText"===c,p={},g=0;function i(t){return{renderMode:c,content:eu(Kl(t)),style:p}}var m=this.getData(),a=m.mapDimension("defaultedTooltip",!0),n=a.length,r=this.getRawValue(o),s=k(r),v=m.getItemVisual(o,"color");R(v)&&v.colorStops&&(v=(v.colorStops[0]||{}).color),v=v||"transparent";var l=(1":"",n=i+u.join(i||", ");return{renderMode:c,content:n,style:p}}(r):i(n?Bh(m,o,a[0]):s?r[0]:r)).content,u=d.seriesIndex+"at"+g,y=ru({color:v,type:"item",renderMode:c,markerId:u});p[u]=v,++g;var x=m.getName(o),_=this.name;Fo(this)||(_=""),_=_?eu(_)+(h?": ":e):"";var w="string"==typeof y?y:y.content;return{html:h?w+_+l:_+w+(x?eu(x)+": "+l:l),markers:p}},isAnimationEnabled:function(){if(v.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,o=ku.getColorFromPalette.call(this,t,e,i);return o=o||n.getColorFromPalette(t,e,i)},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});function nc(t){var e=t.name;Fo(t)||(t.name=function(t){var i=t.getRawData(),e=i.mapDimension("seriesName",!0),n=[];return E(e,function(t){var e=i.getDimensionInfo(t);e.displayName&&n.push(e.displayName)}),n.join(" ")}(t)||e)}function oc(t){return t.model.getRawData().count()}function ac(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),rc}function rc(t,e){t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function sc(e,i){E(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,T(lc,i))})}function lc(t){var e=uc(t);e&&e.setOutputEnd(this.count())}function uc(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var o=n.agentStubMap;o&&(n=o.get(t.uid))}return n}}b(ic,Fh),b(ic,ku);var hc=function(){this.group=new Ii,this.uid=Cl("viewComponent")};hc.prototype={constructor:hc,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){},filterForExposedEvent:null};var cc=hc.prototype;cc.updateView=cc.updateLayout=cc.updateVisual=function(t,e,i,n){},ta(hc),aa(hc,{registerWhenExtend:!0});function dc(){var s=Zo();return function(t){var e=s(t),i=t.pipelineContext,n=e.large,o=e.progressiveRender,a=e.large=i.large,r=e.progressiveRender=i.progressiveRender;return!!(n^a||o^r)&&"reset"}}var fc=Zo(),pc=dc();function gc(){this.group=new Ii,this.uid=Cl("viewChart"),this.renderTask=Wh({plan:xc,reset:_c}),this.renderTask.context={view:this}}var mc=gc.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){yc(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){yc(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};function vc(t,e,i){if(t&&(t.trigger(e,i),t.isGroup&&!qs(t)))for(var n=0,o=t.childCount();nc?i+=p(g("data.partialData"),{displayCnt:c}):i+=g("data.allData");for(var r=[],s=0;si.blockIndex?i.step:null,a=n&&n.modDataCount;return{step:o,modBy:null!=a?Math.ceil(a/o):null,modDataCount:a}}},Nc.getPipeline=function(t){return this._pipelineMap.get(t)},Nc.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),o=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,a=t.get("large")&&n>=t.get("largeThreshold"),r="mod"===t.get("progressiveChunkMode")?n:null;t.pipelineContext=i.context={progressiveRender:o,modDataCount:r,large:a}},Nc.restorePipelines=function(t){var n=this,o=n._pipelineMap=Q();t.eachSeries(function(t){var e=t.getProgressive(),i=t.uid;o.set(i,{id:i,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),Uc(n,t,t.dataTask)})},Nc.prepareStageTasks=function(){var i=this._stageTaskMap,n=this.ecInstance.getModel(),o=this.api;E(this._allHandlers,function(t){var e=i.get(t.uid)||i.set(t.uid,[]);t.reset&&function(n,o,t,a,r){var s=t.seriesTaskMap||(t.seriesTaskMap=Q()),e=o.seriesType,i=o.getTargetSeries;o.createOnAllSeries?a.eachRawSeries(l):e?a.eachRawSeriesByType(e,l):i&&i(a,r).each(l);function l(t){var e=t.uid,i=s.get(e)||s.set(e,Wh({plan:Gc,reset:Fc,count:Zc}));i.context={model:t,ecModel:a,api:r,useClearVisual:o.isVisual&&!o.isLayout,plan:o.plan,reset:o.reset,scheduler:n},Uc(n,t,i)}var u=n._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})}(this,t,e,n,o),t.overallReset&&function(n,t,e,i,o){var a=e.overallTask=e.overallTask||Wh({reset:zc});a.context={ecModel:i,api:o,overallReset:t.overallReset,scheduler:n};var r=a.agentStubMap=a.agentStubMap||Q(),s=t.seriesType,l=t.getTargetSeries,u=!0,h=t.modifyOutputEnd;s?i.eachRawSeriesByType(s,c):l?l(i,o).each(c):(u=!1,E(i.getSeries(),c));function c(t){var e=t.uid,i=r.get(e);i||(i=r.set(e,Wh({reset:Rc,onDirty:Vc})),a.dirty()),i.context={model:t,overallProgress:u,modifyOutputEnd:h},i.agent=a,i.__block=u,Uc(n,t,i)}var d=n._pipelineMap;r.each(function(t,e){d.get(e)||(t.dispose(),a.dirty(),r.removeKey(e))})}(this,t,e,n,o)},this)},Nc.prepareView=function(t,e,i,n){var o=t.renderTask,a=o.context;a.model=e,a.ecModel=i,a.api=n,o.__block=!t.incrementalPrepareRender,Uc(this,e,o)},Nc.performDataProcessorTasks=function(t,e){Oc(this,this._dataProcessorHandlers,t,e,{block:!0})},Nc.performVisualTasks=function(t,e,i){Oc(this,this._visualHandlers,t,e,i)},Nc.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},Nc.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var Ec=Nc.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)};function zc(t){t.overallReset(t.ecModel,t.api,t.payload)}function Rc(t,e){return t.overallProgress&&Bc}function Bc(){this.agent.dirty(),this.getDownstream().dirty()}function Vc(){this.agent&&this.agent.dirty()}function Gc(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Fc(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Eo(t.reset(t.model,t.ecModel,t.api,t.payload));return 1t.get("hoverLayerThreshold")&&!v.node&&t.eachSeries(function(t){if(!t.preventUsingHoverLayer){var e=i._chartsMap[t.__viewId];e.__alive&&e.group.traverse(function(t){t.useHoverLayer=!0})}})}(n,t),Lc(n._zr.dom,t)}function Ud(e,i){wd(Qd,function(t){t(e,i)})}Pd.resize=function(t){if(!this._disposed){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[Td]=!0,i&&Ed(this),Od.update.call(this),this[Td]=!1,Vd.call(this,n),Gd.call(this,n)}}},Pd.showLoading=function(t,e){if(!this._disposed&&(Sd(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),nf[t])){var i=nf[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},Pd.hideLoading=function(){this._disposed||(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Pd.makeActionFromEvent=function(t){var e=L({},t);return e.type=Kd[t.type],e},Pd.dispatchAction=function(t,e){this._disposed||(Sd(e)||(e={silent:!!e}),qd[t.type]&&this._model&&(this[Td]?this._pendingActions.push(t):(Bd.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&v.browser.weChat&&this._throttledZrFlush(),Vd.call(this,e.silent),Gd.call(this,e.silent))))},Pd.appendData=function(t){if(!this._disposed){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0}},Pd.on=Cd("on",!1),Pd.off=Cd("off",!1),Pd.one=Cd("one",!1);var Xd=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Yd(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function jd(){this.eventInfo}Pd._initEvents=function(){wd(Xd,function(u){function t(t){var e,i=this.getModel(),n=t.target;if("globalout"===u)e={};else if(n&&null!=n.dataIndex){var o=n.dataModel||i.getSeriesByIndex(n.seriesIndex);e=o&&o.getDataParams(n.dataIndex,n.dataType,n)||{}}else n&&n.eventData&&(e=L({},n.eventData));if(e){var a=e.componentType,r=e.componentIndex;"markLine"!==a&&"markPoint"!==a&&"markArea"!==a||(a="series",r=e.seriesIndex);var s=a&&null!=r&&i.getComponent(a,r),l=s&&this["series"===s.mainType?"_chartsMap":"_componentsMap"][s.__viewId];e.event=t,e.type=u,this._ecEventProcessor.eventInfo={targetEl:n,packedEvent:e,model:s,view:l},this.trigger(u,e)}}t.zrEventfulCallAtLast=!0,this._zr.on(u,t,this)},this),wd(Kd,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},Pd.isDisposed=function(){return this._disposed},Pd.clear=function(){this._disposed||this.setOption({series:[]},!0)},Pd.dispose=function(){if(!this._disposed){this._disposed=!0,jo(this.getDom(),lf,"");var e=this._api,i=this._model;wd(this._componentsViews,function(t){t.dispose(i,e)}),wd(this._chartsViews,function(t){t.dispose(i,e)}),this._zr.dispose(),delete of[this.id]}},b(kd,Ct),jd.prototype={constructor:jd,normalizeQuery:function(t){var s={},l={},u={};if(z(t)){var e=Md(t);s.mainType=e.main||null,s.subType=e.sub||null}else{var h=["Index","Name","Id"],c={name:1,dataIndex:1,dataType:1};E(t,function(t,e){for(var i=!1,n=0;nx[1]&&(x[1]=y)}e&&(this._nameList[d]=e[f])}this._rawCount=this._count=l,this._extent={},Uf(this)},Hf._initDataFromProvider=function(t,e){if(!(e<=t)){for(var i,n=this._chunkSize,o=this._rawData,a=this._storage,r=this.dimensions,s=r.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=0;pM[1]&&(M[1]=S)}if(!o.pure){var I=u[v];if(m&&null==I)if(null!=m.name)u[v]=I=m.name;else if(null!=i){var T=r[i],A=a[T][y];if(A){I=A[x];var D=l[T].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==m?null:m.id;null==C&&null!=I&&(d[I]=d[I]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,i=e[t];if(null!=i&&it))return a;o=a-1}}return-1},Hf.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var o=1/0,a=-1,r=0,s=0,l=this.count();st[I][1])&&(M=!1)}M&&(a[r++]=this.getRawIndex(m))}return rw[1]&&(w[1]=_)}}}return o},Hf.downSample=function(t,e,i,n){for(var o=$f(this,[t]),a=o._storage,r=[],s=Math.floor(1/e),l=a[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],d=new(Bf(this))(u),f=0,p=0;pc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=jf,o},Hf.getItemModel=function(t){var e=this.hostModel;return new Il(this.getRawDataItem(t),e,e&&e.ecModel)},Hf.diff=function(e){var i=this;return new Tf(e?e.getIndices():[],this.getIndices(),function(t){return qf(e,t)},function(t){return qf(i,t)})},Hf.getVisual=function(t){var e=this._visual;return e&&e[t]},Hf.setVisual=function(t,e){if(Pf(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Hf.setLayout=function(t,e){if(Pf(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Hf.getLayout=function(t){return this._layout[t]},Hf.getItemLayout=function(t){return this._itemLayouts[t]},Hf.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?L(this._itemLayouts[t]||{},e):e},Hf.clearItemLayouts=function(){this._itemLayouts.length=0},Hf.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},Hf.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,Pf(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},Hf.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};function tp(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType}function ep(t,e,i){Gu.isInstance(e)||(e=Gu.seriesDataToSource(e)),i=i||{},t=(t||[]).slice();for(var n=(i.dimsDef||[]).slice(),o=Q(),a=Q(),l=[],r=function(t,e,i,n){var o=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return E(e,function(t){var e=t.dimsDef;e&&(o=Math.max(o,e.length))}),o}(e,t,n,i.dimCount),s=0;s=e[0]&&t<=e[1]},cp.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},cp.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},cp.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},cp.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},cp.prototype.getExtent=function(){return this._extent.slice()},cp.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},cp.prototype.isBlank=function(){return this._isBlank},cp.prototype.setBlank=function(t){this._isBlank=t},cp.prototype.getLabel=null,ta(cp),aa(cp,{registerWhenExtend:!0}),dp.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&N(i,gp);return new dp({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var fp=dp.prototype;function pp(t){return t._map||(t._map=Q(t.categories))}function gp(t){return R(t)&&null!=t.value?t.value:t+""}fp.getOrdinal=function(t){return pp(this).get(t)},fp.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=pp(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var mp=cp.prototype,vp=cp.extend({type:"ordinal",init:function(t,e){t&&!k(t)||(t=new dp({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),mp.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return mp.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(mp.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:et,niceExtent:et});vp.create=function(){return new vp};var yp=Nl;function xp(t){return zl(t)+2}function _p(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function wp(t,e){isFinite(t[0])||(t[0]=e[0]),isFinite(t[1])||(t[1]=e[1]),_p(t,0,e),_p(t,1,e),t[0]>t[1]&&(t[0]=t[1])}var bp=Nl,Sp=cp.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),Sp.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=xp(t)},getTicks:function(t){var e=this._interval,i=this._extent,n=this._niceExtent,o=this._intervalPrecision,a=[];if(!e)return a;i[0]s&&(t?a.push(s+e):a.push(i[1])),a},getMinorTicks:function(t){for(var e=this.getTicks(!0),i=[],n=this.getExtent(),o=1;on[0]&&h>>1;t[o][1]>1^-(1&s),l=l>>1^-(1&l),o=s+=o,a=l+=a,n.push([s/i,l/i])}return n}bg.prototype={constructor:bg,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],a=[],r=this.geometries,s=0;ss[1];d(e[0].coord,s[0])&&(n?e[0].coord=s[0]:e.shift());n&&d(s[0],e[0].coord)&&e.unshift({coord:s[0]});d(s[1],a.coord)&&(n?a.coord=s[1]:e.pop());n&&d(a.coord,s[1])&&e.push({coord:s[1]});function d(t,e){return t=Nl(t),e=Nl(e),c?en[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}var pm=Sr.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:Wr(Sr.prototype.brush),buildPath:function(t,e){var i=e.points,n=0,o=i.length,a=fm(i,e.smoothConstraint);if(e.connectNulls){for(;0n)return!1;return!0}(a,e))){var r=e.mapDimension(a.dim),s={};return E(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function Sm(t,e,i){if("cartesian2d"!==t.type)return vm(t,e,i);var n=t.getBaseAxis().isHorizontal(),o=mm(t,e,i);if(!i.get("clip",!0)){var a=o.shape,r=Math.max(a.width,a.height);n?(a.y-=r,a.height+=2*r):(a.x-=r,a.width+=2*r)}return o}gc.extend({type:"line",init:function(){var t=new Ii,e=new $g;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,o=this.group,a=t.getData(),r=t.getModel("lineStyle"),s=t.getModel("areaStyle"),l=a.mapArray(a.getItemLayout),u="polar"===n.type,h=this._coordSys,c=this._symbolDraw,d=this._polyline,f=this._polygon,p=this._lineGroup,g=t.get("animation"),m=!s.isEmpty(),v=s.get("origin"),y=function(t,e,i){if(!i.valueDim)return[];for(var n=[],o=0,a=e.count();oh[c-1].coord&&(h.reverse(),d.reverse());var f=h[0].coord-10,p=h[c-1].coord+10,g=p-f;if(g<.001)return"transparent";E(h,function(t){t.offset=(t.coord-f)/g}),h.push({offset:c?h[c-1].offset:.5,color:d[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:d[0]||"transparent"});var m=new cs(0,0,0,0,h,!0);return m[n]=f,m[n+"2"]=p,m}}}(a,n)||a.getVisual("color");d.useStyle(C(r.getLineStyle(),{fill:"none",stroke:M,lineJoin:"bevel"}));var I=t.get("smooth");if(I=_m(t.get("smooth")),d.setShape({smooth:I,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f){var T=a.getCalculationInfo("stackedOnSeries"),A=0;f.useStyle(C(s.getAreaStyle(),{fill:M,opacity:.7,lineJoin:"bevel"})),T&&(A=_m(T.get("smooth"))),f.setShape({smooth:I,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=y,this._points=l,this._step=S,this._valueOrigin=v},dispose:function(){},highlight:function(t,e,i,n){var o=t.getData(),a=Ho(o,n);if(!(a instanceof Array)&&null!=a&&0<=a){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(r=new Fg(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else gc.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=Ho(o,n);if(null!=a&&0<=a){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else gc.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new pm({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new gm({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i},_updateAnimation:function(t,e,i,n,o,a){var r=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,i,n,o,a,r,s){for(var l=function(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}(t,e),u=[],h=[],c=[],d=[],f=[],p=[],g=[],m=im(o,e,r),v=im(a,t,s),y=0;ye&&(e=t[i]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},w(km,Eg);var Pm={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},Nm={};Nm.categoryAxis=m({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Pm),Nm.valueAxis=m({boundaryGap:[0,0],splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#eee",width:1}}},Pm),Nm.timeAxis=C({scale:!0,min:"dataMin",max:"dataMax"},Nm.valueAxis),Nm.logAxis=C({scale:!0,logBase:10},Nm.valueAxis);function Om(a,t,r,e){E(Em,function(o){t.extend({type:a+"Axis."+o,mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?_u(t):{};m(t,e.getTheme().get(o+"Axis")),m(t,this.getDefaultOption()),t.type=r(a,t),i&&xu(t,n,i)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=dp.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:p([{},Nm[o+"Axis"],e],!0)})}),Tu.registerSubTypeDefaulter(a+"Axis",T(r,a))}var Em=["value","category","time","log"],zm=Tu.extend({type:"cartesian2dAxis",axis:null,init:function(){zm.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){zm.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){zm.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});function Rm(t,e){return e.type||(e.data?"category":"value")}m(zm.prototype,sg);var Bm={offset:0};function Vm(t,e){return t.getCoordSysModel()===e}function Gm(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}Om("x",zm,Rm,Bm),Om("y",zm,Rm,Bm),Tu.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Fm=Gm.prototype;function Wm(t,e,i,n){i.getAxesOnZeroOf=function(){return o?[o]:[]};var o,a=t[e],r=i.model,s=r.get("axisLine.onZero"),l=r.get("axisLine.onZeroAxisIndex");if(s){if(null!=l)Hm(a[l])&&(o=a[l]);else for(var u in a)if(a.hasOwnProperty(u)&&Hm(a[u])&&!n[h(a[u])]){o=a[u];break}o&&(n[h(o)]=!0)}function h(t){return t.dim+"_"+t.index}}function Hm(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(0u[1]?-1:1,c=["start"===a?u[0]-h*l:"end"===a?u[1]+h*l:(u[0]+u[1])/2,ev(a)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*jm/180),ev(a)?n=$m(t.rotation,null!=d?d:t.rotation,r):(n=function(t,e,i,n){var o,a,r=Gl(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;o=Fl(r-jm/2)?(a=l?"bottom":"top","center"):Fl(r-1.5*jm)?(a=l?"top":"bottom","center"):(a="middle",r<1.5*jm&&jm/2l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r=i.r0}}});var jv=Math.PI/180;function qv(o,t,e,i,n,a,r,s,l,u){function h(t,e,i){for(var n=t;nl+r);n++)if(o[n].y+=i,to[n].y+o[n].height)return void c(n,i/2);c(e-1,i/2)}function c(t,e){for(var i=t;0<=i&&!(o[i].y-eo[i-1].y+o[i-1].height));i--);}function d(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=e?v.push(o[y]):m.push(o[y]);d(m,!1,t,e,i,n),d(v,!0,t,e,i,n)}function Kv(t){return"center"===t.position}function $v(L,k,P,t,N,e){var O,E,z=L.getData(),R=[],B=!1,V=(L.get("minShowLabelAngle")||0)*jv;z.each(function(t){var e=z.getItemLayout(t),i=z.getItemModel(t),n=i.getModel("label"),o=n.get("position")||i.get("emphasis.label.position"),a=n.get("distanceToLabelLine"),r=n.get("alignTo"),s=Pl(n.get("margin"),P),l=n.get("bleedMargin"),u=n.getFont(),h=i.getModel("labelLine"),c=h.get("length");c=Pl(c,P);var d=h.get("length2");if(d=Pl(d,P),!(e.anglei[0]&&isFinite(u)&&isFinite(i[0]););else{var h=o.getTicks().length-1;f"+N(t,function(t,e){var i=o.get(o.mapDimension(t.dim),n);return eu(t.name+" : "+i)}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});Mf({type:"radar",render:function(l,t,e){var i=l.coordinateSystem,g=this.group,m=l.getData(),s=this._data;function u(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=function(t){return k(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),a=mg(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function h(t,e,i,n,o,a){i.removeAll();for(var r=0;r"+eu(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}}),Vv);var Ay="\0_ec_interaction_mutex";function Dy(t,e){return!!Cy(t)[e]}function Cy(t){return t[Ay]||(t[Ay]={})}function Ly(i){this.pointerChecker,this._zr=i,this._opt={};var t=A,n=t(ky,this),o=t(Py,this),a=t(Ny,this),r=t(Oy,this),s=t(Ey,this);Ct.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(t,e){this.disable(),this._opt=C(D(e)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(i.on("mousedown",n),i.on("mousemove",o),i.on("mouseup",a)),!0!==t&&"scale"!==t&&"zoom"!==t||(i.on("mousewheel",r),i.on("pinch",s))},this.disable=function(){i.off("mousedown",n),i.off("mousemove",o),i.off("mouseup",a),i.off("mousewheel",r),i.off("pinch",s)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function ky(t){if(!(Ht(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function Py(t){if(this._dragging&&By("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!Dy(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,o=this._y,a=e-n,r=i-o;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Wt(t.event),Ry(this,"pan","moveOnMouseMove",t,{dx:a,dy:r,oldX:n,oldY:o,newX:e,newY:i})}}function Ny(t){Ht(t)||(this._dragging=!1)}function Oy(t){var e=By("zoomOnMouseWheel",t,this._opt),i=By("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,o=Math.abs(n),a=t.offsetX,r=t.offsetY;if(0!==n&&(e||i)){if(e){var s=3x.x)||(m-=Math.PI);var b=v?"left":"right",S=a.labelModel.get("rotate"),M=S*(Math.PI/180);g.setStyle({textPosition:a.labelModel.get("position")||b,textRotation:null==S?-m:M,textOrigin:"center",verticalAlign:"middle"})}if(s.parentNode&&s.parentNode!==u){var I=i.__edge;sl(I=I||(i.__edge=new ls({shape:Px(a,f,f),style:C({opacity:0,strokeNoScale:!0},a.lineStyle)})),{shape:Px(a,d,p),style:{opacity:1}},o),n.add(I)}}function kx(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,u=s.getModel(),h=(a=Cx(s,u,a),s.parentNode===l?s:s.parentNode||s);null==(r=h.getLayout());)h=h.parentNode===l?h:h.parentNode||h;sl(i,{position:[r.x+1,r.y+1]},o,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var c=i.__edge;c&&sl(c,{shape:Px(a,r,r),style:{opacity:0}},o,function(){n.remove(c)})}function Px(t,e,i){var n,o,a,r,s,l,u,h,c=t.orient;if("radial"!==t.layout)return s=e.x,u=e.y,l=i.x,h=i.y,"LR"!==c&&"RL"!==c||(n=s+(l-s)*t.curvature,o=u,a=l+(s-l)*t.curvature,r=h),"TB"!==c&&"BT"!==c||(n=s,o=u+(h-u)*t.curvature,a=l,r=h+(u-h)*t.curvature),{x1:s,y1:u,x2:l,y2:h,cpx1:n,cpy1:o,cpx2:a,cpy2:r};s=e.rawX,u=e.rawY,l=i.rawX,h=i.rawY;var d=Sx(s,u),f=Sx(s,u+(h-u)*t.curvature),p=Sx(l,h+(u-h)*t.curvature),g=Sx(l,h);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}function Nx(t,e){for(var i,n=[t];i=n.pop();)if(e(i),i.isExpand){var o=i.children;if(o.length)for(var a=o.length-1;0<=a;a--)n.push(o[a])}}mx.prototype={constructor:mx,isRemoved:function(){return this.dataIndex<0},eachNode:function(t,e,i){"function"==typeof t&&(i=e,e=t,t=null),z(t=t||{})&&(t={order:t});var n,o=t.order||"preorder",a=this[t.attr||"children"];"preorder"===o&&(n=e.call(i,this));for(var r=0;!n&&re&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;ea&&(a=t.depth)});var r=t.expandAndCollapse&&0<=t.initialTreeDepth?t.initialTreeDepth:a;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),o.data},getOrient:function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),o=n.getValue(),a=n.name;n&&n!==i;)a=n.parentNode.name+"."+a,n=n.parentNode;return eu(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),Mf({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new Ii,this._controller=new Ly(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},render:function(n,t,i,e){var o=n.getData(),a=n.layoutInfo,r=this._mainGroup,s=n.get("layout");"radial"===s?r.attr("position",[a.x+a.width/2,a.y+a.height/2]):r.attr("position",[a.x,a.y]),this._updateViewCoordSys(n,a,s),this._updateController(n,t,i);var l=this._data,u={expandAndCollapse:n.get("expandAndCollapse"),layout:s,orient:n.getOrient(),curvature:n.get("lineStyle.curveness"),symbolRotate:n.get("symbolRotate"),symbolOffset:n.get("symbolOffset"),hoverAnimation:n.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};o.diff(l).add(function(t){Dx(o,t)&&Lx(o,t,null,r,n,u)}).update(function(t,e){var i=l.getItemGraphicEl(e);Dx(o,t)?Lx(o,t,i,r,n,u):i&&kx(l,e,i,r,n,u)}).remove(function(t){var e=l.getItemGraphicEl(t);e&&kx(l,t,e,r,n,u)}).execute(),this._nodeScaleRatio=n.get("nodeScaleRatio"),this._updateNodeAndLinkScale(n),!0===u.expandAndCollapse&&o.eachItemGraphicEl(function(t,e){t.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:n.id,dataIndex:e})})}),this._data=o},_updateViewCoordSys:function(t){var i=t.getData(),n=[];i.each(function(t){var e=i.getItemLayout(t);!e||isNaN(e.x)||isNaN(e.y)||n.push([+e.x,+e.y])});var e=[],o=[];Ba(n,e,o);var a=this._min,r=this._max;o[0]-e[0]==0&&(e[0]=a?a[0]:e[0]-1,o[0]=r?r[0]:o[0]+1),o[1]-e[1]==0&&(e[1]=a?a[1]:e[1]-1,o[1]=r?r[1]:o[1]+1);var s=t.coordinateSystem=new Qy;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(e[0],e[1],o[0]-e[0],o[1]-e[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({position:s.position,scale:s.scale}),this._viewCoordSys=s,this._min=e,this._max=o},_updateController:function(o,t,a){var e=this._controller,i=this._controllerHost,r=this.group;e.setPointerChecker(function(t,e,i){var n=r.getBoundingRect();return n.applyTransform(r.transform),n.contain(e,i)&&!Wy(t,a,o)}),e.enable(o.get("roam")),i.zoomLimit=o.get("scaleLimit"),i.zoom=o.coordinateSystem.getZoom(),e.off("pan").off("zoom").on("pan",function(t){Vy(i,t.dx,t.dy),a.dispatchAction({seriesId:o.id,type:"treeRoam",dx:t.dx,dy:t.dy})},this).on("zoom",function(t){Gy(i,t.scale,t.originX,t.originY),a.dispatchAction({seriesId:o.id,type:"treeRoam",zoom:t.scale,originX:t.originX,originY:t.originY}),this._updateNodeAndLinkScale(o)},this)},_updateNodeAndLinkScale:function(t){var e=t.getData(),i=this._getNodeGlobalScale(t),n=[i,i];e.eachItemGraphicEl(function(t,e){t.attr("scale",n)})},_getNodeGlobalScale:function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var i=this._nodeScaleRatio,n=e.scale,o=n&&n[0]||1;return((e.getZoom()-1)*i+1)/o},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},remove:function(){this._mainGroup.removeAll(),this._data=null}}),gf({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(n,t){t.eachComponent({mainType:"series",subType:"tree",query:n},function(t){var e=n.dataIndex,i=t.getData().tree.getNodeByDataIndex(e);i.isExpand=!i.isExpand})}),gf({type:"treeRoam",event:"treeRoam",update:"none"},function(i,t){t.eachComponent({mainType:"series",subType:"tree",query:i},function(t){var e=Ky(t.coordinateSystem,i);t.setCenter&&t.setCenter(e.center),t.setZoom&&t.setZoom(e.zoom)})});function Ox(t,e,i){if(t&&0<=_(e,t.type)){var n=i.getData().tree.root,o=t.targetNode;if("string"==typeof o&&(o=n.getNodeById(o)),o&&n.contains(o))return{node:o};var a=t.targetNodeId;if(null!=a&&(o=n.getNodeById(a)))return{node:o}}}function Ex(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function zx(t,e){return 0<=_(Ex(t),e)}function Rx(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}yf(Mm("tree","circle")),vf(function(t,e){t.eachSeriesByType("tree",function(t){!function(t,e){var i=function(t,e){return vu(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=i;var n=t.get("layout"),o=0,a=0,r=null;r="radial"===n?(o=2*Math.PI,a=Math.min(i.height,i.width)/2,bx(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,bx());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){t.hierNode={defaultAncestor:null,ancestor:t,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var e,i,n=[t];e=n.pop();)if(i=e.children,e.isExpand&&i.length)for(var o=i.length-1;0<=o;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},n.push(a)}}(s),function(t,e,i){for(var n,o=[t],a=[];n=o.pop();)if(a.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===n)p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Nx(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Sx(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)});else{var y=t.getOrient();"RL"===y||"LR"===y?(g=a/(h.getLayout().x+d+f),p=o/(c.depth-1||1),Nx(l,function(t){v=(t.getLayout().x+f)*g,m="LR"===y?(t.depth-1)*p:o-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):"TB"!==y&&"BT"!==y||(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Nx(l,function(t){m=(t.getLayout().x+f)*p,v="TB"===y?(t.depth-1)*g:a-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))}}}(t,e)})}),ic.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],preventUsingHoverLayer:!0,_viewRoot:null,defaultOption:{progressive:0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};!function i(t){var n=0;E(t.children,function(t){i(t);var e=t.value;k(e)&&(e=e[0]),n+=e});var e=t.value;k(e)&&(e=e[0]);null!=e&&!isNaN(e)||(e=n);e<0&&(e=0);k(t.value)?t.value[0]=e:t.value=e}(i);var n=t.levels||[];n=t.levels=function(t,e){var n,i=e.get("color");if(!i)return;if(E(t=t||[],function(t){var e=new Il(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),!n){(t[0]||(t[0]={})).color=i.slice()}return t}(n,e);var o={};return o.levels=n,vx.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=k(i)?Kl(i[0]):Kl(i);return eu(e.getName(t)+": "+n)},getDataParams:function(t){var e=ic.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=Rx(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},L(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=Q(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var Bx=5;function Vx(t){this.group=new Ii,t.add(this.group)}function Gx(t,e,i,n,o,a){var r=[[o?t:t-Bx,e],[t+i,e],[t+i,e+n],[o?t:t-Bx,e+n]];return a||r.splice(2,0,[t+i+Bx,e+n/2]),o||r.push([t,e+n/2]),r}Vx.prototype={constructor:Vx,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),yu(a,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a,r,s=0,l=e.emptyItemWidth,u=t.get("breadcrumb.height"),h=function(t,e,i){var n=e.width,o=e.height,a=Pl(t.x,n),r=Pl(t.y,o),s=Pl(t.x2,n),l=Pl(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=o),i=Jl(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}(e.pos,e.box),c=e.totalWidth,d=e.renderList,f=d.length-1;0<=f;f--){var p=d[f],g=p.node,m=p.width,v=p.text;c>h.width&&(c-=m-l,m=l,v=null);var y=new qr({shape:{points:Gx(s,0,m,u,f===d.length-1,0===f)},style:C(i.getItemStyle(),{lineJoin:"bevel",text:v,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:T(o,g)});this.group.add(y),a=t,r=g,y.eventData={componentType:"series",componentSubType:"treemap",componentIndex:a.componentIndex,seriesIndex:a.componentIndex,seriesName:a.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:r&&r.dataIndex,name:r&&r.name},treePathInfo:r&&Rx(r,a)},s+=m+8}},remove:function(){this.group.removeAll()}};function Fx(t){var e=$x(t);return e.stroke=e.fill=e.lineWidth=null,e}var Wx=A,Hx=Ii,Zx=is,Ux=E,Xx=["label"],Yx=["emphasis","label"],jx=["upperLabel"],qx=["emphasis","upperLabel"],Kx=10,$x=ra([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);function Jx(d,r,s,l,u,i,f,t,e,n){if(f){var p=f.getLayout();if(p&&p.isInView){var h=p.width,c=p.height,g=p.borderWidth,m=p.invisible,v=f.getRawIndex(),y=t&&t.getRawIndex(),o=f.viewChildren,x=p.upperHeight,a=o&&o.length,_=f.getModel("itemStyle"),w=f.getModel("emphasis.itemStyle"),b=A("nodeGroup",Hx);if(b){if(e.add(b),b.attr("position",[p.x||0,p.y||0]),b.__tmNodeWidth=h,b.__tmNodeHeight=c,p.isAboveViewRoot)return b;var S=A("background",Zx,n,1);if(S&&function(t,n,o){n.dataIndex=f.dataIndex,n.seriesIndex=d.seriesIndex,n.setShape({x:0,y:0,width:h,height:c});var a=f.getVisual("borderColor",!0),r=w.get("borderColor");I(n,function(){var t=Fx(_);t.fill=a;var e=$x(w);if(e.fill=r,o){var i=h-2*g;T(t,e,a,i,x,{x:g,y:0,width:i,height:x})}else t.text=e.text=null;n.setStyle(t),Ys(n,e)}),t.add(n)}(b,S,a&&p.upperHeight),!a){var M=A("content",Zx,n,2);M&&function(t,i){i.dataIndex=f.dataIndex,i.seriesIndex=d.seriesIndex;var n=Math.max(h-2*g,0),o=Math.max(c-2*g,0);i.culling=!0,i.setShape({x:g,y:g,width:n,height:o});var a=f.getVisual("color",!0);I(i,function(){var t=Fx(_);t.fill=a;var e=$x(w);T(t,e,a,n,o),i.setStyle(t),Ys(i,e)}),t.add(i)}(b,M)}return b}}}function I(t,e){m?t.invisible||i.push(t):(e(),t.__tmWillVisible||(t.invisible=!1))}function T(t,e,i,n,o,a){var r=f.getModel(),s=W(d.getFormattedLabel(f.dataIndex,"normal",null,null,a?"upperLabel":"label"),r.get("name"));if(!a&&p.isLeafRoot){var l=d.get("drillDownIcon",!0);s=l?l+" "+s:s}var u=r.getModel(a?jx:Xx),h=r.getModel(a?qx:Yx),c=u.getShallow("show");$s(t,e,u,h,{defaultText:c?s:null,autoColor:i,isRectText:!0}),a&&(t.textRect=D(a)),t.truncate=c&&u.get("ellipsis")?{outerWidth:n,outerHeight:o,minChar:2}:null}function A(t,e,i,n){var o=null!=y&&s[t][y],a=u[t];return o?(s[t][y]=null,function(t,e,i){(t[v]={}).old="nodeGroup"===i?e.position.slice():L({},e.shape)}(a,o,t)):m||((o=new e({z:function(t,e){var i=t*Kx+e;return(i-1)/i}(i,n)})).__tmDepth=i,function(t,e,i){var n=t[v]={},o=f.parentNode;if(o&&(!l||"drillDown"===l.direction)){var a=0,r=0,s=u.background[o.getRawIndex()];!l&&s&&s.old&&(a=s.old.width,r=s.old.height),n.old="nodeGroup"===i?[0,r]:{x:a,y:r,width:0,height:0}}n.fadein="nodeGroup"!==i}(a,0,o.__tmStorageName=t)),r[t][v]=o}}Mf({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(_(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var o=Ox(n,["treemapZoomToNode","treemapRootToNode"],t),a=n&&n.type,r=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===a&&o&&l?{rootNodeGroup:l.nodeGroup[o.node.getRawIndex()],direction:n.direction}:null,h=this._giveContainerGroup(r),c=this._doRender(h,t,u);s||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(i),this._renderBreadcrumb(t,i,o)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new Hx,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){var n=e.getData().tree,o=this._oldTree,a={nodeGroup:[],background:[],content:[]},r={nodeGroup:[],background:[],content:[]},s=this._storage,l=[],c=T(Jx,e,r,s,i,a,l);!function a(r,s,l,u,h){u?Ux(s=r,function(t,e){t.isRemoved()||i(e,e)}):new Tf(s,r,t,t).add(i).update(i).remove(T(i,null)).execute();function t(t){return t.getId()}function i(t,e){var i=null!=t?r[t]:null,n=null!=e?s[e]:null,o=c(i,n,l,h);o&&a(i&&i.viewChildren||[],n&&n.viewChildren||[],o,u,h+1)}}(n.root?[n.root]:[],o&&o.root?[o.root]:[],t,n===o||!o,0);var u,h,d=(h={nodeGroup:[],background:[],content:[]},(u=s)&&Ux(u,function(t,e){var i=h[e];Ux(t,function(t){t&&(i.push(t),t.__tmWillDelete=1)})}),h);return this._oldTree=n,this._storage=r,{lastsForAnimation:a,willDeleteEls:d,renderFinally:function(){Ux(d,function(t){Ux(t,function(t){t.parent&&t.parent.remove(t)})}),Ux(l,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,a,e,s){if(e.get("animation")){var l=e.get("animationDurationUpdate"),u=e.get("animationEasing"),h=function(){var a,r=[],s={};return{add:function(t,e,i,n,o){return z(n)&&(o=n,n=0),!s[t.id]&&(s[t.id]=1,r.push({el:t,target:e,time:i,delay:n,easing:o}),!0)},done:function(t){return a=t,this},start:function(){for(var t=r.length,e=0,i=r.length;e=r.length||t===r[t.depth]){var i=T_(l,c,t,e,y,s);n(t,i,o,a,r,s)}})}else p=b_(c),t.setVisual("color",p)}(a,{},N(o.levelModels,function(t){return t?t.get(x_):null}),r,t.getViewRoot().getAncestors(),t)}};function w_(i,n,o,a){var r=L({},n);return E(["color","colorAlpha","colorSaturation"],function(t){var e=i.get(t,!0);null==e&&o&&(e=o[t]),null==e&&(e=n[t]),null==e&&(e=a.get(t)),null!=e&&(r[t]=e)}),r}function b_(t){var e=S_(t,"color");if(e){var i=S_(t,"colorAlpha"),n=S_(t,"colorSaturation");return n&&(e=Ue(e,null,null,n)),i&&(e=Xe(e,i)),e}}function S_(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function M_(t,e,i,n,o,a){if(a&&a.length){var r=I_(e,"color")||null!=o.color&&"none"!==o.color&&(I_(e,"colorAlpha")||I_(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new a_(c);return d.__drColorMappingBy=h,d}}}function I_(t,e){var i=t.get(e);return y_(i)&&i.length?{name:e,range:i}:null}function T_(t,e,i,n,o,a){var r=L({},e);if(o){var s=o.type,l="color"===s&&o.__drColorMappingBy,u="index"===l?n:"id"===l?a.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));r[s]=o.mapValueToVisual(u)}return r}var A_=Math.max,D_=Math.min,C_=W,L_=E,k_=["itemStyle","borderWidth"],P_=["itemStyle","gapWidth"],N_=["upperLabel","show"],O_=["upperLabel","height"],E_={seriesType:"treemap",reset:function(t,e,i,n){var o=i.getWidth(),a=i.getHeight(),r=t.option,s=vu(t.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()}),l=r.size||[],u=Pl(C_(s.width,l[0]),o),h=Pl(C_(s.height,l[1]),a),c=n&&n.type,d=Ox(n,["treemapZoomToNode","treemapRootToNode"],t),f="treemapRender"===c||"treemapMove"===c?n.rootRect:null,p=t.getViewRoot(),g=Ex(p);if("treemapMove"!==c){var m="treemapZoomToNode"===c?function(t,e,i,n,o){var a,r=(e||{}).node,s=[n,o];if(!r||r===i)return s;var l=n*o,u=l*t.option.zoomToNodeRatio;for(;a=r.parentNode;){for(var h=0,c=a.children,d=0,f=c.length;ds[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}(e,r,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,i,n,o){if(!n)return i;for(var a=t.get("visibleMin"),r=o.length,s=r,l=r-1;0<=l;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*ei[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;c "+d)),u++)}var f,p=i.get("coordinateSystem");if("cartesian2d"===p||"polar"===p)f=hp(t,i);else{var g=nh.get(p),m=g&&"view"!==g.type&&g.dimensions||[];_(m,"value")<0&&m.concat(["value"]);var v=np(t,{coordDimensions:m});(f=new Wf(v,i)).initData(t)}var y=new Wf(["value"],i);return y.initData(l,s),o&&o(f,y),ux({mainData:f,struct:a,structAttr:"graph",datas:{node:f,edge:y},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a}var Y_=Sf({type:"series.graph",init:function(t){Y_.superApply(this,"init",arguments);var e=this;function i(){return e._categoriesData}this.legendVisualProvider=new Gv(i,i),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){Y_.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){Y_.superApply(this,"mergeDefaultAndTheme",arguments),zo(t,["edgeLabel"],["show"])},getInitialData:function(t,s){var e=t.edges||t.links||[],i=t.data||t.nodes||[],l=this;if(i&&e)return X_(i,e,this,!0,function(t,e){t.wrapMethod("getItemModel",function(t){var e=l._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var i=l.getModel("edgeLabel"),n=new Il({label:i.option},i.parentModel,s),o=l.getModel("emphasis.edgeLabel"),a=new Il({emphasis:{label:o.option}},o.parentModel,s);function r(t){return(t=this.parsePath(t))&&"label"===t[0]?n:t&&"emphasis"===t[0]&&"label"===t[1]?a:this.parentModel}e.wrapMethod("getItemModel",function(t){return t.customizeGetParent(r),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"!==i)return Y_.superApply(this,"formatTooltip",arguments);var n=this.getData(),o=this.getDataParams(t,i),a=n.graph.getEdgeByIndex(t),r=n.getName(a.node1.dataIndex),s=n.getName(a.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=eu(l.join(" > ")),o.value&&(l+=" : "+eu(o.value)),l},_updateCategoriesData:function(){var t=N(this.option.categories||[],function(t){return null!=t.value?t:L({value:0},t)}),e=new Wf(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return Y_.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),j_=os.prototype,q_=ls.prototype;function K_(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var $_=Is({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){this[K_(e)?"_buildPathLine":"_buildPathCurve"](t,e)},_buildPathLine:j_.buildPath,_buildPathCurve:q_.buildPath,pointAt:function(t){return this[K_(this.shape)?"_pointAtLine":"_pointAtCurve"](t)},_pointAtLine:j_.pointAt,_pointAtCurve:q_.pointAt,tangentAt:function(t){var e=this.shape,i=K_(e)?[e.x2-e.x1,e.y2-e.y1]:this._tangentAtCurve(t);return mt(i,i)},_tangentAtCurve:q_.tangentAt}),J_=["fromSymbol","toSymbol"];function Q_(t){return"_"+t+"Type"}function tw(t,e,i){var n=e.getItemVisual(i,"color"),o=e.getItemVisual(i,t),a=e.getItemVisual(i,t+"Size");if(o&&"none"!==o){k(a)||(a=[a,a]);var r=mg(o,-a[0]/2,-a[1]/2,a[0],a[1],n);return r.name=t,r}}function ew(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var i=e[2];i?(t.cpx1=i[0],t.cpy1=i[1]):(t.cpx1=NaN,t.cpy1=NaN)}function iw(t,e,i){Ii.call(this),this._createLine(t,e,i)}var nw=iw.prototype;function ow(t){this._ctor=t||iw,this.group=new Ii}nw.beforeUpdate=function(){var t=this.childOfName("fromSymbol"),e=this.childOfName("toSymbol"),i=this.childOfName("label");if(t||e||!i.ignore){for(var n=1,o=this.parent;o;)o.scale&&(n/=o.scale[0]),o=o.parent;var a=this.childOfName("line");if(this.__dirty||a.__dirty){var r=a.shape.percent,s=a.pointAt(0),l=a.pointAt(r),u=ht([],l,s);if(mt(u,u),t){t.attr("position",s);var h=a.tangentAt(0);t.attr("rotation",Math.PI/2-Math.atan2(h[1],h[0])),t.attr("scale",[n*r,n*r])}if(e){e.attr("position",l);h=a.tangentAt(1);e.attr("rotation",-Math.PI/2-Math.atan2(h[1],h[0])),e.attr("scale",[n*r,n*r])}if(!i.ignore){var c,d,f;i.attr("position",l);var p=5*n;if("end"===i.__position)c=[u[0]*p+l[0],u[1]*p+l[1]],d=.8=t&&(0===e?0:n[e-1][0])a&&(e[1-n]=e[n]+c.sign*a),e}function Hw(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:0o*(1-h[0])?(l="jump",r=s-o*(1-h[2])):0<=(r=s-o*h[1])&&(r=s-o*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?Ww(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[Yw(0,a[1]*s/o-o/2)])[1]=Xw(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},nh.register("parallel",{create:function(n,o){var a=[];return n.eachComponent("parallel",function(t,e){var i=new Jw(t,n,o);i.name="parallel_"+e,i.resize(t,o),(t.coordinateSystem=i).model=t,a.push(i)}),n.eachSeries(function(t){if("parallel"===t.get("coordinateSystem")){var e=n.queryComponents({mainType:"parallel",index:t.get("parallelIndex"),id:t.get("parallelId")})[0];t.coordinateSystem=e.coordinateSystem}}),a}});var tb=Tu.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return ra([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=D(t);if(e)for(var i=e.length-1;0<=i;i--)Ol(e[i])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(t))return"inactive";if(1===e.length){var i=e[0];if(i[0]<=t&&t<=i[1])return"active"}else for(var n=0,o=e.length;nn.getWidth()||i<0||i>n.getHeight()}(t,e)){var n=t._zr,o=t._covers,a=bb(t,e,i);if(!t._dragging)for(var r=0;rf&&(f=m.depth),g.setLayout({depth:v?m.depth:c},!0),"vertical"===a?g.setLayout({dy:i},!0):g.setLayout({dx:i},!0);for(var y=0;y "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}});function QS(t,e,i){Ii.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}var tM=QS.prototype;function eM(t,e,i){Ii.call(this),this._createPolyline(t,e,i)}tM.createLine=function(t,e,i){return new iw(t,e,i)},tM._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");k(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==o&&(this.remove(r),(r=mg(o,-.5,-.5,1,1,a)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",a),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(a),r.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},tM._updateEffectAnimation=function(e,t,i){var n=this.childAt(1);if(n){var o=this,a=e.getItemLayout(i),r=1e3*t.get("period"),s=t.get("loop"),l=t.get("constantSpeed"),u=W(t.get("delay"),function(t){return t/e.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,a),0e);r++);r=Math.min(r-1,o-2)}wt(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},w(nM,QS);var aM=Is({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(var o=0;o=e[0]&&t<=e[1]}}(y,e.option.range):function(e,n,o){var i=e[1]-e[0],a=(n=N(n,function(t){return{interval:[(t.interval[0]-e[0])/i,(t.interval[1]-e[0])/i]}})).length,r=0;return function(t){for(var e=r;e=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0==o?i.y+i.height/2:i.x+i.width/2,n}}).dimensions});var BM=["axisLine","axisTickLabel","axisName"],VM="splitLine",GM=hv.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=RM(t),r=new Ym(t,a);E(BM,r.add,r),o.add(r.getGroup()),t.get(VM+".show")&&this["_"+VM](t),GM.superCall(this,"render",t,e,i,n)},_splitLine:function(t){var e=t.axis;if(!e.scale.isBlank()){var i=t.getModel("splitLine"),n=i.getModel("lineStyle"),o=n.get("width"),a=n.get("color");a=a instanceof Array?a:[a];for(var r=t.coordinateSystem.getRect(),s=e.isHorizontal(),l=[],u=0,h=e.getTicksCoords({tickModel:i}),c=[],d=[],f=0;fr)return!0;if(a){var s=sv(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer;if(o){var a=oI(t).pointerEl=new yl[o.type](aI(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=oI(t).labelEl=new is(aI(e.label));t.add(o),uI(o,n)}},updatePointerEl:function(t,e,i){var n=oI(t).pointerEl;n&&e.pointer&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=oI(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),uI(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e,i=this._axisPointerModel,n=this._api.getZr(),o=this._handle,a=i.getModel("handle"),r=i.get("status");if(!a.get("show")||!r||"hide"===r)return o&&n.remove(o),void(this._handle=null);this._handle||(e=!0,o=this._handle=pl(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Wt(t.event)},onmousedown:rI(this._onHandleDragMove,this,0,0),drift:rI(this._onHandleDragMove,this),ondragend:rI(this._onHandleDragEnd,this)}),n.add(o)),cI(o,i,!1);o.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=a.get("size");k(s)||(s=[s,s]),o.attr("scale",[s[0]/2,s[1]/2]),Tc(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},_moveHandleToValue:function(t,e){lI(this._axisPointerModel,!e&&this._moveAnimation,this._handle,hI(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(hI(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(hI(n)),oI(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return{x:t[i=i||0],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=sI);var _I=sI.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=wI(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=dI(n),c=bI[s](a,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}mI(e,t,pv(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=pv(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:gI(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.grid,r=o.getGlobalExtent(!0),s=wI(a,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}}});function wI(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}var bI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:vI([e,i[0]],[e,i[1]],SI(t))}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),o=i[1]-i[0];return{type:"Rect",shape:yI([e-n/2,i[0]],[n,o],SI(t))}}};function SI(t){return"x"===t.dim?0:1}hv.registerAxisPointerClass("CartesianAxisPointer",_I),ff(function(t){if(t){t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={});var e=t.axisPointer.link;e&&!k(e)&&(t.axisPointer.link=[e])}}),pf(Id.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=av(t,e)}),gf({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||A(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){KM(r)&&(r=WM({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=KM(r),u=o.axesInfo,h=s.axesInfo,c="leave"===n||KM(r),d={},f={},p={list:[],map:{}},g={showPointer:ZM(YM,f),showTooltip:ZM(jM,p)};HM(s.coordSysMap,function(t,e){var a=l||t.containPoint(r);HM(s.coordSysAxesInfo[e],function(t,e){var i=t.axis,n=function(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}(u,t);if(!c&&a&&(!u||n)){var o=n&&n.value;null!=o||l||(o=i.pointToData(r)),null!=o&&XM(t,o,g,!1,d)}})});var m={};return HM(h,function(o,t){var a=o.linkGroup;a&&!f[t]&&HM(a.axesInfo,function(t,e){var i=f[e];if(t!==o&&i){var n=i.value;a.mapper&&(n=o.axis.scale.parse(a.mapper(n,qM(t),qM(o)))),m[o.key]=n}})}),HM(m,function(t,e){XM(h[e],t,g,!0,d)}),function(o,t,e){var a=e.axesInfo=[];HM(t,function(t,e){var i=t.axisPointerModel.option,n=o[e];n?(t.useHandle||(i.status="show"),i.value=n.value,i.seriesDataIndices=(n.payloadBatch||[]).slice()):t.useHandle||(i.status="hide"),"show"===i.status&&a.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}(f,h,d),function(t,e,i,n){if(KM(e)||!t.list.length)return n({type:"hideTip"});var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}(p,r,t,a),function(t,e,i){var n=i.getZr(),o="axisPointerLastHighlights",a=UM(n)[o]||{},r=UM(n)[o]={};HM(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&HM(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var s=[],l=[];E(a,function(t,e){r[e]||l.push(t)}),E(r,function(t,e){a[e]||s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}(h,0,i),d}});var MI=["x","y"],II=["width","height"],TI=sI.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=CI(r,1-DI(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=dI(n),c=AI[u](a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}mI(e,t,RM(i),i,n,o)},getHandleTransform:function(t,e,i){var n=RM(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:gI(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.coordinateSystem,r=DI(o),s=CI(a,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=CI(a,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),AI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:vI([e,i[0]],[e,i[1]],DI(t))}},shadow:function(t,e,i){var n=t.getBandWidth(),o=i[1]-i[0];return{type:"Rect",shape:yI([e-n/2,i[0]],[n,o],DI(t))}}};function DI(t){return t.isHorizontal()?0:1}function CI(t,e){var i=t.getRect();return[i[MI[e]],i[MI[e]]+i[II[e]]]}hv.registerAxisPointerClass("SingleAxisPointer",TI),bf({type:"single"});var LI=ic.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){LI.superApply(this,"init",arguments),this.legendVisualProvider=new Gv(A(this.getData,this),A(this.getRawData,this))},fixData:function(t){var e=t.length,i=Ko(t,function(t){return t[2]}),n=[];i.buckets.each(function(t,e){n.push({name:e,dataList:t})});for(var o=n.length,a=-1,r=-1,s=0;sMath.PI/2?"right":"left"):y&&"center"!==y?"left"===y?(d=l.r0+v,f>Math.PI/2&&(y="right")):"right"===y&&(d=l.r-v,f>Math.PI/2&&(y="left")):(d=(l.r+l.r0)/2,y="center"),c.attr("style",{text:s,textAlign:y,textVerticalAlign:S("verticalAlign")||"middle",opacity:S("opacity")});var x=d*p+l.cx,_=d*g+l.cy;c.attr("position",[x,_]);var w=S("rotate"),b=0;function S(t){var e=a.get(t);return null==e?o.get(t):e}"radial"===w?(b=-f)<-Math.PI/2&&(b+=Math.PI):"tangential"===w?(b=Math.PI/2-f)>Math.PI/2?b-=Math.PI:b<-Math.PI/2&&(b+=Math.PI):"number"==typeof w&&(b=w*Math.PI/180),c.attr("rotation",b)},BI._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");function o(){r.onEmphasis(n)}function a(){r.onNormal()}var r=this;i.isAnimationEnabled()&&t.on("mouseover",o).on("mouseout",a).on("emphasis",o).on("normal",a).on("downplay",function(){r.onDownplay()}).on("highlight",function(){r.onHighlight()})},w(RI,Ii);gc.extend({type:"sunburst",init:function(){},render:function(o,a,t,e){var n=this;this.seriesModel=o,this.api=t,this.ecModel=a;var r=o.getData(),s=r.tree.root,i=o.getViewRoot(),l=this.group,u=o.get("renderLabelForZeroData"),h=[];i.eachNode(function(t){h.push(t)});var c=this._oldChildren||[];if(function(i,n){if(0===i.length&&0===n.length)return;function t(t){return t.getId()}function e(t,e){!function(t,e){u||!t||t.getValue()||(t=null);if(t!==s&&e!==s)if(e&&e.piece)t?(e.piece.updateData(!1,t,"normal",o,a),r.setItemGraphicEl(t.dataIndex,e.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(e);else if(t){var i=new RI(t,o,a);l.add(i),r.setItemGraphicEl(t.dataIndex,i)}}(null==t?null:i[t],null==e?null:n[e])}new Tf(n,i,t,t).add(e).update(e).remove(T(e,null)).execute()}(h,c),function(t,e){if(0=i.r0}}});var VI="sunburstRootToNode";gf({type:VI,update:"updateView"},function(o,t){t.eachComponent({mainType:"series",subType:"sunburst",query:o},function(t,e){var i=Ox(o,[VI],t);if(i){var n=t.getViewRoot();n&&(o.direction=zx(n,i.node)?"rollUp":"drillDown"),t.resetViewRoot(i.node)}})});var GI="sunburstHighlight";gf({type:GI,update:"updateView"},function(n,t){t.eachComponent({mainType:"series",subType:"sunburst",query:n},function(t,e){var i=Ox(n,[GI],t);i&&(n.highlight=i.node)})});gf({type:"sunburstUnhighlight",update:"updateView"},function(i,t){t.eachComponent({mainType:"series",subType:"sunburst",query:i},function(t,e){i.unhighlight=!0})});var FI=Math.PI/180;function WI(t,e){if("function"==typeof e)return t.sort(e);var n="asc"===e;return t.sort(function(t,e){var i=(t.getValue()-e.getValue())*(n?1:-1);return 0==i?(t.dataIndex-e.dataIndex)*(n?-1:1):i})}function HI(a,r){return r=r||[0,0],N(["x","y"],function(t,e){var i=this.getAxis(t),n=r[e],o=a[e]/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))},this)}yf(T(Yv,"sunburst")),vf(T(function(t,e,C,i){e.eachSeriesByType(t,function(t){var e=t.get("center"),i=t.get("radius");k(i)||(i=[0,i]),k(e)||(e=[e,e]);var n=C.getWidth(),o=C.getHeight(),h=Math.min(n,o),c=Pl(e[0],n),d=Pl(e[1],o),f=Pl(i[0],h/2),a=Pl(i[1],h/2),r=-t.get("startAngle")*FI,p=t.get("minAngle")*FI,g=t.getData().tree.root,s=t.getViewRoot(),m=s.depth,l=t.get("sort");null!=l&&!function e(t,i){var n=t.children||[];t.children=WI(n,i);n.length&&E(t.children,function(t){e(t,i)})}(s,l);var u=0;E(s.children,function(t){isNaN(t.getValue())||u++});var v=s.getValue(),y=Math.PI/(v||u)*2,x=0t[1]&&t.reverse(),{coordSys:{type:"polar",cx:o.cx,cy:o.cy,r:t[1],r0:t[0]},api:{coord:A(function(t){var e=a.dataToRadius(t[0]),i=r.dataToAngle(t[1]),n=o.coordToPoint([e,i]);return n.push(e,i*Math.PI/180),n}),size:A(XI,o)}}},calendar:function(i){var t=i.getRect(),e=i.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:i.getCellWidth(),cellHeight:i.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(t,e){return i.dataToPoint(t,e)}}}}};function tT(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function eT(a,r,e,t){var i=a.get("renderItem"),n=a.coordinateSystem,o={};n&&(o=n.prepareCustoms?n.prepareCustoms():QI[n.type](n));var s,l,u,h,c,d=C({getWidth:t.getWidth,getHeight:t.getHeight,getZr:t.getZr,getDevicePixelRatio:t.getDevicePixelRatio,value:function(t,e){return null==e&&(e=s),r.get(r.getDimension(t||0),e)},style:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(jI).getItemStyle();null!=c&&(i.fill=c);var n=r.getItemVisual(e,"opacity");null!=n&&(i.opacity=n);var o=t?rT(t,u):u;return Qs(i,o,null,{autoColor:c,isRectText:!0}),i.text=o.getShallow("show")?H(a.getFormattedLabel(e,"normal"),Gg(r,e)):null,t&&sT(i,t),i},styleEmphasis:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(qI).getItemStyle(),n=t?rT(t,h):h;return Qs(i,n,null,{isRectText:!0},!0),i.text=n.getShallow("show")?Z(a.getFormattedLabel(e,"emphasis"),a.getFormattedLabel(e,"normal"),Gg(r,e)):null,t&&sT(i,t),i},visual:function(t,e){return null==e&&(e=s),r.getItemVisual(e,t)},barLayout:function(t){if(n.getBaseAxis){return function(t){var e=[],i=t.axis;if("category"===i.type){for(var n=i.getBandWidth(),o=0;oe[1]&&e.reverse();var i=t.getExtent(),n=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-i[0]*n,endAngle:-i[1]*n,clockwise:t.inverse,contain:function(t,e){var i=t-this.cx,n=e-this.cy,o=i*i+n*n,a=this.r,r=this.r0;return o<=a*a&&r*r<=o}}}};var vT=Tu.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});m(vT.prototype,sg);var yT={splitNumber:5};function xT(t,e){return e.type||(e.data?"category":"value")}function _T(t,e){var i=this,n=i.getAngleAxis(),o=i.getRadiusAxis();if(n.scale.setExtent(1/0,-1/0),o.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){if(t.coordinateSystem===i){var e=t.getData();E(e.mapDimension("radius",!0),function(t){o.scale.unionExtentFromData(e,up(e,t))}),E(e.mapDimension("angle",!0),function(t){n.scale.unionExtentFromData(e,up(e,t))})}}),eg(n.scale,n.model),eg(o.scale,o.model),"category"===n.type&&!n.onBand){var a=n.getExtent(),r=360/n.scale.count();n.inverse?a[1]+=r:a[1]-=r,n.setExtent(a[0],a[1])}}function wT(t,e){if(t.type=e.get("type"),t.scale=ig(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType){t.inverse^=e.get("clockwise");var i=e.get("startAngle");t.setExtent(i,i+(t.inverse?-360:360))}(e.axis=t).model=e}Om("angle",vT,xT,{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}}),Om("radius",vT,xT,yT),wf({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}}),nh.register("polar",{dimensions:mT.prototype.dimensions,create:function(i,s){var l=[];return i.eachComponent("polar",function(t,e){var i=new mT(e);i.update=_T;var n=i.getRadiusAxis(),o=i.getAngleAxis(),a=t.findAxisModel("radiusAxis"),r=t.findAxisModel("angleAxis");wT(n,a),wT(o,r),function(t,e,i){var n=e.get("center"),o=i.getWidth(),a=i.getHeight();t.cx=Pl(n[0],o),t.cy=Pl(n[1],a);var r=t.getRadiusAxis(),s=Math.min(o,a)/2,l=e.get("radius");null==l?l=[0,"100%"]:k(l)||(l=[0,l]),l=[Pl(l[0],s),Pl(l[1],s)],r.inverse?r.setExtent(l[1],l[0]):r.setExtent(l[0],l[1])}(i,t,s),l.push(i),(t.coordinateSystem=i).model=t}),i.eachSeries(function(t){if("polar"===t.get("coordinateSystem")){var e=i.queryComponents({mainType:"polar",index:t.get("polarIndex"),id:t.get("polarId")})[0];t.coordinateSystem=e.coordinateSystem}}),l}});var bT=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function ST(t,e,i){e[1]>e[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),o=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:o[0],y2:o[1]}}function MT(t){return t.getRadiusAxis().inverse?0:1}function IT(t){var e=t[0],i=t[t.length-1];e&&i&&Math.abs(Math.abs(e.coord-i.coord)-360)<1e-4&&t.pop()}hv.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var i=e.axis,n=i.polar,o=n.getRadiusAxis().getExtent(),a=i.getTicksCoords(),r=i.getMinorTicksCoords(),s=N(i.getViewLabels(),function(t){return(t=D(t)).coord=i.dataToCoord(t.tickValue),t});IT(s),IT(a),E(bT,function(t){!e.get(t+".show")||i.scale.isBlank()&&"axisLine"!==t||this["_"+t](e,n,a,r,o,s)},this)}},_axisLine:function(t,e,i,n,o){var a,r=t.getModel("axisLine.lineStyle"),s=MT(e),l=s?0:1;(a=0===o[l]?new Hr({shape:{cx:e.cx,cy:e.cy,r:o[s]},style:r.getLineStyle(),z2:1,silent:!0}):new Xr({shape:{cx:e.cx,cy:e.cy,r:o[s],r0:o[l]},style:r.getLineStyle(),z2:1,silent:!0})).style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n,o){var a=t.getModel("axisTick"),r=(a.get("inside")?-1:1)*a.get("length"),s=o[MT(e)],l=N(i,function(t){return new os({shape:ST(e,[s,s+r],t.coord)})});this.group.add(ks(l,{style:C(a.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_minorTick:function(t,e,i,n,o){if(n.length){for(var a=t.getModel("axisTick"),r=t.getModel("minorTick"),s=(a.get("inside")?-1:1)*r.get("length"),l=o[MT(e)],u=[],h=0;hr?"left":"right",u=Math.abs(a[1]-s)/o<.3?"middle":a[1]>s?"top":"bottom";p&&p[n]&&p[n].textStyle&&(i=new Il(p[n].textStyle,g,g.ecModel));var h=new Fr({silent:Ym.isLabelSilent(c)});this.group.add(h),Qs(h.style,i,{x:a[0],y:a[1],textFill:i.getTextColor()||c.get("axisLine.lineStyle.color"),text:t.formattedLabel,textAlign:l,textVerticalAlign:u}),v&&(h.eventData=Ym.makeAxisEventDataBase(c),h.eventData.targetType="axisLabel",h.eventData.value=t.rawLabel)},this)},_splitLine:function(t,e,i,n,o){var a=t.getModel("splitLine").getModel("lineStyle"),r=a.get("color"),s=0;r=r instanceof Array?r:[r];for(var l=[],u=0;um?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,i,0,s,d))}});var CT={line:function(t,e,i,n,o){return"angle"===t.dim?{type:"Line",shape:vI(e.coordToPoint([n[0],i]),e.coordToPoint([n[1],i]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:i}}},shadow:function(t,e,i,n,o){var a=Math.max(1,t.getBandWidth()),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:xI(e.cx,e.cy,n[0],n[1],(-i-a/2)*r,(a/2-i)*r)}:{type:"Sector",shape:xI(e.cx,e.cy,i-a/2,i+a/2,0,2*Math.PI)}}};function LT(n,t){t.update="updateView",gf(t,function(t,e){var i={};return e.eachComponent({mainType:"geo",query:t},function(e){e[n](t.name),E(e.coordinateSystem.regions,function(t){i[t.name]=e.isSelected(t.name)||!1})}),{selected:i,name:t.name}})}hv.registerAxisPointerClass("PolarAxisPointer",DT),vf(T(function(t,e,i){var N={},O=function(t){var g={};E(t,function(t,e){var i=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=dT(n,o),r=o.getExtent(),s="category"===o.type?o.getBandWidth():Math.abs(r[1]-r[0])/i.count(),l=g[a]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;g[a]=l;var h=cT(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=Pl(t.get("barWidth"),s),d=Pl(t.get("barMaxWidth"),s),f=t.get("barGap"),p=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),d&&(u[h].maxWidth=d),null!=f&&(l.gap=f),null!=p&&(l.categoryGap=p)});var d={};return E(g,function(t,i){d[i]={};var e=t.stacks,n=t.bandWidth,o=Pl(t.categoryGap,n),a=Pl(t.gap,1),r=t.remainedWidth,s=t.autoWidthCount,l=(r-o)/(s+(s-1)*a);l=Math.max(l,0),E(e,function(t,e){var i=t.maxWidth;i&&i=n.start.time&&i.timea.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();if(n.setDate(o+i-1),n.getDate()!==a)for(var r=0n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=new Date(n.start.time);return a.setDate(n.start.d+o),this.getDateInfo(a)}},kT.dimensions=kT.prototype.dimensions,kT.getDimensionsInfo=kT.prototype.getDimensionsInfo,kT.create=function(i,n){var o=[];return i.eachComponent("calendar",function(t){var e=new kT(t,i,n);o.push(e),t.coordinateSystem=e}),i.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=o[t.get("calendarIndex")||0])}),o},nh.register("calendar",kT);var NT=Tu.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var o=_u(t);NT.superApply(this,"init",arguments),OT(t,o)},mergeOption:function(t,e){NT.superApply(this,"mergeOption",arguments),OT(this.option,t)}});function OT(t,e){var i=t.cellSize;k(i)?1===i.length&&(i[1]=i[0]):i=t.cellSize=[i,i];var n=N([0,1],function(t){return function(t,e){return null!=t[pu[e][0]]||null!=t[pu[e][1]]&&null!=t[pu[e][2]]}(e,t)&&(i[t]="auto"),null!=i[t]&&"auto"!==i[t]});xu(t,e,{type:"box",ignoreSize:n})}var ET={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},zT={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};bf({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),a=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new is({shape:{x:l[0],y:l[1],width:a,height:r},cursor:"default",style:o});i.add(u)}},_renderLines:function(i,t,n,o){var a=this,r=i.coordinateSystem,s=i.getModel("splitLine.lineStyle").getLineStyle(),l=i.get("splitLine.show"),e=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,h=0;u.time<=t.end.time;h++){d(u.formatedDate),0===h&&(u=r.getDateInfo(t.start.y+"-"+t.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=r.getDateInfo(c)}function d(t){a._firstDayOfMonth.push(r.getDateInfo(t)),a._firstDayPoints.push(r.dataToRect([t],!1).tl);var e=a._getLinePointsOfOneWeek(i,t,n);a._tlpoints.push(e[0]),a._blpoints.push(e[e.length-1]),l&&a._drawSplitline(e,s,o)}d(r.getNextNDay(t.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,e,n),s,o),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,e,n),s,o)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new Kr({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!1);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?au(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,o){e=e.slice();var a=["center","bottom"];"bottom"===n?(e[1]+=o,a=["center","top"]):"left"===n?e[0]-=o:"right"===n?(e[0]+=o,a=["center","top"]):e[1]-=o;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(t,e,i,n){var o=t.getModel("yearLabel");if(o.get("show")){var a=o.get("margin"),r=o.get("position");r=r||("horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=o.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new Fr({z2:30});Qs(m.style,o,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,a)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var o=n.get("nameMap"),a=n.get("margin"),r=n.get("position"),s=n.get("align"),l=[this._tlpoints,this._blpoints];z(o)&&(o=ET[o.toUpperCase()]||[]);var u="start"===r?0:1,h="horizontal"===e?0:1;a="start"===r?-a:a;for(var c="center"===s,d=0;dd.getHeight()&&(i.textPosition="top",a=!0);var r=a?-5-n.height:p+8;o+n.width/2>d.getWidth()?(i.textPosition=["100%",r],i.textAlign="right"):o-n.width/2<0&&(i.textPosition=[0,r],i.textAlign="left")}})}function t(t,e){var i,n=m[t],o=m[e],a=u[n],r=new Il(a,h,h.ecModel);if(l&&null!=l.newTitle&&(a.title=l.newTitle),n&&!o){if(function(t){return 0===t.indexOf("my")}(n))i={model:r,onclick:r.option.onclick,featureName:n};else{var s=ZT(n);if(!s)return;i=new s(r,c,d)}g[n]=i}else{if(!(i=g[o]))return;i.model=r,i.ecModel=c,i.api=d}n||!o?r.get("show")&&!i.unusable?(function(o,a,t){var r=o.getModel("iconStyle"),s=o.getModel("emphasis.iconStyle"),e=a.getIcons?a.getIcons():o.get("icon"),l=o.get("title")||{};if("string"==typeof e){var i=e,n=l;l={},(e={})[t]=i,l[t]=n}var u=o.iconPaths={};E(e,function(t,e){var i=pl(t,{},{x:-p/2,y:-p/2,width:p,height:p});i.setStyle(r.getItemStyle()),i.hoverStyle=s.getItemStyle(),i.setStyle({text:l[e],textAlign:s.get("textAlign"),textBorderRadius:s.get("textBorderRadius"),textPadding:s.get("textPadding"),textFill:null});var n=h.getModel("tooltip");n&&n.get("show")&&i.attr("tooltip",L({content:l[e],formatter:n.get("formatter",!0)||function(){return l[e]},formatterParams:{componentType:"toolbox",name:e,title:l[e],$vars:["name","title"]},position:n.get("position",!0)||"bottom"},n.option)),Ys(i),h.get("showTitle")&&(i.__title=l[e],i.on("mouseover",function(){var t=s.getItemStyle(),e="vertical"===h.get("orient")?null==h.get("right")?"right":"left":null==h.get("bottom")?"bottom":"top";i.setStyle({textFill:s.get("textFill")||t.fill||t.stroke||"#000",textBackgroundColor:s.get("textBackgroundColor"),textPosition:s.get("textPosition")||e})}).on("mouseout",function(){i.setStyle({textFill:null,textBackgroundColor:null})})),i.trigger(o.get("iconStatus."+e)||"normal"),f.add(i),i.on("click",A(a.onclick,a,c,d,e)),u[e]=i})}(r,i,n),r.setIconStatus=function(t,e){var i=this.option,n=this.iconPaths;i.iconStatus=i.iconStatus||{},i.iconStatus[t]=e,n[t]&&n[t].trigger(e)},i.render&&i.render(r,c,d,l)):i.remove&&i.remove(c,d):i.dispose&&i.dispose(c,d)}},updateView:function(t,e,i,n){E(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(e,i){E(this._features,function(t){t.remove&&t.remove(e,i)}),this.group.removeAll()},dispose:function(e,i){E(this._features,function(t){t.dispose&&t.dispose(e,i)})}});var YT=Cc.toolbox.saveAsImage;function jT(t){this.model=t}jT.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:YT.title,type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:YT.lang.slice()},jT.prototype.unusable=!v.canvasSupported,jT.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=i.get("type",!0)||"png",a=e.getConnectedDataURL({type:o,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:i.get("connectedBackgroundColor"),excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if("function"!=typeof MouseEvent||v.browser.ie||v.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var r=atob(a.split(",")[1]),s=r.length,l=new Uint8Array(s);s--;)l[s]=r.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,n+"."+o)}else{var h=i.get("lang"),c='';window.open().document.write(c)}else{var d=document.createElement("a");d.download=n+"."+o,d.target="_blank",d.href=a;var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});d.dispatchEvent(f)}},HT("saveAsImage",jT);var qT=Cc.toolbox.magicType,KT="__ec_magicType_stack__";function $T(t){this.model=t}$T.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:D(qT.title),option:{},seriesIndex:{}};var JT=$T.prototype;JT.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return E(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var QT={line:function(t,e,i,n){if("bar"===t)return m({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0)},bar:function(t,e,i,n){if("line"===t)return m({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0)},stack:function(t,e,i,n){var o=i.get("stack")===KT;if("line"===t||"bar"===t)return n.setIconStatus("stack",o?"normal":"emphasis"),m({id:e,stack:o?"":KT},n.get("option.stack")||{},!0)}},tA=[["line","bar"],["stack"]];JT.onclick=function(u,t,h){var c=this.model,e=c.get("seriesIndex."+h);if(QT[h]){var i,d={series:[]};if(E(tA,function(t){0<=_(t,h)&&E(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(h,"emphasis"),u.eachComponent({mainType:"series",query:null==e?null:{seriesIndex:e}},function(t){var e=t.subType,i=t.id,n=QT[h](e,i,t,c);n&&(C(n,t.option),d.series.push(n));var o=t.coordinateSystem;if(o&&"cartesian2d"===o.type&&("line"===h||"bar"===h)){var a=o.getAxesByScale("ordinal")[0];if(a){var r=a.dim+"Axis",s=u.queryComponents({mainType:r,index:t.get(name+"Index"),id:t.get(name+"Id")})[0].componentIndex;d[r]=d[r]||[];for(var l=0;l<=s;l++)d[r][s]=d[r][s]||{};d[r][s].boundaryGap="bar"===h}}}),"stack"===h)i=d.series&&d.series[0]&&d.series[0].stack===KT?m({stack:qT.title.tiled},qT.title):D(qT.title);t.dispatchAction({type:"changeMagicType",currentType:h,newOption:d,newTitle:i})}},gf({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),HT("magicType",$T);var eA=Cc.toolbox.dataView,iA=new Array(60).join("-"),nA="\t";function oA(t){var e=function(t){var o={},a=[],r=[];return t.eachRawSeries(function(t){var e=t.coordinateSystem;if(!e||"cartesian2d"!==e.type&&"polar"!==e.type)a.push(t);else{var i=e.getBaseAxis();if("category"===i.type){var n=i.dim+"_"+i.index;o[n]||(o[n]={categoryAxis:i,valueAxis:e.getOtherAxis(i),series:[]},r.push({axisDim:i.dim,axisIndex:i.index})),o[n].series.push(t)}else a.push(t)}}),{seriesGroupByCategoryAxis:o,other:a,meta:r}}(t);return{value:M([function(t){var h=[];return E(t,function(t,e){var i=t.categoryAxis,n=t.valueAxis.dim,o=[" "].concat(N(t.series,function(t){return t.name})),a=[i.model.getCategories()];E(t.series,function(t){a.push(t.getRawData().mapArray(n,function(t){return t}))});for(var r=[o.join(nA)],s=0;st[1]&&t.reverse(),t}function vA(t,e){return Xo(t,e,{includeMainTypes:fA})}gA.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,i){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var n=wA[t.brushType](0,i,e);t.__rangeOffset={offset:SA[t.brushType](n.values,t.range,[1,1]),xyMinMax:n.xyMinMax}}})},gA.matchOutputRanges=function(t,n,o){uA(t,function(i){var t=this.findTargetInfo(i,n);t&&!0!==t&&E(t.coordSyses,function(t){var e=wA[i.brushType](1,t,i.range);o(i,e.values,t,n)})},this)},gA.setInputRanges=function(t,o){uA(t,function(t){var e=this.findTargetInfo(t,o);if(t.range=t.range||[],e&&!0!==e){t.panelId=e.panelId;var i=wA[t.brushType](0,e.coordSys,t.coordRange),n=t.__rangeOffset;t.range=n?SA[t.brushType](i.values,n.offset,function(t,e){var i=IA(t),n=IA(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}(i.xyMinMax,n.xyMinMax)):i.values}},this)},gA.makePanelOpts=function(i,n){return N(this._targetInfoList,function(t){var e=t.getPanelRect();return{panelId:t.panelId,defaultBrushType:n&&n(t),clipPath:Ub(e),isTargetByCursor:Yb(e,i,t.coordSysModel),getLinearBrushOtherExtent:Xb(e)}})},gA.controlSeries=function(t,e,i){var n=this.findTargetInfo(t,i);return!0===n||n&&0<=hA(n.coordSyses,e.coordinateSystem)},gA.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=vA(e,t),o=0;on[1]&&(n[1]=e[1])})}),n[1]c[1];if(r&&!s&&!l)return!0;r&&(n=!0),s&&(e=!0),l&&(i=!0)}return n&&e&&i}):RA(h,function(t){if("empty"===o)i.setData(u=u.map(t,function(t){return function(t){return t>=c[0]&&t<=c[1]}(t)?t:NaN}));else{var e={};e[t]=c,u.selectRange(e)}}),RA(h,function(t){u.setApproximateExtent(c,t)}))})}}};var GA=E,FA=OA,WA=wf({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=HA(t);this.settledOption=n,this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=HA(t);m(this.option,t,!0),m(this.settledOption,e,!0),this.doInit(e)},doInit:function(t){var i=this.option;v.canvasSupported||(i.realtime=!1),this._setDefaultThrottle(t),ZA(this,t);var n=this.settledOption;GA([["start","startValue"],["end","endValue"]],function(t,e){"value"===this._rangePropMode[e]&&(i[t[0]]=n[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var r=this._axisProxies;this.eachTargetAxis(function(t,e,i,n){var o=this.dependentModels[t.axis][e],a=o.__dzAxisProxy||(o.__dzAxisProxy=new zA(t.name,e,this,n));r[t.name+"_"+e]=a},this)},_resetTarget:function(){var i=this.option,t=this._judgeAutoMode();FA(function(t){var e=t.axisIndex;i[e]=Eo(i[e])},this),"axisIndex"===t?this._autoSetAxisIndex():"orient"===t&&this._autoSetOrient()},_judgeAutoMode:function(){var e=this.option,i=!1;FA(function(t){null!=e[t.axisIndex]&&(i=!0)},this);var t=e.orient;return null==t&&i?"orient":i?void 0:(null==t&&(e.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var a=!0,e=this.get("orient",!0),r=this.option,t=this.dependentModels;if(a){var i="vertical"===e?"y":"x";t[i+"Axis"].length?(r[i+"AxisIndex"]=[0],a=!1):GA(t.singleAxis,function(t){a&&t.get("orient",!0)===e&&(r.singleAxisIndex=[t.componentIndex],a=!1)})}a&&FA(function(t){if(a){var e=[],i=this.dependentModels[t.axis];if(i.length&&!e.length)for(var n=0,o=i.length;ne[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&CD(e)}};function CD(t){return new Mi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var LD=["#ddd"];wf({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;e||vD(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:LD},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){t&&(this.areas=N(t,function(t){return kD(this.option,t)},this))},setBrushOption:function(t){this.brushOption=kD(this.option,t),this.brushType=this.brushOption.brushType}});function kD(t,e){return m({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Il(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}function PD(t,e,i,n){n&&n.$from===t.id||this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice())}bf({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new gb(e.getZr())).on("brush",A(this._onBrush,this)).mount()},render:function(t){return this.model=t,PD.apply(this,arguments)},updateTransform:PD,updateView:PD,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var i=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),e.isEnd&&!e.removeOnClick||this.api.dispatchAction({type:"brush",brushId:i,areas:D(t),$from:i}),e.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:i,areas:D(t),$from:i})}}),gf({type:"brush",event:"brush"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),gf({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),gf({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var ND=Cc.toolbox.brush;function OD(t,e,i){this.model=t,this.ecModel=e,this.api=i,this._brushType,this._brushMode}OD.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:D(ND.title)};var ED=OD.prototype;ED.render=ED.updateView=function(e,t,i){var n,o,a;t.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",a|=t.areas.length}),this._brushType=n,this._brushMode=o,E(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===o:"clear"===t?a:t===n)?"emphasis":"normal")})},ED.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return E(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},ED.onclick=function(t,e,i){var n=this._brushType,o=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},HT("brush",OD),ff(function(t,e){var i=t&&t.brush;if(k(i)||(i=i?[i]:[]),i.length){var n=[];E(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;k(o)&&(o=o[0]),o||(o={feature:{}},t.toolbox=[o]);var a=o.feature||(o.feature={}),r=a.brush||(a.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),function(i){var e={};E(i,function(t){e[t]=1}),i.length=0,E(e,function(t,e){i.push(e)})}(s),e&&!s.length&&s.push.apply(s,fD)}}),wf({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),bf({type:"title",render:function(t,e,i){if(this.group.removeAll(),t.get("show")){var n=this.group,o=t.getModel("textStyle"),a=t.getModel("subtextStyle"),r=t.get("textAlign"),s=H(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Fr({style:Qs({},o,{text:t.get("text"),textFill:o.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Fr({style:Qs({},a,{text:h,textFill:a.getTextColor(),y:u.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink"),p=t.get("triggerEvent",!0);l.silent=!d&&!p,c.silent=!f&&!p,d&&l.on("click",function(){window.open(d,"_"+t.get("target"))}),f&&c.on("click",function(){window.open(f,"_"+t.get("subtarget"))}),l.eventData=c.eventData=p?{componentType:"title",componentIndex:t.componentIndex}:null,n.add(l),h&&n.add(c);var g=n.getBoundingRect(),m=t.getBoxLayoutParams();m.width=g.width,m.height=g.height;var v=vu(m,{width:i.getWidth(),height:i.getHeight()},t.get("padding"));r||("middle"===(r=t.get("left")||t.get("right"))&&(r="center"),"right"===r?v.x+=v.width:"center"===r&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),n.attr("position",[v.x,v.y]);var y={textAlign:r,textVerticalAlign:s};l.setStyle(y),c.setStyle(y),g=n.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var w=new is({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});n.add(w)}}});function zD(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},o=n.normal||(n.normal={}),a={normal:1,emphasis:1};E(n,function(t,e){a[e]||RD(o,e)||(o[e]=t)}),i.label&&!RD(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function RD(t,e){return t.hasOwnProperty(e)}Tu.registerSubTypeDefaulter("timeline",function(){return"slider"}),gf({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),C({currentIndex:i.option.currentIndex},t)}),gf({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var BD=Tu.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){BD.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(e<=t&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,o=this._names=[];if("category"===i){var a=[];E(e,function(t,e){var i,n=Bo(t);R(t)?(i=D(t)).value=e:i=e,a.push(i),z(n)||null!=n&&!isNaN(n)||(n=""),o.push(n+"")}),e=a}var n={category:"ordinal",time:"time"}[i]||"number";(this._data=new Wf([{name:"value",type:n}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});b(BD.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),Fh);function VD(t,e,i,n){Eg.call(this,t,e,i),this.type=n||"value",this.model=null}var GD=hc.extend({type:"timeline"});VD.prototype={constructor:VD,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},w(VD,Eg);var FD=A,WD=E,HD=Math.PI;function ZD(t,e,i,n,o,a){var r=e.get("color");o?(o.setColor(r),i.add(o),a&&a.onUpdate(o)):((o=mg(t.get("symbol"),-1,-1,2,2,r)).setStyle("strokeNoScale",!0),i.add(o),a&&a.onCreate(o));var s=e.getItemStyle(["color","symbol","symbolSize"]);o.setStyle(s),n=m({rectHover:!0,z2:100},n,!0);var l=t.get("symbolSize");(l=l instanceof Array?l.slice():[+l,+l])[0]/=2,l[1]/=2,n.scale=l;var u=t.get("symbolOffset");if(u){var h=n.position=n.position||[0,0];h[0]+=Pl(u[0],l[0]),h[1]+=Pl(u[1],l[1])}var c=t.get("symbolRotate");return n.rotation=(c||0)*Math.PI/180||0,o.attr(n),o.updateTransform(),o}function UD(t,e,i,n,o){if(!t.dragging){var a=n.getModel("checkpointStyle"),r=i.dataToCoord(n.getData().get(["value"],e));o||!a.get("animation",!0)?t.attr({position:[r,0]}):(t.stopAnimation(!0),t.animateTo({position:[r,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}GD.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(e,t,i,n){if(this.model=e,this.api=i,this.ecModel=t,this.group.removeAll(),e.get("show",!0)){var o=this._layout(e,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,e);e.formatTooltip=function(t){return eu(s.scale.getLabel(t))},WD(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](o,a,s,e)},this),this._renderAxisLabel(o,r,s,e),this._position(o,e)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),o=function(t,e){return vu(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2n[1]&&(i=n[1]),i"),o&&(a+=YD(o),null!=i&&(a+=" : ")),null!=i&&(a+=YD(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});b(qD,Fh),qD.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var KD=_;function $D(t,e,i,n,o,a){var r=[],s=lp(e,n)?e.getCalculationInfo("stackResultDimension"):n,l=oC(e,s,t),u=e.indicesOfNearest(s,l)[0];r[o]=e.get(i,u),r[a]=e.get(n,u);var h=El(e.get(n,u));return 0<=(h=Math.min(h,20))&&(r[a]=+r[a].toFixed(h)),r}var JD=T,QD={min:JD($D,"min"),max:JD($D,"max"),average:JD($D,"average")};function tC(t,e){var i=t.getData(),n=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!k(e.coord)&&n){var o=n.dimensions,a=eC(e,i,n,t);if((e=D(e)).type&&QD[e.type]&&a.baseAxis&&a.valueAxis){var r=KD(o,a.baseAxis.dim),s=KD(o,a.valueAxis.dim);e.coord=QD[e.type](i,a.baseDataDim,a.valueDataDim,r,s),e.value=e.coord[s]}else{for(var l=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;u<2;u++)QD[l[u]]&&(l[u]=oC(i,i.mapDimension(o[u]),l[u]));e.coord=l}}return e}function eC(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(function(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;oi[o],f=[-h.x,-h.y];e||(f[n]=s.position[n]);var p=[0,0],g=[-c.x,-c.y],m=H(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[n]+=i[o]-c[o]:p[n]+=c[o]+m);g[1-n]+=h[a]/2-c[a]/2,s.attr("position",f),l.attr("position",p),u.attr("position",g);var v={x:0,y:0};if(v[o]=d?i[o]:h[o],v[a]=Math.max(h[a],c[a]),v[r]=Math.min(0,c[r]+g[1-n]),l.__rectSize=i[o],d){var y={x:0,y:0};y[o]=Math.max(i[o]-c[o]-m,0),y[a]=v[a],l.setClipPath(new is({shape:y})),l.__rectSize=y[o]}else u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&sl(s,{position:x.contentPosition},d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(n,o){var a=this._controllerGroup;E(["pagePrev","pageNext"],function(t){var e=null!=o[t+"DataIndex"],i=a.childOfName(t);i&&(i.setStyle("fill",e?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),i.cursor=e?"pointer":"default")});var t=a.childOfName("pageText"),e=n.get("pageFormatter"),i=o.pageIndex,r=null!=i?i+1:0,s=o.pageCount;t&&e&&t.setStyle("text",z(e)?e.replace("{current}",r).replace("{total}",s):e({current:r,total:s}))},_getPageInfo:function(t){var e=t.get("scrollDataIndex",!0),i=this.getContentGroup(),n=this._containerGroup.__rectSize,o=t.getOrient().index,a=NC[o],r=OC[o],s=this._findTargetItemIndex(e),l=i.children(),u=l[s],h=l.length,c=h?1:0,d={contentPosition:i.position.slice(),pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return d;var f=y(u);d.contentPosition[o]=-f.s;for(var p=s+1,g=f,m=f,v=null;p<=h;++p)(!(v=y(l[p]))&&m.e>g.s+n||v&&!x(v,g.s))&&(g=m.i>g.i?m:v)&&(null==d.pageNextDataIndex&&(d.pageNextDataIndex=g.i),++d.pageCount),m=v;for(p=s-1,g=f,m=f,v=null;-1<=p;--p)(v=y(l[p]))&&x(m,v.s)||!(g.i=e&&t.s<=e+n}},_findTargetItemIndex:function(n){var o,a,t=this.getContentGroup();return this._showController&&t.eachChild(function(t,e){var i=t.__legendDataIndex;null==a&&null!=i&&(a=e),i===n&&(o=e)}),null!=o?o:a}});gf("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});WA.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});var zC=is,RC=kl,BC=Ol,VC=A,GC=E,FC="horizontal",WC="vertical",HC=["line","bar","candlestick","scatter"],ZC=UA.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){ZC.superApply(this,"render",arguments),Tc(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){ZC.superApply(this,"remove",arguments),Ac(this,"_dispatchZoomAction")},dispose:function(){ZC.superApply(this,"dispose",arguments),Ac(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Ii;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},o=this._orient===FC?{right:n.width-i.x-i.width,top:n.height-30-7,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=_u(t.option);E(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=o[t])});var r=vu(a,n,t.padding);this._location={x:r.x,y:r.y},this._size=[r.width,r.height],this._orient===WC&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),o=n&&n.get("inverse"),a=this._displayables.barGroup,r=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==FC||o?i===FC&&o?{scale:r?[-1,1]:[-1,-1]}:i!==WC||o?{scale:r?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:r?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:r?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new zC({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new zC({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:A(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),o=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=o){var a=n.getDataExtent(o),r=.3*(a[1]-a[0]);a=[a[0]-r,a[1]+r];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],d=u[1]/(n.count()-1),f=0,p=Math.round(n.count()/e[0]);n.each([o],function(t,e){if(0e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-o);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var i;if(GC(this.getTargetCoordInfo(),function(t){if(!i&&t.length){var e=t[0].model.coordinateSystem;i=e.getRect&&e.getRect()}}),!i){var t=this.api.getWidth(),e=this.api.getHeight();i={x:.2*t,y:.2*e,width:.6*t,height:.6*e}}return i}});function UC(t){return"vertical"===t?"ns-resize":"ew-resize"}WA.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var XC="\0_ec_dataZoom_roams";function YC(t,n){var e=qC(t),o=n.dataZoomId,a=n.coordId;E(e,function(t,e){var i=t.dataZoomInfos;i[o]&&_(n.allCoordIds,a)<0&&(delete i[o],t.count--)}),KC(e);var i=e[a];i||((i=e[a]={coordId:a,dataZoomInfos:{},count:0}).controller=function(t,r){var e=new Ly(t.getZr());return E(["pan","zoom","scrollMove"],function(a){e.on(a,function(n){var o=[];E(r.dataZoomInfos,function(t){if(n.isAvailableBehavior(t.dataZoomModel.option)){var e=(t.getRange||{})[a],i=e&&e(r.controller,n);!t.dataZoomModel.get("disabled",!0)&&i&&o.push({dataZoomId:t.dataZoomId,start:i[0],end:i[1]})}}),o.length&&r.dispatchAction(o)})}),e}(t,i),i.dispatchAction=T($C,t)),i.dataZoomInfos[o]||i.count++,i.dataZoomInfos[o]=n;var r=function(t){var n,o={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0;return E(t,function(t){var e=t.dataZoomModel,i=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");o["type_"+n]"],k(t)&&(t=t.slice(),n=!0),o=e?t:n?[u(t[0]),u(t[1])]:u(t),z(l)?l.replace("{value}",n?o[0]:o).replace("{value2}",n?o[1]:o):O(l)?n?l(t[0],t[1]):l(t):n?t[0]===s[0]?i[0]+" "+o[1]:t[1]===s[1]?i[1]+" "+o[0]:o[0]+" - "+o[1]:o;function u(t){return t===s[0]?"min":t===s[1]?"max":(+t).toFixed(Math.min(r,20))}},resetExtent:function(){var t=this.option,e=pL([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;0<=o;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){var t=this.ecModel,e=this.option,i={inRange:e.inRange,outOfRange:e.outOfRange},n=e.target||(e.target={}),o=e.controller||(e.controller={});m(n,i),m(o,i);var u=this.isCategory();function a(n){dL(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")},fL(this.stateList,function(t){var e=n[t];if(z(e)){var i=lL(e,"active",u);i?(n[t]={},n[t][e]=i):delete n[t]}},this)}a.call(this,n),a.call(this,o),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},fL(n,function(t,e){if(a_.isValidType(e)){var i=lL(e,"inactive",u);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,n,"inRange","outOfRange"),function(a){var r=(a.inRange||{}).symbol||(a.outOfRange||{}).symbol,s=(a.inRange||{}).symbolSize||(a.outOfRange||{}).symbolSize,l=this.get("inactiveColor");fL(this.stateList,function(t){var e=this.itemSize,i=a[t];null==(i=i||(a[t]={color:u?l:[l]})).symbol&&(i.symbol=r&&D(r)||(u?"roundRect":["roundRect"])),null==i.symbolSize&&(i.symbolSize=s&&D(s)||(u?e[0]:[e[0],e[0]])),i.symbol=hL(i.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var n=i.symbolSize;if(null!=n){var o=-1/0;cL(n,function(t){oe[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){mL.prototype.completeVisualOption.apply(this,arguments),E(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Ol((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(n){var o=[];return this.eachTargetSeries(function(t){var i=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){n[0]<=t&&t<=n[1]&&i.push(e)},this),o.push({seriesId:t.id,dataIndex:i})},this),o},getVisualMeta:function(i){var t=xL(this,"outOfRange",this.getExtent()),e=xL(this,"inRange",this.option.range.slice()),n=[];function o(t,e){n.push({value:t,color:i(t,e)})}for(var a=0,r=0,s=e.length,l=t.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new Ii("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(n,o){if(this._useHandle){var a=this._shapes,r=this.visualMapModel,s=a.handleThumbs,l=a.handleLabels;ML([0,1],function(t){var e=s[t];e.setStyle("fill",o.handlesColor[t]),e.position[1]=n[t];var i=hl(a.handleLabelPoints[t],ul(e,this.group));l[t].setStyle({x:i[0],y:i[1],text:r.formatValueText(this._dataInterval[t]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===t?"bottom":"top":"left",a.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=SL(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",function(t,e,i,n){return t?[[0,-IL(e,TL(i,0))],[6,0],[0,IL(e,TL(n-i,0))]]:[[0,0],[5,-5],[5,5]]}(!!i,n,l,r[1]));var c=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0});h.setStyle("fill",c);var d=hl(u.indicatorLabelPoint,ul(h,this.group)),f=u.indicatorLabel;f.attr("invisible",!1);var p=this._applyTransform("left",u.barGroup),g=this._orient;f.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===g?p:"middle",textAlign:"horizontal"===g?"center":p,x:d[0],y:d[1]})}},_enableHoverLinkToSeries:function(){var n=this;this._shapes.barGroup.on("mousemove",function(t){if(n._hovering=!0,!n._dragging){var e=n.visualMapModel.itemSize,i=n._applyTransform([t.offsetX,t.offsetY],n._shapes.barGroup,!0,!0);i[1]=IL(TL(0,i[1]),e[1]),n._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=e[0])}}).on("mouseout",function(){n._hovering=!1,n._dragging||n._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=IL(TL(o[0],t),o[1]);var r=function(t,e,i){var n=6,o=t.get("hoverLinkDataSize");o&&(n=SL(o,e,i,!0)/2);return n}(i,a,o),s=[t-r,t+r],l=SL(t,o,a,!0),u=[SL(s[0],o,a,!0),SL(s[1],o,a,!0)];s[0] ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||CL(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=function(t,e){var i={},n={};return o(t||[],i),o(e||[],n,i),[a(i),a(n)];function o(t,e,i){for(var n=0,o=t.length;ni&&n([i,e[0]],"outOfRange"),n(e.slice()),i=e[1])},this),{stops:a,outerColors:r}}function n(t,e){var i=s.getRepresentValue({interval:t});e=e||s.getValueState(i);var n=o(i,e);t[0]===-1/0?r[0]=n:t[1]===1/0?r[1]=n:a.push({value:t[0],color:n},{value:t[1],color:n})}}}),PL={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+o;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};function NL(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}_L.extend({type:"visualMap.piecewise",doRender:function(){var a=this.group;a.removeAll();var r=this.visualMapModel,s=r.get("textGap"),t=r.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=r.itemSize,e=this._getViewData(),i=e.endsText,d=W(r.get("showLabel",!0),!i);i&&this._renderEndsText(a,i[0],c,d,h),E(e.viewPieceList,function(t){var e=t.piece,i=new Ii;i.onclick=A(this._onItemClick,this,e),this._enableHoverLink(i,t.indexInModelPieceList);var n=r.getRepresentValue(e);if(this._createItemSymbol(i,n,[0,0,c[0],c[1]]),d){var o=this.visualMapModel.getValueState(n);i.add(new Fr({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,textVerticalAlign:"middle",textAlign:h,textFont:l,textFill:u,opacity:"outOfRange"===o?.5:1}}))}a.add(i)},this),i&&this._renderEndsText(a,i[1],c,d,h),mu(r.get("orient"),a,r.get("itemGap")),this.renderBackground(a),this.positionGroup(a)},_enableHoverLink:function(t,i){function e(t){var e=this.visualMapModel;e.option.hoverLink&&this.api.dispatchAction({type:t,batch:bL(e.findTargetDataIndices(i),e)})}t.on("mouseover",A(e,this,"highlight")).on("mouseout",A(e,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return wL(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new Ii,r=this.visualMapModel.textStyleModel;a.add(new Fr({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=N(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i=i&&i.slice().reverse(),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(mg(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,n=D(i.selected),o=e.getSelectedMapKey(t);"single"===i.selectedMode?(n[o]=!0,E(n,function(t,e){n[e]=e===o})):n[o]=!n[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:n})}});ff(iL);var OL,EL="urn:schemas-microsoft-com:vml",zL="undefined"==typeof window?null:window,RL=!1,BL=zL&&zL.document;function VL(t){return OL(t)}if(BL&&!v.canvasSupported)try{BL.namespaces.zrvml||BL.namespaces.add("zrvml",EL),OL=function(t){return BL.createElement("')}}catch(t){OL=function(t){return BL.createElement("<"+t+' xmlns="'+EL+'" class="zrvml">')}}var GL,FL=ir.CMD,WL=Math.round,HL=Math.sqrt,ZL=Math.abs,UL=Math.cos,XL=Math.sin,YL=Math.max;if(!v.canvasSupported){var jL=",",qL="progid:DXImageTransform.Microsoft",KL=21600,$L=KL/2,JL=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=KL+","+KL,t.coordorigin="0,0"},QL=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},tk=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},ek=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},ik=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},nk=Hn,ok=function(t,e,i){var n=Re(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=QL(n[0],n[1],n[2]),t.opacity=i*n[3])},ak=function(t,e,i,n){var o="fill"===e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof ss&&ek(t,a),a=a||VL(e),o?function(t,e,i){var n,o,a=e.fill;if(null!=a)if(a instanceof ss){var r,s=0,l=[0,0],u=0,h=1,c=i.getBoundingRect(),d=c.width,f=c.height;if("linear"===a.type){r="gradient";var p=i.transform,g=[a.x*d,a.y*f],m=[a.x2*d,a.y2*f];p&&(bt(g,g,p),bt(m,m,p));var v=m[0]-g[0],y=m[1]-g[1];(s=180*Math.atan2(v,y)/Math.PI)<0&&(s+=360),s<1e-6&&(s=0)}else{r="gradientradial";g=[a.x*d,a.y*f],p=i.transform;var x=i.scale,_=d,w=f;l=[(g[0]-c.x)/_,(g[1]-c.y)/w],p&&bt(g,g,p),_/=x[0]*KL,w/=x[1]*KL;var b=YL(_,w);u=0/b,h=2*a.r/b-u}var S=a.colorStops.slice();S.sort(function(t,e){return t.offset-e.offset});for(var M=S.length,I=[],T=[],A=0;A=c&&d<=i+1){for(var n=[],o=0;o=c&&d<=o+1)return jk(h,e.components,u,l);p[t]=e}else p[t]=void 0}var s;f++}for(;f<=e;){var r=a();if(r)return r}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1 { + Object.defineProperty(ctx, style, { + set: value => { + if (style !== 'fillStyle' && style !== 'strokeStyle' + || value !== 'none' && value !== null + ) { + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + } + }); + }); + + ctx.createRadialGradient = () => { + return ctx.createCircularGradient(arguments); + }; + } + + _initEvent() { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown' + }, { + wxName: 'touchMove', + ecName: 'mousemove' + }, { + wxName: 'touchEnd', + ecName: 'mouseup' + }, { + wxName: 'touchEnd', + ecName: 'click' + }]; + + eventNames.forEach(name => { + this.event[name.wxName] = e => { + const touch = e.touches[0]; + this.chart.getZr().handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y + }); + }; + }); + } + + set width(w) { + if (this.canvasNode) this.canvasNode.width = w + } + set height(h) { + if (this.canvasNode) this.canvasNode.height = h + } + + get width() { + if (this.canvasNode) + return this.canvasNode.width + return 0 + } + get height() { + if (this.canvasNode) + return this.canvasNode.height + return 0 + } +} diff --git a/images/0181008111258.png b/images/0181008111258.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc8f30d56e54b4451c9b782f951b190bd1b8bda GIT binary patch literal 17312 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

ZAsMHWJF?^gfnQ7? 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 literal 0 HcmV?d00001 diff --git a/images/3.png b/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..b01891f6018278b457dc9c6960cb92b11367120d GIT binary patch literal 7615 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 NoRqR;wYW*>{{Sl%$9(_* literal 0 HcmV?d00001 diff --git a/images/5-121204193R0-50.gif b/images/5-121204193R0-50.gif new file mode 100644 index 0000000000000000000000000000000000000000..915c1984cb8541c40f28762a09970b6578632aa3 GIT binary patch literal 3897 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 literal 0 HcmV?d00001 diff --git a/images/add_to_min_program_arrow.png b/images/add_to_min_program_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..978ee4243b53900b61749770fdb1de0bef34af05 GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^sz9vG!3-o%cx`k9Qgs17A+A9B|G)Iv(U7%SK zKX`?g1Usqz2ZuxiEpX}v8uNr6t*CMq#5MPE-L7|T+dqRCb@5EIBQqYACvu_f!T~QyS)Qq98Q!UTfyYEMlc}A zS*Y0ZON4XOfsMK%t@j$r0;ajz-f|AUw~={EVS)S0H@}1}Eak7aoP6VM&1Sk9+!*Ej{dDP7y^x$ zQoX_wSj{>Dmh||3dD^WVz5d6wYR$A;r77~c-lc-Z*A^{&)==dYt^8oJ0&_}(l|uuk z0i)W1!l=IAyi!~Kh^}RbVvCYhU=~U6VhAZ=2)I`Kd&YHn?ZxU-lvpCYfEF`&y85}S Ib4q9e06Z{J(f|Me literal 0 HcmV?d00001 diff --git a/images/add_to_min_program_more.png b/images/add_to_min_program_more.png new file mode 100644 index 0000000000000000000000000000000000000000..3dafcb41e979c4dbf298df5b469309bb97bdc6cf GIT binary patch literal 381 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 literal 0 HcmV?d00001 diff --git a/images/back.png b/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..e41b74e329f498e3e41b7a17c890d75d79ff4384 GIT binary patch literal 2548 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 b%E12s;oJr3sOSs+00000NkvXXu0mjfFAN6< literal 0 HcmV?d00001 diff --git a/images/default-avatar.jpg b/images/default-avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..599aa5d63957eb21a5648d1a025f17d58ffb9374 GIT binary patch literal 5474 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 LNkvXXu0mjfaCBOT literal 0 HcmV?d00001 diff --git a/images/ditu.png b/images/ditu.png new file mode 100644 index 0000000000000000000000000000000000000000..10033e32a60fb983789b84c701f8be0af2d5d76a GIT binary patch literal 5417 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 E0A}T&?EnA( literal 0 HcmV?d00001 diff --git a/images/fan.png b/images/fan.png new file mode 100644 index 0000000000000000000000000000000000000000..c254fa2e1d5b176371799ec4b390cac110732197 GIT binary patch literal 2789 zcmX9=c_3767oWHovdmb+;Nl7|T8wCf=2|kBA}Y&Asc1y9Oj3&EW-Z1wR9aAPQ&AH| znKBb146nCElxZvtQ&H4Qn%7eLrtkaXdCouQ{Lb&3^E~IA{H=c8YAOaQI2=w5p?L<% zq~Q0#E6VOWAvF~^oC*i=gts5vHC4W`YG1HUZia6_ANXfBwrNuP{#FP?!HX+?0S{J0 z_7!AKHIwam-5Rxr&rvlF6 z)l1z*4vY*pKbCS|cRu<$>skvr=Dic~%!VP)3XabecAuoq-Ri*AWT2=vm zemIp9Z2f)}QpuV?K5LO;R-Mu7{T-S4JKV{(Ev+ zC;v+TzSk(VNxnQHXejN8$%W9V+T3rM#aW=WsFzz6*!_*=rj_`~f_&ToLu?@^kOsP6Z z+t603ED*oa1*XMie_SsiJx3NsZJX~n-^s+YV(*L2Ojva)ka@$qlD+^y*HEQbziFpg z_>MC~w#v38F9GqDIgl@YyH1BPnrKcViB@$9h-dWSz4JLY%)PCK-?S2;iX?%ufQWwo zR`FVO}<-E9)>7(na6yiJ(m(OqH1ZD-gS>gXJKXK9E} zYB{@23G_S>-*1|s_bVrj_~UdtK5&_JY*zsDcCNV4dCba$!2t?DnZoq`Vh~nIu;;aH+rdH^kB7G!w&!+L|^f`6%b@H%FcxKym4eY2xf$-it7! zHNIXe6MmoXh+Z}ZNJ+dQ zJW3*tkuyH50$}F666I6QtK}#u;97mrV6_6wOjk{k*xl3tC}y4XjlyjzC}~mu-S{Ox zOFYA~sHbV>rY1mFC)XHM>;m6F4hyGOuMvm8(mb{mmH3%z&_Ry#mN@f zG?^}a(319NiDsD>7Hsj@CT}eR$TTudIV#gIIXk-u4)8fDavOXmRnc(PEDiUM4PCmM zx~f>7SO#MzzB5bnCoMav9;DDuG6nUy$#5Y5a${y)G(ob+GFI7rLfErPQKCs9WaUD0nf}GHMru!R zT+Nje(+evQjEfu#?NyTB^NnFci0>GW0Vr->!^hHsf68axO=SVCf9txQ1!=5<{Epga zXBdn6akVG;l(hoP+HCHaV)se~g(5ZR=RV!k1(3P|;lsn5SL0a)8!qerF_JAa+tb&< z+2e$QU1jo(hx>V&0McO0oqje_4$|z0vG~yGRWc+y?|4rA5gVD^x~i}pyaVttpVnVz zoBH#(<-Fstv(L#b)7R6pfY5+kP=%jEW6N?mEEEk!31p# z@*tZlYK;nTkfS;hgc`;fq7DwKh`~FxIvv=+FdHhwl_Yo*aurSU<)5;N_|d)TJI|=>_;Z}fEauO$ixiCcJPnkJwZwcf+Ub*ejje}0EpkEU z?rkp4f|?Fe2@w_6z1Y)QHT-C&{SHmm+vDS@vx{=5h03FfAvT*OLFUi>l%lu$Z5R2ho0W>)zTR{@&-!Z zD}HV9S91*Af3*-xvO}XLeR3}{GkD+m>>?$je>KQFvK24P_WzS#eKq&X+WPY|L;NN) zpgMZpRCi$ao;>qi@vgD-^P3cNLGvTetEDZLUHizq@$Da0uEp0WOVe@{5k`BDanBLa z!f67#qJP##{zPI%Pmi&&J_#)te0=h4c_sAkMWMKvXDnR~=N#M_F7CAK5~s6xhJLC2 zJ;OtHH?{`>$jh8Gul4-F#{Km3--hBsz3_DfZ)$>^_=Cq@_IxQ{ri=ExXm8m-s)YP$ z3qkMKHkTwn=~>$G$nCp5fDBc*w4V+9a(=dy&8-aRmn~W$6}Ln-FqV?TLuAiwTdyl? z*nHwKYuIc;2gxX&4I?jpj$1>BYG5)2;#e~k? d>EX&hGy;O06n^d3x-VN_afp|nXN~)A^uMem?Y{s3 literal 0 HcmV?d00001 diff --git a/images/guan.png b/images/guan.png new file mode 100644 index 0000000000000000000000000000000000000000..e2584b6d83348f9285dbac61d9382751bb9614bb GIT binary patch literal 5383 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 literal 0 HcmV?d00001 diff --git a/images/guasn.png b/images/guasn.png new file mode 100644 index 0000000000000000000000000000000000000000..b614349b0b2a465d610f003b271d4ba55282e290 GIT binary patch literal 1651 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xak-5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0*Q ziwjQkpn6kqy2aQPr(S)aWAs6hixk-~Az%suG2uxU$bl#R)I4B{F9Ig*?gtvR3=B+< zJzX3_DsG*L+Mg}rC~>#OQsAgo>(o|`vT2J17G=Da6jcQBG{4GUSaHN9LS&=Ze+KFL zBX?X6UQ$zvU}dotUfe6?%A(t|;D_Cu)`vTO=B1_YyZiTn?DV;JcfWtTZ)RoXNsoEY ztvBiHW|v{v$7orgoSk-;aoO45yARA1i_4q+Z0E6t*9XcTcpaV<&!V<=zCW{e%k)l0 z^?0^t(pUaC#ea5{O=LPRBOaT>!I}53CHak}um$@bVUL)#8-Mm)s1e_Bl*Nwe@qt~B zk9Z%*;XP~5)Mt5YTF;Vy6D&V)-r)ZtBOYR_F2{6SHn~4HDTTMjaCM;ngv&9m<^Pr_ z%-&Yp@XPN9kBrb0lf^pAT_2t+XJ6}L^1x-G376+wnmb=+(a$sO4A>dbr78Lo#bFAqKbqt!)tx3?O?*4y4P*Ad74O*t4@}RSVJVnx-FCCN>_qaC1IOjEt!v&m zF7s44R#tJFIhQFl$9;k=$I7rHLJ>FmQWK^pZ~o2shHoo-sNja&@RwFYw3+= z$togA)|0a0nj3Ph!)*4}Szr9FrW|nMrNM`2i|4!rT1#7fJsV!D8EEyqH_;B+l%@Jd z=cJs-*0XN}qt9wxm0+5C!1JX4!}T}6WKExt!f&yuX5q}TBX*66-x9cPB!w-v<-2Vt zrL5ky=d<0ngka;h8r}*fwgKMOE1t~d_v7DkiBIcdO^>SIys{R74lfX&>q1RP)q<&I zKLk7`$z?2+eR8p8(iaEqw+mKXVqUwYc@aR^+AMx*x_S52o^(RaA&Az&#^JsBW{I~!6L);qJ53H|e;$e^rzV&K}Y4TA} OHQ?#$=d#Wzp$Pz=_I%+0 literal 0 HcmV?d00001 diff --git a/images/guji.png b/images/guji.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b3e555f7a818d54a7b0e4391a035ef9d8323b5 GIT binary patch literal 1701 zcmaJ?eM}o=7{7iPKq?*qxdEo zgjlkLj?g64)p3P(BZ%%1rXeav!~5|V&zeZ3$CO|Nh(-|i?u0^ug}BhFEu7%tfKQcL8?-hXgDwlOVyia}u8Lpc!5q-YaDc z1(_DP&4VtOiiYcfpBHIhH`P?d%ry?+aG5N2hojn239M#|9W&c7o4Lwr!>i4BwH0JP zC{z=vW;{aFX0>4EL0e^6z%eWykDKB)6EC)47MII~nXQ=BS_M0*q%KY-6IGnFO=Tcx zDJC+4%B16NVUd=TvfBhV3`>v#W-*zSC8>?!@c*~6>|(bhN9ZNL z_a&AZx&#`F&=TJ%#^Av^?->&XreJd~XQY$Y2zdy5UV0$COQG8t5 zk->z+c!-l^l8ezH!h=E<6T?urk8s+o4p+^d8rvR=CE)ZCgxTk`);I%BCp-X~iY541 zCrfj(ilvsYjy18$IIsd#CTNj)j;3lwo&}j@Q+S9GrL&j`p$Br)S_B^I(YZH6*_NdNCT4HsS05u}t|E|5|KYY0DNq48= zlZnyImn`Db6L+^Bzk6%l56SVl5krdV@5%wQ>)pna?Kgdu*XNLPl%yMf@3VDjzHO+; z0EV8ScNM1X(`fpYeLp^yYn<(<_JY)FU|{dG52SR(!AV44;zUyVB3M?^8~O8hn(v)@ z-LEx(^aV|>Q9!hLWl67^YGC=D{>Ans^oit(;_Xw*$!D)r^e)H^KHvLrR&A;x32Sv` zMd#7&iWTe(k{Z9R?YmaKf4QrS%oi`|3NohpCXw481%AD}0nmb1n_HGfv<74Hf+i1K z6`~ayeNhle=}NqlNqw<%>dW{4_Z=Wx|5BbV`BLi!qXw2g)Q5U?MZur6 zS(oX1>wCW1NL(vNP8{$6awd&5eb=1R7Z@%FPi=a@V4MP*hPk1_^v!)eV;er-IStrJ zyi7V;>6st7F?g|jY)&&1xjHv8K8PGuL*KVLjNVnTa%`3SzJuF%L|=-${lUfKcr0m5blL;wH) literal 0 HcmV?d00001 diff --git a/images/gzh_btn.png b/images/gzh_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..970792d7552115e994603e9a3a7ef7f16b77a2e5 GIT binary patch literal 10098 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 U%i}^m_5c6?07*qoM6N<$g8!q@g#Z8m literal 0 HcmV?d00001 diff --git a/images/handle_calendar.png b/images/handle_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..e56bb3d8df1df9deb97e02ec4d652d15e21a10fd GIT binary patch literal 1105 zcmaJ=TWHfz7>-Pf4rMaYsS}A2os+dmdRdpSIJc&Cg=Lhk!zw6d$=MpaG^PPJXsi^|BJ|HoY83HM- zvDX4Ez0C=wH?43gRkwz$&GJ}42S_HfdZ%IYS%J#w@_6kW(-fJ5ptL}ZCzX_9WC&V- z40x*D3R4{6cToRacDN%}uj*C)|7ii4?q|0!%IdQ3pafepJY1z%kIawn9@ zhb$l?XeA)*%y%)Cf(Y6vXp*5&u509~^_ro=j9r=IND?14Y$O{Bh>8M*RXm!e@?y}> z2Et-6!Un@E8?I>xHTXhYIN)bEUm)UR^IQ=s-8wK(o~urAYYK85JLo2kECNg02GocJ zbuw2ruNBTEP*87zs}|0sx*(Uv$}|)&-6f^NeY;if z2$zW+T&ghT?zOWHpDG*Kx~1eSw{zO6`nuHbe%Fzaa(jQ|%bpGA=Z|hWHM8k{8?$fF zHCuiHD_p`r(aF+OLs`r_Sr?ZZpb701S|%T=3xY)zV9=o2nkY zxZN20+1gtFvF_ybl4wPAR%*wGeqpri`J?nv{mg~F9myL*ug(!g#P+eZS8LuZ`{g|H MXt-It*05#IAJ`gd`Tzg` literal 0 HcmV?d00001 diff --git a/images/icon-index-empty.png b/images/icon-index-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..63782b82b89f094b001baa8b692f812a19112cae GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/images/link_more.png b/images/link_more.png new file mode 100644 index 0000000000000000000000000000000000000000..5910c810227eb13c8745dd778b7681b9ba8c2785 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eM!3-q(^mLSglx2WVh%1nGAPZFN+QS0WEL0NY z7tFwZc!x6ItH-xaYe_%5x6VLL=<<>y7l5*^o-U3d5|?AodkQfqaxgm_mHhtqfB#oE zlRLY*nvU>n@9BHR(JJV^?k8q+aTMKuY#NW>uF3$0^YrcY=R2%;#p- Ue54_F7-%4ar>mdKI;Vst0KO|nQ2+n{ literal 0 HcmV?d00001 diff --git a/images/moah.png b/images/moah.png new file mode 100644 index 0000000000000000000000000000000000000000..71f69e37ba9825f23504ad65f174eccd8318d26d GIT binary patch literal 1832 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 bX{;uAu$*{yN?ZHL`xT&5XRF#WN;dojC(Qh| literal 0 HcmV?d00001 diff --git a/images/no_content.png b/images/no_content.png new file mode 100644 index 0000000000000000000000000000000000000000..3520e868679f33681e2125458e5d558db8b4bbdd GIT binary patch literal 8448 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 Ef+N(fcmMzZ literal 0 HcmV?d00001 diff --git a/images/ren.png b/images/ren.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd0ab7412402474b3dff5deec564055471a3c8f GIT binary patch literal 3061 zcmb_e3se(l7EZ0YJfuFLngz9Ks3OQDGm}h`iK4|MKtw1)c#>t#2Zx(kAnZ&MF@LqL>?MsswwUhmKfis&@j=!< z9gu7!!jgk!ie!xf#hG*GFlHwTsQ@~{j4={*TD?h_=))X{E2Q47!)zvFz{ITaVftDD z8IeID3=wH07zm38C?GDv;G-;v$Kj%=HvKCgr6AIlxQ%mm{i1DLrTRyOlpROt8t;6tHf|r z&H)gv5(Yq+ivg$-Q35a`z?2|$!5nZX&YS)=9pR*ciZP5TRG<(7K>`GTAr1#XF|GhW zIXD;K$YDaEAW%61Du$v-^(Hf>R}e$lsIA#x1WrH@1aK8pB9!b1KyJMu0*KE=5E$iS zHh-bWNML5tC?iSjkak0cYQqqTtXf4FGa}S_oJ=rz4q)1R2r*_Re3&o@LjcGJAXEl% zg$PH;MQ4HnA!s8j3?gy0GU-iI0RVwA5Ea6d?D@Yjr4|y7nXx}K#uY*(Y1Cnqrqnu2 zMX(Ke6_fG0cp_3u8Yy5ZJI@&iRx0);O-DcEE{~&swoU=c?mIvb){3pFe-N|uyycliSv1=fQ!I#Kmem40AgGO z5b$siKoJxL5d?>*@ge_&ID!gkYw=LuAifZRhWciMF_B7h0%jz9Rn(&RJr$vEs>tT2 zh{NrD9)MV$t1B^~pt&$tQZg0G93`E(GJF(mLix zVKd~8QA%I8ESY$dIHX$Tn9q(LGa;jFYYL-d(zoX(WE@=2?QGtCI&NCv%zZOX7RNUC zUhYe7Ijp*8YC#{D^seePTz{ducmHKE$E1A8srf7-A~!>;4XysXPE3T4+#WSvrj&%_ zzwi4;AKD%MyU0v>fq&%z_Lk#Yo;b8zu01+O+x&2mTg(l4c<_Q_3&vD<7H&D!lQ@3F zv-$j@we38v!}4Q_yqMJVx+QJJhf1W)>u!Eovo#ppo1b=!^X)f?rN%eViztZqns_;| zWYgV(agRyMqqHiK%vDlYqHlSyU&aTOFAY`j*d`CE!A_$FOK6Gu;zn{?kh|3 z>6aKvQ_-fHp7OqRkDeE}J#vpFH?(pe@-*cSqF>pCeIv0XXMov(lVUH8Wq+4P=D@SU#u>n~M@-s@fQ6wN<*s=ViHX7oCbRMz?WSub;Po&?pt zifvt-KyUN<>dv`sxlwCA%GrOs>yUGmW@Bxt$Mrdrb3zhk&Hntm2g_FAmaOx6Rdjw^ z%$oE~>({PIbIQEk{ch2v-Cf;zougL)SvT?!QR0NrOOh-?zA7D^>il57=3unP{hDrv z_RQqJdMG#Vyi`zh>4*I{-Tj@;^55-oeQ%3)>5T9iQP_k&&w_^BSzRNNkG!gGNaeK6 zIOP6IZ2iOz&3sSIG3Zo8|GEz&Q?sZeV$>x2AJelRjGK7H5xZrU>|fuuP|1HW(!HY< z&%NfcC*qUHJzWPZWl2{y7kGQGb?l z(|4v%T3XQ}-Pj)(Ip?&+ep|!{AnaP2WG=R{9aX$2<;5~yWh|Q)yt%LU5HZh7MUaxe zFHDQteKW!%r&osj|}Xv(917GCh2X5QCIWW)5s zVb8|I-rO?tK+V>pfpV~zC0^*)6nW1a|LR2eRoX4jtGlj&&gAy9)eT3So;z>2{C!Sq zR2NkGqkUod;)c$ilAOG!7Y@?VMwiv#N57<=cIn2O5vO}j5app4z92ypLqH~J`znYbiEs(!h+qZ#9_OmI_+*Nf0#)bbLq(3>umtntO=$!AXRM`@(Hotryi>DjlFf*X7Pku3aI zxxZ^p|8#B9au=d7{-DLb#-sawN)@+sLFH)m#nbu*w^5o#alX=NTqwKB+fwy?V548Y zvOi_-(uxSj+LkGS?ez|Y>-Vo;*_QoePYil1M>jF^=d>x(cJkO92@wu|dTx?TIju5_ zzdfq4d=I;mPHeBv@QA HZ%N9pO@Wi0 literal 0 HcmV?d00001 diff --git a/images/sacsa.png b/images/sacsa.png new file mode 100644 index 0000000000000000000000000000000000000000..9358557d363c6b034f706464c6724336f86b925e GIT binary patch literal 79940 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

yE4Dy?)l6f(@@T}iGo+pI(og+%Nk1( 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 W<>Ws;IyfcnQ6@2Y36E%)@hQ`m$J$> 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

E45y4i2K*kQB9b#-0QH7@ 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¬jDqj*4CahuCkg+i*2T~_yDK( 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 literal 0 HcmV?d00001 diff --git a/images/snji.png b/images/snji.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e5793ec4e05ccd252da435e6455f985bec2eb6 GIT binary patch literal 1767 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>fo+|qi(^Pd+}k^jelqL=tq)%c zwx9IebV|)j>8XH6fiPQ5r%rLhn#smbm@FN|I#VtRZd#haBNBYs_U@P8dvvcq_`d&N zEKdTz^?m_|2d+%aW*iD1j2N3LtOP1r860ioI0TLuH#qb+a9?_yrrpBe=+q^)*}Xx* zHgB5~hk(kG48v*`j!~)6(7=&4%rs9tefrc~TwGkfZ1-JP{_eHPoHa7XKYsf5?b~_f z?_vLMn`@q6{JI>vt%yE?(>9)EC8f zpS@Cg@!7whV~h4|thldHW4&T+j8M^@y~W~BEW+OZn>69^i9@jy9yjj24s^!j-DQqd zXYSoqRdnB+A-;tF-Cm&DFV9=1 zySMc=bJp+FkH6W!`@Bb0o~PUsiMEHg4?p~HyvJ}+{453I>-N)Cp3K;}lXhcm0dFSTEA#a$Ud1wLw8t@pA?fOXs@y zA6*QNT29X{vTz8+?*Aal*c8%oW-+IL%C5SH+Dt4fIcB;GD|nRrJrvHu5hQ5TujVk} z#jn=&90E&}QsjIa6fS<{ju%w$a6Mr&i@|ZxYw>+b4ima2RGKi3T10NpHU4LiPM&__ UirLz9UFVdQ&MBb@05f9McK`qY literal 0 HcmV?d00001 diff --git a/images/suo.png b/images/suo.png new file mode 100644 index 0000000000000000000000000000000000000000..908fc2b1d4115c14b1bcd9cf9e268d58e0e1f680 GIT binary patch literal 1961 zcmZ`)XH?T?7ykzmMi@mv87~M5$le=e1PN0{iHRYV$}*>hAwv|w03xAC3k`b+29On2 zkiE$P8brWo48yP;>?yKLi7&PN#CzTkcl_==&vWiQ_pzIcoe)$S3IKqRgT0OWu}nKA zG9S+|r_%i90Dw2x!3K6UB7c3_H4%xF;oZ7@IVH#dVbA0{ErCmV{21=&8^`ag@=$<~ zhyiO&iEA<7k8+CN8|efiz}_NeWO1}(F8|G|Xh}g1e}Rf2&L-@-U;g%`2VJ>~oo)M3 zugv#3-Eth31)41=K-Tpa!ot0SnO9>DXsLBv-P+skW^E zAXt*R9>?C^C5n&*i>fl7&dLgL_TqkTrc_=c9 zp^zFx0u96qY0W>v-Y@CN6k}E^d&N8y3HIJE1Cx98D{52^!=wwWOLRV!iKt#_8!_Ay zwe(+gUdNX)T>>sH(J>mV-FCz+`k`_Z#`8ZUs?k}76!^0GitisW4`OfZkoql|z0K|N z<~(z!0Xg8Hp)hcKKvf6@kLGd#O>DTf$zIOu(+6fg;|KD8vsl_?DMTm5fT*j0EhL|= zVo4*|hnbNPZX1c)Wgo(OxSUf=D1*_%tEU$BvHkazZiU3BGiG>oDAYmv&ZJ0a%F!6T zQ4k-wwg+B7H<)i--!Io4IWXgvF!~drGX{CuFxbLvji3CWv7L$L^Zm;xAt&ly?~d?! zChlt4?WVn7kT12FID;Y^!<<5-Dk=9Nw6!?C34N;K%!Tf=-RG?4jg)jK)kcttfrQX3 zAHNBSJ0@;rgT^7T*VFqPUZtt@2L;}TtkhrcXi4>O)f$`8bB>mb8f@|)eF+F-*=b~4 zJo1euS8d1a9Oa{T-(@pCPH2ej(f-;Jz0q*keUO_b6#5oKc_Ht7HQRo=6?z@G<p2Q3t_OpIM0d=tMQliPG# z4Mn7hvd!$))RDucdj7LltL2mZ=Wk4 zr4xWXpcU3>mVhyx6e1A_3POw^^Ld;zYomxupDC+2tv8VxE+r;5^(232MVS>*cT{Vw zsJXP|A;mbWxrkE;h{C}t*I83AX3N)W8G>i;wcMy#XZ?(VC_Q_)#zd9;cDk#zJbtk@ z>M;0;Ww3jqqIz~gO7jb2!7Nue`_@P|I(UH0Xg>%DD| zCaF#!kMh|*`iM#j1hHqafrfGO`iiqaosm_KKYn%rZE^T55D-W_(%i!5F&BEW{oX_X z%0Ph9FurQjzw-@drkT^#tP2>iDOk$z)GVCvM^8&2popk?~N-Q$nLsyQw z712GxMY7b{G0ID|+-dMu>`$pdpowxbM_a9nEjZpuxyq!pH-&3=*h7sKXg&<)=5!Y3wt*tmGt zc|ZUcUbEb_l+ck=*1`L(0eA}5nWmt`b}6`CB+v!C;yw_jjsq65q3;0>w|(8)uez!1 R*5eZlIKW+OYOTHE{tM_bnIixI literal 0 HcmV?d00001 diff --git a/images/t1.png b/images/t1.png new file mode 100644 index 0000000000000000000000000000000000000000..1a22d7b981c1d6eda4429d00357d38454b560015 GIT binary patch literal 2156 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 QEc_1ndir~uaF5LVFX@2w0RR91 literal 0 HcmV?d00001 diff --git a/images/t3.png b/images/t3.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4e6fcd3291d6e0af9bde17c36e16ea0b31cafc GIT binary patch literal 2370 zcmbVOX;f3!7LH;;nUqOnP6LWONN#3G8b}ioAwUoUWmpa+$-RL*$Y63q5>zIIIsk%J zpjt#hoS)X9f}#j2gSCnl0q0@0hzf#&pjd`?L9y?Lt3Tdd>)dnpx%=DuJ9{|mZjJ~K zvM_ZtMWIj@ykL$1nM08gGS?V+4_O~xj!X_PHx7qvPN>ei&V>kl}<=Iyjw7iJ(y^22-aLijyH2ErJrIa(~P~-9-#q3i@MW zDSSL%83-jwgVR({R9bknI4xOB12N11G($&649Fl@h}Owc%T-b&DZ&(vLadQNa+t^Q#~@#D zpcJHw$Pyt)6OphKvV@4m6Ujm>O+t}ii4;Gf1dj|N2|r`!OL!V<8I{fUW3dQ$B7wm5 zV-bD1EGpL*@5f@(@HEN{mM2%kLb({4@hwGsf5OuK5latLK|)xeidHC6W~v|}NdYU= zNeU%8FmO8S=%ukzIjGR8y{6Li@zfkhB~69EWh#XXJsoGd^a~tF5SdDZAQ~1V2}xKg zflR{sK{OCc#S@627%zlCyb$vV5B|UL0}xWcRI&U|@yu)?6*;y1+zN>BxtSn2(m^Vu zRW>AOyilmGL_7{FT6eE+r9LH^yQthhZ!v2wyU~cBXYy~4+{_AVF{Q9Mj=!nK%Gw5d zE5tk_;#QTYX<2)&D*6!D-3n8lGRTa1(Qtyoo?w`6O&9={vuC9Y4c z87O`COrx#;v*owC`k%%x(9(yld!Gzj;+{vVuHDyA2(=PH2ZMQhu1{dr*WL?4k0=fQ zTEfXq>N#a^UBPg%za9*rICNo|jVhpwq5t`s=jb`?^|cpj1{MuI3}&KSlclylwH9`4 ztIAwUq2%%!a8HJ_ez*7`x!=FXVn3mG`E}5RWVEj6Ms5&gvbh{Xae8+0Xx6O;U3vNh z%J?r`{Siq)a6$~D_86;gII5_0i>{bY4>J-pEGo9dxJ+JLsa)!EhV2*@bT8}FZ#nSu zvH>q9?vaUWM*Zr(JhpGjoS4~S+tK@|G4qs|KL_YfE;|g1j>rvi6G>=GT`7afpQMDx zet3OybMKoCuzdaSx_8^zcJT*M0I$WO;k$;)h83>sCP4H%mydd@t*@H6O_z?{nqcx+G1mT!4o$bvYO`=~ETH32aqI%`_ZKqYSc6ZN`dn$oS zhd$Md#RsdB?`I{u6pvcIp4$Vo-!kN`N!$4J_JLX25D!`hffza5FvlKpEgsyUDI7j= zTVR9R^NmfM+4;VGJIm*&hfLWmLFcN>v?;3gQn9% zRRYV7S{kS!YutD3T%sR)Qy1@QYp{>g(oW;+g+HF?8|Js#6uVikdXIc4CwJcclHt5E-*(0d#Z=IBvjN+s8Vfq5@%R968 zKdTRM1)COx=A$Z`&k|OeyPOTQ~CS=(<#~M z=8K%Ll-(umImdlAJ#l+#zIR@&=Z*zy+!`;k|H^f6ZgDoAEWoVFZhE^TJv}i(*d2KO zN8X!0zwKR_mA1uJy*(c+iyi{|_a&HYdO5fv;pXmRWSja+`Xg_Rt@b=LfLR&Y+0NCb zcXyASx%|t)g@7P5`VLqWS@_F0PlzMf6sw_Zr870&w*IjB%}Joaf<@~(>CWHPQ;@mo zT!lV9{EY2a@x|H32bQiRN1YNq$fkPVb}n6<6R_5)c4G;tX7qLY?OOKj+(_X=x7XmhE~zNp?WV0xN~9rsH9O$_qMB=RiBp_utnYTSL#!8dgHw2$5ow%=Rkfs)B^Pr8&i#9kbmoClA<^6wi*| zVK;i%C)HqWdUcne54@#~3$zbow@%62BW9DMuNh9GUse*#>ZI>aT{! L4d)zZCuIK@x-ZM! literal 0 HcmV?d00001 diff --git a/images/tabBar/cate.png b/images/tabBar/cate.png new file mode 100644 index 0000000000000000000000000000000000000000..8769edbe3e4f7f7d0987a02511b935e3ef41615f GIT binary patch literal 366 zcmV-!0g?WRP)Px$C`m*?R9HvtnOhEmFc3v&*n_YAF#R;Hg197g6~@n&1%d8?G2kO=td2_^6My5JQ^I0;Ap?g;SklNtNcz6{n6RXg#}?dr*Q($r1iVQn@stu)!T@mV zDYb-J;)x}s2`TAHcL#XM1a$?a2`O2xE5V|KRKdQM_1M-Vq|R1qT^Y5+t03v3GD=tp zKLnLpLM@?|I30dkCzdANw>QtQ2Px%u}MThR9HvV*?CVBK^VvJXTSqIs-n<}FGoW(YORO}SWu2E6^epD)p(@wh+2!F z6x(e$lp-La#VZ<*w_|p}6ORH4V-#)j5Y|2!Hq64m@ay-Jfy`21u*5#t67zyoF!%eM z96$vI4ugZ!83%>=1CRfGUMhIT->djbYzgr6xh78ekxV}yOdhP%6P`ZX zNCRJJu?G0(nFbPg*~M0CfPb8>CxMq=YO@IV)G-?P@(pW%r%u+9z$>n_TLV0K!b<|L zyc(JxJmK>?fpe7^T;v=;2VhD@Ae6kwDc6$G*G&3qY2ZM|{NO}$jmG%@FLDlC%M6B- z7x_ZK6HPTFa7OT!0l3jadV$QAh$;7XLZFAjiR0BY@O9N3us{!mzc(l(@T%6RDPWNv z2G>{7z-^u8fCYLe{OxEZ3B3AdmnmS89twZ0s~~~bw0D~V7U^NIx10tJ^_T+|=%MhJ z+CwDp+KxM>fJJ&JJbt8%1h$2H=j_~0fHW1r;H?hlIxw!-!hProDbmAXPbm!?iOt!$ zH2{|Kt&S}cLr=(YfgTEfu0BWtuT$?z+u^WMLIX$prR`AoQ&lkuyuNcl+75+3Ru+-K z8@dLi?QpoFkOuA^lD0$P59Rww;H;ke(sn5P{%`>ayz%z1v>gtY<0%h;TO_&f5Q5{Jl70|2(XmDgfHYTQ^H#gFqRHn zu|Ie@d!N3|&l?4RY~fd2j3MWGZv2&F7VO%l0ZaMcoW)=nHh!P-miX(Ozu>Jd4m=8+ pS@o24#=w(1@&-R*r5+(M{tFpJfIJ1cBa8q5002ovPDHLkV1g7-UJ(EQ literal 0 HcmV?d00001 diff --git a/images/tabBar/home.png b/images/tabBar/home.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0ce5a83a4ef516a18973d6e30e3fbb2b3cd5d5 GIT binary patch literal 928 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 Hu0mjfsH8Nw literal 0 HcmV?d00001 diff --git a/images/tabBar/user.png b/images/tabBar/user.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb17a7bf6bf3ca821bf414d35793020adb48ed3 GIT binary patch literal 1005 zcmVPx&r%6OXR9Hvlm``Y2MI6V!zn9%6Q7lAMa06n&U=KY>1PMVsWPT6gMf+#LTqNM3 zG*x>j6r|$P>PJv}`i6VZ?jfQWoLJ3ISk zE|*Je`c>LG18c2^ZDFebhm}%q>=|&m4Dv39l|CYpbtw<)86FuKY3uCl{DX)p3(J*z zerai`E1S*!VqXHjw_`u*BjW@_tv{aMIesjPXL^@H8kx_Vq<2fzRtj|@e;uB z%*@PNdmb+ypr_zoPRDSBs2~kGH1N>0=`DGJt0RJYIf((_E1N zj1>xn%eD*bUghQm*rkqL`*;O5Svix*Jep3Y4<<<>r4qQiwzhVwzrTOg70}x*5k=91 zK@ju;Fu!gQIYLC8z<+My27IBkja>uqBN5FcNirRV;omNUu$tk?$;pRXT3U_)I11oJ z09Hw>0w^M8#-{*`20<{^*VlKuQTT>{qbPbl2!bKAsEFu5qv8#=TM?0~A~GC?;rI3W z)C7*>_$3iJPejkv6Y})_=OjsTVHjTBPVb(;6B83pr&6iU%Aeg6iO- zi!O?y*McB0uuk=9g;k@mh%5sbV&+TR9voWh*Gnt?3ty%_bVTGNGk;#u+9-+X>FI}- zmzVz{q6d5!dDOVu-rk<+?d`o|G&g|bI5ykWHy(|=Nr}i&W**xLd=bETZ!Ug?-cw4w zvlZBkz=W6m_*_v+ng5Px(H%UZ6R9HvVm~CuRRT#(r&!M(;W+Rfl7Na9^(L_HPNc=#QF9s({aNQlD0V#|a zpyMS2#OTxpB*DNC*aq{BR3{i#y7FS2#196epAh^aiL#h3NIGU21emk!%6;^1tgcGe zp4(Fx_fwO5p8x-Mp8K40o>Rg-_Ru}X3njqp)vUlHwG8nxfSDjTMiRjYgZMNt9|bOV zk=GZ^H9Y_uO%;Zxwz5M zrhyYpjjbR^!j2(wt7Yr^Ywj3u;>|`4#GPgglQFE zOg;?0(9;vHdcyCI%ScEACpNEhvA{tYlXPQ=b(dv(%NH_Q(!jCT*K`t~$(W=Y%Yfgu zy`@e@OCI<&PY6VnGA8NAaZwiz;7^1z!`M**_Qm`ng1v+dYtm(h|2j&59KoK}i} z5wq{ypI_j=8druuP*W0&-urj8=eHz=8ei=skfKG${(@Z}=6BHztzWSSphGfsH$e@% z3U+^--)-%jrdcZ;Q+u*#b~4Q=+#9|&Bku=?K{3=&udzT*M>7%E7VJ3?$TX|}zL(x5 z#sqFOENdY`gRG%3p22N}Ek0ARrh&bH*x+&R1tdE*=GNwYpRV)b4!4)dOs{eqo!f5U z)-5CLIm{OTv9WN!Pr5@JFKIf%<3)O^t8Jx~B~Ah_V5V6FRE&Ol^bzrCCJtVV!~(Jl z>~?ck0&J#^&BiDN4!P&p%c#8MriF?i1P^n3aNzgB{;KZom{~w&y96&;^1yZb&DlEi z*~B!H2~QF*{eRak1~YK+pKa`CX8b5f{7@8~@;!BQ{Ap$qQW?HhuT5hnCrH!)n8O6A z#$^nUfEXC30QQUFc(CZR;6S$USpi?IuX~0W9s(@@V9i!Mn{f<8iTMNsS|9wR^Sewj z69QjZs?7tT352IJ2`PGi7OZ=x`2r`>>D?Ci`f}~DgwE~8XIBIwC&T=$g|NEF7x*RP zqPzTxb14Yz1atK%M>atp2OfeBPjN?=FYUn*SzNP%2p_33RiVR-l_j5deK2mpj{b}+ zpI?Z$xI{pK3L{k-3=G1mJ4y~5zhP)5Yj|MMOHN&gBdUy4>JU&1^5rw{H*|* zR2nJNdbjk@@wZZd`xm|#B!aQePP&H~N6QX>Y5e#6Z%OnooOcGmQyBd@}$SfJXsL$=%VELV^h)FnrVF*5)zTlnk4ay$eBEHSl+VE3M_<2>n<*eE`sR P00000NkvXXu0mjfGe{KL literal 0 HcmV?d00001 diff --git a/images/tc_bg.jpg b/images/tc_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b40280b0c798440232e9dd5f568858b18058e514 GIT binary patch literal 54791 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 literal 0 HcmV?d00001 diff --git a/images/tian.png b/images/tian.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8b8b483c4f417d26f07dfbdf387a91420b7db8 GIT binary patch literal 1495 zcmbVMeNYr-7+shNfx8M6=X!H2kdgkhA`9{G*-Oecq4f z_dLJnYwHT~RwPcHI~9VUL|3+h)g&2x6DDilU(UBlnn+f&O4OC2Uk!0GfHHid7r?F{ zR|Z(X`Ks3TgER}naTtj_cB)fGJL)1@zi)545qAP7_r4hJg*g$dhq<8~Qs9X&>M z@VJUvVbk3wRpKsy?V=1|(r7_=lZApQ+K7=9Wu^=;Zo){^M4*HT!3oA}V$3)^@#r*f zvd_=34(Eg~ZD-S!tE$AHXebmih6tl5m!TL<)2InYaU9V!5T!~`xiBIq`j`a=P}j-rYh8zx^4Xhq>F9U{Lj2n5yTu<5iLqc7lNfQ83+FODG? zZ#5%U%uFM+73UDrVj^)r4!jg$j@fw_9?K+6W-F2Dq_c1g%d*lI%;L0LNW0nLu-ZvH zhII*w$_YG(`3`8lC$Jfh#4>gnaH=SKM6oi~1qJ1zDk|lo1l#T7RfiWB2LzuOQc|O3 zx*xRz$bt31=aj`DJf3GJ@DL8TpWsL{pb!iLIKp|&7~-{hX$1H4JO+H4Abq+Cyzl?! z57kJa(PsHi^Tdv{j*KoJjDog#Fib$uCP>ys<>QNM&OlJyn9Gsj2@n6i+r7k5IOpWR zdpjH0l-vbeR^%mzVKG?L8*x^)pCkI5x1b{SP(dV;Tje^iu$$}XhR@{GrJ~B+_fMZ0 z+*32!OI)@oEw_jMIP$G+j3P!yl$IJpYDeFj$)-4F`SP3knWagF+Icx8$?TTa6*s9h zCt&Nrjy|>I!i*aWhqi6f@6A6@*t2V9b#H=;EKiv=rG060(TqvYpAL@HBHJI&7<_W` z;SQ_*so^hAeR>yf{`IxSzc$Qn`_46cLH(Rjs^3=eVZpim_Y56JHw+H2f6sJAvXfKw zpuNFE=dNaQhElJs8p)l$>+9;pO)bGuqHOC%rI(JN8^`7kf1!WktJb9J^aeKPh<<1X zRQQp#s=>CUrb)QeRdMygiSE*4&C6z8zW^1lZtz6fSQnMr`PT5%ea|({mFC^sbK8@6 z7}~$@AUpR){|&>f*`}h_r&l%J`N`SyO8+xu^=B&@yWRcwu5Md$E#H5+ti7Re2hK*> zbzN(!K1E!a)+H^tw6|yb+YR4$PIA>W-JKsI>ke5~Ogo(`8IJ$_4ON>WbQMgwEfjaf z*S8NEvVZdso$u+3ihyHBR2XFLHuNDr~zu->){9ShN z<@&XQOOCJakkU`qKRdnU#H=5nJAc;Y$4!QQOdCiX=}LM%`m1$i!*LXk0T2m{K@uq>m4JwpKqUl<0Hc?P z_hzRH2%Rcv)E9qJh)f)3BOu7>bc&r)F>5zMuuLX{BnX5cAa4OWmRmW}1zH^uV+<CaAdF!WFb+lIKoY|d5JOO$q-6#ak)dNeufwZhR3^buB?_Zb7*@+b16e7*;xxPoM*!P8Vz3A3?{`usSG1Q+<+RuI9y@?DL58Eq*6)( zOZgZ^@bv%9AH<7-yv_2T<{5j%ccgdwY83dxt6^fS`~=zgQAzI0%Mb{Bnl!2fde@)F zYI9drZ(gG?V+iCs{J8F;}*qG%Thp-Z+z>-!@fkTqxbT+yWF93 zW@M#Vwg_T9B2&QPmUgf{AT79CQ+i*}v~o+QYh2vkTdGN*&y)4>M&a+CgY_|C?z8^c zXTL_)He32mt}Aa+ThH3c+!tlrmDPM-nk%V8(E3B`&>%+9}nUb8cwRhsZy2cw!AY~bhf$PHQ9mT0j zE!PjDH+5lM`l0WYyBp`9)@d3qGV+~4>mFp)wd$`HWex?Ldb|h84>zUfUp#Xp);+Pm zl3FkBIJ8zj`I_nG0SsCy&!kAId*&aLexdbetuS3n-mcth8tKMdeznL zW@p3hYr^ZfHG@9M)2TtvtV_qcDqGqo(JR_!zTf)66{_uN%NMyHHywBwH7!(GpiR=2!j$pbB@H literal 0 HcmV?d00001 diff --git a/images/user-bg.png b/images/user-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a71d48581c23c3195456576a89971fc9cc6415 GIT binary patch literal 7507 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 literal 0 HcmV?d00001 diff --git a/images/userHelp1.png b/images/userHelp1.png new file mode 100644 index 0000000000000000000000000000000000000000..22442488edd2b43405fc4aa66733ed5d0d4d9da2 GIT binary patch literal 2822 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 XJ)Ivng+r>~00000NkvXXu0mjf!&Sf% literal 0 HcmV?d00001 diff --git a/images/userServer.png b/images/userServer.png new file mode 100644 index 0000000000000000000000000000000000000000..292909c60de9671c363ff9a4d9a90a45a00cd4f2 GIT binary patch literal 1871 zcmV-V2e9~wP)Px+2}wjjR9HvNmwQmu*A>UV=PrvxQ=@s9#;Rx#dD$YBPGgg%rcD$<bI%ccjz9Svvti6|Pc-KHLo*J*VgNxT?iautf-V3Z1R9{E z+CIfrcWlnup0NaB)No7c3%?GfUjg~JCk6?*BEZh;lkWWG@xYi*Jvrmp<1t)xedR=( zbnT=dLvSnNgdN~t0BN8?CkUH>Qvd{z@=X!UbQmIe5lU@15|(zxPd#=MO<^t`1{NmNXVF66no<#PmBvO~?=H!qR@>37}iJCmIT;TZG32 znB6Bx{?@P)Y};g;3>dV)M~?{SDM?DLxPRBc%5UQ;x(sW6-d)&qzb0Ka98U=JwoDX_$H z$E4hfz?e^?TMO>BccWHB!uz*zWzB-L;*kJHgp2%p(HjDM-xM&2O^3r$_C%a24p1<5 z2xXZ&&u^_?6W}LRQvEuP#Q((MIyU; zLCS{6Q}3h-__hE(9)dY-lRx%)NfLm&t#;iA;7*do)eBNrjv6ldR8cV?Nd*3>Ciu)_ z&y6&S>>kL}(bIuIv(?+W*k-dmsUSNb)UbGcr7|S(j4L^pkz3JJa6h$IrwF`A{X8M( zm7p9DH3p`kM^1EI#nQ=lvlSxKN$#o)UHRQnz!g6&z%Bwkc0-3+EtV4i?->WMTe*Oj zA+P{=3B=_?WoI8iR+b*B?=o^RO~s`GNr0dhE* z$xY672Ej$0uA1sCH?jdNhlmwq4g{%yj3EKcVvRN}db5S<&`{?-dy97i$Ta^t{gs7= zRx0ICNJ6P&?;yDN=8_UX62~n{g50u@#Pqo4(gOm-JL?ic0SDQqpzUBtVt`Aygyzz2 zh}h^-(;&E{vt?t3quHSd&jRwk)+{KSpYX1;@q}~bOBMBDcg~jt$Ge70K6lVF zII@=zvv8gi#d?Y~eEiY1)5jhgzNuVT|CaT^iPNr%;0q%G76-+-hFj?#&IV#jclYHz zmEoJZ-9=&Odh)r0M+F$MNquKHxRjRi5hJI;EyaOx9`$0bz*Abv&GPZoNKO?6#=4GN zN^5zyV7P3hzD}89wm+kdm}7rxYx&Or8Ay`=DV!2#R7t;VaiUds*vGDtpG5D>F-*yqcY_^Q^5H$~)` zesA^0{D7FgPIxTe>h{XtfOr-_55?l2?;qK@s=ac%kk6}$_G$ZP#1EQB+|Ce5?KSuL zz-R_Ajl`ex=0!j137B~c7MqUG^7j!8PqQ zeiWmP#9uFUo_y3CfYQ%bt%F9kR+5(I7gadaX^-Igy{=lX1bfUGwY%Z^LnX<{MxW6S zsuluL1>lSS74I7Xf3SaU)a#Dl)_hP^NFvDUZ1oi(@^bqb8GNVy_od z3VfG;@?3k(gf78hfR9k=hxb1i{k|*P9!GBA8ZXq%u^9I41Pb=~MICVGPBgnD&|{xGJI37J2>a{b?0jzp*g(? z{788*$8Xt=kdiemr( literal 0 HcmV?d00001 diff --git a/images/userXun.png b/images/userXun.png new file mode 100644 index 0000000000000000000000000000000000000000..a59d252c2fb529bf98ce8c163dd02d2bba73feef GIT binary patch literal 1331 zcmV-31Px(?MXyIR9Hvdn14)FWf;f5&wI`lQd6@GmOo}Qmrb%9TeBbLB_Hmq4I=dY1$Zq(G4C9y&jx#zr3J5oz8_nh5K0Ae-+Ab?1PXaV~fFf z2c!ZOfWf#1;$p4%M42j}5*(L25@8OEt0kgj)x>r>ChY9G+Mhqu*E#5x%N6cRAN0BR z&N)QP3*C~b?lbWot?%1R@ay3E}GSH$I9ZLuq&R_C;f&hJ?;CG%SHfX}%)_d*7 zmHRyRL`j_%fJ8BXNpA5%$XF`qI1x-|TREfDTMfo5j>(z!YKY9D!oxQLbzJ5hZJO8* zg5yPE#wJf;`|HYZ){&Z}FI)yN!4{7BcvsKmc}^{XtGtm$zc@+2qqeOD=<*b_%}|G{ z@J=%Q`UR(|v57d(n$~u=V>8O)Q$e)fLC3v)*T+s+_f=n@Cg`#9*7@^HA}8bDwad*D z-1?Md*6s5~PL3M!htsD{BXcILI@+lOXOt(r2q~Hzj^d1G)e-Asue6Nq3on83keyf~ zF^BS-zEOhXZ42W~AzJO@sTF9_i5$+OaExODtW32@&UBct+D_w)wAmBLW1Mn38PFN^CK7!xEc_c z8J$G9!ay{!ebWtism^zFUwJIf*KULaXNk?-X@v}Ic7+R9Kr%zmJWyj7?l{j`qq#Bd zqYC=w-^xB`Da=K2!#@>uAU=-Xz zu%T3hQa!zTP1tb$Pcs(~<1m<9A0iBR$$}F-%RaH48SN+Gx)t}EesLB+bQs2}A-`xu zvnZ|Vw~%hDu`jCuK$5CU_&RFP(<+00L4sD!IFOwSrgBw72EV66w3v{iHHfPQ}q)Bv;`z)u?YKTb)N z!+w+mrsI~pvF7y%Ys#GpMvb1dB}3IRBsl+}A}^6_U?9=6sN`!^6aQyL&l1Vc86w5A pc$4+_hSCZNPATIZ6y4Que*yTrxHszG45a`7002ovPDHLkV1j_$hByEK literal 0 HcmV?d00001 diff --git a/images/userhelp.png b/images/userhelp.png new file mode 100644 index 0000000000000000000000000000000000000000..edd42e2d995d35ac395ae0d18a3cf4adf9b87202 GIT binary patch literal 1453 zcmV;e1ycHnP)Px)XGugsR9Hvtn0;(hRT##f_pZI|Kv75#5?BO*$8 zV-!o*7wd2w5T?6IX=Uy)*9r9@b@F0GbSFfz%?2ZQN~qN9K4r&Imw3(2GYvO=Q=mx6 z(Ca}NZ`S;79l^7rD;0;|wzQe?NC`KwqR;m5*zs-wSC}z0qanm|?qa|5^p;6JBfTNq zG&eJc`UCq!P+%r#IvN7qH!YUZV@?U}(S%P@xKPH%XN~(DKz_=g#1#m>1$co_G*BM} zk>>>%V>nmP)qno%tYjHX3YWh*(127+NgN6S8xP<5pa(9O9t%Rr-yAFk^lCsRC5NP^ z`%QIaqVa@q`PG49AzKaJS|?c1y;k+4%4%K>AG8Ji-GJmKT|SYSomG~OyT{|;@)~Kk zU-h2^WLz>c67O`awQfoU79M}8mZPk}Kret{3Fnag=Wp~){>k;Y7CjyZSLoIpplnGB z2KIZe_hcV+O%H@M1@6Es1zZAfj6i+(h0x=(N5Y9xrlh%K>bSt7$~-!76o4`1hA<{CNs_Bx$yZ-i|6YCT>jTN@}%S zo%q^lxkxGOa9TSM~tv#(M_|C{XD45z=seTjI z#K0BT`qzWpXk?&^UIL5lhdY`;AX_23ljs9&YpiM*Zf1>thJc5RON(r1tF*qK5U!-w z*A7UL*^Qn;*V9_5z7Ws4uuHia4ZQh=c*e1rQ}sg{J9E3MQ15W)Q>OyUnG zxo7_>bwTt;?V zrYJfNLomX;A5XV9Y>|677OuhDCXkut&Hhr7>}he>BPX-4j>9q)-w6>Jn~oRBjuwYK z5DgKoCYm7LuhzIB!VN* zw0A`moX5LEfh@=H9a_+cqZr5}v=!Tcn7zn>7#Zx!ubK;1-17#5^2zmh3LK z$F++|dx)~_-UbC?wjFHRwR8Y(;r4VgN6)UMcJn<%C}V|neYWBDtOJ0lwy;+Oksg4= zTmWWjT=zBag;x%)O5DF1_O0{wFjM{Aw;y7nJv6%q{?-xb@;_jk-8_E~eQP*YD1#%0 zWVr<}yTmCm3Egw`)+J}MjD-zS{v8n(F52!bRx-H7s4GiN#r`10@!1>pxHd4+T+?u& z$*(oi9tiqg7lA_znxF*NQm+oUeHYI(Hs96$8NE&j_3tOXA6hV00000NkvXX Hu0mjfwj8X3 literal 0 HcmV?d00001 diff --git a/images/we.png b/images/we.png new file mode 100644 index 0000000000000000000000000000000000000000..58621933fc0fa206a417fc77d2d2c9e61290093b GIT binary patch literal 14799 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 D>A0o8 literal 0 HcmV?d00001 diff --git a/images/wei.png b/images/wei.png new file mode 100644 index 0000000000000000000000000000000000000000..7acb7153f7e4187843a6df6e55767ebba9af9b20 GIT binary patch literal 5289 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 GcH>{o7C@u` literal 0 HcmV?d00001 diff --git a/images/wen.png b/images/wen.png new file mode 100644 index 0000000000000000000000000000000000000000..46544edf992e5d626bdd267875fc69ecda25f35b GIT binary patch literal 3089 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 literal 0 HcmV?d00001 diff --git a/images/white.png b/images/white.png new file mode 100644 index 0000000000000000000000000000000000000000..9d08d05c7f5898493e079f1870ab7af286c0e0d3 GIT binary patch literal 1906 zcmaJ?4NMbf7`~Ph%8$s8V`yNUXF(DA-$Gmd4tfPTtrBds3L%vCgbvy}+5-x1T9_L! z6^qQoAHrl~#yKU58w6CypGBlnORmK?ktI3{1|%Br91K#Kbh%hM zrZbclc4M&s;1XukXi2Slm0XXTxH{U0YcmlP8USJwY=lmqkC9LgmTNS}!Q-dfVaRBR zgV#&cd^MrK@{Flv7HnP*Fj5EEOa*4E+!hBrdF9leHuGS} z=|bkm!PBC&>NH4!TQEq%jpFF}QPEJej4O~tM~kB)At7HN;qgU05uYOz$;EuRSP0EL zFcr;W*d$L!lV@U4r#Lu|Bndf>S5i{KEfH~XOD<0!lgW5|Ax|jeP#zp>shQN-IA-h8 zSq2od>McfsG~#B6X4K{2MPwXIDVeP$m;5 zQu?JyGBio56rsu_WuinNQ@}G=!)tP%!HWJD%cI2b=;prE>{$~vLG*TRbg9GK@MC6b z;w{u@@02_qp>E7g6`H8AUA^~vqPZUlwD);6>pES{9lmAqfJm9EC$*Cz=fkxv6>n*N z+TphJ#K8e?&7w8e_f4vPOTIhM`&@gX&S8yD-8fbq>HunAU0~IJ7aMtbH3gi$J29U1 zEa~QuBW>J&WZ=7^l*(;m^@5nE#gmm&jbYW9A1*x0Mj&5kV=~hN5~@KKn+f_cnAJcz zY9EL|U}OcX3jd&xCE3zJl3#a+`DbUf2POpuziUU*OFWll96i*U*{lM}K|chNg}5)b zBRTs4raRltnq{Flia$D+8)`p%Q~cKkcgV3f%#JYKp{qgN$3o|UyB{?qw)AhcjP`zb zuWX19@SFkQ^=mCudJ4U7?+x|Q&W}uH+GaOfP+K6^QKBJLlx(^rT zdq78G)$gxkve<{H5D2p>DrI+M1mviG5E(BgXfnpK7T6{^Zfyy|L?tTiUkv zfPD$xcgDHb8GU8Fql140-col~dslPT)qQz(8TT5;zv(O2YaB!~d31r3lf`xba4OKJ zsD1LF05R;R559D!2_N-27BIi^DuyVs{1G6N2k7l zye3V-Q{Vy9uOY#^F7)1#o@uGKcbu4tFJ9QHC8Pn79zon68RahC2LPVU4>tGNi?iQ+&FNc`td>OfEj1jWMMo zj|+!@E|8-42fd`L95pKm;Pcxz0%8vjA3y)zkprJze#G};)U-Z$==SW?9pGGmXU(27 zomAwl?W#-d?~rAp_NP8Wk&36v}B9ZQfQABf0X)^?yI zCMeq}K6Qao3SPW?<>KEL8m~ux(KWodi4(G9o3%W6OS@Z8SXF+_=FKMq6FU3MKin7_ ztH=yX-RZw0bUMk-X+DBQj>P}~ literal 0 HcmV?d00001 diff --git a/images/xai.png b/images/xai.png new file mode 100644 index 0000000000000000000000000000000000000000..1f80a80a2fe33246172fd11df3f44ccf86bd2754 GIT binary patch literal 4290 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 literal 0 HcmV?d00001 diff --git a/images/xia.png b/images/xia.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5c6192122e531489ca12d830780f9daa564101 GIT binary patch literal 1704 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yNtU=qlmzFem6RtIr7}3CnZGjj!VOFctV zb8{1O9R(u;LsNYNV|`--T_a;F69X#~BLyf>0@_xTl4cd;;s&(~$g@?-C@Cqh($_C9 zFV`zK*2^zS*Eh7ZwA42+(l;{F1**_3uFNY*tkBIXR)(42l3JWxlvz-cnV+WsGBGhJ zzqG_w3FuOY7jg@Hec=Y@6+;6G7-aeti3R$GdItKrxgdXmRTq~8r6QbxRdsPlWkITb zP-=00X;CsTKGKw7nt@@5-y)DgplhuBi!yr}^vxTdrxuc<> ztA&NLk)efwi?Nxpn~RBoxdlwGXI^nhVqS78%R1>4OprQsRLL0aGN13C{{Z4m>lZ<^gk15iqN0eb^1mzf31QT^vIyZoRqd zIO&#wfJ5MwrN84NV;Fe!dhY1%-F{Z7aJ7AxaqwibV-*bRTLl{&9267;1UQ~t=zXwQ z_TS9)mTBf394stMOpJ{%IgmUdA&4m`sxX9L<{_!VAylxj?(lod9^1KD>6gOxInJtG za_Zj^KK@P%t$ocMEnj{MS=*U}aIyr|PdIjtzu#ij9R(%Dr*SQb3Vl}Zfy}FNEe{|3 z$!1j&D&%0%Iw8{$edMj8z{CkZ=N$e}u(!IH#y#!W%&pbtxuqCkho z8ApX_hd*;4nN*S2_`sR5F+!q{jtDj3envwR)ZX%utfPC+w@<@QA zQY;MU)lQHIOVbaQL;J-eVf;dl7H_c_2=CC&R`GUVa+tGU@{Sx>{h^%#Knw4&DE6uB z5}Z=4evlWDEI_gQ<7RBU#+;A!Sw9v@r!q&XI*I*X@OiD;j|HFk5DFn_2Pw{B$q6dt qz~*i*e%fE{2yYS#Ov=)RRe~Y$4xe^#*4c-ky2I1e&t;ucLK6Uo!WfeP literal 0 HcmV?d00001 diff --git a/images/xiang.png b/images/xiang.png new file mode 100644 index 0000000000000000000000000000000000000000..811c2bcfa87c90686a57e98b9b282498710ba8b7 GIT binary patch literal 6780 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 y{{#2BH#ffzNKg3ECf z%Us=xhtg>F8LEUtGEp{Ppd{2x)MmppskIcEMhguyX;EbwP67%%MWqokZa1G~04hw# zSj3gFWLgQHs*29i;qh6q3CgTAB_CsiiGWa(fFe-iBnp_+=^DMjBxH>83aGhl8)5*X zCS;nB@my4*EDn$mIvn6KgFq!KhzIcaOqk2#A-p*Nn+0cRaFpxq9rS$m~)LNPB1+hjy7APuYkO|d7Fp~wT)wX+$TI)$U{;!Oe zTI&-swKycl^@KsEr1FvMI}WB|_i9HrLrRTcflfsw1x=R{N`o5LkTFsrgF0biDonsf zF<8lBBOuJ>vcO;j2?kLvj}3C!2oJ^h3WUu^#(7?b4-S?f;wU}`fe|hYNAmedgd~a^ zC69(h+K4G|mFmOEka;2gbP^F390?QIMxV6ksrqr2v(1 z5Sz{6C|NLv#~8z7|2KXRB?__?%YTYze2c0`+w?^%P>UDMglnh{(owAvP;>ZQ8g0U( z7^yhH)Z3nTLf0GaDk?^9m}t(!P7G7N)qSNg)-O3#j+(856K4rIaVoqyLI z$ADk93p>myiyu^WO||T~B%{9@Y7XgWgkTKl*$s3?EG<)qkm z={2WgT&!bjx~w|B=I~aBx}c|y0wti{H+9IV$t`b2(tE!VDu-wr1xZipIcz|Ll8r6gI&0J~D_DvNuk z>~-JXcO)5!Q9Zh&4i;om`C(D$6@8iGCA%YiiL{0NcSV0ySCsT_TAFU>uMEVGFW;Iy zJ@-<;D-{gI9<@nFH=tW;P*Y#yi-&?#r`n>zC30~ce`$6-? z)85U70q@QOmbA{sL1Ae`#-W^}SMxIEM0xtA+CLX=_Pcyly`wzTnmfhr!>YyYN)cP* z^J~aJhxfwR;{FSDAAjd+*cfKswk8EslwJJkNFhGM!OIbBKh{$fOx~>Li5sxtiX^M% z%!RX`%*mgYb1FM?bz}y;-MC0@7e;U6KYOos@Rak>s^Y?`-ur(Pl{w`J2bgiQ>eoD2 zcaEiKn6DGpeO29^??FHBrtdR5+G%TnyNi8-j63IH5jF0+J;^f~q^mE)MLvI?sLA!Z ztD0T_20-yXj^&fo_T^2bWyd{6-nQ_29uBqI-&|sy%eT~2hVF2g;FB{g$Xe@F=t9cf z>g___ylg#~1a&cXu8#j+zI%W*tM7Z&EfMjy zE$|E8lbI|EytR42`$9K>m$dA5sy(oA?XKNV(z|aIFMGTKd<0o(ym`(6zj=97+kQ4N Mk+IU+h?NEZ04)re`v3p{ literal 0 HcmV?d00001 diff --git a/images/xunzhang.png b/images/xunzhang.png new file mode 100644 index 0000000000000000000000000000000000000000..562f89eb3ef95a6a62a99d8392a441b2281eae48 GIT binary patch literal 7710 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c0f8ab2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "科大工会健步走小程序", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/packageA/user/editProfile.js b/packageA/user/editProfile.js new file mode 100644 index 0000000..7c836db --- /dev/null +++ b/packageA/user/editProfile.js @@ -0,0 +1,147 @@ +const App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + userInfo: {}, + UserCategory:[], + category_id:0, + category_name:'未选择队伍', + isLogin: false, + show:0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.getUserDetail(); + this.getUserCategory(); + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + let _this = this; + _this.setData({ + isLogin: App.checkIsLogin() + }); + }, + + /** + * 获取当前用户信息 + */ + getUserDetail() { + let _this = this; + App._post_form('user.index/detail', { + user_id: wx.getStorageSync('user_id') + }, result => { + _this.setData(result.data); + _this.setData({ + category_id:result.data.userInfo.category_id + }); + }); + }, + getUserCategory(){ + let _this = this; + App._post_form('user.index/getUserCategory', {}, result => { + _this.setData(result.data); + let UserCategoryArr = result.data.UserCategory; + for(let i=0; i { + _this.setData({ + show:!_this.data.show + }); + let status = result.data.status, msg; + + switch(status) { + case 0: + msg = '修改失败'; + break; + case 1: + msg = '修改成功'; + break; + default: + msg = '修改失败'; + } + + wx.showToast({ + title: msg, + icon: 'none', + duration: 2000 + }) + + _this.setData({ + category_name:result.data.category_name + }); + }); + + }, + + /** 标记保存 */ + saveBio(){ + + }, + + /** + * 菜单列表导航跳转 + */ + onTargetMenus(e) { + let _this = this; + if (!_this.onCheckLogin()) { + return false; + } + wx.navigateTo({ + url: '/' + e.currentTarget.dataset.url + }) + }, + /** + * 验证是否已登录 + */ + onCheckLogin() { + let _this = this; + if (!_this.data.isLogin) { + App.showError('很抱歉,您还没有登录'); + return false; + } + return true; + }, + + +}) \ No newline at end of file diff --git a/packageA/user/editProfile.json b/packageA/user/editProfile.json new file mode 100644 index 0000000..c9cf41c --- /dev/null +++ b/packageA/user/editProfile.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "编辑个人资料", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle":"black" +} \ No newline at end of file diff --git a/packageA/user/editProfile.wxml b/packageA/user/editProfile.wxml new file mode 100644 index 0000000..687a23a --- /dev/null +++ b/packageA/user/editProfile.wxml @@ -0,0 +1,87 @@ + + + + + 姓名 + + + + + + + 手机号 + + + + + + + + + 身份证号 + + + + + + + + + 队伍 + + + {{category_name}} + + + 请选择 + + + + + + + + + + + + + + + + 确定 + + + + + + + diff --git a/packageA/user/editProfile.wxss b/packageA/user/editProfile.wxss new file mode 100644 index 0000000..a05097a --- /dev/null +++ b/packageA/user/editProfile.wxss @@ -0,0 +1,113 @@ +.page-body{padding:0 20rpx;} +.page-section{ + display: inline; + justify-content: center; +} +.page-section .nameBox{ + display: block; + /* justify-content: center; 水平居中 */ +} +.page-section .nameBox .textarea { + width: 100%; /* 设置宽度,避免占满整行 */ + height: 60rpx; + display: flex; +} +.saveEdit{ + + width: 90%; + height: 100rpx; + position: fixed; + bottom: 20rpx; + left: 38rpx; +} + + + +.bao { + width: 100%; + height: 100rpx; + display: flex; + align-items: center; + justify-content: center; + position: fixed; + bottom: 0; + background: linear-gradient(to right,#25ca9f,#2ebcc0); + left: 0; + color: #ffffff; + font-size: 33rpx; +} + + +.isRuleShow{ + display: block; +} +.isRuleHide{ + display: none; +} +.ruleZhezhao{ + height: 100%; + width: 100%; + position: fixed; + background-color:rgba(0, 0, 0, .5); + z-index: 2; + top: 0; + left: 0; +} +.ruleZhezhaoContent{ + padding: 20rpx 0; + width: 80%; + background: #ffffff; + margin: 20% auto; + border-radius: 20rpx; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + position: relative; +} +.ruleZhezhaoText{ + width: 80%; + font-size: 30rpx; + color: #856d5f; + display: flex; + flex-direction: row; + align-items: center; + margin: 25rpx 0 25rpx 0; +} +.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%; +} diff --git a/packageA/user/help.js b/packageA/user/help.js new file mode 100644 index 0000000..e0dab21 --- /dev/null +++ b/packageA/user/help.js @@ -0,0 +1,37 @@ +let App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + // 获取帮助列表 + this.getHelpList(); + }, + + /** + * 获取帮助列表 + */ + getHelpList: function () { + let _this = this; + App._get('wxapp/help', {}, function (result) { + _this.setData(result.data); + }); + }, + +}) \ No newline at end of file diff --git a/packageA/user/help.json b/packageA/user/help.json new file mode 100644 index 0000000..446d133 --- /dev/null +++ b/packageA/user/help.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "帮助" +} \ No newline at end of file diff --git a/packageA/user/help.wxml b/packageA/user/help.wxml new file mode 100644 index 0000000..ad69b61 --- /dev/null +++ b/packageA/user/help.wxml @@ -0,0 +1,10 @@ + + + + {{item.title}} + + + {{item.content}} + + + \ No newline at end of file diff --git a/packageA/user/help.wxss b/packageA/user/help.wxss new file mode 100644 index 0000000..f733e63 --- /dev/null +++ b/packageA/user/help.wxss @@ -0,0 +1,14 @@ +.help { + border-bottom: 1px solid #f6f6f9; +} + +.help .h4 { + font-size: 32rpx; + color: #333; + margin-bottom: 5px; +} + +.help .p { + font-size: 26rpx; + color: #666; +} \ No newline at end of file diff --git a/packageA/user/myChallenge.js b/packageA/user/myChallenge.js new file mode 100644 index 0000000..e9e2e17 --- /dev/null +++ b/packageA/user/myChallenge.js @@ -0,0 +1,166 @@ +const app = getApp(); + +Page({ + data: { + moretab: 0, + countDownHour: 0, + countDownMinute: 0, + countDownSecond: 0, + // 活动列表 + goodsList: [], + noMore: false, // 没有更多数据 + isLoading: true, // 是否正在加载中 + page: 1, // 当前页码 + step:0, + sign: !0, + activityUserCount:0 + }, + + onLoad: function() { + let _this = this; + // 获取活动列表 + _this.getGoodsList(); + _this.setData({ + step: wx.getStorageSync('step') + }); + }, + + /** + * Api:获取活动列表 + */ + getGoodsList(isPage, pageNum) { + let _this = this; + app._get('goods/listsMy', { + page: pageNum || 1, + user_id: wx.getStorageSync('user_id') + }, result => { + let resList = result.data.list, + dataList = _this.data.goodsList; + console.log('活动列表',resList); + if (isPage == true) { + _this.setData({ + goodsList: dataList.data.concat(resList.data), + isLoading: false, + }); + } else { + _this.setData({ + goodsList: resList.data, + isLoading: false, + }); + } + }); + }, + submitInfotwo: function(t) { + console.log("获取id"); + var a = t.detail.formId; + var user_id = wx.getStorageSync('user_id'); + console.log(a), console.log("获取formid结束"), this.setData({ + formid: a + }), app._get('index/formid', { + user_id: user_id, + formid: this.data.formid + }, function(result) {}); + }, + submitInming: function(t) { + var id = t.currentTarget.dataset.id; + this.submitInfotwo(t), this.challenge(id); + }, + challenge: function(id) { + wx.navigateTo({ + url: "/pages/category/challenge?id=" + id + }); + }, + //签到弹窗显示 + sing: function(e) { + var a = this.data.sign; + var aid = e.target.dataset.aid; + var activityStep = e.target.dataset.step; + this.setData({ + sign: !a, + aid: aid, + activityStep + }); + let _this = this; + app._post_form('goods/getSignCountByUser', { + user_id: wx.getStorageSync('user_id'), + aid: aid + }, result => { + console.log(result.data.data); + this.setData({ + signCount: result.data.data + }); + }); + + }, + //关闭签到弹窗 + guanbilsig: function() { + var a = this.data.sign; + this.setData({ + sign: !a + }); + }, + + submitTeam: function(t) { + var id = t.currentTarget.dataset.id; + this.team(id); + }, + team: function(id) { + wx.navigateTo({ + url: "/pages/category/team?id=" + id + }); + }, + + mySignRecord: function(e){ + var aid = e.target.dataset.aid; + wx.navigateTo({ + url: '/pages/user/sign?aid=' + aid + }) + }, + + //签到保存 + goSign: function() { + let _this = this; + let activityStep = _this.data.activityStep; + let step = wx.getStorageSync('step') + if( step < activityStep ){ + wx.showToast({ + title: '您的步数不达标', + icon: 'none', + duration: 2000 + }) + }else{ + App._post_form('goods/goSign', { + user_id: wx.getStorageSync('user_id'), + step: wx.getStorageSync('step'), + aid: _this.data.aid + }, result => { + console.log(result.data.data); + let mstatus = result.data.result, msg; + switch(mstatus) { + case 0: + msg = '签到失败'; + break; + case 1: + msg = '同步成功'; + break; + case 2: + msg = '同步成功'; + break; + default: + msg = '签到失败'; + } + wx.showToast({ + title: msg, + icon: 'none', + duration: 2000 + }) + }); + } + }, + onShow: function() {}, + onHide: function() {}, + onUnload: function() {}, + onReachBottom: function() {}, + onShareAppMessage: function() {} + +}); \ No newline at end of file diff --git a/packageA/user/myChallenge.json b/packageA/user/myChallenge.json new file mode 100644 index 0000000..d08864d --- /dev/null +++ b/packageA/user/myChallenge.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "我参加的活动", + "usingComponents": {} +} \ No newline at end of file diff --git a/packageA/user/myChallenge.wxml b/packageA/user/myChallenge.wxml new file mode 100644 index 0000000..4cafd88 --- /dev/null +++ b/packageA/user/myChallenge.wxml @@ -0,0 +1,146 @@ + + + {{setaa.updatetip}} + + + 我的步数 + {{step}} 步 + + + + + + + 报名准备中 + 【{{item.goods_name}}】挑战活动 + + + + {{item.step}} + 步/天 + + + 达标步数 + {{item.goods_sales}}天 + 达标天数 + + + 报名开始时间 : {{item.bmtime}} + + + + + + + + 报名中 + 【{{item.goods_name}}】挑战活动 + + + + {{item.step}} + 步/天 + + + 达标步数 + {{item.goods_sales}}天 + 达标天数 + + 已有{{item.count}}人参加 + 活动开始时间 : {{item.starttime}} + + + +

+ + + + + + 活动开始时间 : {{item.starttime}} + 参与情况 + + + + 进行中 + 【{{item.goods_name}}】挑战活动 + + {{item.count}} 人 + 参加活动 +
+ +
+
+ +
+ + {{item.step}}步/天 + 达标步数 + {{item.goods_sales}}天 + 达标天数 + +
+ + {{item.userInActivity==1?'您已参加该活动':'您未参加该活动'}} + 活动详情 + + + 我的签到记录 + 参与情况 + +
+ + 已结束 + 【{{item.goods_name}}】挑战活动 + + {{item.count}} 位 + 健康步数达人 + + {{item.step}}步/天 + 达标步数 + {{item.goods_sales}}天 + 达标天数 + + + + {{item.userInActivity==1?'您已参加该活动':'您未参加该活动'}} + 活动详情 + + + 我的签到记录 + 参与情况 + + + + + 我也是有底线的~~ + + + + + 暂时没有数据! + + + + \ No newline at end of file diff --git a/packageA/user/myChallenge.wxss b/packageA/user/myChallenge.wxss new file mode 100644 index 0000000..d402947 --- /dev/null +++ b/packageA/user/myChallenge.wxss @@ -0,0 +1,559 @@ +page { + width: 100%; + height: 100%; +} + +.main { + width: 100%; + height: 100%; +} + +.head { + width: 100%; + height: 276rpx; + position: relative; +} + +.head_img { + width: 100%; + height: 100%; +} + +.mystep { + width: 100%; + padding: 0 30rpx; + box-sizing: border-box; + position: absolute; + top: 20rpx; + left: 0; + display: flex; + align-items: center; + justify-content: space-between; +} + +.button-hover { + background-color: none; +} + +button { + padding: 0; + margin: 0; + border-radius: 0; + background: none; + line-height: normal; +} + +button::after { + content: none; +} + +.mystep_two { + display: flex; + align-items: center; +} + +.mystep_one { + display: inline-block; +} + +.mystep_one text { + color: #ffffff; + font-size: 30rpx; + line-height: 25rpx; +} + +.mystep_one text:first-child { + margin-right: 16rpx; +} + +.mystep_two image { + width: 40rpx; + height: 40rpx; +} + +.qiyua { +} + +.xaiore { + color: #25ca9f; + font-size: 25rpx; +} + +.mystep_two text { + color: #25ca9f; + font-size: 30rpx; + margin-left: 16rpx; +} + +.lower { + width: 100%; + padding: 25rpx; + box-sizing: border-box; +} + +.more_battle { + width: 100%; + height: 60rpx; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + border-right: 0; +} + +.more_battle text { + width: 33%; + font-size: 30rpx; + color: #25ca9f; + display: flex; + height: 100%; + justify-content: center; + align-items: center; + background: #ffffff; + border: 2rpx solid #25ca9f; +} + +.more_battle .moret { + background: #25ca9f; + color: #fff; + position: relative; +} + +.moret::before { + content: "\200b"; + width: 0; + height: 0; + position: absolute; + bottom: -20rpx; + left: 40%; + border-left: 15rpx solid transparent; + border-right: 15rpx solid transparent; + border-top: 20rpx solid #25ca9f; +} + +.active { + width: 100%; + border-radius: 15rpx; + padding: 20rpx; + box-sizing: border-box; + position: relative; + box-shadow: #999 0px 0px 5px; + overflow: hidden; + margin-top: 35rpx; +} + +.textqiyu { + color: #121212; + font-size: 25rpx; +} + +.active_one { + width: 100%; + display: flex; + justify-content: space-between; +} + +.active_one_left { + display: flex; + justify-content: space-between; + flex-direction: column; + margin-top: 40rpx; +} + +.active_one_tio_text { +} + +.paihang { + width: 100%; + padding: 25rpx; + box-sizing: border-box; +} + +.paihang_one { + width: 100%; + height: 100rpx; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 15rpx; + box-shadow: #e2d9d9 0px 0px 5px; + border-radius: 15rpx; + padding: 0 20rpx; + box-sizing: border-box; +} + +.kuai { + width: 45rpx; + height: 45rpx; + border-radius: 10rpx; + background: #ef4e4e; + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 25rpx; +} + +.paihang_two { + display: flex; + width: 40%; + background: #fff; + align-items: center; + margin-right: auto; + margin-left: 40rpx; +} + +.paihang_two image { + width: 70rpx; + border-radius: 10rpx; + height: 70rpx; + margin-right: 20rpx; +} + +.paihang_two text { + font-size: 28rpx; + color: #999; +} + +.paihang_tre { + display: inline-block; +} + +.paihang_tre text { + font-size: 22rpx; + color: #25ca9f; +} + +.paihang_tre text:first-child { + font-size: 35rpx; + color: #121212; +} + +.active_one_tio_text text { + color: #666666; + font-size: 23rpx; + line-height: 20rpx; +} + +.active_one_tio_text .textnum { + color: #25ca9f; +} + +.attend { + color: #999999; + font-size: 22rpx; +} + +.numbhf { + color: #25ca9f; + font-size: 65rpx; +} + +.active_one_right { + display: flex; + flex-direction: column; + align-items: center; + height: 322rpx; + justify-content: space-between; +} + +.dong { + width: 330rpx; + height: 220rpx; +} + +.daoji { + color: #666666; + font-size: 23rpx; +} + +.baomica { + background: linear-gradient(#25ca9f,#2ebcc0); + width: 257rpx; + height: 73rpx; + border-radius: 50rpx; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + font-size: 34rpx; +} + +.enlist,.enlist_two,.enlist_tr { + width: 160rpx; + display: flex; + align-items: center; + height: 60rpx; + justify-content: center; + background: #48c301; + color: #fff; + font-size: 25rpx; + position: absolute; + top: 0; + right: 0; +} + +.enlist_tr { + background: #ff6767; +} + +.enlist_two { + background: #ffb20f; +} + +.jinxifn { + width: 100%; + display: flex; + align-items: center; + justify-content:center; + flex-direction: column; + padding-bottom: 20rpx; +} + +.dahcneg { + color: #666666; +} + +.zongsan { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; +} + +.zon_one { + display: flex; + width: 33%; + flex-direction: column; + justify-content: space-between; + height: 58rpx; + align-items: center; +} + +.zon_one text { + color: #666666; + font-size: 23rpx; +} + +.weichang { + width: 94%; + height: 64rpx; + display: flex; + align-items: center; + justify-content: space-between; + color: #888888; + font-size: 25rpx; + border-top: 2rpx solid #e2e2e2; +} + +.mukla { + width: 100%; + height: 83rpx; + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: column; +} + +.numbhsaf { + color: #25ca9f; + font-size: 50rpx; +} + +.dahcnegca { + color: #666666; + font-size: 25rpx; +} + +.quybn { + display: flex; + height: 214rpx; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin-top: 23rpx; +} + +.injmk { + width: 100rpx; + height: 100rpx; + border-radius: 100%; + position: fixed; + bottom: 40rpx; + display: block; + right: 25rpx; +} + +.jiazua { + width: 100%; + padding: 0 30rpx; + box-sizing: border-box; + color: #fff; + font-size: 28rpx; + display: flex; + flex-wrap: wrap; + position: absolute; + bottom: 15rpx; + left: 0; + z-index: 2; +} + +.quan { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: rgba(0,0,0,0.5); + display: block; + z-index: 10; +} +.denglu { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: rgba(0,0,0,0.5); + z-index: 10; +} + +.none { + display: none; +} + +.sdavdsa { + width: 100%; + height: 100%; + display: block; +} + + +.huiceng,.huicengt { + width: 100%; + height: 100%; + background: rgba(0,0,0,0.5); + display: flex; + position: fixed; + top: 0; + left: 0; + z-index: 10; +} + +.huicengt { + display: flex; + align-items: center; + justify-content: center; +} + +.qtav { + width: 70%; + position: relative; + top: 20%; + left: 15%; + display: flex; + flex-direction: column; + align-items: center; + height: 666rpx; +} + +.xuanzekuang { + width: 200rpx; + height: 70rpx; + border-radius: 10rpx; + border: 2rpx solid #999; + display: flex; + align-items: center; + position: relative; + padding: 0 30rpx; + box-sizing: border-box; + justify-content: flex-end; + margin-top: 32rpx; +} + +.qitac { + width: 100%; + height: 100%; + display: flex; + align-items: center; + position: absolute; + left: 0; + top: 0; + padding-left: 30rpx; + box-sizing: border-box; +} + +.heyua { + width: 53rpx; + height: 59rpx; +} + +.picker { + font-size: 28rpx; + width: 200rpx; + height: 70rpx; + display: flex; + align-items: center; +} +.guanf { + width: 70rpx; + height: 70rpx; + position: absolute; + bottom: -89rpx; +} +.heyuacda { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + border-radius: 20rpx; +} + +.tilist { + position: absolute; + top: 20rpx; + right: 25rpx; + display: flex; + box-sizing: border-box; + align-items: center; + flex-direction: column; +} + + +.liaux { + width: 100%; + height: 100%; + padding: 70rpx 0; + box-sizing: border-box; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + z-index: 2; +} +.yshuda { + width: 454rpx; + height: 72rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: #25ca9f; + border-radius: 50rpx; + background: linear-gradient(#ffa500,#fdd22b); +} +.liahf { + color: #ffffff; + font-size: 41rpx; +} + +.cavdsa text { + color: #ffffff; + font-size: 50rpx; +} + +.cavdsa text:first-child { + color: #ffffff; + font-size: 138rpx; +} \ No newline at end of file diff --git a/packageA/user/myMedal.js b/packageA/user/myMedal.js new file mode 100644 index 0000000..e7ef7e8 --- /dev/null +++ b/packageA/user/myMedal.js @@ -0,0 +1,66 @@ +let App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + signCount:0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + // 获取帮助列表 + this.getImageData(); + this.getMedal(); + this.getSingCount(); + }, + /** + * 获取图片设置数据 + */ + getImageData: function() { + let _this = this; + App._get('wxapp/imageSet', {}, function(result) { + console.log(result.data); + _this.setData({imageSet:result.data.new_values}); + }); + }, + //打卡次数统计 + getSingCount: function() { + let _this = this; + App._post_form('footchina/getSignCount', { + topic_id:10003, + user_id: wx.getStorageSync('user_id') + }, result => { + console.log(result.data.data); + _this.setData({ + signCount: result.data.data + }); + console.log('signCount',_this.data.signCount); + + }); + + }, + //获取勋章等级 + getMedal: function() { + let _this = this; + App._post_form('footchina/getMedal', {}, result => { + this.setData({ + list: result.data.data + }); + }); + + }, + +}) \ No newline at end of file diff --git a/packageA/user/myMedal.json b/packageA/user/myMedal.json new file mode 100644 index 0000000..f8722ff --- /dev/null +++ b/packageA/user/myMedal.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "我的勋章" +} \ No newline at end of file diff --git a/packageA/user/myMedal.wxml b/packageA/user/myMedal.wxml new file mode 100644 index 0000000..ed31c8a --- /dev/null +++ b/packageA/user/myMedal.wxml @@ -0,0 +1,13 @@ + + 累计运动打卡 + + + + {{item}} + + 累计打卡{{item}}天 + + + + + diff --git a/packageA/user/myMedal.wxss b/packageA/user/myMedal.wxss new file mode 100644 index 0000000..38a1f53 --- /dev/null +++ b/packageA/user/myMedal.wxss @@ -0,0 +1,8 @@ +.title{width:100%;text-align:center;line-height:80rpx;margin-bottom:50rpx;} +.item{width:33.3%;padding-bottom:50rpx;} +.item-image-number{font-weight:blod;font-size:28rpx;text-align:center;padding-top:45rpx;} +.item-image{width:102rpx;height:120rpx;} +.light{color:#2ebcc0;} +.black{color:#999999;} +.black2{color:#a09b9b;} +.item-text{font-size:24rpx;} \ No newline at end of file diff --git a/packageA/user/profile.js b/packageA/user/profile.js new file mode 100644 index 0000000..6fc0701 --- /dev/null +++ b/packageA/user/profile.js @@ -0,0 +1,143 @@ +const App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + userInfo: {}, + UserCategory:[], + category_id:0, + category_name:'未选择队伍', + isLogin: false, + show:0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.getUserDetail(); + this.getUserCategory(); + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + let _this = this; + _this.setData({ + isLogin: App.checkIsLogin() + }); + }, + + /** + * 获取当前用户信息 + */ + getUserDetail() { + let _this = this; + App._post_form('user.index/detail', { + user_id: wx.getStorageSync('user_id') + }, result => { + _this.setData(result.data); + _this.setData({ + category_id:result.data.userInfo.category_id + }); + }); + }, + getUserCategory(){ + let _this = this; + App._post_form('user.index/getUserCategory', {}, result => { + _this.setData(result.data); + let UserCategoryArr = result.data.UserCategory; + for(let i=0; i { + _this.setData({ + show:!_this.data.show + }); + let status = result.data.status, msg; + + switch(status) { + case 0: + msg = '修改失败'; + break; + case 1: + msg = '修改成功'; + break; + default: + msg = '修改失败'; + } + + wx.showToast({ + title: msg, + icon: 'none', + duration: 2000 + }) + + _this.setData({ + category_name:result.data.category_name + }); + }); + + }, + + + /** + * 菜单列表导航跳转 + */ + onTargetMenus(e) { + let _this = this; + if (!_this.onCheckLogin()) { + return false; + } + wx.navigateTo({ + url: '/' + e.currentTarget.dataset.url + }) + }, + /** + * 验证是否已登录 + */ + onCheckLogin() { + let _this = this; + if (!_this.data.isLogin) { + App.showError('很抱歉,您还没有登录'); + return false; + } + return true; + }, + + +}) \ No newline at end of file diff --git a/packageA/user/profile.json b/packageA/user/profile.json new file mode 100644 index 0000000..c932ce3 --- /dev/null +++ b/packageA/user/profile.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "个人资料" +} \ No newline at end of file diff --git a/packageA/user/profile.wxml b/packageA/user/profile.wxml new file mode 100644 index 0000000..86b2545 --- /dev/null +++ b/packageA/user/profile.wxml @@ -0,0 +1,60 @@ + + + + 姓名 + + + {{userInfo.realname}} + + + + + 手机号 + + + {{userInfo.phone}} + + + + + 身份证号 + + + {{userInfo.idcard}} + + + + + 队伍 + + + {{category_name}} + + + 修改 + + + + + + + + + + + + + + 保存 + + + + + + + diff --git a/packageA/user/profile.wxss b/packageA/user/profile.wxss new file mode 100644 index 0000000..abce466 --- /dev/null +++ b/packageA/user/profile.wxss @@ -0,0 +1,89 @@ +.page-body{padding:0 20rpx;} +.bao { + width: 100%; + height: 100rpx; + display: flex; + align-items: center; + justify-content: center; + position: fixed; + bottom: 0; + background: linear-gradient(to right,#25ca9f,#2ebcc0); + left: 0; + color: #ffffff; + font-size: 33rpx; +} + + +.isRuleShow{ + display: block; +} +.isRuleHide{ + display: none; +} +.ruleZhezhao{ + height: 100%; + width: 100%; + position: fixed; + background-color:rgba(0, 0, 0, .5); + z-index: 2; + top: 0; + left: 0; +} +.ruleZhezhaoContent{ + padding: 20rpx 0; + width: 80%; + background: #ffffff; + margin: 20% auto; + border-radius: 20rpx; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + position: relative; +} +.ruleZhezhaoText{ + width: 80%; + font-size: 30rpx; + color: #856d5f; + display: flex; + flex-direction: row; + align-items: center; + margin: 25rpx 0 25rpx 0; +} +.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%; +} diff --git a/packageB/index/index.js b/packageB/index/index.js new file mode 100644 index 0000000..a081b13 --- /dev/null +++ b/packageB/index/index.js @@ -0,0 +1,594 @@ +import * as echarts from '../../ec-canvas/echarts'; + +let symbolImg = '../../images/circle.png'; +let App = getApp(); +// 设置数据,可以增加更多的数据参数 +function setOption(chart, scatterData, mapData, type) { + const option = { + layoutCenter: ['50%', '30%'], + layoutSize: '100%', + series: [{ + type: 'map', + map: type, + aspectScale: 0.75, + roam: 'scale', + zoom: 0.4, + scaleLimit: { + min: 1, + max: 2.5 + }, + itemStyle: { + normal: { + areaColor: 'rgba(216,216,215,0.5)', + borderColor: '#fff', + borderWidth: 1, + }, + emphasis: { + areaColor: null, + }, + }, + label: { + show: true, + fontSize: 8, + color: '#333' + }, + emphasis: { + label: { + show: true, + color: '#333' + }, + }, + data: mapData, + markPoint: { + symbol: 'circle', + symbolSize: 5, + label: { + show: true, + fontSize: 6, + color: '#333', + position: 'right' + }, + data: scatterData + } + } + + ], + }; + chart.setOption(option); +} + +Page({ + data: { + ec: { + lazyLoad: true, + }, + showAddMeBtn: !0, + scrollTop: 0, + showModal: false, + step: 0, + shouquan: 0, + follow: 0, + yunti: !0, + sign: !0, + indexData: { + 'dhnum': 0 + }, + scatterData: [], + mapData: [], + activity: [], + show: 0, + today: "", + canvasShow: 0, + map:{} + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + // 获取组件 + this.ecComponent = this.selectComponent('#mychart-dom-area'); + }, + getMap(){ + var that=this; + wx.request({ + url: `https://minipro.luochunlvshi.com/map/${this.data.type}.js`, + success: function (res) { + console.log(res); + that.initChart(res.data); + } + }); + }, + // 初始化图表 + initChart(mapItem) { + this.ecComponent.init((canvas, width, height, dpr) => { + // 获取组件的 canvas、width、height 后的回调函数 + // 在这里初始化图表 + const chart = echarts.init(canvas, null, { + width: width, + height: height, + devicePixelRatio: dpr, // new + }); + console.log(this.data.mapData); + console.log(this.data.type); + // 注册中国地图数据包 + echarts.registerMap(this.data.type, mapItem); + // 设置数据 + setOption(chart, this.data.scatterData, this.data.mapData, this.data.type); + + // 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问 + this.chart = chart; + + // 绑定点击事件 + let that = this; + chart.on('click', function (params) { + that.handleChartClick(params); + }); + + // 注意这里一定要返回 chart 实例,否则会影响事件处理等 + return chart; + }); + }, + + + handleChartClick(params) { + // 可以通过参数去数据列表中获取完整数据 params.dataIndex + console.log('chart click params:', { + name: params.name, + data: params.data, + dataIndex: params.dataIndex, + seriesIndex: params.seriesIndex, + value: params.value + }); + }, + + onLoad: function () { + // 设置页面标题 + App.setTitle(); + // 设置navbar标题、颜色 + App.setNavigationBar(); + let user_id = wx.getStorageSync('user_id'); + + if (user_id) { + this.Updatestep(); + this.getData(); + } + }, + onShow: function () { + + this.setData({ + showAddMeBtn: !0 + }) + let user_id = wx.getStorageSync('user_id'); + if (!user_id) { + this.setData({ + showModal: true + }) + } + }, + goTop: function (t) { + this.setData({ + scrollTop: 0 + }); + }, + /** + * 获取首页数据 + */ + getIndexData: function () { + let _this = this; + App._get('index/page', { + user_id: wx.getStorageSync('user_id') + }, function (result) { + _this.setData(result.data); + }); + }, + onClickAddToMinProgramCloseBtn: function () { + wx.setStorageSync("showAddMeFlag" + this.data.time, !0), this.setData({ + showAddMeBtn: !1 + }); + }, + onShareAppMessage: function () { + return { + title: "科大工会健步走小程序", + desc: "", + path: "/pages/index/index" + }; + }, + goDuiHuan: async function (e) { + let _this = this; + let step = this.data.step; + let time = parseInt(new Date().getTime() / 1000); + console.log('step', this.data.step); + if (this.data.step == 0) { + var a = await this.getyundong(); + console.log('运动授权结果:', a); + if (a === 1) { + // 授权成功后,立即更新步数 + this.Updatestep(); + } + return; + } + if (time < _this.data.activity.starttime) { + wx.showToast({ + title: '活动未开始', + icon: 'none', + duration: 2000 + }) + return false; + } + if (time > _this.data.activity.endtime) { + wx.showToast({ + title: '活动已结束', + icon: 'none', + duration: 2000 + }) + return false; + } + var user_id = wx.getStorageSync('user_id'); + App._post_form('footchina/goDuiHuan', { + user_id: user_id, + step: step + }, function (result) { + var rdata = result.data.data; + console.log('goDuiHuan', rdata); + if (result.data.code == -1) { + wx.showToast({ + title: '用户信息失效...', + icon: 'none', + duration: 2000 + }) + _this.setData({ + showModal: true + }) + return; + } + if (rdata.status) { + // let _this = this; + _this.setData({ + show: 1, + today: new Date().toISOString().slice(0, 10) + }) + console.log('today', _this.data.today); + // wx.showToast({ + // title: '点亮成功', + // icon: 'none', + // duration: 2000 + // }) + _this.getData(); + } + }); + }, + getData: function (e) { + let _this = this; + App._post_form('footchina/getData', { + user_id: wx.getStorageSync('user_id'), + }, (result) => { + var rdata = result.data.data; + console.log(rdata); + _this.setData({ + indexData: rdata, + scatterData: rdata.citySub, + mapData: rdata.provinceAreaColor, + type: rdata.type, + activity: rdata.activity, + }); + console.log(rdata.provinceAreaColor); + console.log(_this.data.mapData); + _this.getMap(); + }); + }, + goDuiHuanDis: function () { + let time = parseInt(new Date().getTime() / 1000); + if (time < this.data.activity.starttime) { + wx.showToast({ + title: '活动未开始', + icon: 'none', + duration: 2000 + }) + return false; + } + if (this.data.step < this.data.indexData.step) { + wx.showToast({ + title: '步数未达标,暂不能点亮城市', + icon: 'none', + duration: 2000 + }) + return false; + } + if (time > this.data.activity.endtime) { + wx.showToast({ + title: '活动已结束', + icon: 'none', + duration: 2000 + }) + return false; + } + if (this.data.indexData.dhnum == 1) { + // let _this = this; + // _this.setData({ + // show:1 + // }) + wx.showToast({ + title: '今日已点亮', + icon: 'none', + duration: 2000 + }) + return false; + } + }, + guanzhu: function () { + this.data.follow; + this.setData({ + follow: 1 + }); + }, + xiao: function () { + let _this = this; + wx.showModal({ + title: '提示', + content: '确定要保存这张图片吗?', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定') + wx.getImageInfo({ + src: _this.data.imageSet.index_gz_gzh, + success: function (res) { + console.log(res); + var path = res.path; + wx.saveImageToPhotosAlbum({ + filePath: path, + success: function (res) { + console.log('图片已保存'); + _this.data.follow; + _this.setData({ + follow: 0 + }); + }, + fail: function (res) { + console.log('保存失败'); + _this.data.follow; + _this.setData({ + follow: 0 + }); + } + }) + } + }); + } else if (res.cancel) { + console.log('用户点击取消'); + _this.data.follow; + _this.setData({ + follow: 0 + }); + } + } + }) + }, + bindIdCard: function (e) { + this.setData({ + idcard: e.detail.value + }) + }, + + checkIdCard: function () { + let _this = this; + let idCard = _this.data.idcard; + if (idCard == undefined) { + wx.showModal({ + title: "提示", + content: "身份证号不能为空", + success: function (a) { + + } + }); + return false; + } + + App.getUserInfoByIdCard(idCard, (user_id) => { + _this.getUserProfile(user_id); + _this.setData({ + showModal: false + }) + }); + }, + //取消登录 + loginClose: function () { + let _this = this; + _this.setData({ + showModal: false + }); + }, + + + /** + * 获取用户微信信息 + */ + getUserProfile(user_id) { + if (!user_id) { + let user_id = wx.getStorageSync('user_id'); + } + + console.log('user_id', user_id); + + const app = this + try { + wx.getUserProfile({ + lang: 'zh_CN', + desc: '获取用户相关信息', + success({ + userInfo + }) { + console.log('用户同意了授权') + console.log('userInfo:', userInfo) + App.getUserInfo(userInfo, user_id, () => { + app.Updatestep(); + }); + }, + fail() { + console.log('用户拒绝了授权--微信授权') + } + }) + } catch (e) { + console.log('error:', e.message) + if (e.message === 'wx.getUserProfile is not a function') { + App.showError('wx.getUserProfile 接口无法使用,请升级到最新版微信') + } else { + App.showError(error.message) + } + } + + }, + getyundong() { + return new Promise((resolve, reject) => { + // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.werun" 这个 scope + wx.getSetting({ + success(res) { + if (!res.authSetting['scope.werun']) { + wx.openSetting({ + success: (authResult) => { + if (authResult.authSetting['scope.werun']) { + resolve(1); + } else { + resolve(0); + } + }, + fail: (err) => { + console.error('打开设置页失败', err); + reject(err); + } + }); + } else { + resolve(1); + } + }, + fail: (err) => { + console.error('wx.getSetting失败', err); + reject(err); + } + }) + }); + }, + // 读取用户的微信运动数据 + Updatestep: function (t) { + var e = this; + wx.login({ + success: function (t) { + var a = t.code; + e.setData({ + code: a + }), wx.getWeRunData({ + success: function (t) { + var a = t.encryptedData, + o = t.iv; + App._post_form('user/getStep', { + wRunEncryptedData: a, + iv: o, + code: e.data.code, + user_id: wx.getStorageSync('user_id') + }, result => { + e.getIndexData(); + //wx.setStorageSync('step', result.data.data); + e.setData({ + step: result.data.data + }) + e.getData(); + }); + }, + fail() { + console.log('用户拒绝了授权--微信运动') + } + }); + } + }); + }, + + guanbil: function () { + var a = this.data.yunti; + this.setData({ + yunti: !a + }); + }, + goInfo: function () { + wx.navigateTo({ + url: "/pages/rank/address" + }); + }, + goRili: function () {}, + goRili: function () { + wx.navigateTo({ + url: '/packageB/user/sign' + }) + }, + /** + * 拒绝授权 + */ + onNotLogin() { + let _this = this; + // 跳转回原页面 + _this.onNavigateBack(); + }, + + /** + * 授权成功 跳转回原页面 + */ + onNavigateBack() { + wx.navigateBack(); + }, + overdue: function () { + var t = this; + wx.getSetting({ + success: function (a) { + if (a.authSetting["scope.userInfo"]) wx.checkSession({ + success: function (a) { + + }, + fail: function (a) { + t.data.shouquan; + t.setData({ + shouquan: 1 + }); + } + }); + else { + t.data.shouquan; + t.setData({ + shouquan: 1 + }); + } + } + }); + }, + onPullDownRefresh: function () { + let user_id = wx.getStorageSync('user_id'); + + if (user_id) { + this.Updatestep(); + } + wx.stopPullDownRefresh() + }, + + /** 点亮成功 */ + goSuccess() { + console.log('进来了', 111); + let _this = this; + _this.setData({ + show: 1, + today: new Date().toISOString().slice(0, 10) + }) + }, + //关闭签到弹窗 + guanbilsig: function () { + let _this = this; + _this.setData({ + show: 0 + }) + // wx.navigateTo({ + // url: "/pages/rank/address" + // }); + // var a = this.data.sign; + // this.setData({ + // sign: !a + // }); + }, + + +}); \ No newline at end of file diff --git a/packageB/index/index.json b/packageB/index/index.json new file mode 100644 index 0000000..f722c34 --- /dev/null +++ b/packageB/index/index.json @@ -0,0 +1,6 @@ +{ + "enablePullDownRefresh": true, + "usingComponents": { + "ec-canvas": "../../ec-canvas/ec-canvas" + } +} \ No newline at end of file diff --git a/packageB/index/index.wxml b/packageB/index/index.wxml new file mode 100644 index 0000000..0faf202 --- /dev/null +++ b/packageB/index/index.wxml @@ -0,0 +1,167 @@ + + + + + + + 一附院职工账号绑定 + + 确定 + + + + + + + + 点击 + + {{guide_add_applet}} + + + + + + + + + + + + + + + + + 点亮城市 + + {{step}} + + + + + 点亮城市 + + {{step}} + + + + + + + + + + + + + + + + + + + + + 点亮城市 + 点击查看 + + + + + + + + 点亮日历 + 点击查看 + + + + + + + + + + {{indexData.citydays}} + 累计点亮 + + + + {{indexData.signdays}} + 累计天数 + + + {{indexData.rank}} + 我的排名 + + + + + + {{indexData.now}} + 当前城市 + + + {{indexData.next}} + 下个城市 + + + {{indexData.step}}:1 + 兑换比例 + + + + + + + + + + + 使用微信授权后才能更好的为您服务哦 + + + + + + + + + + + + + {{today}}点亮这座城市 + + + + + + \ No newline at end of file diff --git a/packageB/index/index.wxss b/packageB/index/index.wxss new file mode 100644 index 0000000..4714aed --- /dev/null +++ b/packageB/index/index.wxss @@ -0,0 +1,463 @@ +/**index.wxss**/ +.container{ + /* background-image: url('http://minipro1.luochunlvshi.com/uploads/index11.jpg'); */ + background-image: url('https://minipro.luochunlvshi.com/uploads/image/innerBack.png'); + background-size: 100% auto; + position: relative; + height:100vh; + width:100%; +} + +/* .top_2{ + height: 95rpx; + height:60vh; + margin-top: 4rpx; + width: 750rpx; +} */ +.topBackImage{ + height: 64rpx; + background-size: 100% 100%; +} +.lightUp{ + background-image: linear-gradient( + 180deg, + rgba(228, 1, 6, 1) 0, + rgba(253, 86, 92, 1) 100% + ); + border-radius: 20rpx; + width: 280rpx; + height: 140rpx; + border: 4rpx solid rgba(255, 255, 255, 1); + margin: 6rpx 0 0 235rpx; + z-index: 999999999; +} +.lightUp_no{ + background-color: #DCD9D4; background-image: linear-gradient(to bottom, rgba(255,255,255,0.50) 0%, rgba(0,0,0,0.50) 100%), radial-gradient(at 50% 0%, rgba(255,255,255,0.10) 0%, rgba(0,0,0,0.50) 50%); background-blend-mode: soft-light,screen; + border-radius: 20rpx; + width: 280rpx; + height: 140rpx; + border: 4rpx solid rgba(255, 255, 255, 1); + margin: 6rpx 0 0 235rpx; + z-index: 999999999; +} + +.lightUp_no .lightImage_1{ + width: 202rpx; + height: 40rpx; + margin: 33rpx 0 0 39rpx; + display: flex; + align-items: center; + justify-content: center; +} + +.lightUp .lightImage_1{ + width: 202rpx; + height: 40rpx; + margin: 33rpx 0 0 39rpx; + display: flex; + align-items: center; + justify-content: center; +} +.lightImage_1 .innerDian{ + width: 40rpx; + height: 40rpx; +} +.lightImage_1 .lightUpText{ + width: 152rpx; + height: 36rpx; + overflow-wrap: break-word; + color: rgba(255, 255, 255, 1); + font-size: 38rpx; + font-family: PingFang SC-Bold; + font-weight: 700; + text-align: center; + white-space: nowrap; + line-height: 36rpx; + margin-left: 4rpx; +} + +.item-container{ + width:100%; + padding: 4rpx 20rpx 30rpx 20rpx; +} +.item-container .item-city{ + width: 44%; + height: 130rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: #FFF; + border-radius: 20rpx; + padding-bottom: 16rpx; +} +.item-container .item-city .locationImage{ + width: 70rpx; + height: 70rpx; + margin-top: 12rpx; +} +.item-container .item-city .item-locationText{ + width:40%; + padding-top:20rpx; + margin-left: 20rpx; + +} +.item-container .item-canlendar{ + width: 44%; + height: 130rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: #FFF; + border-radius: 20rpx; + padding-bottom: 16rpx; + margin-left: 50rpx; + /* justify-content: space-between; */ +} +.item-container .item-canlendar .canlendarImage{ + width: 70rpx; + height: 70rpx; + margin-top: 10rpx; +} +.item-container .item-canlendar .item-canlendarText{ + margin-left: 20rpx; + width:40%; + padding-top:21rpx; +} +.item-containerFir{ + width: 95%; + height: 120rpx; + margin-top: 10rpx; + border-radius: 20rpx; + background-color: #fff; + padding-bottom: 10rpx; +} +.item{ + width:33.3%; + padding-top:16rpx; + /* background-color: #FFF; */ +} +.item .top{ + color:rgba(61, 61, 61, 1); + font-size:28rpx; + font-family: PingFang SC-Bold; + font-weight: 700; + padding-top:10rpx; +} +.item .bottomRed{ + color: rgba(234, 23, 29, 1); + font-size:30rpx; + font-family: PingFang SC-Bold; + font-weight: 700;} +.item .bottom{ + color:#333; + font-size:30rpx; + /* padding-top:10rpx; */ + font-family: PingFang SC-Bold; + font-weight: 700; +} + + +ec-canvas { + width: 100%; + height: 50vh; +} +cover-view{overflow:visible;} +.mask{ + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: #000; + z-index: 9000; + opacity: 0.7; +} +.modalDlg{ + width: 580rpx; + height: 620rpx; + position: absolute; + top: 50%; + left: 0; + z-index: 9999; +margin-top:290rpx; +margin-left:90rpx; + background-color: #fff; + border-radius: 36rpx; + display: flex; + flex-direction: column; + align-items: center; + overflow:hidden; +} + +.modalDlg .closeBox { + /* width: 100%; + height: 56rpx; */ + /* margin-top: 20rpx; */ +} +.modalDlg .closeBox image { + width: 40rpx; + height: 40rpx; + position: absolute; + right: 4%; + top: 20rpx; +} +.modalDlg text{margin-top:40rpx;} +.modalDlg image{width:100%;height:280rpx;} +.modalInput{width:90%;height:60rpx;line-height:60rpx;border:1px solid #999;border-radius:10rpx;margin-top:40rpx;padding-left:10rpx;font-size:24rpx;} +.bao { + width: 300rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + position: absolute; + bottom: 50rpx; + background: linear-gradient(to right,#25ca9f,#2ebcc0); + left: 140rpx; + color: #ffffff; + font-size: 33rpx; + border-radius: 36rpx; +} +.addToSmallProgramClass { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 80rpx; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + background: rgba(0,0,0,0.6); + color: white; + z-index: 9999; +} + +.addToSmallProgramClass .center_text_div_class { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + font-size: 28rpx; + transform: translateX(-70rpx); +} + +.addToSmallProgramClass .arrow { + width: 100%; + height: 100%; + animation-name: addToSmallProgramClass_arrow_swing; + animation-duration: 0.8s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@-webkit-keyframes addToSmallProgramClass_arrow_swing { + from { + transform: translateY(20%); + } + + to { + transform: translateY(-20%); + } +} + +@keyframes addToSmallProgramClass_arrow_swing { + from { + transform: translateY(20%); + } + + to { + transform: translateY(-20%); + } +} + +.addToSmallProgramClass .more { + width: 46rpx; + height: 17rpx; + margin-left: 15rpx; + margin-right: 15rpx; +} + +.addToSmallProgramClass .as-close { + width: 24rpx; + height: 24rpx; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 30rpx; + padding: 20rpx; +} + +.denglu { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: rgba(0,0,0,0.5); + z-index: 10; +} + +.denglu_ong { + width: 622rpx; + margin: 0 auto; + margin-top: 55%; + height: 439rpx; + border-radius: 15rpx; + position: relative; + padding: 59rpx 0; + padding-top: 41rpx; + box-sizing: border-box; + overflow: hidden; + background: #fff; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; +} + +.denglu_ong text { + font-size: 31rpx; + color: #131313; +} + +.denglu_img { + width: 100%; + display: block; + position: absolute; + top: 0; + left: 0; + height: 100%; +} +.imhyua { + width: 119rpx; + height: 119rpx; +} + +.register { + color: #fe4045; + font-size: 25rpx; + display: flex; + width: 466rpx; + height: 83rpx; + border-radius: 50rpx; + align-items: center; + background: none; + justify-content: center; +} +.button-hover { + background-color: none; +} +.dianji { + position: fixed; + top: 93%; + width: 195rpx; + height: 83rpx; + display: flex; + right: 0; + z-index: 5; +} +.quan { + width: 90%; + height: 90%; + position: fixed; + top: 0; + left: 0; + background: rgba(0,0,0,0.5); + display: block; + z-index: 10; +} + +.none { + display: none; +} + +button { + padding: 0; + margin: 0; + border-radius: 0; + background: none; + line-height: normal; +} + +button::after { + content: none; +} + +.dhlc{width:120rpx;height:120rpx; + border-radius:50%; + background-color:#E1270E; + position:absolute; + top:-60rpx; +} + +.dhlc text{color:#FFF;} +.dhlc .text{font-size:22rpx;} +.dhlc .num1{font-size:30rpx;font-weight:bold;} +.dhlc .num{font-size:34rpx;} +.step{ + padding:5rpx 10rpx; + background-color:#474747; + border-radius:25rpx; + color:#FFF;font-size:22rpx; + margin-bottom:10rpx; + position:absolute; + top:-110rpx; +} +.isRuleShow{ + display: block; + } + .isRuleHide{ + display: none; + } + .ruleZhezhao{ + height: 100%; + width: 100%; + position: fixed; + background-color:rgba(0, 0, 0, .5); + z-index: 100000000000; + top: 0; + bottom: 30%; + left: 0; + } + .ruleZhezhaoContent{ + /* padding: 20rpx 0; */ + width: 100%; + /* background: #ffffff; */ + margin: 20% auto; + border-radius: 20rpx; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + position: relative; + } + .backSuccess{ + width: 750rpx; + height: 880rpx; + position: relative; + left: 16rpx; + top: 0rpx; + } + .guanf{ + position: relative; + bottom: 510rpx; + left: 220rpx; + width: 70rpx; + height: 70rpx; + } + .successCity{ + width: 400rpx; + height: 340rpx; + position: relative; + bottom: 500rpx; + border-radius: 20rpx; + } + .successTime{ + position: relative; + bottom: 480rpx; + } + + + diff --git a/packageB/rule/index.js b/packageB/rule/index.js new file mode 100644 index 0000000..d8afe7c --- /dev/null +++ b/packageB/rule/index.js @@ -0,0 +1,35 @@ +var App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + articleData:{} + }, + + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function () { + wx.showLoading({ title: '加载中' }); + this.get_rule(); + }, + + /** + * 获取列表 + */ + get_rule: function () { + let _this = this; + App._post_form('footchina/index', { + }, function(result) { + wx.hideLoading(); + var rdata = result.data.activity; + _this.setData({ + articleData: rdata + }) + }); + } +}) \ No newline at end of file diff --git a/packageB/rule/index.json b/packageB/rule/index.json new file mode 100644 index 0000000..e5843ac --- /dev/null +++ b/packageB/rule/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "活动规则", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": { + "parser":"../../components/parser/parser" + } +} \ No newline at end of file diff --git a/packageB/rule/index.wxml b/packageB/rule/index.wxml new file mode 100644 index 0000000..0164fca --- /dev/null +++ b/packageB/rule/index.wxml @@ -0,0 +1,6 @@ + + + + + + diff --git a/packageB/rule/index.wxss b/packageB/rule/index.wxss new file mode 100644 index 0000000..2d09bac --- /dev/null +++ b/packageB/rule/index.wxss @@ -0,0 +1,12 @@ +.article { + background: #fff; + padding: 20rpx 30rpx; + font-size: 28rpx; +} +.title{padding-bottom:50rpx;font-size:40rpx;text-align: center;} + + + +/* banner组件按钮 */ +.swiper , swiper,swiper-item ,swiper-item image{width:100%;height:450rpx;} +.swiper{margin-bottom:20rpx;} \ No newline at end of file diff --git a/packageB/user/sign.js b/packageB/user/sign.js new file mode 100644 index 0000000..f0f4f66 --- /dev/null +++ b/packageB/user/sign.js @@ -0,0 +1,107 @@ +const App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + count:1, + goodsInfo:[] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.getSignRecord(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + /** + * 获取签到记录 + */ + getSignRecord: function (aid) { + let _this = this; + App._post_form('footchina/getSignRecord', { + user_id:wx.getStorageSync('user_id') + }, function(result) { + _this.setData({ + selectedDays: result.data.data + }) + }); + }, + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + /** + * 点击日期时候触发的事件 + * bind:getdate + */ + getdate(e) { + console.log(e.detail); + }, + /** + * 点击全选触发的事件 + * bind:checkall + */ + checkall(e) { + console.log(e.detail.days); + }, + /** + * 点击确定按钮触发的事件 + * bind:select + */ + cmfclick(e){ + console.log(e.detail.selectDays); + }, + /** + * 点击清空事件 + * bind:clear + */ + clear(e) { + console.log("要清空选中日期") + } +}) \ No newline at end of file diff --git a/packageB/user/sign.json b/packageB/user/sign.json new file mode 100644 index 0000000..47bd999 --- /dev/null +++ b/packageB/user/sign.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "我的统计", + "usingComponents": { + "calendar": "/components/calendarn/calendar" + } +} \ No newline at end of file diff --git a/packageB/user/sign.wxml b/packageB/user/sign.wxml new file mode 100644 index 0000000..1906aa7 --- /dev/null +++ b/packageB/user/sign.wxml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packageB/user/sign.wxss b/packageB/user/sign.wxss new file mode 100644 index 0000000..597be47 --- /dev/null +++ b/packageB/user/sign.wxss @@ -0,0 +1,26 @@ +/* pages/user/sign.wxss */ +.button-hover { + background-color: none; +} +button { + padding: 0; + margin: 0; + border-radius: 0; + background: none; + line-height: normal; +} + +button::after { + content: none; +} +.baomica { + background: linear-gradient(#25ca9f,#2ebcc0); + width: 257rpx; + height: 73rpx; + border-radius: 50rpx; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + font-size: 34rpx; +} \ No newline at end of file diff --git a/pages/category/challenge.js b/pages/category/challenge.js new file mode 100644 index 0000000..2e6297c --- /dev/null +++ b/pages/category/challenge.js @@ -0,0 +1,66 @@ +// pages/category/challenge.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/category/challenge.wxml b/pages/category/challenge.wxml new file mode 100644 index 0000000..e8169c7 --- /dev/null +++ b/pages/category/challenge.wxml @@ -0,0 +1,2 @@ + +pages/category/challenge.wxml \ No newline at end of file diff --git a/pages/category/index.js b/pages/category/index.js new file mode 100644 index 0000000..2f9d078 --- /dev/null +++ b/pages/category/index.js @@ -0,0 +1,66 @@ +// pages/category/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/category/index.wxml b/pages/category/index.wxml new file mode 100644 index 0000000..c84b73f --- /dev/null +++ b/pages/category/index.wxml @@ -0,0 +1,2 @@ + +pages/category/index.wxml \ No newline at end of file diff --git a/pages/category/team.js b/pages/category/team.js new file mode 100644 index 0000000..6a229d9 --- /dev/null +++ b/pages/category/team.js @@ -0,0 +1,66 @@ +// pages/category/team.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/category/team.wxml b/pages/category/team.wxml new file mode 100644 index 0000000..99ea614 --- /dev/null +++ b/pages/category/team.wxml @@ -0,0 +1,2 @@ + +pages/category/team.wxml \ No newline at end of file diff --git a/pages/index/china.js b/pages/index/china.js new file mode 100644 index 0000000..ec9cbfe --- /dev/null +++ b/pages/index/china.js @@ -0,0 +1 @@ +module.exports ={"type":"FeatureCollection","features":[{"id":"710000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@°Ü¯Û"],["@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"],["@@\\p|WoYG¿¥I†j@¢"],["@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I"],["@@ÆEE—„kWqë @œ"],["@@fced"]],"encodeOffsets":[[[122886,24033]],[[123335,22980]],[[122375,24193]],[[122518,24117]],[[124427,22618]],[[124862,26043]]]},"properties":{"cp":[120.8254, 23.5986],"name":"台湾","childNum":6}},{"id":"130000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e"],["@@U`Ts¿m‚"],["@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧˏfŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgƊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|ǰ…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃ͚¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@c̬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®Vйd^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qáµ§š™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚"]],"encodeOffsets":[[[119712,40641]],[[121616,39981]],[[116462,37237]]]},"properties":{"cp":[115.4004, 38.1688],"name":"河北","childNum":3}},{"id":"140000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz"],"encodeOffsets":[[116874,41716]]},"properties":{"cp":[112.4121, 36.6611],"name":"山西","childNum":1}},{"id":"150000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Č^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ–›¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–R붛ijʕ…Œů`çõh]y»ǃŸǛҤxÒm~zf}pf|ÜroÈzrKÈĵSƧ„ż؜Ġu¦ö"],["@@sKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚǏĞGȖƴƀj`ĢçĶāàŃºē̃ĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTĞªŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFǜƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ż؛Ç@Vu»A—ylßí¹ĵê…ÝlISò³C¹Ìâ„²i¶’Ìoú^H“²CǜңDŽ z¼g^èöŰ_‹‚–†IJĕꄜ}gÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉ™Š³MEˆĸÅĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot×¶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ÈˆÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µ"]],"encodeOffsets":[[[127444,52594]],[[113793,40312]]]},"properties":{"cp":[110.5977, 41.3408],"name":"内蒙古","childNum":2}},{"id":"210000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@L–Ž@@s™a"],["@@MnNm"],["@@d‚c"],["@@eÀ‚C@b‚“‰"],["@@f‡…Xwkbr–Ä`qg"],["@@^jtW‘Q"],["@@~ Y]c"],["@@G`ĔN^_¿Z‚ÃM"],["@@iX¶B‹Y"],["@@„YƒZ"],["@@L_{Epf"],["@@^WqCT\\"],["@@\\[“‹§t|”¤_"],["@@m`n_"],["@@Ïxnj{q_×^Giip"],["@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA"]],"encodeOffsets":[[[123686,41445]],[[126019,40435]],[[124393,40128]],[[126117,39963]],[[125322,40140]],[[126686,40700]],[[126041,40374]],[[125584,40168]],[[125453,40165]],[[125362,40214]],[[125280,40291]],[[125774,39997]],[[125976,40496]],[[125822,39993]],[[125509,40217]],[[122731,40949]]]},"properties":{"cp":[123.0438, 41.0889],"name":"辽宁","childNum":16}},{"id":"220000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG"],"encodeOffsets":[[130196,42528]]},"properties":{"cp":[126.1746, 43.5938],"name":"吉林","childNum":1}},{"id":"230000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ƨƒĶTLÇyqpÇÛqe{~oyen}s‰`q‡iXG”ù]Ëp½“©lɇÁp]Þñ´FÔ^f‘äîºkà˜z¼BUvÈ@"],["@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tޏĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîά|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]"]],"encodeOffsets":[[[127123,51780]],[[134456,44547]]]},"properties":{"cp":[128.1445, 46.7156],"name":"黑龙江","childNum":2}},{"id":"320000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@ƹhågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ"],"encodeOffsets":[[121740,32276]]},"properties":{"cp":[119.8586, 32.915],"name":"江苏","childNum":1}},{"id":"330000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@E^dQ]K"],["@@jX^j‡"],["@@sfŠbU‡"],["@@qP\\xz[ck"],["@@‘Rƒ¢‚FX}°[s_"],["@@Cbœ\\—}"],["@@e|v\\la{u"],["@@v~u}"],["@@QxÂF¯}"],["@@¹nŒvÞs¯o"],["@@rSkUEj"],["@@bi­ZŒP"],["@@p[}INf"],["@@À¿€"],["@@¹dnbŒ…"],["@@rSŸBnR"],["@@g~h}"],["@@FlEk"],["@@OdPc"],["@@v[u\\"],["@@FjâL~wyoo~›sµL–\\"],["@@¬e¹aNˆ"],["@@\\nÔ¡q]L³ë\\ÿ®ŒQ֎"],["@@ÊA­©[¬"],["@@KxŒv­"],["@@@hlIk]"],["@@pW{o||j"],["@@Md|_mC"],["@@¢…X£ÏylD¼XˆtH"],["@@hlÜ[LykAvyfw^Ež›¤"],["@@fp¤Mus“R"],["@@®_ma~•LÁ¬šZ"],["@@iM„xZ"],["@@ZcYd"],["@@Z~dOSo|A¿qZv"],["@@@`”EN¡v"],["@@|–TY{"],["@@@n@m"],["@@XWkCT\\"],["@@ºwšZRkĕWO¢"],["@@™X®±Grƪ\\ÔáXq{‹"],["@@ůTG°ĄLHm°UC‹"],["@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВj碷ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈÚœĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst"],["@@o\\V’zRZ}y"],["@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™"]],"encodeOffsets":[[[125592,31553]],[[125785,31436]],[[125729,31431]],[[125513,31380]],[[125223,30438]],[[125115,30114]],[[124815,29155]],[[124419,28746]],[[124095,28635]],[[124005,28609]],[[125000,30713]],[[125111,30698]],[[125078,30682]],[[125150,30684]],[[124014,28103]],[[125008,31331]],[[125411,31468]],[[125329,31479]],[[125626,30916]],[[125417,30956]],[[125254,30976]],[[125199,30997]],[[125095,31058]],[[125083,30915]],[[124885,31015]],[[125218,30798]],[[124867,30838]],[[124755,30788]],[[124802,30809]],[[125267,30657]],[[125218,30578]],[[125200,30562]],[[124968,30474]],[[125167,30396]],[[124955,29879]],[[124714,29781]],[[124762,29462]],[[124325,28754]],[[123990,28459]],[[125366,31477]],[[125115,30363]],[[125369,31139]],[[122495,31878]],[[125329,30690]],[[125192,30787]]]},"properties":{"cp":[120.498, 29.0918],"name":"浙江","childNum":45}},{"id":"340000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@^iuLX^"],["@@‚e©Ehl"],["@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜÆ¶ĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆßŽF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴ˶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´"]],"encodeOffsets":[[[121722,32278]],[[119475,30423]],[[119168,35472]]]},"properties":{"cp":[117.2461, 31.0361],"name":"安徽","childNum":3}},{"id":"350000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@“zht´‡]"],["@@aj^~ĆG—©O"],["@@ed¨„C}}i"],["@@@vˆPGsQ"],["@@‰sBz‚ddW]Q"],["@@SލQ“{"],["@@NŽVucW"],["@@qptBAq"],["@@‰’¸[mu"],["@@Q\\pD]_"],["@@jSwUadpF"],["@@eXª~ƒ•"],["@@AjvFso"],["@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°"],["@@IjJi"],["@@wJI€ˆxš«¼AoNe{M­"],["@@K‰±¡Óˆ”ČäeZ"],["@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_"]],"encodeOffsets":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[122887,26845]],[[122808,26762]],[[122568,25912]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[123388,27005]],[[122450,26243]],[[122578,25962]],[[121255,25103]],[[120987,24903]],[[122339,25802]],[[121042,25093]],[[122439,26024]]]},"properties":{"cp":[118.3008, 25.9277],"name":"福建","childNum":18}},{"id":"360000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĢĨƐgÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗ⼋mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²"],"encodeOffsets":[[116689,26234]]},"properties":{"cp":[115.7156, 27.99],"name":"江西","childNum":1}},{"id":"370000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Xjd]{K"],["@@itbFHy"],["@@HlGk"],["@@T‚ŒGŸy"],["@@K¬˜•‹U"],["@@WdXc"],["@@PtOs"],["@@•LnXhc"],["@@ppVƒu]Or"],["@@cdzAUa"],["@@udRhnCI‡"],["@@ˆoIƒpR„"],["@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞÆ„LĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌǜbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐ˹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~ݏY’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuٌg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ"]],"encodeOffsets":[[[123806,39303]],[[123821,39266]],[[123742,39256]],[[123702,39203]],[[123649,39066]],[[123847,38933]],[[123580,38839]],[[123894,37288]],[[123043,36624]],[[123344,38676]],[[123522,38857]],[[123628,38858]],[[118260,36742]]]},"properties":{"cp":[118.2402, 36.2307],"name":"山东","childNum":13}},{"id":"410000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m"],"encodeOffsets":[[118256,37017]]},"properties":{"cp":[113.0668, 33.8818],"name":"河南","childNum":1}},{"id":"420000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AB‚"],["@@lskt"],["@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙæŠšŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYЧHK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆ̶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤"]],"encodeOffsets":[[[113712,34000]],[[115612,30507]],[[113649,34054]]]},"properties":{"cp":[112.2363, 30.8572],"name":"湖北","childNum":3}},{"id":"430000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@—n„FTs"],["@@ßÅÆá‰½ÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–̾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M"],["@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJβSÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUоÅ‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPᜣEXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎۃƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ"]],"encodeOffsets":[[[115640,30489]],[[112543,27312]],[[116690,26230]]]},"properties":{"cp":[111.5332, 27.3779],"name":"湖南","childNum":3}},{"id":"440000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@QdˆAua"],["@@ƒlxDLo"],["@@sbhNLo"],["@@Ă āŸ"],["@@WltO[["],["@@Krœ]S"],["@@e„„I]y"],["@@I|„Mym"],["@@ƒÛ³LSŒž¼Y"],["@@nvºB–ëui©`¾"],["@@zdšÛ›Jw®"],["@@†°…¯"],["@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o"],["@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh"],["@@‹¶Ý’Ì‚vmĞh­ı‡Q"],["@@HœŠdSjĒ¢D}war…“u«ZqadYM"],["@@elŒ\\LqqU"],["@@~rMo\\"],["@@f„^ƒC"],["@@øPªoj÷ÍÝħXČx”°Q¨ıXNv"],["@@gÇƳˆŽˆ”oˆŠˆ[~tly"],["@@E–ÆC¿‘"],["@@OŽP"],["@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéƌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i"]],"encodeOffsets":[[[117381,22988]],[[116552,22934]],[[116790,22617]],[[116973,22545]],[[116444,22536]],[[116931,22515]],[[116496,22490]],[[116453,22449]],[[113301,21439]],[[118726,21604]],[[118709,21486]],[[113210,20816]],[[115482,22082]],[[113171,21585]],[[113199,21590]],[[115232,22102]],[[115739,22373]],[[115134,22184]],[[113056,21175]],[[119573,21271]],[[119957,24020]],[[115859,22356]],[[116561,22649]],[[116285,22746]]]},"properties":{"cp":[113.8668, 22.8076],"name":"广东","childNum":24}},{"id":"450000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@H– TQ§•A"],["@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloޤ™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆÌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FϼĹ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•E쉕E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢Jî¶²"]],"encodeOffsets":[[[111707,21520]],[[107619,25527]]]},"properties":{"cp":[108.7813, 23.6426],"name":"广西","childNum":2}},{"id":"460000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ "],"encodeOffsets":[[112750,20508]]},"properties":{"cp":[109.9512, 19.2041],"name":"海南","childNum":1}},{"id":"510000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@LqKr"],["@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iǰÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZްIä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºT£ڿœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`Šz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›"]],"encodeOffsets":[[[108815,30935]],[[110617,31811]]]},"properties":{"cp":[102.9199, 30.1904],"name":"四川","childNum":2}},{"id":"520000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@†G\\†lY£‘in"],["@@q‚|ˆ‚mc¯tχVSÎ"],["@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒh޶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KгŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}ޱžGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝÆ€‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½"]],"encodeOffsets":[[[112158,27383]],[[112105,27474]],[[112095,27476]]]},"properties":{"cp":[106.6113, 26.6385],"name":"贵州","childNum":3}},{"id":"530000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèÆ¶StǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyސ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSᝑ³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\μģUsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`"],"encodeOffsets":[[104636,22969]]},"properties":{"cp":[101.0652, 24.6807],"name":"云南","childNum":1}},{"id":"540000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@hžľxŽŖ‰xƒÒVކºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|٘¦Avަw`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdЉªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀݦ¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVе‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£à貋ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæÅ„hnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„ǰ¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûŠìÖT¬¸^}Ìsòd´_އKgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxжF”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©"],"encodeOffsets":[[90849,37210]]},"properties":{"cp":[87.8695, 31.6846],"name":"西藏","childNum":1}},{"id":"610000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OϹS|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cϰÂ[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~ЦUbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj"],"encodeOffsets":[[110234,38774]]},"properties":{"cp":[108.5996, 33.7396],"name":"陕西","childNum":1}},{"id":"620000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@VuUv"],["@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBаaZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aйcčecÇN•ĊãÁ\\蝗dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]A챝‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮްƝ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK"]],"encodeOffsets":[[[108619,36299]],[[108589,36341]]]},"properties":{"cp":[102.7129, 38.166],"name":"甘肃","childNum":2}},{"id":"630000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@InJm"],["@@CƒÆ½OŃĦsΰ~dz¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNΌĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoᣟÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Ó祖•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSò뚣˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbЏ•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňb̰ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌζƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg"]],"encodeOffsets":[[[105308,37219]],[[95370,40081]]]},"properties":{"cp":[95.2402, 35.4199],"name":"青海","childNum":2}},{"id":"640000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßR͌X¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀ˾iİbjÕ"],["@@mfwěwMrŢªv@G‰"]],"encodeOffsets":[[[109366,40242]],[[108600,36303]]]},"properties":{"cp":[105.9961, 37.1096],"name":"宁夏","childNum":2}},{"id":"650000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@QØĔ²X¨”~ǘBºjʐߨvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZ̓èH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYw獃{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~Ꝛf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆÂšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’ہƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FއRěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ"],"encodeOffsets":[[88824,50096]]},"properties":{"cp":[86.9023, 41.148],"name":"新疆","childNum":1}},{"id":"110000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`й­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwڍUd®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘Ѩj¯ŠX\\¯œMK‘pA³[H…īu}}"],"encodeOffsets":[[120023,41045]]},"properties":{"cp":[116.4551, 40.2539],"name":"北京","childNum":1}},{"id":"120000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~"],"encodeOffsets":[[120237,41215]]},"properties":{"cp":[117.4219, 39.4189],"name":"天津","childNum":1}},{"id":"310000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ɧư¬EpƸÁxc‡"],["@@©„ªƒ"],["@@”MA‹‘š"],["@@Qp݁E§ÉC¾"],["@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó"],["@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį"]],"encodeOffsets":[[[124702,32062]],[[124547,32200]],[[124808,31991]],[[124726,32110]],[[124903,32376]],[[124438,32149]]]},"properties":{"cp":[121.4648, 31.2891],"name":"上海","childNum":6}},{"id":"500000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØÍ™²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBЦzG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN"],["@@ifjN@s"]],"encodeOffsets":[[[109628,30765]],[[111725,31320]]]},"properties":{"cp":[107.7539, 29.8904],"name":"重庆","childNum":2}},{"id":"810000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AlBk"],["@@mŽn"],["@@EpFo"],["@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKްä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc"],["@@rMUw‡AS®€e"]],"encodeOffsets":[[[117111,23002]],[[117072,22876]],[[117045,22887]],[[116975,23082]],[[116882,22747]]]},"properties":{"cp":[114.6178, 22.3242],"name":"香港","childNum":5}},{"id":"820000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@kÊd°å§s"],"encodeOffsets":[[116279,22639]]},"properties":{"cp":[113.5547, 21.6484],"name":"澳门","childNum":1}}],"UTF8Encoding":true}; \ No newline at end of file diff --git a/pages/index/index.js b/pages/index/index.js new file mode 100644 index 0000000..d0a0de8 --- /dev/null +++ b/pages/index/index.js @@ -0,0 +1,205 @@ +import * as echarts from '../../ec-canvas/echarts'; +import geoJson from './china.js'; +let App = getApp(); +// 设置数据,可以增加更多的数据参数 +function setOption(chart,scatterData,mapData) { + const option = { + layoutCenter: ['50%', '52%'], + layoutSize: '100%', + series: [ + { + type: 'map', + map: 'china', + aspectScale: 0.75, + roam:'scale', + scaleLimit:{ + min:1, + max:1.5 + }, + itemStyle: { + normal: { + areaColor: 'rgba(216,216,215,0.5)', + borderColor: '#fff', + borderWidth: 1, + }, + emphasis: { + areaColor: null , + }, + }, + label:{ + show:true, + fontSize:8, + color:'#333' + }, + emphasis: { + label: { + show: false, + color: '#333', + }, + }, + data: mapData, + }, + ], + }; + chart.setOption(option); +} +Page({ + data: { + ec: { + lazyLoad: true, + }, + scatterData:[], + mapData:[] + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + // 获取组件 + this.ecComponent = this.selectComponent('#mychart-dom-area'); + this.initChart(); + }, + // 初始化图表 + initChart() { + + this.ecComponent.init((canvas, width, height, dpr) => { + // 获取组件的 canvas、width、height 后的回调函数 + // 在这里初始化图表 + const chart = echarts.init(canvas, null, { + width: width, + height: height, + devicePixelRatio: dpr, // new + }); + // 注册中国地图数据包 + echarts.registerMap('china', geoJson); + + // 设置数据 + setOption(chart,this.data.scatterData,this.data.mapData); + + // 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问 + this.chart = chart; + + // 绑定点击事件 + let that = this; + chart.on('click', function (params) { + that.handleChartClick(params); + }); + + // 注意这里一定要返回 chart 实例,否则会影响事件处理等 + return chart; + }); + }, + + + handleChartClick(params) { + // 可以通过参数去数据列表中获取完整数据 params.dataIndex + console.log(params); + }, + + onLoad: function() { + // 设置页面标题 + App.setTitle(); + // 设置navbar标题、颜色 + App.setNavigationBar(); + this.getData(); + }, + onShow: function(){ + + }, + getData:function(e){ + let _this = this; + App._post_form('footchina/getIndexData', { + user_id: wx.getStorageSync('user_id'), + }, function(result) { + var rdata = result.data.data; + // var province=rdata.province; + // var provinceAreaColor=rdata.provinceAreaColor; + var province=[]; + var provinceAreaColor=[]; + province.push({name:'安徽',value:[114.54,29.41]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'安徽',value:[114.54,29.41]}); + province.push({name:'福建',value:[115.50,23.30]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'福建',value:[115.50,23.30]}); + province.push({name:'江苏',value:[116.18,30.45]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'江苏',value:[116.18,30.45]}); + province.push({name:'江西',value:[113.34,24.29]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'江西',value:[113.34,24.29]}); + province.push({name:'山东',value:[114.19,34.22]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'山东',value:[113.34,24.29]}); + province.push({name:'上海',value:[121.472644,31.231706]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'上海',value:[121.472644,31.231706]}); + province.push({name:'台湾',value:[121.520076,25.030724]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'台湾',value:[121.520076,25.030724]}); + province.push({name:'浙江',value:[120.153576,30.287459]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'浙江',value:[120.153576,30.287459]}); + province.push({name:'湖北',value:[112.2363,30.8572]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'湖北',value:[112.2363,30.8572]}); + province.push({name:'湖南',value:[111.5332,27.3779]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'湖南',value:[111.5332,27.3779]}); + province.push({name:'河南',value:[113.0668,33.8818]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'河南',value:[113.0668,33.8818]}); + province.push({name:'辽宁',value:[123.429096,41.796767]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'辽宁',value:[123.429096,41.796767]}); + province.push({name:'黑龙江',value:[126.642464,45.756967]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'黑龙江',value:[126.642464,45.756967]}); + province.push({name:'吉林',value:[125.3245,43.886841]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'吉林',value:[125.3245,43.886841]}); + province.push({name:'北京',value:[116.405285,39.904989]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'北京',value:[116.405285,39.904989]}); + province.push({name:'天津',value:[117.190182,39.125596]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'天津',value:[117.190182,39.125596]}); + province.push({name:'河北',value:[114.502461,38.045474]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'河北',value:[114.502461,38.045474]}); + province.push({name:'山西',value:[112.549248,37.857014]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'山西',value:[112.549248,37.857014]}); + province.push({name:'陕西',value:[108.948024,34.263161]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'陕西',value:[108.948024,34.263161]}); + province.push({name:'内蒙古',value:[111.670801,40.818311]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'内蒙古',value:[111.670801,40.818311]}); + + province.push({name:'宁夏',value:[106.278179,38.46637]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'宁夏',value:[106.278179,38.46637]}); + province.push({name:'广东',value:[113.280637,23.125178]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'广东',value:[113.280637,23.125178]}); + province.push({name:'广西',value:[108.320004,22.82402]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'广西',value:[108.320004,22.82402]}); + province.push({name:'香港',value:[114.173355,22.320048]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'香港',value:[114.173355,22.320048]}); + province.push({name:'澳门',value:[113.54909,22.198951]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'澳门',value:[113.54909,22.198951]}); + province.push({name:'海南',value:[110.33119,20.031971]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'海南',value:[110.33119,20.031971]}); + province.push({name:'甘肃',value:[103.823557,36.058039]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'甘肃',value:[103.823557,36.058039]}); + province.push({name:'青海',value:[101.778916,36.623178]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'青海',value:[101.778916,36.623178]}); + province.push({name:'新疆',value:[87.617733,43.792818]}); + provinceAreaColor.push({itemStyle:{areaColor: "#FAD5A2",opacity: 1},name:'新疆',value:[87.617733,43.792818]}); + _this.setData({ + // scatterData:rdata.province, + scatterData:province, + mapData:provinceAreaColor, + }); + _this.initChart(); + }); + }, + onShareAppMessage: function() { + return { + title: "科大工会健步走小程序", + desc: "", + path: "/pages/index/index" + }; + }, + goActivity:function(){ + wx.navigateTo({ + url: "/packageB/index/index" + }); + }, + goActivityRule:function(){ + wx.navigateTo({ + url: "/packageB/rule/index" + }); + } + +}); diff --git a/pages/index/index.json b/pages/index/index.json new file mode 100644 index 0000000..a244df0 --- /dev/null +++ b/pages/index/index.json @@ -0,0 +1,7 @@ +{ + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "usingComponents": { + "ec-canvas": "../../ec-canvas/ec-canvas" + } +} \ No newline at end of file diff --git a/pages/index/index.wxml b/pages/index/index.wxml new file mode 100644 index 0000000..baa7908 --- /dev/null +++ b/pages/index/index.wxml @@ -0,0 +1,15 @@ + + + + + + + + + 进入活动 + + + 活动规则 + + + \ No newline at end of file diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..4852ffd --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,40 @@ +/**index.wxss**/ +.container{ + background: url('https://minipro.luochunlvshi.com/uploads/image/shouyebeijing.png') no-repeat; + background-size: 100% auto; + position: relative; + height:100vh; + width:100%; +} +.backImage { + width: 100%; /* 根据需要设置宽度 */ + height: 100%; /* 高度自动 */ + position: absolute; /* 绝对定位 */ + top: 0; + left: 0; + z-index: -1; /* 确保图片在其他内容下方 */ +} +.joinActivity{ + width: 657rpx; + height: 159rpx; +} +.btn{ + /* background: url('https://minipro.luochunlvshi.com/uploads/images/btn.png') no-repeat; */ + background-color: #FF3838; + border-radius: 60rpx; + background-size: 100% 100%; + height:70rpx; + line-height:70rpx; + text-align:center; + width:280rpx; + color:#FFE5C0; + font-size:32rpx; + letter-spacing:10px; + margin-top:50rpx; + text-indent: 10px; + border: 2px solid #FDC87A; + margin-right: 30rpx; +} +.btn:nth-child(2){ + margin-right: 0; +} \ No newline at end of file diff --git a/pages/login/login.js b/pages/login/login.js new file mode 100644 index 0000000..e4abfb0 --- /dev/null +++ b/pages/login/login.js @@ -0,0 +1,80 @@ +const App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 授权登录(旧版弃用) + */ + getUserInfo(e) { + let _this = this; + App.getUserInfo(e, () => { + // 跳转回原页面 + _this.onNavigateBack(); + }); + }, + + /** + * 授权登录(新版) + */ + getUserProfile() { + console.log('getUserProfile') + const app = this + try { + wx.getUserProfile({ + lang: 'zh_CN', + desc: '获取用户相关信息', + success({ + userInfo + }) { + console.log('用户同意了授权') + console.log('userInfo:', userInfo) + App.getUserInfo(userInfo, () => { + // 跳转回原页面 + app.onNavigateBack(1) + }); + }, + fail() { + console.log('用户拒绝了授权') + } + }) + } catch (e) { + console.log('error:', e.message) + if (e.message === 'wx.getUserProfile is not a function') { + App.showError('wx.getUserProfile 接口无法使用,请升级到最新版微信') + } else { + App.showError(error.message) + } + } + }, + + /** + * 暂不登录 + */ + onNotLogin() { + let _this = this; + // 跳转回原页面 + _this.onNavigateBack(); + }, + + /** + * 授权成功 跳转回原页面 + */ + onNavigateBack() { + wx.navigateBack(); + }, + +}) \ No newline at end of file diff --git a/pages/login/login.json b/pages/login/login.json new file mode 100644 index 0000000..a3c4767 --- /dev/null +++ b/pages/login/login.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "授权登录" +} \ No newline at end of file diff --git a/pages/login/login.wxml b/pages/login/login.wxml new file mode 100644 index 0000000..72a7c2f --- /dev/null +++ b/pages/login/login.wxml @@ -0,0 +1,21 @@ + + + + + + + + + 申请获取以下权限 + 获得你的公开信息(昵称、头像等) + + + + \ No newline at end of file diff --git a/pages/login/login.wxss b/pages/login/login.wxss new file mode 100644 index 0000000..fb9e09f --- /dev/null +++ b/pages/login/login.wxss @@ -0,0 +1,66 @@ +page { + background: #fff; + font-size: 32rpx; +} + +.container { + padding: 0 60rpx; +} + +.wechatapp { + padding: 80rpx 0 48rpx; + border-bottom: 1rpx solid #e3e3e3; + margin-bottom: 72rpx; + text-align: center; +} + +.wechatapp .header { + width: 190rpx; + height: 190rpx; + border: 2px solid #fff; + margin: 0rpx auto 0; + border-radius: 50%; + overflow: hidden; + box-shadow: 1px 0px 5px rgba(50, 50, 50, 0.3); +} + +.auth-title { + color: #585858; + font-size: 34rpx; + margin-bottom: 40rpx; +} + +.auth-subtitle { + color: #888; + margin-bottom: 88rpx; + font-size: 28rpx; +} + +.login-btn { + padding: 0 20rpx; +} + +.login-btn button { + height: 88rpx; + line-height: 88rpx; + background: #04be01; + color: #fff; + font-size: 30rpx; + border-radius: 999rpx; + text-align: center; +} + +.no-login-btn { + margin-top: 20rpx; + padding: 0 20rpx; +} + +.no-login-btn button { + height: 88rpx; + line-height: 88rpx; + background: #dfdfdf; + color: #fff; + font-size: 30rpx; + border-radius: 999rpx; + text-align: center; +} diff --git a/pages/rank/addInfo.js b/pages/rank/addInfo.js new file mode 100644 index 0000000..5b3edf4 --- /dev/null +++ b/pages/rank/addInfo.js @@ -0,0 +1,44 @@ +var App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + // banner轮播组件属性 + indicatorDots: true, // 是否显示面板指示点 + autoplay: true, // 是否自动切换 + interval: 3000, // 自动切换时间间隔 + duration: 800, // 滑动动画时长 + imgHeights: {}, // 图片的高度 + imgCurrent: {}, // 当前banne所在滑块指针 + articleData:{} + }, + + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + let id = options.id || 0; + wx.showLoading({ title: '加载中' }); + this.get_article(id); + }, + + /** + * 获取列表 + */ + get_article: function (id) { + let _this = this; + App._post_form('footchina/getCityInfo', { + id: id + }, function(result) { + wx.hideLoading(); + var rdata = result.data.data; + _this.setData({ + articleData: rdata + }) + }); + } +}) \ No newline at end of file diff --git a/pages/rank/addInfo.json b/pages/rank/addInfo.json new file mode 100644 index 0000000..b31e600 --- /dev/null +++ b/pages/rank/addInfo.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "城市人文", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": { + "parser":"../../components/parser/parser" + } +} \ No newline at end of file diff --git a/pages/rank/addInfo.wxml b/pages/rank/addInfo.wxml new file mode 100644 index 0000000..33c626a --- /dev/null +++ b/pages/rank/addInfo.wxml @@ -0,0 +1,19 @@ + + {{articleData.title}} + + + + + + + + + + + + + + + + diff --git a/pages/rank/addInfo.wxss b/pages/rank/addInfo.wxss new file mode 100644 index 0000000..2d09bac --- /dev/null +++ b/pages/rank/addInfo.wxss @@ -0,0 +1,12 @@ +.article { + background: #fff; + padding: 20rpx 30rpx; + font-size: 28rpx; +} +.title{padding-bottom:50rpx;font-size:40rpx;text-align: center;} + + + +/* banner组件按钮 */ +.swiper , swiper,swiper-item ,swiper-item image{width:100%;height:450rpx;} +.swiper{margin-bottom:20rpx;} \ No newline at end of file diff --git a/pages/rank/address.js b/pages/rank/address.js new file mode 100644 index 0000000..0e03661 --- /dev/null +++ b/pages/rank/address.js @@ -0,0 +1,97 @@ +// pages/topic/addList.js + +let App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [ + // { + // id:1, + // name:'洛阳', + // date:'2024.04.07' + // }, + // { + // id:2, + // name:'郑州', + // date:'2024.05.07' + // }, + // { + // id:3, + // name:'武汉', + // date:'2024.08.07' + // }, + ], + lightedList:[], + noMore: false, // 没有更多数据 + isLoading: true, // 是否正在加载中 + page: 1, // 当前页码 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.get_address_list(); + }, + + /** + * 获取地点列表 + */ + get_address_list(isPage, pageNum){ + let that = this; + wx.showLoading(); + App._post_form('footchina/getCitysNew', { + page: pageNum || 1, + user_id: wx.getStorageSync('user_id'), + }, result => { + wx.hideLoading(); + let resList = result.data.data,dataList = that.data.list; + if (isPage == true) { + that.setData({ + last_page:resList.list.last_page, + list: dataList.concat(resList.list.data), + isLoading: false, + }); + } else { + that.setData({ + list: resList.list.data, + isLoading: false, + }); + } + // let list2 = list.find(obj => condition(obj.already == 1)); + console.log('list2',this.data.list); + // that.setData({ + // lightedList:list2 + // }) + + + + }); + }, + goInfo: function (e) { + var id = e.target.dataset.id; + wx.navigateTo({ + url: "/pages/rank/addInfo?id=" + id + }); + }, + /** + * 下拉到底加载数据 + */ + onReachBottom() { + let _this = this; + // 已经是最后一页 + if (_this.data.page >= _this.data.last_page) { + _this.setData({ + noMore: true + }); + return false; + } + // 加载下一页列表 + _this.get_address_list(true, ++_this.data.page); + } + + +}) \ No newline at end of file diff --git a/pages/rank/address.json b/pages/rank/address.json new file mode 100644 index 0000000..36e932b --- /dev/null +++ b/pages/rank/address.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "点亮城市", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle":"black", + "usingComponents": {} +} diff --git a/pages/rank/address.wxml b/pages/rank/address.wxml new file mode 100644 index 0000000..0006844 --- /dev/null +++ b/pages/rank/address.wxml @@ -0,0 +1,42 @@ + + function formatDate(dateStr) { + return dateStr.substring(0, 10); + } + module.exports = { + formatDate: formatDate + }; + + + + + + {{item.name}} + + {{dateUtils.formatDate(item.create_time)}} + + + + + + + + + + 我也是有底线的~~ + + + + + 暂时没有数据! + + + + + diff --git a/pages/rank/address.wxss b/pages/rank/address.wxss new file mode 100644 index 0000000..f88070b --- /dev/null +++ b/pages/rank/address.wxss @@ -0,0 +1,40 @@ +.container{ + width:94%; + height: 100%; + margin:0 auto; + padding: 20rpx; + background-color: rgb(233, 227, 227); +} +.mapIcon{width:40rpx;height:33rpx;margin-right:20rpx;} +.suoIcon{width:40rpx;height:46rpx;} +.title{padding:20rpx 0;font-size:26rpx;} +.item{ + width:48%; + position:relative; + background-color: #ffffff; + border-radius: 20rpx; + overflow: hidden; + margin-bottom: 20rpx; +} +.item .list-itemText{ + padding: 20rpx; + display: flex; + align-items: center; + font-size: 26rpx; + font-weight: 400; + justify-content: space-between; +} +.item .thumb{ + width:94%; + height:220rpx; + margin-left: 12rpx; + /* z-index:1; */ +} +.zhezhao{ + position: absolute; + top: 81rpx; + z-index: 2; + width:100%;height:220rpx; + background:rgba(255,255,255,.4); +} +.item text{height:60rpx;line-height:60rpx;} diff --git a/pages/rank/components/banner/banner.wxml b/pages/rank/components/banner/banner.wxml new file mode 100644 index 0000000..a66b5ba --- /dev/null +++ b/pages/rank/components/banner/banner.wxml @@ -0,0 +1,12 @@ + + + + + + diff --git a/pages/rank/components/banner/banner.wxss b/pages/rank/components/banner/banner.wxss new file mode 100644 index 0000000..b3d9776 --- /dev/null +++ b/pages/rank/components/banner/banner.wxss @@ -0,0 +1,38 @@ +/* banner轮播 */ + +.diy-banner { + position: relative; +} + +/* 顶部置灰 */ + +.diy-banner .linear { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 3.4rem; + background: linear-gradient(#111, transparent); + opacity: 0.6; + z-index: 9; +} + +.swiper-box .wx-swiper-dots.wx-swiper-dots-horizontal { + margin-bottom: 2rpx; +} + +/* banner组件按钮 */ + +.swiper-box .wx-swiper-dot { + height: 20rpx; + width: 20rpx; +} + +.swiper-box.dot-rectangle .wx-swiper-dot { + width: 30rpx; + border-radius: unset; +} + +.swiper-box.dot-square .wx-swiper-dot { + border-radius: unset; +} diff --git a/pages/rank/index.js b/pages/rank/index.js new file mode 100644 index 0000000..af9de29 --- /dev/null +++ b/pages/rank/index.js @@ -0,0 +1,97 @@ +const App = getApp(); + +Page({ + data: { + currentData : 0, + page: 1, + dataList: [], + datalist:[], + datalistTwo:[], + rank:[], + noMore: false, // 没有更多数据 + isLoading: true, // 是否正在加载中 + }, + + onLoad: function() { + let _this = this; + // 获取活动列表 + _this.getRankList(false, 1); + }, + //点击切换,滑块index赋值 + checkCurrent:function(e){ + const that = this; + if (that.data.currentData === e.target.dataset.current){ + return false; + }else{ + that.setData({ + currentData: e.target.dataset.current, + dataList :[], + datalist :[], + datalistTwo :[], + page:1, + last_page:2 + }) + that.getRankList(false, 1); + } + }, + /** + * Api:获取活动列表 + */ + getRankList(isPage, pageNum) { + let _this = this; + wx.showLoading(); + App._post_form('footchina/getRankUser', { + page: pageNum || 1, + user_id: wx.getStorageSync('user_id'), + type:_this.data.currentData + }, result => { + console.log(result); + wx.hideLoading(); + let resList = result.data.data,list = _this.data.dataList; + var rank = result.data.data.rank; + if (isPage == true) { + _this.setData({ + last_page:resList.list.last_page, + dataList: list.concat(resList.list.data), + isLoading: false, + rank:rank, + // datalistTwo:this.data.datalist.slice(3), + datalistTwo:(list.concat(resList.list.data)).slice(3), + }); + + } else { + _this.setData({ + dataList: resList.list.data, + datalistTwo:resList.list.data.slice(3), + isLoading: false, + rank:rank + }); + } + + + + + }); + + }, + onShow: function() {}, + onHide: function() {}, + onUnload: function() {}, + onShareAppMessage: function() {}, + /** + * 下拉到底加载数据 + */ + onReachBottom() { + let _this = this; + // 已经是最后一页 + if (_this.data.page >= _this.data.last_page) { + _this.setData({ + noMore: true + }); + return false; + } + // 加载下一页列表 + _this.getRankList(true, ++_this.data.page); + } + +}); \ No newline at end of file diff --git a/pages/rank/index.json b/pages/rank/index.json new file mode 100644 index 0000000..a89e635 --- /dev/null +++ b/pages/rank/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "排行榜", + "navigationBarBackgroundColor": "#fff", + "navigationBarTextStyle":"black", + "enablePullDownRefresh": true, + "usingComponents": { + } +} \ No newline at end of file diff --git a/pages/rank/index.wxml b/pages/rank/index.wxml new file mode 100644 index 0000000..63835e2 --- /dev/null +++ b/pages/rank/index.wxml @@ -0,0 +1,85 @@ + + + + + 总排行 + 今日排行 + + + + + + + + + + + + {{dataList[1].realname ? dataList[1].realname : ''}} + {{dataList[1].step_total ? dataList[1].step_total : 0}} + + + + + + + + + {{dataList[0].realname ? dataList[0].realname : ''}} + {{dataList[0].step_total ? dataList[0].step_total : 0}} + + + + + + + + + {{dataList[2].realname ? dataList[2].realname : ''}} + {{dataList[2].step_total ? dataList[2].step_total : 0}} + + + + + + + + + + + + + + + + + + + + + {{index + 4}} + + + {{item.realname}} + 累计{{item.singDays}}天 + + + {{item.step_total}}步 + + 我也是有底线的~~ + + + + + 暂时没有数据! + + + + + + + + \ No newline at end of file diff --git a/pages/rank/index.wxss b/pages/rank/index.wxss new file mode 100644 index 0000000..0c8fa5a --- /dev/null +++ b/pages/rank/index.wxss @@ -0,0 +1,186 @@ +page { + width: 100%; + height: 100%; + background-color:#f2f2f2; +} +.main { + width: 100%; + height: 100%; + background-image: url('https://minipro.luochunlvshi.com/uploads/image/jiankangzoupaihang.png'); + background-size: contain; + /* position: relative; */ + /* background-size: cover;*/ + background-repeat: no-repeat; + /* background-position: center; 确保图片居中显示 */ +} +.backImage { + width: 100%; /* 根据需要设置宽度 */ + height: 100%; /* 高度自动 */ + position: absolute; /* 绝对定位 */ + top: 0; + left: 0; + z-index: -1; /* 确保图片在其他内容下方 */ +} +.tab { + float: left; + width: 50%; + text-align: center; + padding: 20rpx 0; + font-weight:bold; + font-size:34rpx; +} + +.topTabSwiper { + position: relative; + top: 18%; + left: 3%; + width: 45%; + /* height: 96rpx; */ + background-color:rgba(255, 255, 255, 0.4); + /* opacity: 0.5; */ + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + zoom: 1; + border-radius: 40rpx; + color: #FFF; +} + +.topTabSwiper:after { + content: ""; + clear: both; + display: block; +} + +.tabBorer { + /* border-bottom: 1px solid #ffffff; */ + background-color: #FFF; + border-radius: 40rpx; + color: #D03020; + +} + +.threetop{ + position: relative; + top: 22%; +} + +.topThreeInfo { + position: relative; + top: 0; + display: flex; + align-items: center; + justify-content: center; +} +.topThreeInfo .second{ + margin-right: 20rpx; + display: inline; + position: relative; + top: 50rpx; + /* align-items: center; */ + justify-content: center; +} +.topImages_f{ + width: 220rpx; + height: 220rpx; + border-radius: 50%; +} +.topBase_f{ + width: 220rpx; + height: 220rpx; +} +.topImg_f{ + width: 140rpx; + height: 130rpx; + position: relative; + bottom: 86%; + left: 43rpx; + border-radius: 50%; +} +.topInfo{ + max-width: auto; + position: relative; + /* left: 48rpx; */ + align-items: center; + justify-content: center; + text-align: center; +} + +.topImages{ + width: 200rpx; + height: 200rpx; + border-radius: 50%; +} +.topBase{ + width: 200rpx; + height: 200rpx; +} +.topImg{ + width: 145rpx; + height: 144rpx; + position: relative; + bottom: 94%; + left: 27rpx; + border-radius: 50%; +} +.topInfo_f{ + max-width: auto; + position: relative; + /* left: 48rpx; */ + align-items: center; + justify-content: center; + text-align: center; +} + +.topThreeInfo .first{ + display: inline; + /* align-items: center; */ + justify-content: center; +} + + +.topThreeInfo .third{ + margin-left: 20rpx; + position: relative; + top: 50rpx; + display: inline; + align-items: center; + justify-content: center; +} + + +.topThree{ + position: relative; + top: 35%; + left: 2%; + width: 95%; + height: 171rpx; +} +.topThree .topThreeBase{ + width: 100%; + height: 171rpx; +} + +.rankList{ + position: relative; + top: 21%; +} +.swiper { + width: 100%; +} + +.swiper_con { + + text-align: center; + width: 100%; + height: 500rpx auto; + padding: 20rpx 0; +} +.top{padding-bottom:20rpx;color:#999;font-size:26rpx;} +.rank_list{padding:0 20rpx;} +.item{padding:20rpx;background-color:#FFF;margin-bottom:20rpx;} +.avatar{width:120rpx;height:120rpx;border-radius:50%;margin:0 20rpx;} +.left .username{font-size:30rpx;color:#000;padding-bottom:10rpx;} +.left .singDays{font-size:26rpx;color:#999;} +.mingci{width:60rpx;} +.mingci image{width:60rpx;height:60rpx;} +.step{color: #D03020;font-size:26rpx;font-weight:bold;} \ No newline at end of file diff --git a/pages/topic/addInfo.js b/pages/topic/addInfo.js new file mode 100644 index 0000000..65c8890 --- /dev/null +++ b/pages/topic/addInfo.js @@ -0,0 +1,38 @@ +var App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + let id = options.id || 0; + wx.showLoading({ title: '加载中' }); + this.get_article(id); + }, + + /** + * 获取列表 + */ + get_article: function (id) { + let _this = this; + App._post_form('topic/getTopicInfo', { + id: id + }, function(result) { + wx.hideLoading(); + var rdata = result.data.data; + console.log('rdatardata',rdata) + _this.setData({ + articleData: rdata + }) + }); + } +}) \ No newline at end of file diff --git a/pages/topic/addInfo.json b/pages/topic/addInfo.json new file mode 100644 index 0000000..3641019 --- /dev/null +++ b/pages/topic/addInfo.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "重走长征路", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": { + "parser":"../../components/parser/parser" + } +} \ No newline at end of file diff --git a/pages/topic/addInfo.wxml b/pages/topic/addInfo.wxml new file mode 100644 index 0000000..03d0319 --- /dev/null +++ b/pages/topic/addInfo.wxml @@ -0,0 +1,7 @@ + + {{articleData.title}} + + + + + diff --git a/pages/topic/addInfo.wxss b/pages/topic/addInfo.wxss new file mode 100644 index 0000000..39863d6 --- /dev/null +++ b/pages/topic/addInfo.wxss @@ -0,0 +1,6 @@ +.article { + background: #fff; + padding: 20rpx 30rpx; + font-size: 28rpx; +} +.title{padding-bottom:50rpx;font-size:40rpx;} \ No newline at end of file diff --git a/pages/topic/addList.js b/pages/topic/addList.js new file mode 100644 index 0000000..7e0acc8 --- /dev/null +++ b/pages/topic/addList.js @@ -0,0 +1,55 @@ +// pages/topic/addList.js + +let App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + noMore: false + }, + token: '', + pageNum: 1, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.get_list(); + }, + + /** + * 获取列表 + */ + get_list: function(){ + let that = this; + wx.showLoading(); + App._post_form('topic/getDuiHuanJl', { + user_id: wx.getStorageSync('user_id'), + page: this.pageNum + }, result => { + wx.hideLoading(); + if (result.data.code == 0) { + let oldList = that.data.list; + let list = result.data.data; + let h = {}; + if(list.length < 30) h.noMore = false; + list = list.concat(oldList); + h.list = list; + that.pageNum++; + that.setData(h) + } else { + let h = {}; + h.noMore = true; + if(that.pageNum == 1) h.noMore = true; + that.setData(h) + } + }); + }, + + onReachBottom: function() { + this.data.noMore || this.get_list(); + } +}) \ No newline at end of file diff --git a/pages/topic/addList.json b/pages/topic/addList.json new file mode 100644 index 0000000..a8c8ec7 --- /dev/null +++ b/pages/topic/addList.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "步数兑换记录", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": { + "i-empty": "../../components/empty/index" + } +} \ No newline at end of file diff --git a/pages/topic/addList.wxml b/pages/topic/addList.wxml new file mode 100644 index 0000000..6fd666e --- /dev/null +++ b/pages/topic/addList.wxml @@ -0,0 +1,8 @@ +你最近兑换的历史步数如下: + + + {{item.date}} + 已兑换步数 {{item.step}} + + +暂无内容~ \ No newline at end of file diff --git a/pages/topic/addList.wxss b/pages/topic/addList.wxss new file mode 100644 index 0000000..1664445 --- /dev/null +++ b/pages/topic/addList.wxss @@ -0,0 +1,20 @@ +.list-item { + height: 100rpx; + background: #fff; + border-bottom: 0.1rpx solid #e4e4e4; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20rpx; +} + +.list-item span { + font-size: 28rpx; +} + +.list-item .icon-right { + width: 12rpx; + height: 22rpx; +} +.green{color:#D03020;font-size:32rpx;font-weight:bold;} +.title{height:100rpx;} \ No newline at end of file diff --git a/pages/topic/address.js b/pages/topic/address.js new file mode 100644 index 0000000..ce0653d --- /dev/null +++ b/pages/topic/address.js @@ -0,0 +1,48 @@ +// pages/topic/addList.js + +let App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + dangqianData: [], + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.get_address_list(); + }, + + /** + * 获取地点列表 + */ + get_address_list: function(){ + let that = this; + wx.showLoading(); + App._post_form('topic/getAddress', { + user_id: wx.getStorageSync('user_id'), + }, result => { + wx.hideLoading(); + var list = result.data.data.address; + var dangqianData = result.data.data.dangqianData; + that.setData({ + list, + dangqianData + }); + + + }); + }, + goInfo: function (e) { + var id = e.target.dataset.id; + wx.navigateTo({ + url: "/pages/topic/addInfo?id=" + id + }); + }, + +}) \ No newline at end of file diff --git a/pages/topic/address.json b/pages/topic/address.json new file mode 100644 index 0000000..cedbdcf --- /dev/null +++ b/pages/topic/address.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "解锁地图", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/topic/address.wxml b/pages/topic/address.wxml new file mode 100644 index 0000000..54f6af5 --- /dev/null +++ b/pages/topic/address.wxml @@ -0,0 +1,11 @@ + + 解锁地图 + + + + + {{item.name}} + + + + diff --git a/pages/topic/address.wxss b/pages/topic/address.wxss new file mode 100644 index 0000000..a15b602 --- /dev/null +++ b/pages/topic/address.wxss @@ -0,0 +1,14 @@ +.container{width:94%;margin:0 auto;} +.mapIcon{width:40rpx;height:33rpx;margin-right:20rpx;} +.suoIcon{width:40rpx;height:46rpx;} +.title{padding:20rpx 0;font-size:26rpx;} +.item{width:48%;position:relative;} +.item .thumb{width:100%;height:220rpx;z-index:1;} +.zhezhao{ + position: absolute; + top: 0; + z-index: 2; + width:100%;height:220rpx; + background:rgba(255,255,255,.4); +} +.item text{height:60rpx;line-height:60rpx;} \ No newline at end of file diff --git a/pages/topic/detail.js b/pages/topic/detail.js new file mode 100644 index 0000000..2969c32 --- /dev/null +++ b/pages/topic/detail.js @@ -0,0 +1,38 @@ +var App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + let id = options.id || 0; + wx.showLoading({ title: '加载中' }); + this.get_article(id); + }, + + /** + * 获取列表 + */ + get_article: function (id) { + let _this = this; + App._post_form('topic/getTopicDetail', { + id: id + }, function(result) { + wx.hideLoading(); + var rdata = result.data.data; + console.log('rdatardata',rdata) + _this.setData({ + articleData: rdata + }) + }); + } +}) \ No newline at end of file diff --git a/pages/topic/detail.json b/pages/topic/detail.json new file mode 100644 index 0000000..f59319e --- /dev/null +++ b/pages/topic/detail.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "活动介绍", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": { + "parser":"../../components/parser/parser" + } +} \ No newline at end of file diff --git a/pages/topic/detail.wxml b/pages/topic/detail.wxml new file mode 100644 index 0000000..0164fca --- /dev/null +++ b/pages/topic/detail.wxml @@ -0,0 +1,6 @@ + + + + + + diff --git a/pages/topic/detail.wxss b/pages/topic/detail.wxss new file mode 100644 index 0000000..39863d6 --- /dev/null +++ b/pages/topic/detail.wxss @@ -0,0 +1,6 @@ +.article { + background: #fff; + padding: 20rpx 30rpx; + font-size: 28rpx; +} +.title{padding-bottom:50rpx;font-size:40rpx;} \ No newline at end of file diff --git a/pages/topic/index.js b/pages/topic/index.js new file mode 100644 index 0000000..266158f --- /dev/null +++ b/pages/topic/index.js @@ -0,0 +1,473 @@ + +let App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + step:0, + userStep:0, + licheng:0, + day:0, + paiming:12143, + position:'江西瑞金', + nextPosition:'宜章', + mubiao:50, + showModel:0, + showStep:0, + polyline:[], + markers:[], + canyuNum:0, + topicInfo:[], + stepToday:0, + zdStep:0, + zgStep:0, + time:0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + console.log('onLoad'); + this.getStepNew(); + this.setData({ + // 仅设置的属性会生效,其它的不受影响 + setting: { + enableZoom: false, + enableScroll: false, + }, + }) + this.getImageData(); + this.getAddress(); + this.getStepCountToday(); + this.getTopicInfo(); + this.getStepConfig(); + this.getStepJl(); + this.mapContext = wx.createMapContext('map'); + let _this = this; + App._post_form('topic/getLicheng', { + user_id: wx.getStorageSync('user_id') + }, function(result) { + var rdata = result.data.data; + if( rdata ){ + var a = _this.data.showModel; + _this.setData({ + showModel: !a + }) + _this.getData(); + + + } + }); + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + console.log('onShow'); + this.getStepNew(); + this.getStepJl(); + + }, + //获取用户微信运动步数 + getUserStep:function(){ + let _this = this; + App._post_form('topic/getUserStep', { + user_id: wx.getStorageSync('user_id') + }, function(result) { + var userStep = result.data.data; + console.log('userStep',userStep); + _this.setData({ + userStep: userStep + }) + }); + }, + + getStepCountToday:function(){ + let _this = this; + App._post_form('topic/getStepCountToday', { + user_id: wx.getStorageSync('user_id'), + }, function(result) { + var stepToday = result.data.data; + _this.setData({stepToday:stepToday}); + }); + + }, + + getStepJl:function(){ + let _this = this; + App._post_form('topic/getStepJl', { + user_id: wx.getStorageSync('user_id'), + }, function(result) { + var time = result.data.data; + console.log('time',time); + _this.setData({time:time}); + }); + + }, + + getStepNew:function(){ + let _this = this; + App._post_form('topic/getStep', { + user_id: wx.getStorageSync('user_id'), + }, function(result) { + var stepNew = result.data.data; + _this.setData({step:stepNew}); + }); + }, + + /** + * 获取长征路路线 + */ + getAddress: function() { + let _this = this; + App._post_form('topic/getAddress', { + user_id: wx.getStorageSync('user_id') + }, function(result) { + var rdata = result.data.data.address; + var dangqianInfo = result.data.data.dangqianData; + var rdata2 = result.data.data.result3; + let markers = [] ,polyline = [] ,points = [], points2 = [],dataPoint = []; + + + for (var i=0;i 1){ + polyline.push({ + points:points2, + color:"#D03020",//线条的颜色 + width: 5,//宽度 + }) + } + + _this.setData({ + markers: markers, + polyline:polyline + }) + }); + }, + + goLicheng:function(){ + let _this = this; + App._post_form('topic/goLicheng', { + user_id: wx.getStorageSync('user_id') + }, function(result) { + var rdata = result.data.data; + + if( rdata ){ + var a = _this.data.showModel; + wx.showToast({ + title: '加入成功', + icon: 'none', + duration: 2000 + }) + _this.setData({ + showModel: !a + }) + _this.getData(); + } + + }); + }, + goDuiHuanW:function(e){ + console.log('goDuiHuanW'); + let _this = this; + _this.getStepJl(); + let zdStep = _this.data.zdStep; + let zgStep = _this.data.zgStep; + let stepToday = _this.data.stepToday; + let time = _this.data.time; + let step = e.target.dataset.step; + let dhnum = e.target.dataset.dhnum; + let dhnumc = e.target.dataset.dhnumc; + + console.log('_this.data.time',time); + if(stepToday >= zgStep ){ + wx.showToast({ + title: '今日兑换步数已达上限'+zgStep+'步', + icon: 'none', + duration: 4000 + }) + return false; + } + if(dhnum == dhnumc ){ + wx.showToast({ + title: '今日兑换次数已用完', + icon: 'none', + duration: 4000 + }) + return false; + } + + if(0 < time && time <= 3600 ){ + wx.showToast({ + title: '再走走看吧', + icon: 'none', + duration: 4000 + }) + return false; + } + + if(step <= zdStep ){ + wx.showToast({ + title: '步数不能低于'+zdStep+'步', + icon: 'none', + duration: 4000 + }) + return false; + } + + }, + + + goDuiHuan:function(e){ + let _this = this; + _this.getStepJl(); + let zdStep = _this.data.zdStep; + let zgStep = _this.data.zgStep; + let stepToday = _this.data.stepToday; + let step = e.target.dataset.step; + let time = _this.data.time; + let dhnum = e.target.dataset.dhnum; + let dhnumc = e.target.dataset.dhnumc; + if(stepToday >= zgStep ){ + wx.showToast({ + title: '今日兑换步数已达上限'+zgStep+'步', + icon: 'none', + duration: 4000 + }) + return false; + } + if(dhnum == dhnumc ){ + wx.showToast({ + title: '今日兑换次数已用完', + icon: 'none', + duration: 4000 + }) + return false; + } + if(0 < time && time <= 3600 ){ + wx.showToast({ + title: '再走走看吧', + icon: 'none', + duration: 4000 + }) + return false; + } + if(step < zdStep ){ + wx.showToast({ + title: '步数不能低于'+zdStep+'步', + icon: 'none', + duration: 4000 + }) + return false; + } + + if(dhnum == 0 && step > zgStep){ + step = zgStep; //首次兑换 兑换步数 > 每日最高兑换步数 兑换步数 = 每日最高兑换步数 + } + + if( ( dhnum > 0 && dhnum < dhnumc ) && (step + stepToday) > zgStep){ + step = zgStep - stepToday; //第二次 或者 第三次兑换 可兑换步数 = 最高兑换步数 - 已兑换步数 + } + + App._post_form('topic/goDuiHuan', { + user_id: wx.getStorageSync('user_id'), + step:step + }, function(result) { + var rdata = result.data.data; + if( rdata.status ){ + _this.getData(); + _this.getStepCountToday(); + _this.setData({step:rdata.step}); + wx.showToast({ + title: '兑换成功', + icon: 'none', + duration: 2000 + }) + + } + + }); + + + }, + + getTopicInfo:function(){ + let _this = this; + App._get('topic/getTopicDetail', {}, function(result) { + var rdata = result.data.data; + _this.setData({topicInfo:rdata}); + }); + }, + + + /** + * 获取图片设置数据 + */ + getImageData: function() { + let _this = this; + App._get('wxapp/imageSet', {}, function(result) { + _this.setData({imageSet:result.data.new_values}); + }); + }, + + + /** + * 获取基础设置 + */ + getStepConfig: function() { + let _this = this; + App._get('wxapp/store', {}, function(result) { + console.log('result.data.values',result.data.values); + _this.setData({ + zdStep:result.data.values.zdstep, + zgStep:result.data.values.zgstep, + }); + }); + }, + + + getData:function(){ + let _this = this; + App._post_form('topic/getTopicData', { + user_id: wx.getStorageSync('user_id'), + }, function(result) { + var rdata = result.data.data; + _this.setData({ + licheng:rdata.mileage, + day:rdata.days, + paiming:rdata.sort, + position:rdata.next.dangqianAddress, + nextPosition:rdata.next.nextMubiao, + mubiao:rdata.next.mubiaoJuLi, + info:rdata.next.dangqianData, + canyuNum:rdata.canyuNum, + dhnum:rdata.dhnum, + dhnumC:rdata.config.dhnum, + }); + }); + }, + + + goInfo: function () { + wx.navigateTo({ + url: "/pages/topic/address" + }); + }, + + goXunzhang: function () { + wx.navigateTo({ + url: "/pages/topic/xunzhang" + }); + }, + goDetail: function () { + wx.navigateTo({ + url: "/pages/topic/detail" + }); + }, + goJiLu :function () { + wx.navigateTo({ + url: "/pages/topic/addList" + }); + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + console.log('onHide'); + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { +console.log('onUnload'); + }, + onPullDownRefresh: function () { + + wx.stopPullDownRefresh() + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/topic/index.json b/pages/topic/index.json new file mode 100644 index 0000000..fa4476b --- /dev/null +++ b/pages/topic/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "重走长征路", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "enablePullDownRefresh": true, + "usingComponents": { + } +} \ No newline at end of file diff --git a/pages/topic/index.wxml b/pages/topic/index.wxml new file mode 100644 index 0000000..8bdcfc5 --- /dev/null +++ b/pages/topic/index.wxml @@ -0,0 +1,96 @@ + + + + + + 今日步数 + {{step}} + + + + + 红色经典 参与重走长征路 + 立即参与 查看路线 + + + + + + + 参与{{canyuNum}} + 活动介绍 + + + + {{info.name}} + + + + + + + + + + + {{topicInfo.licheng}}里 + + {{topicInfo.bili}} + + + + + + + 兑换里程 + {{step}} + + + + + 兑换里程 + 再走走 + + + + + 今日已兑换 + {{stepToday}} 步 + + + + + 累计行走 + {{licheng}}里 + + + 累计天数 + {{day}}天 + + + 长征排名 + {{paiming}}名 + + + 当前走到 + {{position}} + + + 下个目标 + {{nextPosition}} + + + 目标距离 + {{mubiao}}里 + + + + + diff --git a/pages/topic/index.wxss b/pages/topic/index.wxss new file mode 100644 index 0000000..f5268b2 --- /dev/null +++ b/pages/topic/index.wxss @@ -0,0 +1,94 @@ +page{background-color:#FFF;font-size: 24rpx;} +.canvas-box{width:100%;height:600rpx;} +.last-report{width:100%;height:600rpx;} +.container-box{position:relative;height:100%;} +.container{ +background-color:#FFF; +border-radius:36rpx 36rpx 0 0; + +} +.dhlc{width:160rpx;height:160rpx; + border-radius:50%; + background-color:#D03020; + border:3px solid #FFF; + margin-top:-100rpx; + z-index: 999; +} + .dhlc view{color:#FFF;} + .dhlc .text{font-size:24rpx;} + .dhlc .num1{font-size:28rpx;} + .dhlc .num{font-size:34rpx;} + .item-container{width:100%;} +.item{ + width:33.3%; + padding-bottom:20rpx; +} +.item .top{color:#999;font-size:24rpx;} +.item .bottom{color:#333;font-size:30rpx;padding-top:10rpx;} +.index-heard { + width: 750rpx; + position: relative; + overflow: hidden; +} +.center { + display: table; + margin: 0rpx auto 20rpx; + width: 309rpx; + height: 309rpx; + border-radius: 50%; + background: green; + color: #fff; + text-align: center; +} + +.mycoin { + font-size: 28rpx; + color:#333; + font-weight:bold; +} +.head-bottom{width:70%;margin:0 auto;padding:40rpx;} +.head-image{width:100%;height:400rpx;margin-bottom:50rpx;} +.ren-image{width:75rpx;height:75rpx;} +.btn{ + width:100%; + height:80rpx;line-height:80rpx; + background-color:#CB3326;border-radius:50rpx; + text-align:center;color:#FFF; + margin-top:20rpx; +} +.coin-count { + font-size: 68rpx; + color:#CB3326; + font-weight:bold; + font-family: 'DIN Alternate'; +} +.table-cell { + display: table-cell; + vertical-align: middle; +} +.canyuNum{width:200rpx;height:60rpx;background-color:#D03020;color:#FFFFFF; +font-size:24rpx;position:absolute;right:0;top:100rpx; +z-index:999;border-radius:40rpx 0 0 40rpx; +} +.canyuNum text{font-size:30rpx;padding:0 10rpx;} +.xunzhang{width:80rpx;height:60rpx;position:absolute;right:20rpx;top:200rpx;z-index:999;} +.xunzhang image{width:80rpx;height:80rpx;} +.addressInfo{width:150rpx;position:absolute;right:200rpx;top:40%;z-index:999;} +.addressInfo image{width:120rpx;height:120rpx;border-radius:10rpx;border:2px solid #FFF;} +.pt50{padding-top:50rpx;} +.pt20{padding-top:20rpx;} +.line{width:100%;height:2px;background-color:#909090;margin:5rpx 0;} +.headBg{width:100%;height:130rpx;} + +.container-map { + height: 700rpx; + width: 100%; + background-color:#f5f5f5; +} +#ec-canvas { + width: 100%; + height: 100%; +} + + + diff --git a/pages/topic/xunzhang.js b/pages/topic/xunzhang.js new file mode 100644 index 0000000..6bcc873 --- /dev/null +++ b/pages/topic/xunzhang.js @@ -0,0 +1,222 @@ +let App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + maskHidden:false, + user_info:[], + show:true + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + this.getUserInfo(); + this.formSubmit(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + getUserInfo: function () { + let _this = this; + App._post_form('topic/getUserInfo', { + user_id: wx.getStorageSync('user_id') + }, function(result) { + var user_info = result.data.data; + if(user_info.wancheng == 1){ + _this.setData({ + show:false + }); + } + _this.setData({ + user_info:user_info + }); + }); + }, + + /** + * 获取图片设置数据 + */ + getImageData: function() { + console.log('getImageData'); + let _this = this; + var evalatImage,avatarUrl; + App._get('wxapp/imageSet', {}, function(result) { + var imageSet = result.data.new_values; + wx.getImageInfo({ + src: imageSet.haibaibg, + success(res) { + evalatImage = res.path + wx.getImageInfo({ + src: _this.data.user_info.avatarUrl, + success(res) { + avatarUrl = res.path; + _this.createNewImg(evalatImage,avatarUrl); + } + }) + } + }) + }); + }, + //点击生成海报 + formSubmit: function (e) { + var that = this; + wx.showToast({ + title: '海报生成中...', + icon: 'loading', + duration: 1000 + }); + that.getImageData(); + setTimeout(function () { + wx.hideToast() + that.setData({ + maskHidden: true + }); + }, 1000); + }, + //将canvas转换为图片保存到本地,然后将图片路径传给image图片的src + createNewImg: function (evalatImage,avatarUrl) { + var that = this; + var user_info = that.data.user_info; + var context = wx.createCanvasContext('mycanvas'); + context.drawImage(evalatImage, 0, 0, 375, 660); + context.save();//绘制背景 + + //绘制头像 + context.beginPath(); //开始绘制 + //先画个圆,前两个参数确定了圆心 (x,y) 坐标 第三个参数是圆的半径 四参数是绘图方向 默认是false,即顺时针 + context.arc(80 / 2 + 145, 80 / 2 + 180, 80 / 2, 0, Math.PI * 2, false); + context.clip(); //画好了圆 剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 这也是我们要save上下文的原因 + context.drawImage(avatarUrl, 145, 180, 80, 80); + context.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图问下文即状态 还可以继续绘制 + + // 昵称 + context.setFontSize(18); + context.setTextAlign('center'); + context.setFillStyle('#333'); + context.fillText(user_info.nickName,187, 300); + + //历时 + context.setFontSize(14); + context.setTextAlign('center'); + context.setFillStyle('#333'); + context.fillText('历时:'+user_info.days+'天',187, 330); + + //排名 + context.setFontSize(14); + context.setTextAlign('center'); + context.setFillStyle('#333'); + context.fillText('排名:'+user_info.sort+'名',187, 360); + + //历时日期 + context.setFontSize(14); + context.setTextAlign('center'); + context.setFillStyle('#333'); + context.fillText(user_info.date,187, 390); + + context.draw(true);//true表示保留之前绘制内容 + //将生成好的图片保存到本地,需要延迟一会,绘制期间耗时 + setTimeout(function () { + wx.canvasToTempFilePath({ + canvasId: 'mycanvas', + success: function (res) { + var tempFilePath = res.tempFilePath; + that.setData({ + imagePath: tempFilePath + }); + }, + fail: function (res) { + console.log(res); + } + }); + }, 1000); + }, + //文本换行 + dealWords(options) { + options.ctx.setFontSize(options.fontSize);//设置字体大小 + var allRow = Math.ceil(options.ctx.measureText(options.word).width / options.maxWidth);//实际总共能分多少行 + var count = allRow >= options.maxLine ? options.maxLine : allRow;//实际能分多少行与设置的最大显示行数比,谁小就用谁做循环次数 + var endPos = 0;//当前字符串的截断点 + for (var j = 0; j < count; j++) { + var nowStr = options.word.slice(endPos);//当前剩余的字符串 + var rowWid = 0;//每一行当前宽度 + if (options.ctx.measureText(nowStr).width > options.maxWidth) {//如果当前的字符串宽度大于最大宽度,然后开始截取 + for (var m = 0; m < nowStr.length; m++) { + rowWid += options.ctx.measureText(nowStr[m]).width;//当前字符串总宽度 + if (rowWid > options.maxWidth) { + if (j === options.maxLine - 1) { //如果是最后一行 + options.ctx.fillText(nowStr.slice(0, m - 1) + '...', options.x, options.y + (j + 1) * 25); //(j+1)*20这是每一行的高度 + } else { + options.ctx.fillText(nowStr.slice(0, m), options.x, options.y + (j + 1) * 25); + } + endPos += m;//下次截断点 + break; + } + } + } else {//如果当前的字符串宽度小于最大宽度就直接输出 + options.ctx.fillText(nowStr.slice(0), options.x, options.y + (j + 1) * 25); + } + } + }, + //点击保存到相册 + baocun: function () { + var that = this + wx.saveImageToPhotosAlbum({ + filePath: that.data.imagePath, + success(res) { + wx.showModal({ + content: '图片已保存到相册,赶紧晒一下吧~', + showCancel: false, + confirmText: '好的', + confirmColor: '#333', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定'); + /* 该隐藏的隐藏 */ + that.setData({ + maskHidden: false + }) + } + }, fail: function (res) { + console.log(11111) + } + }) + } + }) + } +}) + + + + + diff --git a/pages/topic/xunzhang.json b/pages/topic/xunzhang.json new file mode 100644 index 0000000..5477947 --- /dev/null +++ b/pages/topic/xunzhang.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "运动步数榜", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white", + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/topic/xunzhang.wxml b/pages/topic/xunzhang.wxml new file mode 100644 index 0000000..df4e347 --- /dev/null +++ b/pages/topic/xunzhang.wxml @@ -0,0 +1,10 @@ + + + 未完成,继续努力 + + + + + + + \ No newline at end of file diff --git a/pages/topic/xunzhang.wxss b/pages/topic/xunzhang.wxss new file mode 100644 index 0000000..a1cffcc --- /dev/null +++ b/pages/topic/xunzhang.wxss @@ -0,0 +1,89 @@ + +page{ background:#fff;} + .zhezhao{ + position: absolute; + top: 0; + z-index: 999; + width:100%;height:100%; + background:rgba(255,255,255,.4); +} +.suoIcon{width:80rpx;height:92rpx;padding-bottom:10rpx;} +.imagePathBox{ + width: 100%; + height: 100%; + background:#fff; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 99; +} +.mask{ + width: 100%; + height: 100%; + /* background: rgba(255,255,266,0.5); */ + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 90; +} +.shengcheng{ + width: 80%; + height: 80%; + position: fixed; + top: 50rpx; + left: 50%; + margin-left: -40%; + z-index: 10; +} +.baocun{ + display: block; + width: 80%; + height: 80rpx; + padding: 0; + line-height: 80rpx; + text-align: center; + position: fixed; + bottom: 50rpx; + left: 10%; + background: #D03020; + color: #fff; + font-size: 32rpx; + border-radius: 44rpx; +} + +.shareFriends{ + display: block; + width: 80%; + height: 104rpx; + padding: 0; + line-height: 80rpx; + text-align: center; + position: fixed; + bottom: 50rpx; + left: 10%; + background: #D03020; + color: rgb(211, 208, 208); + font-size: 32rpx; + border-radius: 44rpx; +} + + +button[class="baocun"]::after{ + border: 0; +} + +/* canvas绘图 */ +/* .canvas-box{ + width:0rpx; + height:0rpx; + overflow: hidden; + position: fixed; + left:0rpx; + bottom:30rpx; + z-index: 99; +} */ + \ No newline at end of file diff --git a/pages/user/index.js b/pages/user/index.js new file mode 100644 index 0000000..b797971 --- /dev/null +++ b/pages/user/index.js @@ -0,0 +1,187 @@ +const App = getApp(); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + userInfo: {}, + isLogin: false, + showModal: false, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + this.getUserDetail(); + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + let _this = this; + _this.setData({ + isLogin: App.checkIsLogin() + }); + this.getUserDetail(); + }, + + /** + * 获取当前用户信息 + */ + getUserDetail() { + let _this = this; + App._post_form('user.index/detail', { + user_id: wx.getStorageSync('user_id') + }, result => { + _this.setData(result.data); + }); + }, + /** + * 菜单列表导航跳转 + */ + onTargetMenus(e) { + let _this = this; + if (!_this.onCheckLogin()) { + return false; + } + wx.navigateTo({ + url: '/' + e.currentTarget.dataset.url + }) + }, + /** + * 验证是否已登录 + */ + onCheckLogin() { + let _this = this; + if (!_this.data.isLogin) { + App.showError('很抱歉,您还没有登录'); + return false; + } + return true; + }, + + /** + * 退出登录 + */ + toClear() { + console.log('退出登录'); + // wx.clearStorageSync() + wx.clearStorageSync('openId'); + wx.clearStorageSync('token'); + wx.clearStorageSync('userInfo'); + // getApp().globalData.userInfo = null; + console.log('退出登录22') + + wx.switchTab({ + url: '/pages/index/index' + }); + + wx.showToast({ + title: '已退出', + icon: 'none' + }); + + }, + + //登陆按钮 + loginUser: function () { + let _this = this; + _this.setData({ + showModal: true + }); + }, + //取消登录 + loginClose: function () { + let _this = this; + _this.setData({ + showModal: false, + modalInput:"" + }); + }, + bindIdCard: function (e) { + this.setData({ + idcard: e.detail.value + }) +}, + //登录接口 + checkIdCard: function () { + let _this = this; + let idCard = _this.data.idcard; + if (idCard == undefined) { + wx.showModal({ + title: "提示", + content: "身份证号不能为空", + success: function (a) { + + } + }); + return false; + } + let user_id = wx.getStorageSync('user_id'); + + App.getUserInfoByIdCard(idCard, (user_id) => { + _this.getUserProfile(user_id); + this.getUserDetail(); + this.getUserProfile(); + _this.setData({ + showModal: false, + isLogin: App.checkIsLogin() + }) + }); +}, + + /** + * 获取用户微信信息 + */ + getUserProfile(user_id) { + if (!user_id) { + let user_id = wx.getStorageSync('user_id'); + } + + const app = this + try { + wx.getUserProfile({ + lang: 'zh_CN', + desc: '获取用户相关信息', + success({ + userInfo + }) { + console.log('用户同意了授权') + console.log('userInfo:', userInfo) + App.getUserInfo(userInfo, user_id, () => { + app.Updatestep(); + }); + }, + fail() { + console.log('用户拒绝了授权--微信授权') + } + }) + } catch (e) { + console.log('error:', e.message) + if (e.message === 'wx.getUserProfile is not a function') { + App.showError('wx.getUserProfile 接口无法使用,请升级到最新版微信') + } else { + App.showError(error.message) + } + } + + }, + + /** + * 编辑 + */ + jumpEdit: function () { + let _this = this; + if (!_this.onCheckLogin()) { + return false; + } + wx.navigateTo({ + url: "/packageA/user/editProfile" + }) + } +}) \ No newline at end of file diff --git a/pages/user/index.json b/pages/user/index.json new file mode 100644 index 0000000..74c8285 --- /dev/null +++ b/pages/user/index.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "个人中心", + "navigationBarBackgroundColor": "#D03020", + "navigationBarTextStyle":"white" +} \ No newline at end of file diff --git a/pages/user/index.wxml b/pages/user/index.wxml new file mode 100644 index 0000000..ea07582 --- /dev/null +++ b/pages/user/index.wxml @@ -0,0 +1,148 @@ + + + + + + + + + + + + 一附院职工账号绑定 + + 确定 + + + + + + + + + + + + + + + + + + + + + + + 没有名字哦~ + 登录 + + + + + + + + + 真实姓名:{{userInfo.realname}} + + + 电话:{{userInfo.phone}} + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ + + + 退出登录 + + + +
\ No newline at end of file diff --git a/pages/user/index.wxss b/pages/user/index.wxss new file mode 100644 index 0000000..d182821 --- /dev/null +++ b/pages/user/index.wxss @@ -0,0 +1,353 @@ +/* 用户信息 */ +.user { + width: 100%; + position: absolute; + /* background: #fff; */ + /* top: 100rpx; */ +} + +.user .user-head{ + position: relative; + width: 100%; + height: 449px; + /* background: url(https://lanhu-oss-2537-2.lanhuapp.com/MasterDDSSlicePNGedbd6501d371eab1e7fb79a6ed560a77.png) + 100% no-repeat; */ + background-size: 100% 100%; +} +.user .headBackImage{ + width: 100%; + height: 400rpx; + z-index: -1; +} +.user-header { + /* width: 400rpx; */ + width: 85%; + height: 150rpx; + margin: 52rpx 0 20rpx 30rpx; + align-content: center; + position: absolute; + top: 50rpx; + /* padding-top: 1px; + background-color: #29C3AF; + background-repeat: no-repeat; + background-position: center right; + background-size: auto 100%;*/ +} + +.user-header .user-header-cont { + display: flex; + margin: auto; + margin-bottom: 40rpx; + width: 100%; + align-items: center; + border-radius: 50%; +} +.user-header .user-header-cont .user-header-avatar { + /* display: block; */ + margin-right: 30rpx; + width: 140rpx; + height: 140rpx; + border-radius: 50%; + overflow: hidden; + /* overflow: hidden; */ +} + +.user-header .user-header-cont .user-header-avatar image { + width: 140rpx; + height: 140rpx; + border-radius: 50%; +} + +.user-header .user-header-cont .user-header-cont-name { + /* font-size: 32rpx; + width: 200rpx auto; + padding: 20rpx 0; + color:#FFF; */ + width: 144rpx; + height: 28rpx; + overflow-wrap: break-word; + color: rgba(255, 255, 255, 1); + font-size: 36rpx; + font-family: PingFang SC-Heavy; + font-weight: 900; + text-align: center; + white-space: nowrap; + line-height: 28rpx; + margin-top: 6rpx; +} + +.user-header .user-header-cont .loginUser { + width: 160rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + position: absolute; + /* bottom: 50rpx; */ + background: linear-gradient(to right,#25ca9f,#2ebcc0); + right: 2%; + color: #ffffff; + font-size: 33rpx; + border-radius: 36rpx; +} + +.user-header .user-header-avatar-info{ + width: 620rpx; + height: 144rpx; + background-color: #383c57; + border-radius: 24rpx; + position: absolute; + left: 0rpx; + top: 160rpx; + padding: 30rpx 40rpx; + align-items: center; + display: flex; + align-items: center; + justify-content: space-between; +} + +.user-real{ + margin: auto; + margin-bottom: 20rpx; + margin-top: 40rpx; + width: 79%;color:#FAD9AF; + font-size: 36rpx; + /* margin: auto; + margin-bottom: 20rpx; + margin-top: 40rpx; + background-image: linear-gradient( + 180deg, + rgba(255, 244, 221, 1) 0, + rgba(248, 205, 155, 1) 100% + ); + overflow-wrap: break-word; + width: 100%; + font-size: 36rpx; + font-weight: 900; + text-align: left; + white-space: nowrap; + line-height: 38px; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; */ +} +.user-real2{ + margin: auto; + margin-bottom: 20rpx; + width: 79%;color:#FAD9AF; + font-size: 28rpx; + /* margin: auto; + margin-bottom: 20rpx; + background-image: linear-gradient( + 180deg, + rgba(255, 244, 221, 1) 0, + rgba(248, 205, 155, 1) 100% + ); + overflow-wrap: break-word; + width: 100%; + font-size: 24rpx; + font-weight: normal; + text-align: left; + white-space: nowrap; + line-height: 38rpx; + margin-top: 14rpx; + + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; */ +} + +.user-real3{ + background-image: linear-gradient( + 270deg, + rgba(247, 239, 209, 1) 0, + rgba(239, 223, 187, 1) 100% + ); + border-radius: 112px; + height: 60rpx; + width: 144rpx; + margin: 10rpx 30rpx 0 0; +} + +.editbtn { + width: 56rpx; + height: 38rpx; + overflow-wrap: break-word; + color: rgba(61, 61, 61, 1); + font-size: 28rpx; + font-family: PingFang SC-Regular; + font-weight: normal; + text-align: left; + white-space: nowrap; + line-height: 38rpx; + margin: 13rpx 0 0 45rpx; +} +/* 订单导航栏 */ +.order-navbar { + position: absolute; + left: 19rpx; + bottom: -125rpx; + margin: auto; + padding: 15rpx 0; + width: 95%; + box-shadow: 0 1rpx 5rpx 0px rgba(0, 0, 0, 0.05); + font-size: 30rpx; + border-top: 1rpx solid #eee; + border-radius: 5rpx; + background: #fff; +} + +.order-navbar-header { + margin: auto; + padding-bottom: 10rpx; + width: 91%; + height: 70rpx; + border-bottom: 1px solid #eee; + justify-content: space-between; + align-items: center; +} + +.order-navbar-footer { + width: 100%; + padding: 10rpx 0px; +} + +.order-navbar-footer .order-navbar-item .order-navbar__icon { + text-align: center; + margin: 0 auto; + display: block; + padding: 10rpx 0; + color: #000; + font-size: 36rpx; +} + +.order-navbar-footer .order-navbar-item .order-navbar__name { + display: block; + font-size: 24rpx; + color: #666; + text-align: center; + margin-right: 10rpx; +} + +.order-navbar-footer .order-navbar-item .order-badge { + position: absolute; + top: 0; + right: 55rpx; + font-size: 22rpx; + background: #ff495e; + text-align: center; + line-height: 28rpx; + color: #fff; + border-radius: 100%; + min-height: 30rpx; + min-width: 30rpx; + padding: 1rpx; +} + +/* 菜单列表 */ +.menus-list{ + position: absolute; + top: 540rpx; + left: 38rpx; +border-radius: 20rpx; + width: 92%; + margin-top: 100px; + margin:0 auto; + z-index:99; + margin-top: -25rpx; + overflow: hidden; +} +.menus-list .menus-item { + position: relative; + padding: 28rpx 28rpx; + border-bottom: 1rpx solid #eee; +} + +.menus-list .menus-item .imageUser{ + width: 39rpx; + height: 39rpx; + +} + +.menus-list .menus-item .menus-item__name { + color: #444; + margin-left: 20rpx; +} + +.exit{ + background-color: rgba(255, 255, 255, 1); + border-radius: 20rpx; + height: 105rpx; + width: 93%; + margin: 21rpx 0 0 30rpx; + position: absolute; + top: 900rpx; +} + +.exit .exitBtn{ + width: 128rpx; + height: 28rpx; + overflow-wrap: break-word; + color: rgba(61, 61, 61, 1); + font-size: 32rpx; + font-family: PingFang SC-Regular; + font-weight: normal; + text-align: left; + white-space: nowrap; + line-height: 28rpx; + margin: 39rpx 0 0 281rpx; +} + +.mask{ + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background: #000; + z-index: 9000; + opacity: 0.7; + } + .modalDlg{ + width: 580rpx; + height: 680rpx; + position: absolute; + top: 50%; + left: 0; + z-index: 9999; + margin-top:290rpx; + margin-left:90rpx; + background-color: #fff; + border-radius: 36rpx; + display: flex; + flex-direction: column; + align-items: center; + overflow:hidden; + } + .modalDlg .closeBox { + /* width: 100%; + height: 56rpx; */ + /* margin-top: 20rpx; */ + } + .modalDlg .closeBox image { + width: 40rpx; + height: 40rpx; + position: absolute; + right: 4%; + top: 20rpx; + } + .modalDlg text{margin-top:40rpx;} + .modalDlg image{width:100%;height:280rpx;} + .modalInput{width:90%;height:60rpx;line-height:60rpx;border:1px solid #999;border-radius:10rpx;margin-top:40rpx;padding-left:10rpx;font-size:24rpx;} + .bao { + width: 300rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + position: absolute; + bottom: 50rpx; + background: linear-gradient(to right,#25ca9f,#2ebcc0); + left: 140rpx; + color: #ffffff; + font-size: 33rpx; + border-radius: 36rpx; + } diff --git a/pages/user/sign.js b/pages/user/sign.js new file mode 100644 index 0000000..389ec22 --- /dev/null +++ b/pages/user/sign.js @@ -0,0 +1,133 @@ +const App = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + count:1, + goodsInfo:[] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + var aid = options.aid; + this.getSignRecord(aid); + this.getBuSignAuth(aid); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + /** + * 获取签到记录 + */ + getSignRecord: function (aid) { + let _this = this; + App._post_form('goods/getSignRecord', { + user_id:wx.getStorageSync('user_id'), + aid: aid, + }, function(result) { + _this.setData({ + selectedDays: result.data.data + }) + }); + }, + + /** + * 获取是否有补签权限 + */ + getBuSignAuth: function (aid) { + let _this = this; + App._post_form('goods/getBuSignAuth', { + user_id:wx.getStorageSync('user_id'), + aid: aid, + }, function(result) { + + let goodsInfo = result.data.goodsInfo; + let date = Date.parse( new Date() ).toString(); + date = date.substr(0,10);//精确到秒 + if( date > goodsInfo.starttime && date < goodsInfo.endtime ){ + _this.setData({ + count: result.data.count, + }) + } + + + }); + }, + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + /** + * 点击日期时候触发的事件 + * bind:getdate + */ + getdate(e) { + console.log(e.detail); + }, + /** + * 点击全选触发的事件 + * bind:checkall + */ + checkall(e) { + console.log(e.detail.days); + }, + /** + * 点击确定按钮触发的事件 + * bind:select + */ + cmfclick(e){ + console.log(e.detail.selectDays); + }, + /** + * 点击清空事件 + * bind:clear + */ + clear(e) { + console.log("要清空选中日期") + } +}) \ No newline at end of file diff --git a/pages/user/sign.json b/pages/user/sign.json new file mode 100644 index 0000000..d74894f --- /dev/null +++ b/pages/user/sign.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "我的统计", + "usingComponents": { + "calendar": "/components/calendar/calendar" + } +} \ No newline at end of file diff --git a/pages/user/sign.wxml b/pages/user/sign.wxml new file mode 100644 index 0000000..731e93e --- /dev/null +++ b/pages/user/sign.wxml @@ -0,0 +1,18 @@ + + + + + + + + + + +
+ +
+
+ +
\ No newline at end of file diff --git a/pages/user/sign.wxss b/pages/user/sign.wxss new file mode 100644 index 0000000..597be47 --- /dev/null +++ b/pages/user/sign.wxss @@ -0,0 +1,26 @@ +/* pages/user/sign.wxss */ +.button-hover { + background-color: none; +} +button { + padding: 0; + margin: 0; + border-radius: 0; + background: none; + line-height: normal; +} + +button::after { + content: none; +} +.baomica { + background: linear-gradient(#25ca9f,#2ebcc0); + width: 257rpx; + height: 73rpx; + border-radius: 50rpx; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + font-size: 34rpx; +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..8c5ee6c --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,25 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "%E7%A7%91%E5%A4%A7%E5%B7%A5%E4%BC%9A%E5%81%A5%E6%AD%A5%E8%B5%B0", + "setting": { + "compileHotReLoad": false, + "urlCheck": false, + "coverView": true, + "lazyloadPlaceholderEnable": false, + "skylineRenderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "useApiHook": true, + "useApiHostProcess": true, + "showShadowRootInWxmlPanel": true, + "useStaticServer": true, + "useLanDebug": false, + "showES6CompileOption": false, + "checkInvalidKey": true, + "ignoreDevUnusedFiles": true, + "bigPackageSizeSupport": true, + "useIsolateContext": true + }, + "libVersion": "3.8.9", + "condition": {} +} \ No newline at end of file diff --git a/siteinfo.js b/siteinfo.js new file mode 100644 index 0000000..c224e0c --- /dev/null +++ b/siteinfo.js @@ -0,0 +1,7 @@ +/** + * 配置文件 + */ +module.exports = { + name: "科大工会健步走", + siteroot: "https://minipro.luochunlvshi.com/", // 必填: api地址,结尾要带/ +}; \ No newline at end of file diff --git a/sitemap.json b/sitemap.json new file mode 100644 index 0000000..ca02add --- /dev/null +++ b/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/utils/common.wxss b/utils/common.wxss new file mode 100644 index 0000000..6dd55c4 --- /dev/null +++ b/utils/common.wxss @@ -0,0 +1,343 @@ +/* iconfont */ +@import "/utils/iconfont.wxss"; + +.container, input { + font-family: PingFang-Medium, + PingFangSC-Regular, + Heiti, + Heiti SC, + DroidSans, + DroidSansFallback, + "Microsoft YaHei", + sans-serif; + -webkit-font-smoothing: antialiased; +} + +.b-f { + background: #fff; +} + +.tf-180 { + -moz-transform: rotate(-180deg); + -ms-transform: rotate(-180deg); + -o-transform: rotate(-180deg); + transform: rotate(-180deg); +} + +.tf-90 { + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +.dis-block { + display: block; +} + +.dis-flex { + display: flex !important; + /* flex-wrap: wrap; */ +} + +.flex-box { + flex: 1; +} + +.flex-dir-row { + flex-direction: row; +} + +.flex-dir-column { + flex-direction: column; +} + +.flex-x-center { + /* display: flex; */ + justify-content: center; +} + +.flex-x-between { + justify-content: space-between; +} + +.flex-x-around { + justify-content: space-around; +} + +.flex-x-end { + justify-content: flex-end; +} + +.flex-y-center { + align-items: center; +} + +.flex-y-end { + align-items: flex-end; +} + +.flex-five { + box-sizing: border-box; + flex: 0 0 50%; +} + +.flex-three { + float: left; + width: 33.3%; +} + +.flex-four { + box-sizing: border-box; + flex: 0 0 25%; +} + +.t-l { + text-align: left; +} + +.t-c { + text-align: center; +} + +.t-r { + text-align: right; +} + +.p-a { + position: absolute; +} + +.p-r { + position: relative; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.clear::after { + clear: both; + content: " "; + display: table; +} + +.oh { + overflow: hidden; +} + +.tb-lr-center { + display: -webkit-box; + display: -ms-flexbox; + display: flex !important; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.f-34 { + font-size: 34rpx; +} + +.f-32 { + font-size: 32rpx; +} + +.f-31 { + font-size: 31rpx; +} + +.f-30 { + font-size: 30rpx; +} + +.f-29 { + font-size: 29rpx; +} + +.f-28 { + font-size: 28rpx; +} + +.f-26 { + font-size: 26rpx; +} + +.f-25 { + font-size: 25rpx; +} + +.f-24 { + font-size: 24rpx; +} + +.f-22 { + font-size: 22rpx; +} + +.f-w { + font-weight: 700; +} + +.f-n { + font-weight: 400; +} + +.col-f { + color: #fff; +} + +.col-3 { + color: #333; +} + +.col-6 { + color: #666; +} + +.col-7 { + color: #777; +} + +.col-8 { + color: #888; +} + +.col-9 { + color: #999; +} + +.col-m { + color: #ff495e !important; +} + +.col-s { + color: #be0117 !important; +} + +.col-green { + color: #0ed339 !important; +} + +.cont-box { + padding: 20rpx; +} + +.cont-bot { + margin-bottom: 120rpx; +} + +.padding-box { + padding: 0 24rpx; + box-sizing: border-box; +} + +.pl-12 { + padding-left: 12px; +} + +.pr-12 { + padding-right: 12px; +} + +.pr-6 { + padding-right: 6px; +} + +.m-top4 { + margin-top: 4rpx; +} + +.m-top10 { + margin-top: 10rpx; +} + +.m-top20 { + margin-top: 20rpx; +} + +.p-bottom { + padding-bottom: 112rpx; +} + +.onelist-hidden { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.twolist-hidden { + display: -webkit-box; + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.b-r { + border-right: 1rpx solid #eee; +} + +.b-b { + border-bottom: 1rpx solid #eee; +} + +.b-t { + border-top: 1rpx solid #eee; +} + +.ts-1 { + -moz-transition: all 0.1s; + -o-transition: all 0.1s; + transition: all 0.1s; +} + +.ts-2 { + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; +} + +.ts-3 { + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.ts-5 { + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +/* 无样式button (用于伪submit) */ + +.btn-normal { + display: block; + margin: 0; + padding: 0; + line-height: normal; + background: none; + border-radius: 0; + box-shadow: none; + border: none; + font-size: unset; + text-align: unset; + overflow: visible; +} + +.btn-normal:after { + border: none; +} + +.btn-normal.button-hover { + color: inherit; +} diff --git a/utils/iconfont.wxss b/utils/iconfont.wxss new file mode 100644 index 0000000..e07179b --- /dev/null +++ b/utils/iconfont.wxss @@ -0,0 +1,160 @@ +@font-face {font-family: "iconfont"; + src: url('//at.alicdn.com/t/font_948567_7qt13mxhklx.eot?t=1547714036925'); /* IE9 */ + src: url('//at.alicdn.com/t/font_948567_7qt13mxhklx.eot?t=1547714036925#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('//at.alicdn.com/t/font_948567_7qt13mxhklx.woff?t=1547714036925') format('woff'), + url('//at.alicdn.com/t/font_948567_7qt13mxhklx.ttf?t=1547714036925') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('//at.alicdn.com/t/font_948567_7qt13mxhklx.svg?t=1547714036925#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family: "iconfont" !important; + /* font-size: 16px; */ + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-tubiao_kuaizhuangpailie:before { + content: "\e616"; +} + +.icon-tubiao_liebiaopailie:before { + content: "\e617"; +} + +.icon-ziyuan:before { + content: "\e673"; +} + +.icon-cate:before { + content: "\e6d9"; +} + +.icon-cart:before { + content: "\e68c"; +} + +.icon-daifukuan:before { + content: "\e68d"; +} + +.icon-daohang:before { + content: "\e650"; +} + +.icon-gouwuche1:before { + content: "\e606"; +} + +.icon-add:before { + content: "\e6a8"; +} + +.icon-daishouhuo:before { + content: "\e6ac"; +} + +.icon-daipingjia:before { + content: "\e6b2"; +} + +.icon-dingwei1:before { + content: "\e6b4"; +} + +.icon-edit1:before { + content: "\e6b6"; +} + +.icon-edit:before { + content: "\e6b7"; +} + +.icon-fanhuidingbu:before { + content: "\e6b8"; +} + +.icon-favorite:before { + content: "\e6bb"; +} + +.icon-favorites:before { + content: "\e6bc"; +} + +.icon-form:before { + content: "\e6c0"; +} + +.icon-fenxiang:before { + content: "\e6c1"; +} + +.icon-haoping2:before { + content: "\e6c2"; +} + +.icon-help:before { + content: "\e6c3"; +} + +.icon-huo:before { + content: "\e6c4"; +} + +.icon-jiantou-copy:before { + content: "\e6c5"; +} + +.icon-home:before { + content: "\e6c7"; +} + +.icon-lajixiang:before { + content: "\e6cb"; +} + +.icon-map:before { + content: "\e6cc"; +} + +.icon-profile:before { + content: "\e6d1"; +} + +.icon-shanchu:before { + content: "\e6d2"; +} + +.icon-sousuo:before { + content: "\e6db"; +} + +.icon-xiangyoujiantou:before { + content: "\e6e4"; +} + +.icon-cart_b:before { + content: "\e6e0"; +} + +.icon-icon_service:before { + content: "\e657"; +} + +.icon-yonghu:before { + content: "\e603"; +} + +.icon-fenlei_:before { + content: "\e607"; +} + +.icon-gouwuche:before { + content: "\e608"; +} + +.icon-shouye:before { + content: "\e60d"; +} diff --git a/utils/login.js b/utils/login.js new file mode 100644 index 0000000..0adb184 --- /dev/null +++ b/utils/login.js @@ -0,0 +1,10 @@ +module.exports = function(e) { + var g; + if ((g = getCurrentPages()).length) { + var r = g[g.length - 1]; + r && "pages/login/login" != r.route && wx.setStorageSync("login_pre_page", r); + } + wx.redirectTo({ + url: "/pages/login/login" + }); +}; \ No newline at end of file diff --git a/utils/md5.js b/utils/md5.js new file mode 100644 index 0000000..209bff5 --- /dev/null +++ b/utils/md5.js @@ -0,0 +1,58 @@ +function r(r) { + return h(n(i(r), r.length * A)); +} + +function n(r, n) { + r[n >> 5] |= 128 << n % 32, r[14 + (n + 64 >>> 9 << 4)] = n; + for (var t = 1732584193, a = -271733879, i = -1732584194, h = 271733878, v = 0; v < r.length; v += 16) { + var A = t, l = a, d = i, g = h; + a = c(a = c(a = c(a = c(a = o(a = o(a = o(a = o(a = e(a = e(a = e(a = e(a = u(a = u(a = u(a = u(a, i = u(i, h = u(h, t = u(t, a, i, h, r[v + 0], 7, -680876936), a, i, r[v + 1], 12, -389564586), t, a, r[v + 2], 17, 606105819), h, t, r[v + 3], 22, -1044525330), i = u(i, h = u(h, t = u(t, a, i, h, r[v + 4], 7, -176418897), a, i, r[v + 5], 12, 1200080426), t, a, r[v + 6], 17, -1473231341), h, t, r[v + 7], 22, -45705983), i = u(i, h = u(h, t = u(t, a, i, h, r[v + 8], 7, 1770035416), a, i, r[v + 9], 12, -1958414417), t, a, r[v + 10], 17, -42063), h, t, r[v + 11], 22, -1990404162), i = u(i, h = u(h, t = u(t, a, i, h, r[v + 12], 7, 1804603682), a, i, r[v + 13], 12, -40341101), t, a, r[v + 14], 17, -1502002290), h, t, r[v + 15], 22, 1236535329), i = e(i, h = e(h, t = e(t, a, i, h, r[v + 1], 5, -165796510), a, i, r[v + 6], 9, -1069501632), t, a, r[v + 11], 14, 643717713), h, t, r[v + 0], 20, -373897302), i = e(i, h = e(h, t = e(t, a, i, h, r[v + 5], 5, -701558691), a, i, r[v + 10], 9, 38016083), t, a, r[v + 15], 14, -660478335), h, t, r[v + 4], 20, -405537848), i = e(i, h = e(h, t = e(t, a, i, h, r[v + 9], 5, 568446438), a, i, r[v + 14], 9, -1019803690), t, a, r[v + 3], 14, -187363961), h, t, r[v + 8], 20, 1163531501), i = e(i, h = e(h, t = e(t, a, i, h, r[v + 13], 5, -1444681467), a, i, r[v + 2], 9, -51403784), t, a, r[v + 7], 14, 1735328473), h, t, r[v + 12], 20, -1926607734), i = o(i, h = o(h, t = o(t, a, i, h, r[v + 5], 4, -378558), a, i, r[v + 8], 11, -2022574463), t, a, r[v + 11], 16, 1839030562), h, t, r[v + 14], 23, -35309556), i = o(i, h = o(h, t = o(t, a, i, h, r[v + 1], 4, -1530992060), a, i, r[v + 4], 11, 1272893353), t, a, r[v + 7], 16, -155497632), h, t, r[v + 10], 23, -1094730640), i = o(i, h = o(h, t = o(t, a, i, h, r[v + 13], 4, 681279174), a, i, r[v + 0], 11, -358537222), t, a, r[v + 3], 16, -722521979), h, t, r[v + 6], 23, 76029189), i = o(i, h = o(h, t = o(t, a, i, h, r[v + 9], 4, -640364487), a, i, r[v + 12], 11, -421815835), t, a, r[v + 15], 16, 530742520), h, t, r[v + 2], 23, -995338651), i = c(i, h = c(h, t = c(t, a, i, h, r[v + 0], 6, -198630844), a, i, r[v + 7], 10, 1126891415), t, a, r[v + 14], 15, -1416354905), h, t, r[v + 5], 21, -57434055), i = c(i, h = c(h, t = c(t, a, i, h, r[v + 12], 6, 1700485571), a, i, r[v + 3], 10, -1894986606), t, a, r[v + 10], 15, -1051523), h, t, r[v + 1], 21, -2054922799), i = c(i, h = c(h, t = c(t, a, i, h, r[v + 8], 6, 1873313359), a, i, r[v + 15], 10, -30611744), t, a, r[v + 6], 15, -1560198380), h, t, r[v + 13], 21, 1309151649), i = c(i, h = c(h, t = c(t, a, i, h, r[v + 4], 6, -145523070), a, i, r[v + 11], 10, -1120210379), t, a, r[v + 2], 15, 718787259), h, t, r[v + 9], 21, -343485551), + t = f(t, A), a = f(a, l), i = f(i, d), h = f(h, g); + } + return Array(t, a, i, h); +} + +function t(r, n, t, u, e, o) { + return f(a(f(f(n, r), f(u, o)), e), t); +} + +function u(r, n, u, e, o, c, f) { + return t(n & u | ~n & e, r, n, o, c, f); +} + +function e(r, n, u, e, o, c, f) { + return t(n & e | u & ~e, r, n, o, c, f); +} + +function o(r, n, u, e, o, c, f) { + return t(n ^ u ^ e, r, n, o, c, f); +} + +function c(r, n, u, e, o, c, f) { + return t(u ^ (n | ~e), r, n, o, c, f); +} + +function f(r, n) { + var t = (65535 & r) + (65535 & n); + return (r >> 16) + (n >> 16) + (t >> 16) << 16 | 65535 & t; +} + +function a(r, n) { + return r << n | r >>> 32 - n; +} + +function i(r) { + for (var n = Array(), t = (1 << A) - 1, u = 0; u < r.length * A; u += A) n[u >> 5] |= (r.charCodeAt(u / A) & t) << u % 32; + return n; +} + +function h(r) { + for (var n = v ? "0123456789ABCDEF" : "0123456789abcdef", t = "", u = 0; u < 4 * r.length; u++) t += n.charAt(r[u >> 2] >> u % 4 * 8 + 4 & 15) + n.charAt(r[u >> 2] >> u % 4 * 8 & 15); + return t; +} + +var v = 0, A = 8; + +module.exports = { + hex_md5: r +}; \ No newline at end of file diff --git a/utils/util.js b/utils/util.js new file mode 100644 index 0000000..6f80fa4 --- /dev/null +++ b/utils/util.js @@ -0,0 +1,21 @@ +// tool.js +// some tool function +let app = getApp() +function rpx2px(rpxNum) { + return rpxNum * app.globalData.rpx2px; +} + +function t(t) { + return (t = t.toString())[1] ? t : "0" + t; +} + + + + +module.exports = { + rpx2px: rpx2px, + formatTime: function(e) { + var n = e.getFullYear(), o = e.getMonth() + 1, r = e.getDate(), u = e.getHours(), i = e.getMinutes(), g = e.getSeconds(); + return [ n, o, r ].map(t).join("/") + " " + [ u, i, g ].map(t).join(":"); + } +}; \ No newline at end of file diff --git a/version.json b/version.json new file mode 100644 index 0000000..731efdc --- /dev/null +++ b/version.json @@ -0,0 +1,3 @@ +{ + "version": "1.0.15" +} diff --git a/weui.wxss b/weui.wxss new file mode 100644 index 0000000..8b3b0eb --- /dev/null +++ b/weui.wxss @@ -0,0 +1,6 @@ +/*! + * WeUI v2.5.0 (https://github.com/weui/weui-wxss) + * Copyright 2021 Tencent, Inc. + * Licensed under the MIT license + */ +[data-weui-theme=light],page{--weui-BTN-DISABLED-FONT-COLOR:rgba(0,0,0,.2)}[data-weui-theme=dark]{--weui-BTN-DISABLED-FONT-COLOR:hsla(0,0%,100%,.2)}[data-weui-theme=light],page{--weui-BTN-DEFAULT-BG:#f2f2f2}[data-weui-theme=dark]{--weui-BTN-DEFAULT-BG:hsla(0,0%,100%,.08)}[data-weui-theme=light],page{--weui-BTN-DEFAULT-COLOR:#06ae56}[data-weui-theme=dark]{--weui-BTN-DEFAULT-COLOR:hsla(0,0%,100%,.8)}[data-weui-theme=light],page{--weui-BTN-DEFAULT-ACTIVE-BG:#e6e6e6}[data-weui-theme=dark]{--weui-BTN-DEFAULT-ACTIVE-BG:hsla(0,0%,100%,.126)}[data-weui-theme=light],page{--weui-DIALOG-LINE-COLOR:rgba(0,0,0,.1)}[data-weui-theme=dark]{--weui-DIALOG-LINE-COLOR:hsla(0,0%,100%,.1)}page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-input__placeholder{color:var(--weui-FG-2)}[data-weui-theme=light],page{--weui-BG-0:#ededed;--weui-BG-1:#f7f7f7;--weui-BG-2:#fff;--weui-BG-3:#f7f7f7;--weui-BG-4:#4c4c4c;--weui-BG-5:#fff;--weui-FG-0:rgba(0,0,0,.9);--weui-FG-HALF:rgba(0,0,0,.9);--weui-FG-1:rgba(0,0,0,.5);--weui-FG-2:rgba(0,0,0,.3);--weui-FG-3:rgba(0,0,0,.1);--weui-RED:#fa5151;--weui-ORANGE:#fa9d3b;--weui-YELLOW:#ffc300;--weui-GREEN:#91d300;--weui-LIGHTGREEN:#95ec69;--weui-BRAND:#07c160;--weui-BLUE:#10aeff;--weui-INDIGO:#1485ee;--weui-PURPLE:#6467f0;--weui-WHITE:#fff;--weui-LINK:#576b95;--weui-LINK-ACTIVE:rgba(87,107,149,.5);--weui-TEXTGREEN:#06ae56;--weui-FG:#000;--weui-BG:#fff;--weui-TAG-TEXT-ORANGE:#fa9d3b;--weui-TAG-BACKGROUND-ORANGE:rgba(250,157,59,.1);--weui-TAG-TEXT-GREEN:#06ae56;--weui-TAG-BACKGROUND-GREEN:rgba(6,174,86,.1);--weui-TAG-TEXT-BLUE:#10aeff;--weui-TAG-BACKGROUND-BLUE:rgba(16,174,255,.1);--weui-TAG-TEXT-BLACK:rgba(0,0,0,.5);--weui-TAG-BACKGROUND-BLACK:rgba(0,0,0,.05)}[data-weui-theme=dark]{--weui-BG-0:#111;--weui-BG-1:#1e1e1e;--weui-BG-2:#191919;--weui-BG-3:#202020;--weui-BG-4:#404040;--weui-BG-5:#2c2c2c;--weui-FG-0:hsla(0,0%,100%,.8);--weui-FG-HALF:hsla(0,0%,100%,.6);--weui-FG-1:hsla(0,0%,100%,.5);--weui-FG-2:hsla(0,0%,100%,.3);--weui-FG-3:hsla(0,0%,100%,.05);--weui-RED:#fa5151;--weui-ORANGE:#c87d2f;--weui-YELLOW:#cc9c00;--weui-GREEN:#74a800;--weui-LIGHTGREEN:#3eb575;--weui-BRAND:#07c160;--weui-BLUE:#10aeff;--weui-INDIGO:#1196ff;--weui-PURPLE:#8183ff;--weui-WHITE:hsla(0,0%,100%,.8);--weui-LINK:#7d90a9;--weui-LINK-ACTIVE:rgba(125,144,169,.5);--weui-TEXTGREEN:#259c5c;--weui-FG:#fff;--weui-BG:#000;--weui-TAG-TEXT-ORANGE:rgba(250,157,59,.6);--weui-TAG-BACKGROUND-ORANGE:rgba(250,157,59,.1);--weui-TAG-TEXT-GREEN:rgba(6,174,86,.6);--weui-TAG-BACKGROUND-GREEN:rgba(6,174,86,.1);--weui-TAG-TEXT-BLUE:rgba(16,174,255,.6);--weui-TAG-BACKGROUND-BLUE:rgba(16,174,255,.1);--weui-TAG-TEXT-BLACK:hsla(0,0%,100%,.5);--weui-TAG-BACKGROUND-BLACK:hsla(0,0%,100%,.05)}[data-weui-theme=light],page{--weui-BG-COLOR-ACTIVE:#ececec}[data-weui-theme=dark]{--weui-BG-COLOR-ACTIVE:#373737}[class*=" weui-icon-"],[class^=weui-icon-]{display:inline-block;vertical-align:middle;font-size:10px;width:2.4em;height:2.4em;-webkit-mask-position:50% 50%;mask-position:50% 50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;background-color:currentColor}.weui-icon-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-download{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.25%2012.04l-1.72-1.72-1.06%201.06%202.828%202.83a1%201%200%20001.414-.001l2.828-2.828-1.06-1.061-1.73%201.73V7h-1.5v5.04zm0-5.04V2h1.5v5h6.251c.55%200%20.999.446.999.996v13.008a.998.998%200%2001-.996.996H4.996A.998.998%200%20014%2021.004V7.996A1%201%200%20014.999%207h6.251z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-info{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.75-12v7h1.5v-7h-1.5zM12%209a1%201%200%20100-2%201%201%200%20000%202z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-safe-success{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.6C315.5%2046.7%20180.4%2093.1%2057.6%20132c0%20129.3.2%20231.7.2%20339.7%200%20304.2%20248.3%20471.6%20443.1%20523.7C695.7%20943.3%20944%20775.9%20944%20471.7c0-108%20.2-210.4.2-339.7C821.4%2093.1%20686.3%2046.7%20500.9%204.6zm248.3%20349.1l-299.7%20295c-2.1%202-5.3%202-7.4-.1L304.4%20506.1c-2-2.1-2.3-5.7-.6-8l18.3-24.9c1.7-2.3%205-2.8%207.2-1l112.2%2086c2.3%201.8%206%201.7%208.1-.1l274.7-228.9c2.2-1.8%205.7-1.7%207.7.3l17%2016.8c2.2%202.1%202.2%205.3.2%207.4z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23070202%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-safe-warn{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20d%3D%22M500.9%204.5c-185.4%2042-320.4%2088.4-443.2%20127.3%200%20129.3.2%20231.7.2%20339.6%200%20304.1%20248.2%20471.4%20443%20523.6%20194.7-52.2%20443-219.5%20443-523.6%200-107.9.2-210.3.2-339.6C821.3%2092.9%20686.2%2046.5%20500.9%204.5zm-26.1%20271.1h52.1c5.8%200%2010.3%204.7%2010.1%2010.4l-11.6%20313.8c-.1%202.8-2.5%205.2-5.4%205.2h-38.2c-2.9%200-5.3-2.3-5.4-5.2L464.8%20286c-.2-5.8%204.3-10.4%2010-10.4zm26.1%20448.3c-20.2%200-36.5-16.3-36.5-36.5s16.3-36.5%2036.5-36.5%2036.5%2016.3%2036.5%2036.5-16.4%2036.5-36.5%2036.5z%22%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20fill%3D%22%23020202%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-success{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-success-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm-1.172-6.242l5.809-5.808.848.849-5.95%205.95a1%201%200%2001-1.414%200L7%2012.426l.849-.849%202.98%202.98z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-success-no-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-waiting{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.75%2011.38V6h-1.5v6l4.243%204.243%201.06-1.06-3.803-3.804zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-waiting-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.6%2011.503l3.891%203.891-.848.849L11.4%2012V6h1.2v5.503zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-warn{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-.763-15.864l.11%207.596h1.305l.11-7.596h-1.525zm.759%2010.967c.512%200%20.902-.383.902-.882%200-.5-.39-.882-.902-.882a.878.878%200%2000-.896.882c0%20.499.396.882.896.882z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-info-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zM11.4%2010h1.2v7h-1.2v-7zm.6-1a1%201%200%20110-2%201%201%200%20010%202z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-cancel{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M12.849%2012l3.11%203.111-.848.849L12%2012.849l-3.111%203.11-.849-.848L11.151%2012l-3.11-3.111.848-.849L12%2011.151l3.111-3.11.849.848L12.849%2012z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)}.weui-icon-search{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M16.31%2015.561l4.114%204.115-.848.848-4.123-4.123a7%207%200%2011.857-.84zM16.8%2011a5.8%205.8%200%2010-11.6%200%205.8%205.8%200%200011.6%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-clear{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M13.06%2012l3.006-3.005-1.06-1.06L12%2010.938%208.995%207.934l-1.06%201.06L10.938%2012l-3.005%203.005%201.06%201.06L12%2013.062l3.005%203.005%201.06-1.06L13.062%2012zM12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-back{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm1.999-6.563L10.68%2012%2014%208.562%2012.953%207.5%209.29%2011.277a1.045%201.045%200%20000%201.446l3.663%203.777L14%2015.437z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-delete{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.774%206.4l.812%2013.648a.8.8%200%2000.798.752h7.232a.8.8%200%2000.798-.752L17.226%206.4H6.774zm11.655%200l-.817%2013.719A2%202%200%200115.616%2022H8.384a2%202%200%2001-1.996-1.881L5.571%206.4H3.5v-.7a.5.5%200%2001.5-.5h16a.5.5%200%2001.5.5v.7h-2.071zM14%203a.5.5%200%2001.5.5v.7h-5v-.7A.5.5%200%200110%203h4zM9.5%209h1.2l.5%209H10l-.5-9zm3.8%200h1.2l-.5%209h-1.2l.5-9z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-success-no-circle-thin{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.864%2016.617l-5.303-5.303-1.061%201.06%205.657%205.657a1%201%200%20001.414%200L21.238%206.364l-1.06-1.06L8.864%2016.616z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-arrow{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-arrow-bold{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.157%2012.711L4.5%2018.368l-1.414-1.414%204.95-4.95-4.95-4.95L4.5%205.64l5.657%205.657a1%201%200%20010%201.414z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-back-arrow{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3.343%2012l7.071%207.071L9%2020.485l-7.778-7.778a1%201%200%20010-1.414L9%203.515l1.414%201.414L3.344%2012z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-back-arrow-thin{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-close{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2010.586l5.657-5.657%201.414%201.414L13.414%2012l5.657%205.657-1.414%201.414L12%2013.414l-5.657%205.657-1.414-1.414L10.586%2012%204.929%206.343%206.343%204.93%2012%2010.586z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-close-thin{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-back-circle{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm0-1.2a8.8%208.8%200%20100-17.6%208.8%208.8%200%20000%2017.6zm1.999-5.363L12.953%2016.5%209.29%2012.723a1.045%201.045%200%20010-1.446L12.953%207.5%2014%208.563%2010.68%2012%2014%2015.438z%22%2F%3E%3C%2Fsvg%3E)}.weui-icon-success{color:var(--weui-BRAND)}.weui-icon-waiting{color:var(--weui-BLUE)}.weui-icon-warn{color:var(--weui-RED)}.weui-icon-info{color:var(--weui-BLUE)}.weui-icon-success-circle,.weui-icon-success-no-circle,.weui-icon-success-no-circle-thin{color:var(--weui-BRAND)}.weui-icon-waiting-circle{color:var(--weui-BLUE)}.weui-icon-circle{color:var(--weui-FG-2)}.weui-icon-download{color:var(--weui-BRAND)}.weui-icon-info-circle{color:var(--weui-FG-2)}.weui-icon-safe-success{color:var(--weui-BRAND)}.weui-icon-safe-warn{color:var(--weui-YELLOW)}.weui-icon-cancel{color:var(--weui-RED)}.weui-icon-search{color:var(--weui-FG-1)}.weui-icon-clear{color:var(--weui-FG-2)}.weui-icon-clear:active{color:var(--weui-FG-1)}.weui-icon-delete.weui-icon_gallery-delete{color:var(--weui-WHITE)}.weui-icon-arrow,.weui-icon-arrow-bold,.weui-icon-back-arrow,.weui-icon-back-arrow-thin{width:1.2em}.weui-icon-arrow,.weui-icon-arrow-bold{color:var(--weui-FG-2)}.weui-icon-back,.weui-icon-back-arrow,.weui-icon-back-arrow-thin,.weui-icon-back-circle{color:var(--weui-FG-0)}.weui-icon_msg{width:6.4em;height:6.4em}.weui-icon_msg.weui-icon-warn{color:var(--weui-RED)}.weui-icon_msg.weui-icon-info-circle{color:var(--weui-BLUE)}.weui-icon_msg-primary{width:6.4em;height:6.4em}.weui-icon_msg-primary.weui-icon-warn{color:var(--weui-YELLOW)}.weui-hidden_abs{opacity:0}.weui-hidden-space:empty:before,.weui-hidden_abs{position:absolute;width:1px;height:1px;overflow:hidden}.weui-hidden-space:empty:before{content:"\00A0"}.weui-wa-hotarea-el{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);min-width:44px;min-height:44px;width:100%;height:100%;background:hsla(0,0%,100%,0)}.weui-wa-hotarea,.weui-wa-hotarea-el__wrp,.weui-wa-hotarea_before{position:relative}.weui-wa-hotarea-el__wrp a,.weui-wa-hotarea_before a,.weui-wa-hotarea a{position:relative;z-index:1}.weui-wa-hotarea:after,.weui-wa-hotarea_before:before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);min-width:44px;min-height:44px;width:100%;height:100%;background:hsla(0,0%,100%,0)}.weui-link{-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-link,.weui-link:visited{color:var(--weui-LINK)}.weui-btn{position:relative;display:block;width:184px;margin-left:auto;margin-right:auto;padding:8px 24px;box-sizing:border-box;font-weight:700;font-size:17px;text-align:center;text-decoration:none;color:#fff;line-height:1.88235294;border-radius:8px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-btn_block{width:auto}.weui-btn_inline{display:inline-block}.weui-btn_default{background-color:var(--weui-BTN-DEFAULT-BG)}.weui-btn_default,.weui-btn_default:not(.weui-btn_disabled):visited{color:var(--weui-BTN-DEFAULT-COLOR)}.weui-btn_default:not(.weui-btn_disabled):active{background-color:var(--weui-BTN-DEFAULT-ACTIVE-BG)}.weui-btn_primary{background-color:var(--weui-BRAND)}.weui-btn_primary:not(.weui-btn_disabled):visited{color:#fff}.weui-btn_primary:not(.weui-btn_disabled):active{background-color:var(--weui-TAG-TEXT-GREEN)}.weui-btn_warn{background-color:var(--weui-BTN-DEFAULT-BG)}.weui-btn_warn,.weui-btn_warn:not(.weui-btn_disabled):visited{color:var(--weui-RED)}.weui-btn_warn:not(.weui-btn_disabled):active{background-color:var(--weui-BTN-DEFAULT-ACTIVE-BG)}.weui-btn[disabled],.weui-btn_disabled{color:var(--weui-BTN-DISABLED-FONT-COLOR);background-color:var(--weui-BTN-DEFAULT-BG)}.weui-btn_loading .weui-loading{margin:-.2em .34em 0 0}.weui-btn_loading .weui-primary-loading{margin:-.2em 8px 0 0;vertical-align:middle}.weui-btn_loading.weui-btn_primary{background-color:var(--weui-TAG-TEXT-GREEN);color:var(--weui-WHITE)}.weui-btn_loading.weui-btn_default,.weui-btn_loading.weui-btn_warn{background-color:var(--weui-BTN-DEFAULT-ACTIVE-BG)}.weui-btn_cell{position:relative;display:block;margin-left:auto;margin-right:auto;box-sizing:border-box;font-size:17px;text-align:center;text-decoration:none;color:#fff;line-height:1.41176471;padding:16px;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden;background-color:var(--weui-BG-5)}.weui-btn_cell+.weui-btn_cell{margin-top:16px}.weui-btn_cell:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-btn_cell__icon{display:inline-block;vertical-align:middle;width:24px;height:24px;margin:-.2em .34em 0 0}.weui-btn_cell-default{color:var(--weui-FG-0)}.weui-btn_cell-primary{color:var(--weui-LINK)}.weui-btn_cell-warn{color:var(--weui-RED)}.weui-bottom-fixed-opr-page{height:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.weui-bottom-fixed-opr-page__content{min-height:0;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-bottom:80px;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.weui-bottom-fixed-opr{padding:16px 32px 24px;padding:16px calc(32px + constant(safe-area-inset-right)) calc(24px + constant(safe-area-inset-bottom)) calc(32px + constant(safe-area-inset-left));padding:16px calc(32px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(32px + env(safe-area-inset-left));background:#fff;position:relative}.weui-bottom-fixed-opr:before{content:"";height:80px;background:-webkit-linear-gradient(bottom,#fff,hsla(0,0%,100%,0));background:linear-gradient(0deg,#fff,hsla(0,0%,100%,0));position:absolute;bottom:calc(100% - 1px);left:0;right:0;-webkit-transform:translateZ(0);transform:translateZ(0)}[data-weui-theme=dark] .weui-bottom-fixed-opr{background:#191919}[data-weui-theme=dark] .weui-bottom-fixed-opr:before{background:-webkit-linear-gradient(bottom,#191919,rgba(25,25,25,0));background:linear-gradient(0deg,#191919,rgba(25,25,25,0))}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed{padding:0}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__hd{padding:0 24px;padding:0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));padding:0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left))}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__bd{padding-bottom:64px}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-half-screen-dialog__ft{padding:0 24px 64px;padding:0 calc(24px + constant(safe-area-inset-right)) 64px calc(24px + constant(safe-area-inset-left));padding:0 calc(24px + env(safe-area-inset-right)) 64px calc(24px + env(safe-area-inset-left))}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page__content{padding:0 24px;padding:0 calc(24px + constant(safe-area-inset-right)) 0 calc(24px + constant(safe-area-inset-left));padding:0 calc(24px + env(safe-area-inset-right)) 0 calc(24px + env(safe-area-inset-left))}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-height:0}.weui-half-screen-dialog.weui-half-screen-dialog_bottom-fixed .weui-bottom-fixed-opr-page .weui-bottom-fixed-opr{padding:16px 0 0}button.weui-btn,input.weui-btn{border-width:0;outline:0;-webkit-appearance:none}button.weui-btn:focus,input.weui-btn:focus{outline:0}button.weui-btn_inline,button.weui-btn_mini,input.weui-btn_inline,input.weui-btn_mini{width:auto}.weui-btn_mini{font-size:16px;border-radius:6px}.weui-btn_mini,.weui-btn_xmini{display:inline-block;width:auto;padding:0 12px;line-height:2}.weui-btn_xmini{font-size:14px;border-radius:2.8px}.weui-btn:not(.weui-btn_mini)+.weui-btn:not(.weui-btn_mini){margin-top:16px}.weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline{margin-top:auto;margin-left:16px}.weui-btn-area{margin:48px 16px 8px}.weui-btn-area_inline{display:-webkit-box;display:-webkit-flex;display:flex}.weui-btn-area_inline .weui-btn{margin-top:auto;margin-right:16px;width:100%;-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn-area_inline .weui-btn:last-child{margin-right:0}.weui-btn_reset{background:transparent;border:0;padding:0;outline:0}.weui-btn_icon{font-size:0}.weui-btn_icon:active [class*=weui-icon-]{color:var(--weui-FG-1)}.weui-cells{margin-top:8px;background-color:var(--weui-BG-2);line-height:1.41176471;font-size:17px;overflow:hidden;position:relative}.weui-cells:before{top:0;border-top:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:var(--weui-FG-3);z-index:2}.weui-cells:after{bottom:0;border-bottom:1px solid var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-cells__title{margin-top:16px;margin-bottom:3px;padding-left:16px;padding-right:16px;color:var(--weui-FG-1);font-size:14px;line-height:1.4}.weui-cells__title+.weui-cells{margin-top:0}.weui-cells__tips{margin-top:8px;color:var(--weui-FG-1);padding-left:16px;padding-right:16px;font-size:14px;line-height:1.4}.weui-cells__tips a,.weui-cells__tips navigator{color:var(--weui-LINK)}.weui-cells__tips navigator{display:inline}.weui-cell{padding:16px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px;z-index:2}.weui-cell:first-child:before{display:none}.weui-cell_active:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:var(--weui-FG-1)}.weui-cell_swiped{display:block;padding:0}.weui-cell_swiped>.weui-cell__bd{position:relative;z-index:1;background-color:var(--weui-BG-2)}.weui-cell_swiped>.weui-cell__ft{position:absolute;right:0;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;color:#fff}.weui-swiped-btn{display:block;padding:16px 1em;line-height:1.41176471;color:inherit}.weui-swiped-btn_default{background-color:var(--weui-BG-0)}.weui-swiped-btn_warn{background-color:var(--weui-RED)}.weui-cell_access{-webkit-tap-highlight-color:rgba(0,0,0,0);color:inherit}.weui-cell_access:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-cell_access .weui-cell__ft{padding-right:22px;position:relative}.weui-cell_access .weui-cell__ft:after{content:" ";width:12px;height:24px;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;background-color:currentColor;color:var(--weui-FG-2);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);position:absolute;top:50%;right:0;margin-top:-12px}.weui-cell_link{color:var(--weui-LINK);font-size:17px}.weui-cell_link:first-child:before{display:block}.weui-check__label{-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-check__label:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-check{opacity:0;position:absolute;width:0;height:0;overflow:hidden}.weui-cells_radio .weui-cell__ft{padding-left:16px;font-size:0}.weui-cells_radio .weui-check+.weui-icon-checked{min-width:16px;color:transparent}.weui-cells_radio .weui-check:checked+.weui-icon-checked,.weui-cells_radio .weui-check[aria-checked=true]+.weui-icon-checked{color:var(--weui-BRAND);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.657%2018.435L3%2012.778l1.414-1.414%204.95%204.95L20.678%205l1.414%201.414-12.02%2012.021a1%201%200%2001-1.415%200z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E)}.weui-cells_checkbox .weui-check__label:before{left:55px}.weui-cells_checkbox .weui-cell__hd{padding-right:16px;font-size:0}.weui-cells_checkbox .weui-icon-checked{color:var(--weui-FG-2);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E)}.weui-cells_checkbox .weui-check:checked+.weui-icon-checked,.weui-cells_checkbox .weui-check[aria-checked=true]+.weui-icon-checked{color:var(--weui-BRAND);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E)}.weui-label{display:block;width:105px;word-wrap:break-word;word-break:break-all}.weui-input{width:100%;border:0;outline:0;-webkit-appearance:none;background-color:transparent;font-size:inherit;color:inherit;height:1.41176471em;line-height:1.41176471}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.weui-input:focus:not(:placeholder-shown)+.weui-btn_input-clear{display:inline}.weui-textarea{display:block;border:0;resize:none;background:transparent;width:100%;color:inherit;font-size:1em;line-height:inherit;outline:0}.weui-textarea-counter{color:var(--weui-FG-2);text-align:right;font-size:14px}.weui-cell_warn .weui-textarea-counter{color:var(--weui-RED)}.weui-cells_form .weui-cell_disabled:active,.weui-cells_form .weui-cell_readonly:active,.weui-cells_form .weui-cell_switch:active,.weui-cells_form .weui-cell_vcode:active{background-color:transparent}.weui-cells_form .weui-cell__ft{font-size:0}.weui-cells_form .weui-icon-warn{display:none}.weui-cells_form input,.weui-cells_form label[for],.weui-cells_form textarea{-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-cell_warn{color:var(--weui-RED)}.weui-cell_warn .weui-icon-warn{display:inline-block}.weui-cell_disabled .weui-input:disabled,.weui-cell_disabled .weui-textarea:disabled,.weui-cell_readonly .weui-input:disabled,.weui-cell_readonly .weui-textarea:disabled{opacity:1;-webkit-text-fill-color:var(--weui-FG-1)}.weui-cell_disabled .weui-input[disabled],.weui-cell_disabled .weui-input[readonly],.weui-cell_disabled .weui-textarea[disabled],.weui-cell_disabled .weui-textarea[readonly],.weui-cell_readonly .weui-input[disabled],.weui-cell_readonly .weui-input[readonly],.weui-cell_readonly .weui-textarea[disabled],.weui-cell_readonly .weui-textarea[readonly]{color:var(--weui-FG-1)}.weui-btn_input-clear{display:none;padding-left:8px}.weui-btn_input-clear [class*=weui-icon-]{width:18px}.weui-form-preview{position:relative;background-color:var(--weui-BG-2)}.weui-form-preview:before{top:0;border-top:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:var(--weui-FG-3)}.weui-form-preview:after{bottom:0;border-bottom:1px solid var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview__hd{position:relative;padding:16px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px}.weui-form-preview__hd .weui-form-preview__value{font-style:normal;font-size:1.6em}.weui-form-preview__bd{padding:16px;font-size:.9em;text-align:right;color:var(--weui-FG-1);line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-DIALOG-LINE-COLOR);color:var(--weui-DIALOG-LINE-COLOR);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:var(--weui-FG-1);text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word;color:var(--weui-FG-0)}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:var(--weui-LINK);text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}button.weui-form-preview__btn{background-color:transparent;border:0;outline:0;line-height:inherit;font-size:inherit}.weui-form-preview__btn:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid var(--weui-DIALOG-LINE-COLOR);color:var(--weui-DIALOG-LINE-COLOR);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_default{color:var(--weui-FG-HALF)}.weui-form-preview__btn_primary{color:var(--weui-LINK)}.weui-form-preview__list{padding-top:24px;padding-bottom:24px;line-height:1.4;font-size:14px;position:relative}.weui-form-preview__list:before{content:"";content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview__list:last-child{padding-bottom:0}.weui-form-preview__list .weui-form-preview__label{text-align:left;text-align-last:unset;width:6em}.weui-form-preview__list .weui-form-preview__value{-webkit-hyphens:auto;hyphens:auto}.weui-form-preview__list .weui-form-preview__item{margin-top:12px}.weui-form-preview__list .weui-form-preview__item:first-child,.weui-form-preview__list>.weui-cells__title:first-child{margin-top:0}.weui-cell_select{padding:0}.weui-cell_select .weui-select{padding-right:30px}.weui-cell_select .weui-cell__bd:after{content:" ";width:12px;height:24px;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;background-color:currentColor;color:var(--weui-FG-2);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);position:absolute;top:50%;right:16px;margin-top:-12px}.weui-select{-webkit-appearance:none;border:0;outline:0;background-color:transparent;width:100%;font-size:inherit;min-height:56px;line-height:56px;position:relative;z-index:1;padding-left:16px;color:var(--weui-FG-0)}.weui-cell_select-before{-webkit-box-align:initial;-webkit-align-items:initial;align-items:initial;padding-right:16px}.weui-cell_select-before .weui-select{width:105px;box-sizing:border-box}.weui-cell_select-before .weui-cell__hd{position:relative}.weui-cell_select-before .weui-cell__hd:after{content:" ";position:absolute;right:0;top:0;width:1px;bottom:0;border-right:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-cell_select-before .weui-cell__hd:before{content:" ";width:12px;height:24px;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;background-color:currentColor;color:var(--weui-FG-2);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);position:absolute;top:50%;right:16px;margin-top:-12px}.weui-cell_select-before .weui-cell__bd{padding-left:16px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell_select-before .weui-cell__bd:after{display:none}.weui-cell_select-before.weui-cell_access .weui-cell__hd{line-height:56px;padding-left:32px}.weui-cell_select-after{padding-left:16px}.weui-cell_select-after .weui-select{padding-left:0}.weui-cell_select-after.weui-cell_access .weui-cell__bd{line-height:56px}.weui-cell_vcode{padding-top:0;padding-right:0;padding-bottom:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:56px;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;line-height:56px;font-size:17px;color:var(--weui-LINK);position:relative}.weui-vcode-btn:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}button.weui-vcode-btn{background-color:transparent;border:0;outline:0}.weui-vcode-btn:active{color:var(--weui-LINK-ACTIVE)}.weui-gallery{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;z-index:1000}.weui-gallery__img,.weui-gallery__opr{position:absolute;left:0;left:constant(safe-area-inset-left);left:env(safe-area-inset-left);right:0;right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}.weui-gallery__img{top:0;top:constant(safe-area-inset-top);top:env(safe-area-inset-top);bottom:60px;bottom:calc(60px + constant(safe-area-inset-bottom));bottom:calc(60px + env(safe-area-inset-bottom));background:50% no-repeat;background-size:contain}.weui-gallery__opr{position:absolute;bottom:0;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#0d0d0d;color:var(--weui-WHITE);line-height:60px;text-align:center}.weui-gallery__del{display:block}.weui-cell_switch{padding-top:12px;padding-bottom:12px}.weui-switch{-webkit-appearance:none;appearance:none}.weui-switch,.weui-switch-cp__box{position:relative;width:52px;height:32px;border:2px solid var(--weui-FG-3);outline:0;border-radius:16px;box-sizing:border-box;-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}.weui-switch-cp__box:before,.weui-switch:before{content:" ";position:absolute;top:0;left:0;bottom:0;right:0;border-radius:15px;background-color:var(--weui-BG-3);-webkit-transition:-webkit-transform .35s cubic-bezier(.45,1,.4,1);transition:-webkit-transform .35s cubic-bezier(.45,1,.4,1);transition:transform .35s cubic-bezier(.45,1,.4,1);transition:transform .35s cubic-bezier(.45,1,.4,1),-webkit-transform .35s cubic-bezier(.45,1,.4,1)}.weui-switch-cp__box:after,.weui-switch:after{content:" ";position:absolute;top:0;left:0;width:28px;height:28px;border-radius:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-transition:-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35);transition:-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35);transition:transform .35s cubic-bezier(.4,.4,.25,1.35);transition:transform .35s cubic-bezier(.4,.4,.25,1.35),-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35)}.weui-switch-cp__input:checked+.weui-switch-cp__box,.weui-switch-cp__input[aria-checked=true]+.weui-switch-cp__box,.weui-switch:checked{border-color:var(--weui-BRAND);background-color:var(--weui-BRAND)}.weui-switch-cp__input:checked+.weui-switch-cp__box:before,.weui-switch-cp__input[aria-checked=true]+.weui-switch-cp__box:before,.weui-switch:checked:before{-webkit-transform:scale(0);transform:scale(0)}.weui-switch-cp__input:checked+.weui-switch-cp__box:after,.weui-switch-cp__input[aria-checked=true]+.weui-switch-cp__box:after,.weui-switch:checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}.weui-switch-cp__input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.weui-switch-cp__box{display:block}.weui-cell_uploader{padding-bottom:24px}.weui-uploader{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:16px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:var(--weui-FG-2)}.weui-uploader__bd{margin-bottom:-8px;margin-right:-8px;overflow:hidden}.weui-uploader__files{list-style:none}.weui-uploader__file{float:left;margin-right:8px;margin-bottom:8px;width:96px;height:96px;background:no-repeat 50%;background-size:cover}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file_status .weui-uploader__file-content{display:block}.weui-uploader__file-content{display:none;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:var(--weui-WHITE)}.weui-uploader__file-content .weui-icon-warn{display:inline-block}.weui-uploader__input-box{float:left;position:relative;margin-right:8px;margin-bottom:8px;width:96px;height:96px;box-sizing:border-box;background-color:#ededed}[data-weui-theme=dark] .weui-uploader__input-box{background-color:#2e2e2e}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#a3a3a3}[data-weui-theme=dark] .weui-uploader__input-box:after,[data-weui-theme=dark] .weui-uploader__input-box:before{background-color:#6d6d6d}.weui-uploader__input-box:before{width:2px;height:32px}.weui-uploader__input-box:after{width:32px;height:2px}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{opacity:.7}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-msg__desc-primary a,.weui-msg__desc a,.weui-msg__tips a{color:var(--weui-LINK);display:inline-block;vertical-align:baseline}.weui-msg{padding-top:48px;padding:calc(48px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);padding:calc(48px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);text-align:center;line-height:1.4;min-height:100%;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;background-color:var(--weui-BG-2)}.weui-msg__icon-area{margin-bottom:32px}.weui-msg__text-area{margin-bottom:32px;padding:0 32px;-webkit-box-flex:1;-webkit-flex:1;flex:1;line-height:1.6;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.weui-msg__text-area:first-child{padding-top:96px}.weui-msg__title{margin-bottom:16px;font-weight:400;font-size:22px;color:#191919;-webkit-text-stroke:.02em}[data-weui-theme=dark] .weui-msg__title{color:#d1d1d1}@supports (-webkit-overflow-scrolling:touch){.weui-msg__title{font-weight:500;-webkit-text-stroke:initial}}.weui-msg__desc{font-size:17px;font-weight:400;color:var(--weui-FG-0);margin-bottom:16px}.weui-msg__desc-primary{font-size:14px;color:var(--weui-FG-1);margin-bottom:16px}.weui-msg__custom-area{text-align:left;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin-bottom:16px}.weui-msg__title+.weui-msg__custom-area{margin-top:48px}.weui-msg__desc+.weui-msg__custom-area,.weui-msg__desc-primary+.weui-msg__custom-area{margin-top:40px}.weui-msg__custom-area .weui-cells__group_form .weui-cells:after,.weui-msg__custom-area .weui-cells__group_form .weui-cells:before{left:0;right:0}.weui-msg__custom-area .weui-cells__group_form .weui-cell{padding-left:0;padding-right:0}.weui-msg__custom-area .weui-cells__group_form .weui-cell:before{left:0;right:0}.weui-msg__opr-area{margin-bottom:16px}.weui-msg__opr-area .weui-btn-area{margin:0}.weui-msg__opr-area .weui-btn+.weui-btn{margin-bottom:16px}.weui-msg__opr-area:last-child{margin-bottom:96px}.weui-msg__opr-area+.weui-msg__extra-area{margin-top:48px}.weui-msg__tips-area{margin-bottom:16px;padding:0 40px;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.weui-msg__opr-area+.weui-msg__tips-area{margin-bottom:48px}.weui-msg__tips-area:last-child{margin-bottom:64px}.weui-msg__extra-area,.weui-msg__tips{font-size:12px;color:var(--weui-FG-1)}.weui-msg__extra-area{margin-bottom:24px;padding:0 32px;box-sizing:border-box}.weui-msg__extra-area a,.weui-msg__extra-area navigator{color:var(--weui-LINK)}.weui-msg__extra-area navigator{display:inline}.weui-msg_align-top .weui-msg__text-area:first-child{padding-top:0}.weui-cells__group{border:0}.weui-cells__group_form:first-child .weui-cells__title{margin-top:0}.weui-cells__group_form .weui-cells__title{margin-top:24px;margin-bottom:8px;padding:0 32px}.weui-cells__group_form .weui-cell:before,.weui-cells__group_form .weui-cells:before{left:32px;right:32px}.weui-cells__group_form .weui-cells_checkbox .weui-check__label:before{left:72px}.weui-cells__group_form .weui-cells:after{left:32px;right:32px}.weui-cells__group_form .weui-cell{padding:16px 32px}.weui-cells__group_form .weui-cell:not(.weui-cell_link){color:var(--weui-FG-0)}.weui-cells__group_form .weui-cell__hd{padding-right:16px}.weui-cells__group_form .weui-cell__ft{padding-left:16px}.weui-cells__group_form .weui-cell_warn input{color:var(--weui-RED)}.weui-cells__group_form .weui-label{max-width:5em;margin-right:8px}.weui-cells__group_form .weui-cells__tips{margin-top:8px;padding:0 32px;color:var(--weui-FG-2)}.weui-cells__group_form .weui-cells__tips a{font-weight:700}.weui-cells__group_form .weui-cells__tips_warn{color:var(--weui-RED)}.weui-cells__group_form .weui-cell_select{padding:0}.weui-cells__group_form .weui-cell_select .weui-select{padding:0 32px}.weui-cells__group_form .weui-cell_select .weui-cell__bd:after{right:32px}.weui-cells__group_form .weui-cell_select-before .weui-label{margin-right:24px}.weui-cells__group_form .weui-cell_select-before .weui-select{padding-right:24px;box-sizing:initial}.weui-cells__group_form .weui-cell_select-after{padding-left:32px}.weui-cells__group_form .weui-cell_select-after .weui-select{padding-left:0}.weui-cells__group_form .weui-cell_switch{padding:12px 32px}.weui-cells__group_form .weui-cell_wrap{-webkit-box-align:initial;-webkit-align-items:initial;align-items:initial;padding-top:8px;padding-bottom:8px}.weui-cells__group_form .weui-cell_wrap .weui-cell__hd{padding-right:0}.weui-cells__group_form .weui-cell_wrap .weui-label{margin-top:8px}.weui-cells__group_form .weui-cell_wrap .weui-cell__bd{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cells__group_form .weui-cell__control{margin:8px 0 8px 16px}.weui-cells__group_form .weui-cell__control_flex{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:30vw}.weui-cells__group_form .weui-vcode-btn{font-size:16px;padding:0 12px;height:auto;width:auto;line-height:2em;color:var(--weui-BTN-DEFAULT-COLOR);background-color:var(--weui-BTN-DEFAULT-BG)}.weui-cells__group_form .weui-vcode-btn:before{display:none}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap{padding-top:4px;padding-bottom:4px}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-label{margin-top:12px}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-input{font-size:17px;min-height:1.88235294em}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-btn_reset{margin-right:12px}.weui-form{padding:56px 0 0;padding:calc(56px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);padding:calc(56px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;line-height:1.4;min-height:100%;box-sizing:border-box;background-color:var(--weui-BG-2)}.weui-form .weui-footer,.weui-form .weui-footer__link{font-size:14px}.weui-form .weui-agree{padding:0}.weui-form__text-area{padding:0 32px;color:var(--weui-FG-0);text-align:center}.weui-form__control-area{-webkit-box-flex:1;-webkit-flex:1;flex:1;margin:48px 0 40px}.weui-form__extra-area,.weui-form__tips-area{margin-bottom:24px;padding:0 32px;text-align:center}.weui-form__extra-area{margin-top:52px}.weui-form__opr-area{padding:0 32px}.weui-form__opr-area:last-child{margin-bottom:96px}.weui-form__opr-area+.weui-form__tips-area{margin-top:16px;margin-bottom:0}.weui-form__tips-area+.weui-form__extra-area{margin-top:32px}.weui-form__tips-area:last-child{margin-bottom:60px}.weui-form__title{font-size:22px;font-weight:700;line-height:1.36}.weui-form__desc{font-size:17px;margin-top:16px}.weui-form__tips{color:var(--weui-FG-1);font-size:14px}.weui-form__tips a,.weui-form__tips navigator{color:var(--weui-LINK)}.weui-form__tips navigator{display:inline}.weui-article{padding:24px 16px;padding:24px calc(16px + constant(safe-area-inset-right)) calc(24px + constant(safe-area-inset-bottom)) calc(16px + constant(safe-area-inset-left));padding:24px calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));font-size:17px;color:var(--weui-FG-0)}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:22px;font-weight:700;margin-bottom:.9em;line-height:1.4}.weui-article__h2{font-size:17px}.weui-article__h2,.weui-article__h3{font-weight:700;margin-bottom:.34em;line-height:1.4}.weui-article__h3{font-size:15px}.weui-article__p{margin:0 0 .8em}.weui-tabbar{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;z-index:500;background-color:var(--weui-BG-1)}.weui-tabbar:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-tabbar__item{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:8px 0;padding-bottom:calc(8px + constant(safe-area-inset-bottom));padding-bottom:calc(8px + env(safe-area-inset-bottom));font-size:0;color:var(--weui-FG-1);text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-tabbar__item:first-child{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-tabbar__item:last-child{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon>i,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label{color:var(--weui-BRAND)}.weui-tabbar__icon{display:inline-block;font-size:10px;width:2.8em;height:2.8em;margin-bottom:2px}.weui-tabbar__icon>i,i.weui-tabbar__icon{font-size:24px;color:var(--weui-FG-1)}.weui-tabbar__icon img{width:100%;height:100%}.weui-tabbar__label{color:var(--weui-FG-0);font-size:10px;line-height:1.4}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;z-index:500;background-color:var(--weui-BG-2);padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.weui-navbar:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-navbar+.weui-tab__panel{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:16px 0;padding-top:calc(16px + constant(safe-area-inset-top));padding-top:calc(16px + env(safe-area-inset-top));text-align:center;font-size:17px;line-height:1.41176471;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-navbar__item.weui-bar__item_on,.weui-navbar__item:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-navbar__item:after{content:" ";position:absolute;right:0;top:0;width:1px;bottom:0;border-right:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-navbar__item:first-child{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-navbar__item:last-child{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-navbar__item:last-child:after{display:none}.weui-tab{display:-webkit-box;display:-webkit-flex;display:flex;height:100%;box-sizing:border-box;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.weui-tab__panel{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.weui-tab__content{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{background-color:var(--weui-BG-0);height:3px;-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__inner-bar{width:0;height:100%;background-color:var(--weui-BRAND)}.weui-progress__opr{display:block;margin-left:15px;font-size:0}.weui-panel{background-color:var(--weui-BG-2);margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:var(--weui-FG-3)}.weui-panel:after{bottom:0;border-bottom:1px solid var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-panel__hd{padding:16px 16px 13px;color:var(--weui-FG-0);font-size:15px;font-weight:700;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:15px}.weui-media-box{padding:16px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px}.weui-media-box:first-child:before{display:none}a.weui-media-box{color:#000;-webkit-tap-highlight-color:rgba(0,0,0,0)}a.weui-media-box:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-media-box__title{display:block;font-weight:400;font-size:17px;color:var(--weui-FG-0);width:auto;white-space:nowrap;word-wrap:normal}.weui-media-box__desc,.weui-media-box__title{line-height:1.4;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.weui-media-box__desc{color:var(--weui-FG-2);font-size:14px;padding-top:4px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{display:block;margin-top:16px;padding-bottom:4px;font-size:13px;color:var(--weui-FG-2);line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid var(--weui-FG-2)}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box_appmsg .weui-media-box__hd{margin-right:16px;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box_appmsg .weui-media-box__thumb{width:100%;max-height:100%;vertical-align:top}.weui-media-box_appmsg .weui-media-box__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-media-box_small-appmsg .weui-cells{margin-top:0}.weui-media-box_small-appmsg .weui-cells:before{display:none}.weui-grids{position:relative;overflow:hidden}.weui-grids:before{right:0;height:1px;border-top:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-grids:after,.weui-grids:before{content:" ";position:absolute;left:0;top:0;color:var(--weui-FG-3)}.weui-grids:after{width:1px;bottom:0;border-left:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box}.weui-grid:before{top:0;width:1px;border-right:1px solid var(--weui-FG-3);-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-grid:after,.weui-grid:before{content:" ";position:absolute;right:0;bottom:0;color:var(--weui-FG-3)}.weui-grid:after{left:0;height:1px;border-bottom:1px solid var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-grid:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-grid__icon{width:28px;height:28px;margin:0 auto}.weui-grid__icon img{display:block;width:100%;height:100%}.weui-grid__icon+.weui-grid__label{margin-top:4px}.weui-grid__label{display:block;color:var(--weui-FG-0);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-footer,.weui-grid__label{text-align:center;font-size:14px}.weui-footer{color:var(--weui-FG-2);line-height:1.4}.weui-footer a,.weui-footer navigator{color:var(--weui-LINK)}.weui-footer navigator{display:inline}.weui-footer_fixed-bottom{position:fixed;bottom:0;left:0;right:0;padding-top:16px;padding-bottom:16px;padding-bottom:calc(16px + constant(safe-area-inset-bottom));padding-bottom:calc(16px + env(safe-area-inset-bottom));left:constant(safe-area-inset-left);left:env(safe-area-inset-left);right:constant(safe-area-inset-right);right:env(safe-area-inset-right)}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 8px;position:relative;font-size:14px}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5);left:-8px;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 16px;font-size:12px}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-dialog{position:fixed;z-index:5000;top:50%;left:16px;right:16px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:var(--weui-BG-2);text-align:center;border-radius:12px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;max-height:90%}.weui-dialog__hd{padding:32px 24px 16px}.weui-dialog__title{font-weight:700;font-size:17px;line-height:1.4}.weui-dialog__bd{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 24px;margin-bottom:32px;font-size:17px;line-height:1.4;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;color:var(--weui-FG-1)}.weui-dialog__bd:first-child{min-height:40px;padding:32px 24px 0;font-weight:700;color:var(--weui-FG-0);-webkit-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.weui-dialog__bd:first-child,.weui-dialog__ft{display:-webkit-box;display:-webkit-flex;display:flex}.weui-dialog__ft{position:relative}.weui-dialog__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-DIALOG-LINE-COLOR);color:var(--weui-DIALOG-LINE-COLOR);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-dialog__btn{-webkit-box-flex:1;-webkit-flex:1;flex:1;display:block;line-height:1.41176471;padding:16px 0;font-size:17px;color:var(--weui-LINK);font-weight:700;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative;overflow:hidden}.weui-dialog__btn:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-dialog__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid var(--weui-DIALOG-LINE-COLOR);color:var(--weui-DIALOG-LINE-COLOR);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-dialog__btn:first-child:after{display:none}.weui-dialog__btn_default{color:var(--weui-FG-HALF)}.weui-skin_android .weui-dialog{text-align:left;box-shadow:0 6px 30px 0 rgba(0,0,0,.1)}.weui-skin_android .weui-dialog__title{font-size:22px;line-height:1.4}.weui-skin_android .weui-dialog__hd{text-align:left}.weui-skin_android .weui-dialog__bd{color:var(--weui-FG-1);text-align:left}.weui-skin_android .weui-dialog__bd:first-child{color:var(--weui-FG-0)}.weui-skin_android .weui-dialog__ft{display:block;text-align:right;line-height:40px;min-height:40px;padding:0 24px 16px}.weui-skin_android .weui-dialog__ft:after{display:none}.weui-skin_android .weui-dialog__btn{display:inline-block;vertical-align:top;padding:0 .8em}.weui-skin_android .weui-dialog__btn:after{display:none}.weui-skin_android .weui-dialog__btn:last-child{margin-right:-.8em}.weui-skin_android .weui-dialog__btn_default{color:var(--weui-FG-HALF)}@media screen and (min-width:352px){.weui-dialog{width:320px;margin:0 auto}}.weui-half-screen-dialog{position:fixed;left:0;right:0;bottom:0;max-height:75%;z-index:5000;line-height:1.4;background-color:var(--weui-BG-2);border-top-left-radius:12px;border-top-right-radius:12px;overflow:hidden;padding:0 24px;padding:0 calc(24px + constant(safe-area-inset-right)) constant(safe-area-inset-bottom) calc(24px + constant(safe-area-inset-left));padding:0 calc(24px + env(safe-area-inset-right)) env(safe-area-inset-bottom) calc(24px + env(safe-area-inset-left));display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}@media only screen and (max-height:558px){.weui-half-screen-dialog{max-height:none}}.weui-half-screen-dialog__hd{font-size:8px;height:8em;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-shrink:0;flex-shrink:0}.weui-half-screen-dialog__hd .weui-icon-btn{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.weui-half-screen-dialog__hd .weui-icon-btn:active{opacity:.5}.weui-half-screen-dialog__hd__side{position:relative;left:-8px}.weui-half-screen-dialog__hd__main{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main{text-align:center;padding:0 40px}.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side{right:-8px;left:auto}.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-icon-btn{right:0}.weui-half-screen-dialog__title{display:block;color:var(--weui-FG-0);font-weight:700;font-size:15px}.weui-half-screen-dialog__subtitle{display:block;color:var(--weui-FG-1);font-size:10px}.weui-half-screen-dialog__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-height:0;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;padding-top:4px;padding-bottom:56px;font-size:14px;color:var(--weui-FG-0)}.weui-half-screen-dialog__desc{font-size:17px;font-weight:700;color:var(--weui-FG-0);line-height:1.4}.weui-half-screen-dialog__tips{padding-top:16px;font-size:14px;color:var(--weui-FG-2);line-height:1.4}.weui-half-screen-dialog__ft{padding:0 0 64px;text-align:center}.weui-half-screen-dialog__ft .weui-btn{width:184px;padding-left:16px;padding-right:16px}.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2),.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2)+.weui-btn{margin:0 8px;width:136px}.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2)+.weui-btn:first-child,.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2):first-child{margin-left:0}.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2)+.weui-btn:last-child,.weui-half-screen-dialog__ft .weui-btn:nth-last-child(n+2):last-child{margin-right:0}.weui-half-screen-dialog__btn-area{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.weui-half-screen-dialog__btn-area+.weui-half-screen-dialog__attachment-area{margin-top:24px;margin-bottom:-34px}.weui-icon-btn{outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border-width:0;background-color:transparent;color:var(--weui-FG-0);font-size:0;width:auto;height:auto}.weui-icon-more{width:24px;-webkit-mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M5 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/svg%3E") no-repeat 50% 50%;-webkit-mask-size:cover;mask-size:cover}.weui-icon-btn_goback,.weui-icon-more{display:inline-block;vertical-align:middle;height:24px;background-color:currentColor;color:var(--weui-FG-0)}.weui-icon-btn_goback{width:12px;-webkit-mask:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;mask:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10%2019.438L8.955%2020.5l-7.666-7.79a1.02%201.02%200%20010-1.42L8.955%203.5%2010%204.563%202.682%2012%2010%2019.438z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;-webkit-mask-size:cover;mask-size:cover}.weui-icon-btn_close{color:var(--weui-FG-0);display:inline-block;vertical-align:middle;width:14px;height:24px;-webkit-mask:url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;mask:url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.25%2010.693L6.057%204.5%205%205.557l6.193%206.193L5%2017.943%206.057%2019l6.193-6.193L18.443%2019l1.057-1.057-6.193-6.193L19.5%205.557%2018.443%204.5z%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") no-repeat 50% 50%;-webkit-mask-size:cover;mask-size:cover;background-color:currentColor}.weui-toast{position:fixed;z-index:5000;font-size:10px;width:13.6em;height:13.6em;top:40%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;border-radius:12px;color:hsla(0,0%,100%,.9);display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;background-color:var(--weui-BG-4);box-sizing:border-box;line-height:1.4}.weui-toast_text{width:auto;height:auto;min-width:152px;max-width:216px;padding:12px 0}.weui-toast_text .weui-toast__content{font-size:14px}.weui-icon_toast{display:block;width:40px;height:40px;margin-bottom:16px}.weui-icon_toast.weui-icon-success-no-circle,.weui-icon_toast.weui-icon-warn{color:hsla(0,0%,100%,.9)}.weui-icon_toast.weui-loading{width:36px;height:36px}.weui-icon_toast.weui-primary-loading{font-size:40px;color:#ededed}.weui-icon_toast.weui-primary-loading:before{border-width:4px 0 4px 4px}.weui-icon_toast.weui-primary-loading:after{border-width:4px 4px 4px 0}.weui-icon_toast.weui-primary-loading .weui-primary-loading__dot{width:4px;height:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.weui-toast__content{font-size:17px;padding:0 12px;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.weui-toast_text-more .weui-icon_toast{margin-bottom:12px}.weui-toast_text-more .weui-toast__content{font-size:14px;line-height:1.6}.weui-mask{background:rgba(0,0,0,.6)}.weui-mask,.weui-mask_transparent{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0}.weui-actionsheet{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:5000;width:100%;background-color:var(--weui-BG-1);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;border-top-left-radius:12px;border-top-right-radius:12px;overflow:hidden}.weui-actionsheet__title{position:relative;height:56px;padding:0 24px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center;font-size:12px;color:var(--weui-FG-1);line-height:1.4;background:var(--weui-BG-2)}.weui-actionsheet__title:before{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-actionsheet__title .weui-actionsheet__title-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-actionsheet__action,.weui-actionsheet__menu{color:var(--weui-FG-0);background-color:var(--weui-BG-2)}.weui-actionsheet__action{margin-top:8px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.weui-actionsheet__cell{position:relative;padding:16px;text-align:center;font-size:17px;line-height:1.41176471;overflow:hidden}.weui-actionsheet__cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-actionsheet__cell:active{background-color:var(--weui-BG-COLOR-ACTIVE)}.weui-actionsheet__cell:first-child:before{display:none}.weui-actionsheet__cell_warn{color:var(--weui-RED)}.weui-skin_android .weui-actionsheet{position:fixed;left:50%;top:50%;bottom:auto;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:274px;box-sizing:border-box;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:transparent;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;border-top-left-radius:0;border-top-right-radius:0}.weui-skin_android .weui-actionsheet__action{display:none}.weui-skin_android .weui-actionsheet__menu{border-radius:2px;box-shadow:0 6px 30px 0 rgba(0,0,0,.1)}.weui-skin_android .weui-actionsheet__cell{padding:16px;font-size:17px;line-height:1.41176471;color:var(--weui-FG-0);text-align:left}.weui-skin_android .weui-actionsheet__cell:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.weui-skin_android .weui-actionsheet__cell:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.weui-actionsheet_toggle{-webkit-transform:translate(0);transform:translate(0)}.weui-loadmore{width:65%;margin:20px auto;text-align:center;font-size:0}.weui-loadmore .weui-loading,.weui-loadmore .weui-primary-loading{margin-right:8px}.weui-loadmore__tips{display:inline-block;vertical-align:middle;font-size:14px;line-height:1.6;color:var(--weui-FG-0)}.weui-loadmore_line{border-top:1px solid var(--weui-FG-3);margin-top:32px}.weui-loadmore_line .weui-loadmore__tips{position:relative;top:-.9em;padding:0 .55em;background-color:var(--weui-BG-2);color:var(--weui-FG-1)}.weui-loadmore_dot .weui-loadmore__tips{padding:0 .16em}.weui-loadmore_dot .weui-loadmore__tips:before{content:" ";width:4px;height:4px;border-radius:50%;background-color:var(--weui-FG-3);display:inline-block;position:relative;vertical-align:0;top:-.16em}.weui-badge{display:inline-block;padding:.15em .4em;min-width:.66666667em;border-radius:18px;background-color:var(--weui-RED);color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-toptips{display:none;position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:8px;left:8px;right:8px;padding:10px;border-radius:8px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:var(--weui-RED)}.weui-list-tips{list-style:none;padding-top:24px;padding-bottom:24px;line-height:1.4;font-size:14px;color:var(--weui-FG-1);position:relative}.weui-list-tips:before{content:"";content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-list-tips:last-child{padding-bottom:0}.weui-list-tips__item{position:relative;padding-left:15px;margin:16px 0}.weui-list-tips__item:before{content:"\2022";position:absolute;left:0;top:-.1em}.weui-list-tips__item:first-child{margin-top:0}.weui-form-preview__list+.weui-list-tips>.weui-list-tips__item:first-child{margin-top:6px}.weui-search-bar{position:relative;padding:8px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:var(--weui-BG-0);-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn{display:block}.weui-search-bar.weui-search-bar_focusing .weui-search-bar__label{display:none}.weui-search-bar .weui-icon-search{font-size:10px;width:1.6em;height:1.6em;margin-left:8px;margin-right:4px;-webkit-flex-shrink:0;flex-shrink:0}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0;background-color:var(--weui-BG-2);border-radius:4px}.weui-search-bar__box{position:relative;z-index:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-search-bar__box .weui-search-bar__input{padding:8px 0;width:100%;height:1.14285714em;border:0;font-size:14px;line-height:1.14285714em;box-sizing:content-box;background:transparent;caret-color:var(--weui-BRAND);color:var(--weui-FG-0)}.weui-search-bar__box .weui-search-bar__input:focus{outline:none}.weui-search-bar__box .weui-icon-clear{-webkit-flex-shrink:0;flex-shrink:0;font-size:10px;width:2em;height:2em;margin-left:8px;-webkit-mask-size:2em;mask-size:2em;-webkit-mask-position:calc(100% - 8px) 0;mask-position:calc(100% - 8px) 0;min-width:44px}.weui-search-bar__box .weui-icon-clear:after{content:"";position:absolute;top:0;bottom:0;width:44px}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;font-size:0;border-radius:4px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:var(--weui-FG-1);background:var(--weui-BG-2)}.weui-search-bar__label span{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__cancel-btn{-webkit-flex-shrink:0;flex-shrink:0;display:none;margin-left:8px;line-height:28px;color:var(--weui-LINK)}.weui-search-bar__input:not(:valid)+.weui-icon-clear{display:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.weui-picker{position:fixed;width:100%;box-sizing:border-box;left:0;bottom:0;z-index:5000;background-color:var(--weui-BG-2);padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-picker__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding:16px;padding:16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));padding:16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));position:relative;text-align:center;font-size:17px;line-height:1.4}.weui-picker__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid var(--weui-FG-3);color:var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__bd{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;background-color:var(--weui-BG-2);height:240px;overflow:hidden}.weui-picker__group{-webkit-box-flex:1;-webkit-flex:1;flex:1;position:relative;height:100%}.weui-picker__group:first-child .weui-picker__item{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-picker__group:last-child .weui-picker__item{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-picker__mask{position:absolute;top:0;left:0;width:100%;height:100%;margin:0 auto;z-index:3;background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-image:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 92px;background-repeat:no-repeat;-webkit-transform:translateZ(0);transform:translateZ(0)}[data-weui-theme=dark] .weui-picker__mask{background-image:-webkit-linear-gradient(top,rgba(25,25,25,.95),rgba(25,25,25,.6)),-webkit-linear-gradient(bottom,rgba(25,25,25,.95),rgba(25,25,25,.6));background-image:linear-gradient(180deg,rgba(25,25,25,.95),rgba(25,25,25,.6)),linear-gradient(0deg,rgba(25,25,25,.95),rgba(25,25,25,.6))}.weui-picker__indicator{width:100%;height:56px;position:absolute;left:0;top:92px;z-index:3}.weui-picker__indicator:before{top:0;border-top:1px solid var(--weui-FG-3);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__indicator:after,.weui-picker__indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:var(--weui-FG-3)}.weui-picker__indicator:after{bottom:0;border-bottom:1px solid var(--weui-FG-3);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__content{position:absolute;top:0;left:0;width:100%}.weui-picker__item{height:48px;line-height:48px;text-align:center;color:var(--weui-FG-0);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weui-picker__item_disabled{color:var(--weui-FG-1)}@-webkit-keyframes a{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes a{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.weui-animate-slide-up{-webkit-animation:a ease .3s forwards;animation:a ease .3s forwards}@-webkit-keyframes b{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes b{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.weui-animate-slide-down{-webkit-animation:b ease .3s forwards;animation:b ease .3s forwards}@-webkit-keyframes c{0%{opacity:0}to{opacity:1}}@keyframes c{0%{opacity:0}to{opacity:1}}.weui-animate-fade-in{-webkit-animation:c ease .3s forwards;animation:c ease .3s forwards}@-webkit-keyframes d{0%{opacity:1}to{opacity:0}}@keyframes d{0%{opacity:1}to{opacity:0}}.weui-animate-fade-out{-webkit-animation:d ease .3s forwards;animation:d ease .3s forwards}.weui-agree{display:block;padding:8px 15px 0;font-size:14px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-agree a,.weui-agree navigator{color:var(--weui-LINK)}.weui-agree navigator{display:inline}.weui-agree__text{color:var(--weui-FG-1);margin-left:2px}.weui-agree__checkbox{-webkit-appearance:none;appearance:none;display:inline-block;border:0;outline:0;vertical-align:middle;background-color:currentColor;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%221000%22%20height%3D%221000%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M500%20916.667C269.881%20916.667%2083.333%20730.119%2083.333%20500%2083.333%20269.881%20269.881%2083.333%20500%2083.333c230.119%200%20416.667%20186.548%20416.667%20416.667%200%20230.119-186.548%20416.667-416.667%20416.667zm0-50c202.504%200%20366.667-164.163%20366.667-366.667%200-202.504-164.163-366.667-366.667-366.667-202.504%200-366.667%20164.163-366.667%20366.667%200%20202.504%20164.163%20366.667%20366.667%20366.667z%22%20fill-rule%3D%22evenodd%22%20fill-opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);color:var(--weui-FG-2);width:1em;height:1em;font-size:17px;margin-top:-.2em}.weui-agree__checkbox-check{opacity:0;position:absolute;width:1px;height:1px;overflow:hidden}.weui-agree__checkbox-check[aria-checked=true]+.weui-agree__checkbox,.weui-agree__checkbox:checked{-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E);color:var(--weui-BRAND)}.weui-agree_animate{-webkit-animation:e .3s 1;animation:e .3s 1}@-webkit-keyframes e{0%{-webkit-transform:translateX(0);transform:translateX(0)}16%{-webkit-transform:translateX(-8px);transform:translateX(-8px)}28%{-webkit-transform:translateX(-16px);transform:translateX(-16px)}44%{-webkit-transform:translateX(0);transform:translateX(0)}59%{-webkit-transform:translateX(-16px);transform:translateX(-16px)}73%{-webkit-transform:translateX(0);transform:translateX(0)}82%{-webkit-transform:translateX(16px);transform:translateX(16px)}94%{-webkit-transform:translateX(8px);transform:translateX(8px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes e{0%{-webkit-transform:translateX(0);transform:translateX(0)}16%{-webkit-transform:translateX(-8px);transform:translateX(-8px)}28%{-webkit-transform:translateX(-16px);transform:translateX(-16px)}44%{-webkit-transform:translateX(0);transform:translateX(0)}59%{-webkit-transform:translateX(-16px);transform:translateX(-16px)}73%{-webkit-transform:translateX(0);transform:translateX(0)}82%{-webkit-transform:translateX(16px);transform:translateX(16px)}94%{-webkit-transform:translateX(8px);transform:translateX(8px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.weui-primary-loading{font-size:16px;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;position:relative;width:1em;height:1em;vertical-align:middle;color:#606060;-webkit-animation:f 1s steps(60) infinite;animation:f 1s steps(60) infinite}.weui-primary-loading:after,.weui-primary-loading:before{content:"";display:block;width:.5em;height:1em;box-sizing:border-box;border:.125em solid;border-color:currentColor}.weui-primary-loading:before{border-right-width:0;border-top-left-radius:1em;border-bottom-left-radius:1em;-webkit-mask-image:-webkit-linear-gradient(top,#000 8%,rgba(0,0,0,.3) 95%)}.weui-primary-loading:after{border-left-width:0;border-top-right-radius:1em;border-bottom-right-radius:1em;-webkit-mask-image:-webkit-linear-gradient(top,transparent 8%,rgba(0,0,0,.3) 95%)}.weui-primary-loading__dot{position:absolute;top:0;left:50%;margin-left:-.0625em;width:.125em;height:.125em;border-top-right-radius:.125em;border-bottom-right-radius:.125em;background:currentColor}.weui-primary-loading_brand{color:var(--weui-BRAND)}.weui-primary-loading_transparent{color:#ededed}.weui-loading{font-size:10px;width:2em;height:2em;display:inline-block;vertical-align:middle;-webkit-animation:f 1s steps(12) infinite;animation:f 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%}.weui-btn_loading.weui-btn_primary .weui-loading,.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes f{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes f{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-slider{padding:15px 18px;-webkit-user-select:none;user-select:none}.weui-slider__inner{position:relative;height:2px;background-color:var(--weui-FG-3)}.weui-slider__track{height:100%;background-color:var(--weui-BRAND);width:0}.weui-slider__handler{position:absolute;left:0;top:50%;width:28px;height:28px;margin-left:-14px;margin-top:-14px;border-radius:50%;background-color:#fff;box-shadow:0 0 4px var(--weui-FG-3)}.weui-slider-box{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-slider-box .weui-slider{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-slider-box__value{margin-left:.5em;min-width:24px;color:var(--weui-FG-1);text-align:center;font-size:14px}.wx_dot_loading,.wx_dot_loading:after,.wx_dot_loading:before{display:inline-block;vertical-align:middle;width:6px;height:6px;border-radius:50%;background-color:rgba(0,0,0,.3);font-size:0;-webkit-animation:h 1.6s step-start infinite;animation:h 1.6s step-start infinite}.wx_dot_loading{position:relative}.wx_dot_loading:before{content:"";position:absolute;left:-12px;background-color:rgba(0,0,0,.1);-webkit-animation:g 1.6s step-start infinite;animation:g 1.6s step-start infinite}.wx_dot_loading:after{content:"";position:absolute;right:-12px;background-color:rgba(0,0,0,.5);-webkit-animation:i 1.6s step-start infinite;animation:i 1.6s step-start infinite}@-webkit-keyframes g{0%,to{background-color:rgba(0,0,0,.1)}30%{background-color:rgba(0,0,0,.5)}60%{background-color:rgba(0,0,0,.3)}}@keyframes g{0%,to{background-color:rgba(0,0,0,.1)}30%{background-color:rgba(0,0,0,.5)}60%{background-color:rgba(0,0,0,.3)}}@-webkit-keyframes h{0%,to{background-color:rgba(0,0,0,.3)}30%{background-color:rgba(0,0,0,.1)}60%{background-color:rgba(0,0,0,.5)}}@keyframes h{0%,to{background-color:rgba(0,0,0,.3)}30%{background-color:rgba(0,0,0,.1)}60%{background-color:rgba(0,0,0,.5)}}@-webkit-keyframes i{0%,to{background-color:rgba(0,0,0,.5)}30%{background-color:rgba(0,0,0,.3)}60%{background-color:rgba(0,0,0,.1)}}@keyframes i{0%,to{background-color:rgba(0,0,0,.5)}30%{background-color:rgba(0,0,0,.3)}60%{background-color:rgba(0,0,0,.1)}}.wx_dot_loading_white{background-color:hsla(0,0%,100%,.3);-webkit-animation:k 1.6s step-start infinite;animation:k 1.6s step-start infinite}.wx_dot_loading_white:before{background-color:hsla(0,0%,100%,.5);-webkit-animation:j 1.6s step-start infinite;animation:j 1.6s step-start infinite}.wx_dot_loading_white:after{background-color:hsla(0,0%,100%,.1);-webkit-animation:l 1.6s step-start infinite;animation:l 1.6s step-start infinite}@-webkit-keyframes j{0%,to{background-color:hsla(0,0%,100%,.5)}30%{background-color:hsla(0,0%,100%,.1)}60%{background-color:hsla(0,0%,100%,.3)}}@keyframes j{0%,to{background-color:hsla(0,0%,100%,.5)}30%{background-color:hsla(0,0%,100%,.1)}60%{background-color:hsla(0,0%,100%,.3)}}@-webkit-keyframes k{0%,to{background-color:hsla(0,0%,100%,.3)}30%{background-color:hsla(0,0%,100%,.5)}60%{background-color:hsla(0,0%,100%,.1)}}@keyframes k{0%,to{background-color:hsla(0,0%,100%,.3)}30%{background-color:hsla(0,0%,100%,.5)}60%{background-color:hsla(0,0%,100%,.1)}}@-webkit-keyframes l{0%,to{background-color:hsla(0,0%,100%,.1)}30%{background-color:hsla(0,0%,100%,.3)}60%{background-color:hsla(0,0%,100%,.5)}}@keyframes l{0%,to{background-color:hsla(0,0%,100%,.1)}30%{background-color:hsla(0,0%,100%,.3)}60%{background-color:hsla(0,0%,100%,.5)}}:host{width:100%}.weui-slideview{position:relative;overflow:hidden}.weui-slideview__left{position:relative;z-index:10}.weui-slideview__right{position:absolute;z-index:1;left:100%;top:0;height:100%}.weui-slideview__buttons{height:100%}.weui-slideview__btn__wrp{position:absolute;left:0;bottom:0;min-width:69px;white-space:nowrap;text-align:center}.weui-slideview__btn,.weui-slideview__btn__wrp{height:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-slideview__btn{color:#fff;padding:0 17px}.weui-slideview__btn-group_default .weui-slideview__btn{background:#c7c7cc}[data-weui-theme=dark] .weui-slideview__btn-group_default .weui-slideview__btn{background:var(--weui-BG-4)}.weui-slideview__btn-group_default~.weui-slideview__btn-group_default:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid #fff;color:#fff;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}[data-weui-theme=dark] .weui-slideview__btn-group_default~.weui-slideview__btn-group_default:before{border-left-color:var(--weui-FG-3)}.weui-slideview__btn-group_default:first-child:before{display:none}.weui-slideview__btn-group_warn .weui-slideview__btn{background:#fe3b30}.weui-slideview__btn-group_warn~.weui-slideview__btn-group_warn:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid #fff;color:#fff;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-slideview__btn-group_warn:first-child:before{display:none}.weui-slideview_icon .weui-slideview__btn__wrp{background:transparent;font-size:0}.weui-slideview_icon .weui-slideview__btn__wrp:first-child{padding-left:16px}.weui-slideview_icon .weui-slideview__btn__wrp:last-child{padding-right:8px}.weui-slideview_icon .weui-slideview__btn{width:48px;height:48px;line-height:48px;padding:0;display:inline-block;vertical-align:middle;border-radius:50%;background-color:#fff}[data-weui-theme=dark] .weui-slideview_icon .weui-slideview__btn{background-color:var(--weui-BG-4)}.weui-slideview_icon .weui-slideview__btn__icon{display:inline-block;vertical-align:middle;width:22px;height:22px}page{--height:44px;--right:190rpx}.weui-navigation-bar{overflow:hidden;color:var(--weui-FG-0)}.weui-navigation-bar .android{--height:48px;--right:222rpx}.weui-navigation-bar__inner{position:fixed;top:0;left:0;z-index:5001;height:var(--height);padding-right:var(--right);width:calc(100% - var(--right))}.weui-navigation-bar__inner,.weui-navigation-bar__inner .weui-navigation-bar__left{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-navigation-bar__inner .weui-navigation-bar__left{position:relative;width:var(--right);padding-left:16px}.weui-navigation-bar__inner .weui-navigation-bar__left .weui-navigation-bar__btn{display:inline-block;vertical-align:middle;background-repeat:no-repeat}.weui-navigation-bar__inner .weui-navigation-bar__left .weui-navigation-bar__btn_goback{font-size:12px;width:1em;height:2em;-webkit-mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%;mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E %3Cpath fill-opacity='.9' fill-rule='evenodd' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/svg%3E") no-repeat 50% 50%;-webkit-mask-size:cover;mask-size:cover;background-color:currentColor}.weui-navigation-bar__inner .weui-navigation-bar__left .weui-navigation-bar__btn_goback:active{opacity:.5}.weui-navigation-bar__inner .weui-navigation-bar__center{font-size:17px;text-align:center;position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.weui-navigation-bar__inner .weui-navigation-bar__loading{margin-right:4px;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-navigation-bar__inner .weui-navigation-bar__loading .weui-loading{margin-left:0}.weui-navigation-bar__inner .weui-navigation-bar__right{margin-right:16px}.weui-navigation-bar__placeholder{height:var(--height);background:var(--weui-BG-1);position:relative;z-index:50}.weui-uploader__hd{display:block}.weui-uploader__overview{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__tips{color:var(--weui-FG-2);font-size:14px;line-height:1.4;padding-top:4px}.weui-uploader__img{display:block;width:100%;height:100%}.weui-gallery{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.weui-gallery__info{color:#fff;font-size:17px;line-height:60px;min-height:60px;text-align:center}.weui-gallery__img__wrp{-webkit-box-flex:1;-webkit-flex:1;flex:1;position:relative;font-size:0}.weui-gallery__img{position:absolute;width:100%;height:100%}.weui-gallery__opr{position:static}.weui-search-bar .weui-search-bar__box .weui-search-bar__input{height:inherit;line-height:inherit}.weui-search-bar .weui-search-bar__box .weui-icon-clear{display:block}.weui-loadmore .weui-loading{margin-right:.3em}.weui-btn_input-clear{display:block}.weui-msg__title{font-weight:700;-webkit-text-stroke:initial} \ No newline at end of file diff --git a/wxParse/html2json.js b/wxParse/html2json.js new file mode 100644 index 0000000..87c618e --- /dev/null +++ b/wxParse/html2json.js @@ -0,0 +1,97 @@ +function e(e) { + for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0; + return t; +} + +function t(e) { + return e.replace(/<\?xml.*\?>\n/, "").replace(/<.*!doctype.*\>\n/, "").replace(/<.*!DOCTYPE.*\>\n/, ""); +} + +function r(e) { + var t = []; + if (0 == a.length || !n) return (d = {}).node = "text", d.text = e, s = [ d ]; + e = e.replace(/\[([^\[\]]+)\]/g, ":$1:"); + for (var r = new RegExp("[:]"), s = e.split(r), i = 0; i < s.length; i++) { + var l = s[i], d = {}; + n[l] ? (d.node = "element", d.tag = "emoji", d.text = n[l], d.baseSrc = o) : (d.node = "text", + d.text = l), t.push(d); + } + return t; +} + +var s = "https", a = "", o = "", n = {}, i = require("./wxDiscode.js"), l = require("./htmlparser.js"), d = (e("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"), +e("br,a,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video")), c = e("abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), u = e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"); + +e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), +e("wxxxcode-style,script,style,view,scroll-view,block"); + +module.exports = { + html2json: function(e, a) { + e = t(e), e = i.strDiscode(e); + var o = [], n = { + node: a, + nodes: [], + images: [], + imageUrls: [] + }; + return l(e, { + start: function(e, t, r) { + var l = { + node: "element", + tag: e + }; + if (d[e] ? l.tagType = "block" : c[e] ? l.tagType = "inline" : u[e] && (l.tagType = "closeSelf"), + 0 !== t.length && (l.attr = t.reduce(function(e, t) { + var r = t.name, s = t.value; + return "class" == r && (console.log(s), l.classStr = s), "style" == r && (console.log(s), + l.styleStr = s), s.match(/ /) && (s = s.split(" ")), e[r] ? Array.isArray(e[r]) ? e[r].push(s) : e[r] = [ e[r], s ] : e[r] = s, + e; + }, {})), "img" === l.tag) { + l.imgIndex = n.images.length; + var p = l.attr.src; + p = i.urlToHttpUrl(p, s), l.attr.src = p, l.from = a, n.images.push(l), n.imageUrls.push(p); + } + if ("font" === l.tag) { + var m = [ "x-small", "small", "medium", "large", "x-large", "xx-large", "-webkit-xxx-large" ], f = { + color: "color", + face: "font-family", + size: "font-size" + }; + l.attr.style || (l.attr.style = []), l.styleStr || (l.styleStr = ""); + for (var h in f) if (l.attr[h]) { + var g = "size" === h ? m[l.attr[h] - 1] : l.attr[h]; + l.attr.style.push(f[h]), l.attr.style.push(g), l.styleStr += f[h] + ": " + g + ";"; + } + } + if ("source" === l.tag && (n.source = l.attr.src), r) { + var v = o[0] || n; + void 0 === v.nodes && (v.nodes = []), v.nodes.push(l); + } else o.unshift(l); + }, + end: function(e) { + var t = o.shift(); + if (t.tag !== e && console.error("invalid state: mismatch end tag"), "video" === t.tag && n.source && (t.attr.src = n.source, + delete result.source), 0 === o.length) n.nodes.push(t); else { + var r = o[0]; + void 0 === r.nodes && (r.nodes = []), r.nodes.push(t); + } + }, + chars: function(e) { + var t = { + node: "text", + text: e, + textArray: r(e) + }; + if (0 === o.length) n.nodes.push(t); else { + var s = o[0]; + void 0 === s.nodes && (s.nodes = []), s.nodes.push(t); + } + }, + comment: function(e) {} + }), n; + }, + emojisInit: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "/wxParse/emojis/", r = arguments[2]; + a = e, o = t, n = r; + } +}; diff --git a/wxParse/htmlparser.js b/wxParse/htmlparser.js new file mode 100644 index 0000000..de7b6e9 --- /dev/null +++ b/wxParse/htmlparser.js @@ -0,0 +1,48 @@ +function e(e) { + for (var t = {}, r = e.split(","), s = 0; s < r.length; s++) t[r[s]] = !0; + return t; +} + +var t = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, r = /^<\/([-A-Za-z0-9_]+)[^>]*>/, s = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g, a = e("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"), n = e("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video"), i = e("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), o = e("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"), l = e("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), c = e("wxxxcode-style,script,style,view,scroll-view,block"); + +module.exports = function(e, d) { + function f(e, t) { + if (t) for (t = t.toLowerCase(), r = b.length - 1; r >= 0 && b[r] != t; r--) ; else var r = 0; + if (r >= 0) { + for (var s = b.length - 1; s >= r; s--) d.end && d.end(b[s]); + b.length = r; + } + } + var p, u, h, b = [], m = e; + for (b.last = function() { + return this[this.length - 1]; + }; e; ) { + if (u = !0, b.last() && c[b.last()]) e = e.replace(new RegExp("([\\s\\S]*?)]*>"), function(e, t) { + return t = t.replace(/|/g, "$1$2"), d.chars && d.chars(t), + ""; + }), f(0, b.last()); else if (0 == e.indexOf("\x3c!--") ? (p = e.indexOf("--\x3e")) >= 0 && (d.comment && d.comment(e.substring(4, p)), + e = e.substring(p + 3), u = !1) : 0 == e.indexOf("" : "Error in unnamed extension", a = { + valid: !0, + error: "" + }; + s.helper.isArray(e) || (e = [ e ]); + for (var o = 0; o < e.length; ++o) { + var i = t + " sub-extension " + o + ": ", l = e[o]; + if ("object" !== (void 0 === l ? "undefined" : n(l))) return a.valid = !1, a.error = i + "must be an object, but " + (void 0 === l ? "undefined" : n(l)) + " given", + a; + if (!s.helper.isString(l.type)) return a.valid = !1, a.error = i + 'property "type" must be a string, but ' + n(l.type) + " given", + a; + var c = l.type = l.type.toLowerCase(); + if ("language" === c && (c = l.type = "lang"), "html" === c && (c = l.type = "output"), + "lang" !== c && "output" !== c && "listener" !== c) return a.valid = !1, a.error = i + "type " + c + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"', + a; + if ("listener" === c) { + if (s.helper.isUndefined(l.listeners)) return a.valid = !1, a.error = i + '. Extensions of type "listener" must have a property called "listeners"', + a; + } else if (s.helper.isUndefined(l.filter) && s.helper.isUndefined(l.regex)) return a.valid = !1, + a.error = i + c + ' extensions must define either a "regex" property or a "filter" method', + a; + if (l.listeners) { + if ("object" !== n(l.listeners)) return a.valid = !1, a.error = i + '"listeners" property must be an object but ' + n(l.listeners) + " given", + a; + for (var u in l.listeners) if (l.listeners.hasOwnProperty(u) && "function" != typeof l.listeners[u]) return a.valid = !1, + a.error = i + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + u + " must be a function but " + n(l.listeners[u]) + " given", + a; + } + if (l.filter) { + if ("function" != typeof l.filter) return a.valid = !1, a.error = i + '"filter" must be a function, but ' + n(l.filter) + " given", + a; + } else if (l.regex) { + if (s.helper.isString(l.regex) && (l.regex = new RegExp(l.regex, "g")), !l.regex instanceof RegExp) return a.valid = !1, + a.error = i + '"regex" property must either be a string or a RegExp object, but ' + n(l.regex) + " given", + a; + if (s.helper.isUndefined(l.replace)) return a.valid = !1, a.error = i + '"regex" extensions must implement a replace string or function', + a; + } + } + return a; +} + +function t(e, r) { + return "~E" + r.charCodeAt(0) + "E"; +} + +var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e; +} : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; +}, s = {}, a = {}, o = {}, i = e(!0), l = { + github: { + omitExtraWLInCodeBlocks: !0, + prefixHeaderId: "user-content-", + simplifiedAutoLink: !0, + literalMidWordUnderscores: !0, + strikethrough: !0, + tables: !0, + tablesHeaderId: !0, + ghCodeBlocks: !0, + tasklists: !0 + }, + vanilla: e(!0) +}; + +s.helper = {}, s.extensions = {}, s.setOption = function(e, r) { + return i[e] = r, this; +}, s.getOption = function(e) { + return i[e]; +}, s.getOptions = function() { + return i; +}, s.resetOptions = function() { + i = e(!0); +}, s.setFlavor = function(e) { + if (l.hasOwnProperty(e)) { + var r = l[e]; + for (var t in r) r.hasOwnProperty(t) && (i[t] = r[t]); + } +}, s.getDefaultOptions = function(r) { + return e(r); +}, s.subParser = function(e, r) { + if (s.helper.isString(e)) { + if (void 0 === r) { + if (a.hasOwnProperty(e)) return a[e]; + throw Error("SubParser named " + e + " not registered!"); + } + a[e] = r; + } +}, s.extension = function(e, t) { + if (!s.helper.isString(e)) throw Error("Extension 'name' must be a string"); + if (e = s.helper.stdExtName(e), s.helper.isUndefined(t)) { + if (!o.hasOwnProperty(e)) throw Error("Extension named " + e + " is not registered!"); + return o[e]; + } + "function" == typeof t && (t = t()), s.helper.isArray(t) || (t = [ t ]); + var n = r(t, e); + if (!n.valid) throw Error(n.error); + o[e] = t; +}, s.getAllExtensions = function() { + return o; +}, s.removeExtension = function(e) { + delete o[e]; +}, s.resetExtensions = function() { + o = {}; +}, s.validateExtension = function(e) { + var t = r(e, null); + return !!t.valid || (console.warn(t.error), !1); +}, s.hasOwnProperty("helper") || (s.helper = {}), s.helper.isString = function(e) { + return "string" == typeof e || e instanceof String; +}, s.helper.isFunction = function(e) { + var r = {}; + return e && "[object Function]" === r.toString.call(e); +}, s.helper.forEach = function(e, r) { + if ("function" == typeof e.forEach) e.forEach(r); else for (var t = 0; t < e.length; t++) r(e[t], t, e); +}, s.helper.isArray = function(e) { + return e.constructor === Array; +}, s.helper.isUndefined = function(e) { + return void 0 === e; +}, s.helper.stdExtName = function(e) { + return e.replace(/[_-]||\s/g, "").toLowerCase(); +}, s.helper.escapeCharactersCallback = t, s.helper.escapeCharacters = function(e, r, n) { + var s = "([" + r.replace(/([\[\]\\])/g, "\\$1") + "])"; + n && (s = "\\\\" + s); + var a = new RegExp(s, "g"); + return e = e.replace(a, t); +}; + +var c = function(e, r, t, n) { + var s, a, o, i, l, c = n || "", u = c.indexOf("g") > -1, p = new RegExp(r + "|" + t, "g" + c.replace(/g/g, "")), h = new RegExp(r, c.replace(/g/g, "")), d = []; + do { + for (s = 0; o = p.exec(e); ) if (h.test(o[0])) s++ || (i = (a = p.lastIndex) - o[0].length); else if (s && !--s) { + l = o.index + o[0].length; + var f = { + left: { + start: i, + end: a + }, + match: { + start: a, + end: o.index + }, + right: { + start: o.index, + end: l + }, + wholeMatch: { + start: i, + end: l + } + }; + if (d.push(f), !u) return d; + } + } while (s && (p.lastIndex = a)); + return d; +}; + +s.helper.matchRecursiveRegExp = function(e, r, t, n) { + for (var s = c(e, r, t, n), a = [], o = 0; o < s.length; ++o) a.push([ e.slice(s[o].wholeMatch.start, s[o].wholeMatch.end), e.slice(s[o].match.start, s[o].match.end), e.slice(s[o].left.start, s[o].left.end), e.slice(s[o].right.start, s[o].right.end) ]); + return a; +}, s.helper.replaceRecursiveRegExp = function(e, r, t, n, a) { + if (!s.helper.isFunction(r)) { + var o = r; + r = function() { + return o; + }; + } + var i = c(e, t, n, a), l = e, u = i.length; + if (u > 0) { + var p = []; + 0 !== i[0].wholeMatch.start && p.push(e.slice(0, i[0].wholeMatch.start)); + for (var h = 0; h < u; ++h) p.push(r(e.slice(i[h].wholeMatch.start, i[h].wholeMatch.end), e.slice(i[h].match.start, i[h].match.end), e.slice(i[h].left.start, i[h].left.end), e.slice(i[h].right.start, i[h].right.end))), + h < u - 1 && p.push(e.slice(i[h].wholeMatch.end, i[h + 1].wholeMatch.start)); + i[u - 1].wholeMatch.end < e.length && p.push(e.slice(i[u - 1].wholeMatch.end)), + l = p.join(""); + } + return l; +}, s.helper.isUndefined(console) && (console = { + warn: function(e) { + alert(e); + }, + log: function(e) { + alert(e); + }, + error: function(e) { + throw e; + } +}), s.Converter = function(e) { + function t(e, t) { + if (t = t || null, s.helper.isString(e)) { + if (e = s.helper.stdExtName(e), t = e, s.extensions[e]) return console.warn("DEPRECATION WARNING: " + e + " is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"), + void a(s.extensions[e], e); + if (s.helper.isUndefined(o[e])) throw Error('Extension "' + e + '" could not be loaded. It was either not found or is not a valid extension.'); + e = o[e]; + } + "function" == typeof e && (e = e()), s.helper.isArray(e) || (e = [ e ]); + var n = r(e, t); + if (!n.valid) throw Error(n.error); + for (var i = 0; i < e.length; ++i) { + switch (e[i].type) { + case "lang": + h.push(e[i]); + break; + + case "output": + d.push(e[i]); + } + if (e[i].hasOwnProperty(f)) for (var l in e[i].listeners) e[i].listeners.hasOwnProperty(l) && c(l, e[i].listeners[l]); + } + } + function a(e, t) { + "function" == typeof e && (e = e(new s.Converter())), s.helper.isArray(e) || (e = [ e ]); + var n = r(e, t); + if (!n.valid) throw Error(n.error); + for (var a = 0; a < e.length; ++a) switch (e[a].type) { + case "lang": + h.push(e[a]); + break; + + case "output": + d.push(e[a]); + break; + + default: + throw Error("Extension loader error: Type unrecognized!!!"); + } + } + function c(e, r) { + if (!s.helper.isString(e)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + (void 0 === e ? "undefined" : n(e)) + " given"); + if ("function" != typeof r) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + (void 0 === r ? "undefined" : n(r)) + " given"); + f.hasOwnProperty(e) || (f[e] = []), f[e].push(r); + } + function u(e) { + var r = e.match(/^\s*/)[0].length, t = new RegExp("^\\s{0," + r + "}", "gm"); + return e.replace(t, ""); + } + var p = {}, h = [], d = [], f = {}; + !function() { + e = e || {}; + for (var r in i) i.hasOwnProperty(r) && (p[r] = i[r]); + if ("object" !== (void 0 === e ? "undefined" : n(e))) throw Error("Converter expects the passed parameter to be an object, but " + (void 0 === e ? "undefined" : n(e)) + " was passed instead."); + for (var a in e) e.hasOwnProperty(a) && (p[a] = e[a]); + p.extensions && s.helper.forEach(p.extensions, t); + }(), this._dispatch = function(e, r, t, n) { + if (f.hasOwnProperty(e)) for (var s = 0; s < f[e].length; ++s) { + var a = f[e][s](e, r, this, t, n); + a && void 0 !== a && (r = a); + } + return r; + }, this.listen = function(e, r) { + return c(e, r), this; + }, this.makeHtml = function(e) { + if (!e) return e; + var r = { + gHtmlBlocks: [], + gHtmlMdBlocks: [], + gHtmlSpans: [], + gUrls: {}, + gTitles: {}, + gDimensions: {}, + gListLevel: 0, + hashLinkCounts: {}, + langExtensions: h, + outputModifiers: d, + converter: this, + ghCodeBlocks: [] + }; + return e = e.replace(/~/g, "~T"), e = e.replace(/\$/g, "~D"), e = e.replace(/\r\n/g, "\n"), + e = e.replace(/\r/g, "\n"), p.smartIndentationFix && (e = u(e)), e = e, e = s.subParser("detab")(e, p, r), + e = s.subParser("stripBlankLines")(e, p, r), s.helper.forEach(h, function(t) { + e = s.subParser("runExtension")(t, e, p, r); + }), e = s.subParser("hashPreCodeTags")(e, p, r), e = s.subParser("githubCodeBlocks")(e, p, r), + e = s.subParser("hashHTMLBlocks")(e, p, r), e = s.subParser("hashHTMLSpans")(e, p, r), + e = s.subParser("stripLinkDefinitions")(e, p, r), e = s.subParser("blockGamut")(e, p, r), + e = s.subParser("unhashHTMLSpans")(e, p, r), e = s.subParser("unescapeSpecialChars")(e, p, r), + e = e.replace(/~D/g, "$$"), e = e.replace(/~T/g, "~"), s.helper.forEach(d, function(t) { + e = s.subParser("runExtension")(t, e, p, r); + }), e; + }, this.setOption = function(e, r) { + p[e] = r; + }, this.getOption = function(e) { + return p[e]; + }, this.getOptions = function() { + return p; + }, this.addExtension = function(e, r) { + t(e, r = r || null); + }, this.useExtension = function(e) { + t(e); + }, this.setFlavor = function(e) { + if (l.hasOwnProperty(e)) { + var r = l[e]; + for (var t in r) r.hasOwnProperty(t) && (p[t] = r[t]); + } + }, this.removeExtension = function(e) { + s.helper.isArray(e) || (e = [ e ]); + for (var r = 0; r < e.length; ++r) { + for (var t = e[r], n = 0; n < h.length; ++n) h[n] === t && h[n].splice(n, 1); + for (;0 < d.length; ++n) d[0] === t && d[0].splice(n, 1); + } + }, this.getAllExtensions = function() { + return { + language: h, + output: d + }; + }; +}, s.subParser("anchors", function(e, r, t) { + var n = function(e, r, n, a, o, i, l, c) { + s.helper.isUndefined(c) && (c = ""), e = r; + var u = n, p = a.toLowerCase(), h = o, d = c; + if (!h) if (p || (p = u.toLowerCase().replace(/ ?\n/g, " ")), h = "#" + p, s.helper.isUndefined(t.gUrls[p])) { + if (!(e.search(/\(\s*\)$/m) > -1)) return e; + h = ""; + } else h = t.gUrls[p], s.helper.isUndefined(t.gTitles[p]) || (d = t.gTitles[p]); + var f = '
"; + }; + return e = (e = t.converter._dispatch("anchors.before", e, r, t)).replace(/(\[((?:\[[^\]]*]|[^\[\]])*)][ ]?(?:\n[ ]*)?\[(.*?)])()()()()/g, n), + e = e.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, n), + e = e.replace(/(\[([^\[\]]+)])()()()()()/g, n), e = t.converter._dispatch("anchors.after", e, r, t); +}), s.subParser("autoLinks", function(e, r, t) { + function n(e, r) { + var t = r; + return /^www\./i.test(r) && (r = r.replace(/^www\./i, "http://www.")), '' + t + ""; + } + function a(e, r) { + var t = s.subParser("unescapeSpecialChars")(r); + return s.subParser("encodeEmailAddress")(t); + } + var o = /\b(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+)(?=\s|$)(?!["<>])/gi, i = /<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)>/gi, l = /(?:^|[ \n\t])([A-Za-z0-9!#$%&'*+-/=?^_`\{|}~\.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?:$|[ \n\t])/gi, c = /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi; + return e = (e = t.converter._dispatch("autoLinks.before", e, r, t)).replace(i, n), + e = e.replace(c, a), r.simplifiedAutoLink && (e = (e = e.replace(o, n)).replace(l, a)), + e = t.converter._dispatch("autoLinks.after", e, r, t); +}), s.subParser("blockGamut", function(e, r, t) { + e = t.converter._dispatch("blockGamut.before", e, r, t), e = s.subParser("blockQuotes")(e, r, t), + e = s.subParser("headers")(e, r, t); + var n = s.subParser("hashBlock")("
", r, t); + return e = e.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, n), e = e.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm, n), + e = e.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, n), e = s.subParser("lists")(e, r, t), + e = s.subParser("codeBlocks")(e, r, t), e = s.subParser("tables")(e, r, t), e = s.subParser("hashHTMLBlocks")(e, r, t), + e = s.subParser("paragraphs")(e, r, t), e = t.converter._dispatch("blockGamut.after", e, r, t); +}), s.subParser("blockQuotes", function(e, r, t) { + return e = t.converter._dispatch("blockQuotes.before", e, r, t), e = e.replace(/((^[ \t]{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm, function(e, n) { + var a = n; + return a = a.replace(/^[ \t]*>[ \t]?/gm, "~0"), a = a.replace(/~0/g, ""), a = a.replace(/^[ \t]+$/gm, ""), + a = s.subParser("githubCodeBlocks")(a, r, t), a = s.subParser("blockGamut")(a, r, t), + a = a.replace(/(^|\n)/g, "$1 "), a = a.replace(/(\s*
[^\r]+?<\/pre>)/gm, function(e, r) {
+            var t = r;
+            return t = t.replace(/^  /gm, "~0"), t = t.replace(/~0/g, "");
+        }), s.subParser("hashBlock")("
\n" + a + "\n
", r, t); + }), e = t.converter._dispatch("blockQuotes.after", e, r, t); +}), s.subParser("codeBlocks", function(e, r, t) { + e = t.converter._dispatch("codeBlocks.before", e, r, t); + var n = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g; + return e = (e += "~0").replace(n, function(e, n, a) { + var o = n, i = a, l = "\n"; + return o = s.subParser("outdent")(o), o = s.subParser("encodeCode")(o), o = s.subParser("detab")(o), + o = o.replace(/^\n+/g, ""), o = o.replace(/\n+$/g, ""), r.omitExtraWLInCodeBlocks && (l = ""), + o = "
" + o + l + "
", s.subParser("hashBlock")(o, r, t) + i; + }), e = e.replace(/~0/, ""), e = t.converter._dispatch("codeBlocks.after", e, r, t); +}), s.subParser("codeSpans", function(e, r, t) { + return void 0 === (e = t.converter._dispatch("codeSpans.before", e, r, t)) && (e = ""), + e = e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function(e, r, t, n) { + var a = n; + return a = a.replace(/^([ \t]*)/g, ""), a = a.replace(/[ \t]*$/g, ""), a = s.subParser("encodeCode")(a), + r + "" + a + ""; + }), e = t.converter._dispatch("codeSpans.after", e, r, t); +}), s.subParser("detab", function(e) { + return e = e.replace(/\t(?=\t)/g, " "), e = e.replace(/\t/g, "~A~B"), e = e.replace(/~B(.+?)~A/g, function(e, r) { + for (var t = r, n = 4 - t.length % 4, s = 0; s < n; s++) t += " "; + return t; + }), e = e.replace(/~A/g, " "), e = e.replace(/~B/g, ""); +}), s.subParser("encodeAmpsAndAngles", function(e) { + return e = e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&"), e = e.replace(/<(?![a-z\/?\$!])/gi, "<"); +}), s.subParser("encodeBackslashEscapes", function(e) { + return e = e.replace(/\\(\\)/g, s.helper.escapeCharactersCallback), e = e.replace(/\\([`*_{}\[\]()>#+-.!])/g, s.helper.escapeCharactersCallback); +}), s.subParser("encodeCode", function(e) { + return e = e.replace(/&/g, "&"), e = e.replace(//g, ">"), + e = s.helper.escapeCharacters(e, "*_{}[]\\", !1); +}), s.subParser("encodeEmailAddress", function(e) { + var r = [ function(e) { + return "&#" + e.charCodeAt(0) + ";"; + }, function(e) { + return "&#x" + e.charCodeAt(0).toString(16) + ";"; + }, function(e) { + return e; + } ]; + return e = "mailto:" + e, e = e.replace(/./g, function(e) { + if ("@" === e) e = r[Math.floor(2 * Math.random())](e); else if (":" !== e) { + var t = Math.random(); + e = t > .9 ? r[2](e) : t > .45 ? r[1](e) : r[0](e); + } + return e; + }), e = '' + e + "", e = e.replace(/">.+:/g, '">'); +}), s.subParser("escapeSpecialCharsWithinTagAttributes", function(e) { + var r = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi; + return e = e.replace(r, function(e) { + var r = e.replace(/(.)<\/?code>(?=.)/g, "$1`"); + return r = s.helper.escapeCharacters(r, "\\`*_", !1); + }); +}), s.subParser("githubCodeBlocks", function(e, r, t) { + return r.ghCodeBlocks ? (e = t.converter._dispatch("githubCodeBlocks.before", e, r, t), + e += "~0", e = e.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g, function(e, n, a) { + var o = r.omitExtraWLInCodeBlocks ? "" : "\n"; + return a = s.subParser("encodeCode")(a), a = s.subParser("detab")(a), a = a.replace(/^\n+/g, ""), + a = a.replace(/\n+$/g, ""), a = "
" + a + o + "
", + a = s.subParser("hashBlock")(a, r, t), "\n\n~G" + (t.ghCodeBlocks.push({ + text: e, + codeblock: a + }) - 1) + "G\n\n"; + }), e = e.replace(/~0/, ""), t.converter._dispatch("githubCodeBlocks.after", e, r, t)) : e; +}), s.subParser("hashBlock", function(e, r, t) { + return e = e.replace(/(^\n+|\n+$)/g, ""), "\n\n~K" + (t.gHtmlBlocks.push(e) - 1) + "K\n\n"; +}), s.subParser("hashElement", function(e, r, t) { + return function(e, r) { + var n = r; + return n = n.replace(/\n\n/g, "\n"), n = n.replace(/^\n/, ""), n = n.replace(/\n+$/g, ""), + n = "\n\n~K" + (t.gHtmlBlocks.push(n) - 1) + "K\n\n"; + }; +}), s.subParser("hashHTMLBlocks", function(e, r, t) { + for (var n = [ "pre", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset", "iframe", "math", "style", "section", "header", "footer", "nav", "article", "aside", "address", "audio", "canvas", "figure", "hgroup", "output", "video", "p" ], a = 0; a < n.length; ++a) e = s.helper.replaceRecursiveRegExp(e, function(e, r, n, s) { + var a = e; + return -1 !== n.search(/\bmarkdown\b/) && (a = n + t.converter.makeHtml(r) + s), + "\n\n~K" + (t.gHtmlBlocks.push(a) - 1) + "K\n\n"; + }, "^(?: |\\t){0,3}<" + n[a] + "\\b[^>]*>", "", "gim"); + return e = e.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, s.subParser("hashElement")(e, r, t)), + e = e.replace(/()/g, s.subParser("hashElement")(e, r, t)), e = e.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, s.subParser("hashElement")(e, r, t)); +}), s.subParser("hashHTMLSpans", function(e, r, t) { + for (var n = s.helper.matchRecursiveRegExp(e, "]*>", "", "gi"), a = 0; a < n.length; ++a) e = e.replace(n[a][0], "~L" + (t.gHtmlSpans.push(n[a][0]) - 1) + "L"); + return e; +}), s.subParser("unhashHTMLSpans", function(e, r, t) { + for (var n = 0; n < t.gHtmlSpans.length; ++n) e = e.replace("~L" + n + "L", t.gHtmlSpans[n]); + return e; +}), s.subParser("hashPreCodeTags", function(e, r, t) { + return e = s.helper.replaceRecursiveRegExp(e, function(e, r, n, a) { + var o = n + s.subParser("encodeCode")(r) + a; + return "\n\n~G" + (t.ghCodeBlocks.push({ + text: e, + codeblock: o + }) - 1) + "G\n\n"; + }, "^(?: |\\t){0,3}]*>\\s*]*>", "^(?: |\\t){0,3}\\s*
", "gim"); +}), s.subParser("headers", function(e, r, t) { + function n(e) { + var r, n = e.replace(/[^\w]/g, "").toLowerCase(); + return t.hashLinkCounts[n] ? r = n + "-" + t.hashLinkCounts[n]++ : (r = n, t.hashLinkCounts[n] = 1), + !0 === a && (a = "section"), s.helper.isString(a) ? a + r : r; + } + e = t.converter._dispatch("headers.before", e, r, t); + var a = r.prefixHeaderId, o = isNaN(parseInt(r.headerLevelStart)) ? 1 : parseInt(r.headerLevelStart), i = r.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, l = r.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm; + return e = e.replace(i, function(e, a) { + var i = s.subParser("spanGamut")(a, r, t), l = r.noHeaderId ? "" : ' id="' + n(a) + '"', c = o, u = "" + i + ""; + return s.subParser("hashBlock")(u, r, t); + }), e = e.replace(l, function(e, a) { + var i = s.subParser("spanGamut")(a, r, t), l = r.noHeaderId ? "" : ' id="' + n(a) + '"', c = o + 1, u = "" + i + ""; + return s.subParser("hashBlock")(u, r, t); + }), e = e.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, function(e, a, i) { + var l = s.subParser("spanGamut")(i, r, t), c = r.noHeaderId ? "" : ' id="' + n(i) + '"', u = o - 1 + a.length, p = "" + l + ""; + return s.subParser("hashBlock")(p, r, t); + }), e = t.converter._dispatch("headers.after", e, r, t); +}), s.subParser("images", function(e, r, t) { + function n(e, r, n, a, o, i, l, c) { + var u = t.gUrls, p = t.gTitles, h = t.gDimensions; + if (n = n.toLowerCase(), c || (c = ""), "" === a || null === a) { + if ("" !== n && null !== n || (n = r.toLowerCase().replace(/ ?\n/g, " ")), a = "#" + n, + s.helper.isUndefined(u[n])) return e; + a = u[n], s.helper.isUndefined(p[n]) || (c = p[n]), s.helper.isUndefined(h[n]) || (o = h[n].width, + i = h[n].height); + } + r = r.replace(/"/g, """), r = s.helper.escapeCharacters(r, "*_", !1); + var d = '' + r + '?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(['"])(.*?)\6[ \t]*)?\)/g, o = /!\[([^\]]*?)] ?(?:\n *)?\[(.*?)]()()()()()/g; + return e = (e = t.converter._dispatch("images.before", e, r, t)).replace(o, n), + e = e.replace(a, n), e = t.converter._dispatch("images.after", e, r, t); +}), s.subParser("italicsAndBold", function(e, r, t) { + return e = t.converter._dispatch("italicsAndBold.before", e, r, t), e = r.literalMidWordUnderscores ? (e = (e = (e = e.replace(/(^|\s|>|\b)__(?=\S)([\s\S]+?)__(?=\b|<|\s|$)/gm, "$1$2")).replace(/(^|\s|>|\b)_(?=\S)([\s\S]+?)_(?=\b|<|\s|$)/gm, "$1$2")).replace(/(\*\*)(?=\S)([^\r]*?\S[*]*)\1/g, "$2")).replace(/(\*)(?=\S)([^\r]*?\S)\1/g, "$2") : (e = e.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g, "$2")).replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g, "$2"), + e = t.converter._dispatch("italicsAndBold.after", e, r, t); +}), s.subParser("lists", function(e, r, t) { + function n(e, n) { + t.gListLevel++, e = e.replace(/\n{2,}$/, "\n"), e += "~0"; + var a = /(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm, o = /\n[ \t]*\n(?!~0)/.test(e); + return e = e.replace(a, function(e, n, a, i, l, c, u) { + u = u && "" !== u.trim(); + var p = s.subParser("outdent")(l, r, t), h = ""; + return c && r.tasklists && (h = ' class="task-list-item" style="list-style-type: none;"', + p = p.replace(/^[ \t]*\[(x|X| )?]/m, function() { + var e = ' -1 ? (p = s.subParser("githubCodeBlocks")(p, r, t), + p = s.subParser("blockGamut")(p, r, t)) : (p = (p = s.subParser("lists")(p, r, t)).replace(/\n$/, ""), + p = o ? s.subParser("paragraphs")(p, r, t) : s.subParser("spanGamut")(p, r, t)), + p = "\n" + p + "\n"; + }), e = e.replace(/~0/g, ""), t.gListLevel--, n && (e = e.replace(/\s+$/, "")), + e; + } + function a(e, r, t) { + var s = "ul" === r ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm, a = [], o = ""; + if (-1 !== e.search(s)) { + !function e(a) { + var i = a.search(s); + -1 !== i ? (o += "\n\n<" + r + ">" + n(a.slice(0, i), !!t) + "\n\n", + s = "ul" === (r = "ul" === r ? "ol" : "ul") ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm, + e(a.slice(i))) : o += "\n\n<" + r + ">" + n(a, !!t) + "\n\n"; + }(e); + for (var i = 0; i < a.length; ++i) ; + } else o = "\n\n<" + r + ">" + n(e, !!t) + "\n\n"; + return o; + } + e = t.converter._dispatch("lists.before", e, r, t), e += "~0"; + var o = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + return t.gListLevel ? e = e.replace(o, function(e, r, t) { + return a(r, t.search(/[*+-]/g) > -1 ? "ul" : "ol", !0); + }) : (o = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, + e = e.replace(o, function(e, r, t, n) { + return a(t, n.search(/[*+-]/g) > -1 ? "ul" : "ol"); + })), e = e.replace(/~0/, ""), e = t.converter._dispatch("lists.after", e, r, t); +}), s.subParser("outdent", function(e) { + return e = e.replace(/^(\t|[ ]{1,4})/gm, "~0"), e = e.replace(/~0/g, ""); +}), s.subParser("paragraphs", function(e, r, t) { + for (var n = (e = (e = (e = t.converter._dispatch("paragraphs.before", e, r, t)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), a = [], o = n.length, i = 0; i < o; i++) { + var l = n[i]; + l.search(/~(K|G)(\d+)\1/g) >= 0 ? a.push(l) : (l = (l = s.subParser("spanGamut")(l, r, t)).replace(/^([ \t]*)/g, "

"), + l += "

", a.push(l)); + } + for (o = a.length, i = 0; i < o; i++) { + for (var c = "", u = a[i], p = !1; u.search(/~(K|G)(\d+)\1/) >= 0; ) { + var h = RegExp.$1, d = RegExp.$2; + c = (c = "K" === h ? t.gHtmlBlocks[d] : p ? s.subParser("encodeCode")(t.ghCodeBlocks[d].text) : t.ghCodeBlocks[d].codeblock).replace(/\$/g, "$$$$"), + u = u.replace(/(\n\n)?~(K|G)\d+\2(\n\n)?/, c), /^]*>\s*]*>/.test(u) && (p = !0); + } + a[i] = u; + } + return e = a.join("\n\n"), e = e.replace(/^\n+/g, ""), e = e.replace(/\n+$/g, ""), + t.converter._dispatch("paragraphs.after", e, r, t); +}), s.subParser("runExtension", function(e, r, t, n) { + if (e.filter) r = e.filter(r, n.converter, t); else if (e.regex) { + var s = e.regex; + !s instanceof RegExp && (s = new RegExp(s, "g")), r = r.replace(s, e.replace); + } + return r; +}), s.subParser("spanGamut", function(e, r, t) { + return e = t.converter._dispatch("spanGamut.before", e, r, t), e = s.subParser("codeSpans")(e, r, t), + e = s.subParser("escapeSpecialCharsWithinTagAttributes")(e, r, t), e = s.subParser("encodeBackslashEscapes")(e, r, t), + e = s.subParser("images")(e, r, t), e = s.subParser("anchors")(e, r, t), e = s.subParser("autoLinks")(e, r, t), + e = s.subParser("encodeAmpsAndAngles")(e, r, t), e = s.subParser("italicsAndBold")(e, r, t), + e = s.subParser("strikethrough")(e, r, t), e = e.replace(/ +\n/g, "
\n"), + e = t.converter._dispatch("spanGamut.after", e, r, t); +}), s.subParser("strikethrough", function(e, r, t) { + return r.strikethrough && (e = (e = t.converter._dispatch("strikethrough.before", e, r, t)).replace(/(?:~T){2}([\s\S]+?)(?:~T){2}/g, "$1"), + e = t.converter._dispatch("strikethrough.after", e, r, t)), e; +}), s.subParser("stripBlankLines", function(e) { + return e.replace(/^[ \t]+$/gm, ""); +}), s.subParser("stripLinkDefinitions", function(e, r, t) { + var n = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm; + return e += "~0", e = e.replace(n, function(e, n, a, o, i, l, c) { + return n = n.toLowerCase(), t.gUrls[n] = s.subParser("encodeAmpsAndAngles")(a), + l ? l + c : (c && (t.gTitles[n] = c.replace(/"|'/g, """)), r.parseImgDimensions && o && i && (t.gDimensions[n] = { + width: o, + height: i + }), ""); + }), e = e.replace(/~0/, ""); +}), s.subParser("tables", function(e, r, t) { + function n(e) { + return /^:[ \t]*--*$/.test(e) ? ' style="text-align:left;"' : /^--*[ \t]*:[ \t]*$/.test(e) ? ' style="text-align:right;"' : /^:[ \t]*--*[ \t]*:$/.test(e) ? ' style="text-align:center;"' : ""; + } + function a(e, n) { + var a = ""; + return e = e.trim(), r.tableHeaderId && (a = ' id="' + e.replace(/ /g, "_").toLowerCase() + '"'), + e = s.subParser("spanGamut")(e, r, t), "" + e + "\n"; + } + function o(e, n) { + return "" + s.subParser("spanGamut")(e, r, t) + "\n"; + } + function i(e, r) { + for (var t = "\n\n\n", n = e.length, s = 0; s < n; ++s) t += e[s]; + for (t += "\n\n\n", s = 0; s < r.length; ++s) { + t += "\n"; + for (var a = 0; a < n; ++a) t += r[s][a]; + t += "\n"; + } + return t += "\n
\n"; + } + if (!r.tables) return e; + var l = /^[ \t]{0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm; + return e = t.converter._dispatch("tables.before", e, r, t), e = e.replace(l, function(e) { + var r, t = e.split("\n"); + for (r = 0; r < t.length; ++r) /^[ \t]{0,3}\|/.test(t[r]) && (t[r] = t[r].replace(/^[ \t]{0,3}\|/, "")), + /\|[ \t]*$/.test(t[r]) && (t[r] = t[r].replace(/\|[ \t]*$/, "")); + var l = t[0].split("|").map(function(e) { + return e.trim(); + }), c = t[1].split("|").map(function(e) { + return e.trim(); + }), u = [], p = [], h = [], d = []; + for (t.shift(), t.shift(), r = 0; r < t.length; ++r) "" !== t[r].trim() && u.push(t[r].split("|").map(function(e) { + return e.trim(); + })); + if (l.length < c.length) return e; + for (r = 0; r < c.length; ++r) h.push(n(c[r])); + for (r = 0; r < l.length; ++r) s.helper.isUndefined(h[r]) && (h[r] = ""), p.push(a(l[r], h[r])); + for (r = 0; r < u.length; ++r) { + for (var f = [], g = 0; g < p.length; ++g) s.helper.isUndefined(u[r][g]), f.push(o(u[r][g], h[g])); + d.push(f); + } + return i(p, d); + }), e = t.converter._dispatch("tables.after", e, r, t); +}), s.subParser("unescapeSpecialChars", function(e) { + return e = e.replace(/~E(\d+)E/g, function(e, r) { + var t = parseInt(r); + return String.fromCharCode(t); + }); +}), module.exports = s; \ No newline at end of file diff --git a/wxParse/wxDiscode.js b/wxParse/wxDiscode.js new file mode 100644 index 0000000..9edebe5 --- /dev/null +++ b/wxParse/wxDiscode.js @@ -0,0 +1,74 @@ +function e(e) { + return e = e.replace(/∀/g, "∀"), e = e.replace(/∂/g, "∂"), e = e.replace(/&exists;/g, "∃"), + e = e.replace(/∅/g, "∅"), e = e.replace(/∇/g, "∇"), e = e.replace(/∈/g, "∈"), + e = e.replace(/∉/g, "∉"), e = e.replace(/∋/g, "∋"), e = e.replace(/∏/g, "∏"), + e = e.replace(/∑/g, "∑"), e = e.replace(/−/g, "−"), e = e.replace(/∗/g, "∗"), + e = e.replace(/√/g, "√"), e = e.replace(/∝/g, "∝"), e = e.replace(/∞/g, "∞"), + e = e.replace(/∠/g, "∠"), e = e.replace(/∧/g, "∧"), e = e.replace(/∨/g, "∨"), + e = e.replace(/∩/g, "∩"), e = e.replace(/∩/g, "∪"), e = e.replace(/∫/g, "∫"), + e = e.replace(/∴/g, "∴"), e = e.replace(/∼/g, "∼"), e = e.replace(/≅/g, "≅"), + e = e.replace(/≈/g, "≈"), e = e.replace(/≠/g, "≠"), e = e.replace(/≤/g, "≤"), + e = e.replace(/≥/g, "≥"), e = e.replace(/⊂/g, "⊂"), e = e.replace(/⊃/g, "⊃"), + e = e.replace(/⊄/g, "⊄"), e = e.replace(/⊆/g, "⊆"), e = e.replace(/⊇/g, "⊇"), + e = e.replace(/⊕/g, "⊕"), e = e.replace(/⊗/g, "⊗"), e = e.replace(/⊥/g, "⊥"), + e = e.replace(/⋅/g, "⋅"); +} + +function a(e) { + return e = e.replace(/Α/g, "Α"), e = e.replace(/Β/g, "Β"), e = e.replace(/Γ/g, "Γ"), + e = e.replace(/Δ/g, "Δ"), e = e.replace(/Ε/g, "Ε"), e = e.replace(/Ζ/g, "Ζ"), + e = e.replace(/Η/g, "Η"), e = e.replace(/Θ/g, "Θ"), e = e.replace(/Ι/g, "Ι"), + e = e.replace(/Κ/g, "Κ"), e = e.replace(/Λ/g, "Λ"), e = e.replace(/Μ/g, "Μ"), + e = e.replace(/Ν/g, "Ν"), e = e.replace(/Ξ/g, "Ν"), e = e.replace(/Ο/g, "Ο"), + e = e.replace(/Π/g, "Π"), e = e.replace(/Ρ/g, "Ρ"), e = e.replace(/Σ/g, "Σ"), + e = e.replace(/Τ/g, "Τ"), e = e.replace(/Υ/g, "Υ"), e = e.replace(/Φ/g, "Φ"), + e = e.replace(/Χ/g, "Χ"), e = e.replace(/Ψ/g, "Ψ"), e = e.replace(/Ω/g, "Ω"), + e = e.replace(/α/g, "α"), e = e.replace(/β/g, "β"), e = e.replace(/γ/g, "γ"), + e = e.replace(/δ/g, "δ"), e = e.replace(/ε/g, "ε"), e = e.replace(/ζ/g, "ζ"), + e = e.replace(/η/g, "η"), e = e.replace(/θ/g, "θ"), e = e.replace(/ι/g, "ι"), + e = e.replace(/κ/g, "κ"), e = e.replace(/λ/g, "λ"), e = e.replace(/μ/g, "μ"), + e = e.replace(/ν/g, "ν"), e = e.replace(/ξ/g, "ξ"), e = e.replace(/ο/g, "ο"), + e = e.replace(/π/g, "π"), e = e.replace(/ρ/g, "ρ"), e = e.replace(/ς/g, "ς"), + e = e.replace(/σ/g, "σ"), e = e.replace(/τ/g, "τ"), e = e.replace(/υ/g, "υ"), + e = e.replace(/φ/g, "φ"), e = e.replace(/χ/g, "χ"), e = e.replace(/ψ/g, "ψ"), + e = e.replace(/ω/g, "ω"), e = e.replace(/ϑ/g, "ϑ"), e = e.replace(/ϒ/g, "ϒ"), + e = e.replace(/ϖ/g, "ϖ"), e = e.replace(/·/g, "·"); +} + +function r(e) { + return e = e.replace(/ /g, " "), e = e.replace(/"/g, "'"), e = e.replace(/&/g, "&"), + e = e.replace(/</g, "<"), e = e.replace(/>/g, ">"); +} + +function l(e) { + return e = e.replace(/Œ/g, "Œ"), e = e.replace(/œ/g, "œ"), e = e.replace(/Š/g, "Š"), + e = e.replace(/š/g, "š"), e = e.replace(/Ÿ/g, "Ÿ"), e = e.replace(/ƒ/g, "ƒ"), + e = e.replace(/ˆ/g, "ˆ"), e = e.replace(/˜/g, "˜"), e = e.replace(/ /g, ""), + e = e.replace(/ /g, ""), e = e.replace(/ /g, ""), e = e.replace(/‌/g, ""), + e = e.replace(/‍/g, ""), e = e.replace(/‎/g, ""), e = e.replace(/‏/g, ""), + e = e.replace(/–/g, "–"), e = e.replace(/—/g, "—"), e = e.replace(/‘/g, "‘"), + e = e.replace(/’/g, "’"), e = e.replace(/‚/g, "‚"), e = e.replace(/“/g, "“"), + e = e.replace(/”/g, "”"), e = e.replace(/„/g, "„"), e = e.replace(/†/g, "†"), + e = e.replace(/‡/g, "‡"), e = e.replace(/•/g, "•"), e = e.replace(/…/g, "…"), + e = e.replace(/‰/g, "‰"), e = e.replace(/′/g, "′"), e = e.replace(/″/g, "″"), + e = e.replace(/‹/g, "‹"), e = e.replace(/›/g, "›"), e = e.replace(/‾/g, "‾"), + e = e.replace(/€/g, "€"), e = e.replace(/™/g, "™"), e = e.replace(/←/g, "←"), + e = e.replace(/↑/g, "↑"), e = e.replace(/→/g, "→"), e = e.replace(/↓/g, "↓"), + e = e.replace(/↔/g, "↔"), e = e.replace(/↵/g, "↵"), e = e.replace(/⌈/g, "⌈"), + e = e.replace(/⌉/g, "⌉"), e = e.replace(/⌊/g, "⌊"), e = e.replace(/⌋/g, "⌋"), + e = e.replace(/◊/g, "◊"), e = e.replace(/♠/g, "♠"), e = e.replace(/♣/g, "♣"), + e = e.replace(/♥/g, "♥"), e = e.replace(/♦/g, "♦"); +} + +function p(e) { + return e = e.replace(/\r\n/g, ""), e = e.replace(/\n/g, ""), e = e.replace(/code/g, "wxxxcode-style"); +} + +module.exports = { + strDiscode: function(c) { + return c = e(c), c = a(c), c = r(c), c = l(c), c = p(c); + }, + urlToHttpUrl: function(e, a) { + return new RegExp("^//").test(e) && (e = a + ":" + e), e; + } +}; \ No newline at end of file diff --git a/wxParse/wxParse.js b/wxParse/wxParse.js new file mode 100644 index 0000000..225b169 --- /dev/null +++ b/wxParse/wxParse.js @@ -0,0 +1,66 @@ +function e(e) { + return e && e.__esModule ? e : { + default: e + }; +} + +function t(e) { + var t = this, a = e.target.dataset.src, i = e.target.dataset.from; + void 0 !== i && i.length > 0 && wx.previewImage({ + current: a, + urls: t.data[i].imageUrls + }); +} + +function a(e) { + return false; + var t = this, a = e.target.dataset.from, r = e.target.dataset.idx; + void 0 !== a && a.length > 0 && i(e, r, t, a); +} + +function i(e, t, a, i) { + var d = a.data[i]; + if (0 != d.images.length) { + var n = d.images, s = r(e.detail.width, e.detail.height, a, i); + n[t].width = s.imageWidth, n[t].height = s.imageheight, d.images = n; + var o = {}; + o[i] = d, a.setData(o); + } +} + +function r(e, t, a, i) { + var r = 0, d = 0, n = 0, s = 0, o = {}; + return wx.getSystemInfo({ + success: function(g) { + var h = a.data[i].view.imagePadding; + r = g.windowWidth - 2 * h, d = g.windowHeight, e > r ? (s = (n = r) * t / e, o.imageWidth = n, + o.imageheight = s) : (o.imageWidth = e, o.imageheight = t); + } + }), o; +} + +var d = e(require("./showdown.js")), n = e(require("./html2json.js")); + +module.exports = { + wxParse: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "wxParseData", i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "html", r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : '
数据不能为空
', s = arguments[3], o = arguments[4], g = s, h = {}; + if ("html" == i) h = n.default.html2json(r, e); else if ("md" == i || "markdown" == i) { + var m = new d.default.Converter().makeHtml(r); + h = n.default.html2json(m, e); + } + h.view = {}, h.view.imagePadding = 0, void 0 !== o && (h.view.imagePadding = o); + var l = {}; + l[e] = h, g.setData(l), g.wxParseImgLoad = a, g.wxParseImgTap = t; + }, + wxParseTemArray: function(e, t, a, i) { + for (var r = [], d = i.data, n = null, s = 0; s < a; s++) { + var o = d[t + s].nodes; + r.push(o); + } + e = e || "wxParseTemArray", (n = JSON.parse('{"' + e + '":""}'))[e] = r, i.setData(n); + }, + emojisInit: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "/wxParse/emojis/", a = arguments[2]; + n.default.emojisInit(e, t, a); + } +}; \ No newline at end of file diff --git a/wxParse/wxParse.wxml b/wxParse/wxParse.wxml new file mode 100644 index 0000000..b3d8293 --- /dev/null +++ b/wxParse/wxParse.wxml @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wxParse/wxParse.wxss b/wxParse/wxParse.wxss new file mode 100644 index 0000000..2713ec8 --- /dev/null +++ b/wxParse/wxParse.wxss @@ -0,0 +1,243 @@ +.wxParse { + margin: 0 5px; + font-family: Helvetica,sans-serif; + font-size: 28rpx; + color: #666; + line-height: 1.8; +} + +view { + word-break: break-all; + overflow: auto; +} + +.wxParse-inline { + display: inline; + margin: 0; + padding: 0; +} + +.wxParse-div { + margin: 0; + padding: 0; +} + +.wxParse-h1 { + font-size: 2em; + margin: .67em 0; +} + +.wxParse-h2 { + font-size: 1.5em; + margin: .75em 0; +} + +.wxParse-h3 { + font-size: 1.17em; + margin: .83em 0; +} + +.wxParse-h4 { + margin: 1.12em 0; +} + +.wxParse-h5 { + font-size: .83em; + margin: 1.5em 0; +} + +.wxParse-h6 { + font-size: .75em; + margin: 1.67em 0; +} + +.wxParse-h1 { + font-size: 18px; + font-weight: 400; + margin-bottom: .9em; +} + +.wxParse-h2 { + font-size: 16px; + font-weight: 400; + margin-bottom: .34em; +} + +.wxParse-h3 { + font-weight: 400; + font-size: 15px; + margin-bottom: .34em; +} + +.wxParse-h4 { + font-weight: 400; + font-size: 14px; + margin-bottom: .24em; +} + +.wxParse-h5 { + font-weight: 400; + font-size: 13px; + margin-bottom: .14em; +} + +.wxParse-h6 { + font-weight: 400; + font-size: 12px; + margin-bottom: .04em; +} + +.wxParse-h1,.wxParse-h2,.wxParse-h3,.wxParse-h4,.wxParse-h5,.wxParse-h6,.wxParse-b,.wxParse-strong { + font-weight: bolder; +} + +.wxParse-i,.wxParse-cite,.wxParse-em,.wxParse-var,.wxParse-address { + font-style: italic; +} + +.wxParse-pre,.wxParse-tt,.wxParse-code,.wxParse-kbd,.wxParse-samp { + font-family: monospace; +} + +.wxParse-pre { + white-space: pre; +} + +.wxParse-big { + font-size: 1.17em; +} + +.wxParse-small,.wxParse-sub,.wxParse-sup { + font-size: .83em; +} + +.wxParse-sub { + vertical-align: sub; +} + +.wxParse-sup { + vertical-align: super; +} + +.wxParse-s,.wxParse-strike,.wxParse-del { + text-decoration: line-through; +} + +.wxParse-strong,.wxParse-s { + display: inline; +} + +.wxParse-a { + color: deepskyblue; + word-break: break-all; + overflow: auto; +} + +.wxParse-video { + text-align: center; + margin: 10px 0; +} + +.wxParse-video-video { + width: 100%; +} + +.wxParse-img { + background-color: #efefef; + overflow: hidden; +} + +.wxParse-blockquote { + margin: 0; + padding: 10px 0 10px 5px; + font-family: Courier,Calibri,"宋体"; + background: #f5f5f5; + border-left: 3px solid #dbdbdb; +} + +.wxParse-code,.wxParse-wxxxcode-style { + display: inline; + background: #f5f5f5; +} + +.wxParse-ul { + margin: 20rpx 10rpx; +} + +.wxParse-li,.wxParse-li-inner { + display: flex; + align-items: baseline; + margin: 10rpx 0; +} + +.wxParse-li-text { + align-items: center; + line-height: 20px; +} + +.wxParse-li-circle { + display: inline-flex; + width: 5px; + height: 5px; + background-color: #333; + margin-right: 5px; +} + +.wxParse-li-square { + display: inline-flex; + width: 10rpx; + height: 10rpx; + background-color: #333; + margin-right: 5px; +} + +.wxParse-li-ring { + display: inline-flex; + width: 10rpx; + height: 10rpx; + border: 2rpx solid #333; + border-radius: 50%; + background-color: #fff; + margin-right: 5px; +} + +.wxParse-u { + text-decoration: underline; +} + +.wxParse-hide { + display: none; +} + +.WxEmojiView { + align-items: center; +} + +.wxEmoji { + width: 16px; + height: 16px; +} + +.wxParse-tr { + display: flex; + border-right: 1px solid #e0e0e0; + border-bottom: 1px solid #e0e0e0; + border-top: 1px solid #e0e0e0; +} + +.wxParse-th,.wxParse-td { + flex: 1; + padding: 5px; + font-size: 28rpx; + border-left: 1px solid #e0e0e0; + word-break: break-all; +} + +.wxParse-td:last { + border-top: 1px solid #e0e0e0; +} + +.wxParse-th { + background: #f0f0f0; + border-top: 1px solid #e0e0e0; +} \ No newline at end of file