diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..6356002 --- /dev/null +++ b/.env.production @@ -0,0 +1,9 @@ +ENV = 'production' + +# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 +# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http +VUE_APP_BASE_API = 'http://192.168.1.80:7070' +VUE_APP_LIB_API = 'http://118.253.150.248:8099' +# VUE_APP_BASE_API = 'http://127.0.0.1:8080' +# 如果接口是 http 形式, wss 需要改为 ws +VUE_APP_WS_API = 'ws://192.168.1.80:7071' diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..91908e0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,197 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef':'off', + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef4e647 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +dist/ + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +package-lock.json \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..21a6ec8 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +江夏区图书馆智慧大屏 + +```bash +# install dependency +npm install + +# develop +npm run serve + +# 构建生产环境 +npm run build + +``` +```bash +## 项目结构 +├── src # 源代码 +│ ├── api # 所有请求 +│ ├── assets # 主题 字体等静态资源 +│ ├── components # 全局组件 +│ │ ├── echart # echart +│ ├── router # 路由 +│ ├── views # views 所有页面 +│ │ ├── header # 头部 +│ │ ├── map # 地图页 第二页 +│ │ ├── pageFour # 第四页 +│ │ ├── pageOne # 第一页 +│ │ ├── pageThree # 第三页 +│ │ ├── index # 主页 +│ ├── App.vue # 入口页面 +│ ├── main.js # 入口文件 加载组件 初始化等 +├── .env.xxx # 环境变量配置 +├── .eslintrc.js # eslint 配置项 +├── .babelrc # babel-loader 配置 +├── .travis.yml # 自动化CI配置 +├── vue.config.js # vue-cli 配置 +├── postcss.config.js # postcss 配置 +└── package.json # package.json +``` \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..e763183 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,11 @@ +const plugins = ['@vue/babel-plugin-transform-vue-jsx', '@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-nullish-coalescing-operator'] +// 生产环境移除console +if (process.env.NODE_ENV === 'production') { + plugins.push('transform-remove-console') +} +module.exports = { + plugins: plugins, + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3b914d2 --- /dev/null +++ b/package.json @@ -0,0 +1,61 @@ +{ + "name": "qy-big-screen", + "version": "1.0.0", + "description": "江夏区图书馆智慧大屏", + "scripts": { + "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", + "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", + "lint": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service lint" + }, + "dependencies": { + "@babel/core": "^7.19.0", + "@babel/preset-env": "^7.19.0", + "@jiaminghi/data-view": "^2.7.3", + "@types/echarts": "^4.4.3", + "axios": "^0.27.2", + "core-js": "^3.6.4", + "echarts": "^4.6.0", + "element-ui": "^2.15.10", + "jquery": "^3.7.1", + "svg-sprite-loader": "^6.0.11", + "TagCloud": "^2.5.0", + "vue": "^2.6.11", + "vue-awesome": "^4.0.2", + "vue-count-to": "^1.0.13", + "vue-router": "^3.1.5", + "vue-seamless-scroll": "^1.1.23", + "vuex": "^3.1.2" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^4.2.0", + "@vue/cli-plugin-eslint": "^4.2.0", + "@vue/cli-service": "^4.2.0", + "babel-eslint": "^10.0.3", + "babel-plugin-transform-remove-console": "^6.9.4", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^6.1.2", + "sass": "^1.25.0", + "sass-loader": "^8.0.2", + "videojs-contrib-hls": "^5.15.0", + "vue-awesome-swiper": "^3.1.3", + "vue-template-compiler": "^2.6.11" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..64f781f --- /dev/null +++ b/public/index.html @@ -0,0 +1,18 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + +
+ + + diff --git a/public/static/config.js b/public/static/config.js new file mode 100644 index 0000000..b3d9eb0 --- /dev/null +++ b/public/static/config.js @@ -0,0 +1,5 @@ +window.g = { + AXIOS_TIMEOUT: 10000, + ApiUrl: 'http://192.168.3.5:8080', // 配置服务器地址, + LibUrl: 'http://118.253.150.248:8099' // 图创地址 +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..0575fe9 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/api/library.js b/src/api/library.js new file mode 100644 index 0000000..f9025a2 --- /dev/null +++ b/src/api/library.js @@ -0,0 +1,185 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 获取token +export function FetchInitToken(params) { + return request({ + url: '/openlib/service/barcode/token' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'interlib' + }) +} + +// 馆藏量 +export function FetchLibBookTotal(params) { + return request({ + url: '/qyzt/sync35' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 办证量统计 +export function FetchUsertotal(params) { + return request({ + url: '/qyzt/usertotal' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page1 获取公众号总粉丝数 +export function FetchFansCount(params) { + return request({ + url: '/qyzt/getfansCount' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page1 累计借出 +export function FetchLendingTotal(params) { + return request({ + url: '/qyzt/sync82' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 获取初始化数据 +export function FetchInitSetting(params) { + return request({ + url: '/qyzt/initSetting' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 人流数据 +export function FetchInitJXSetting(params) { + return request({ + url: '/qyzt/initJXSetting' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page1 云标签 +export function FetchHotSearch(params) { + return request({ + url: '/qyzt/getHotSearch' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page1 新书推荐 +export function FetchNewBook(params) { + return request({ + url: '/qyzt/getNewBook' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 通过isbn获取图书详细信息 +export function FetchMarcByISBN(params) { + return request({ + url: '/qyzt/marcByISBN' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page2 获取分馆显示内容 +export function FetchLibcodeDetails(params) { + return request({ + url: '/qyzt/getLibcodeDetails' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 获取分馆图片资料 +export function FetchLibcodeResouceDetails(params) { + return request({ + url: '/qyzt/getLibcodeResouceDetails' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page2 读者借阅排行榜 +export function FetchReadRanking(params) { + return request({ + url: '/qyzt/sync37' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page4 获取通知 +export function FetchNoticeList(params) { + return request({ + url: '/qyzt/getNoticeList' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page4 文献排行榜 +export function FetchSync36(params) { + return request({ + url: '/qyzt/sync36' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// page4 获取总馆资料 +export function FetchTotalResource(params) { + return request({ + url: '/qyzt/getTotalResource' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 获取当日每小时借还信息 +export function FetchTodayJH(params) { + return request({ + url: '/qyzt/getTodayJH' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +// 获取一周内借还信息 +export function FetchWeekJH(params) { + return request({ + url: '/qyzt/getWeekJH' + '?' + qs.stringify(params, { indices: false }), + method: 'get', + urlType: 'local' + }) +} + +export default { + FetchInitToken, + FetchLibBookTotal, + FetchUsertotal, + FetchFansCount, + FetchLendingTotal, + FetchInitSetting, + FetchInitJXSetting, + FetchHotSearch, + FetchNewBook, + FetchMarcByISBN, + FetchReadRanking, + FetchLibcodeDetails, + FetchLibcodeResouceDetails, + FetchNoticeList, + FetchSync36, + FetchTotalResource, + FetchTodayJH, + FetchWeekJH +} diff --git a/src/assets/fonts/DingTalk_JinBuTi_Regular.ttf b/src/assets/fonts/DingTalk_JinBuTi_Regular.ttf new file mode 100644 index 0000000..c4efa55 Binary files /dev/null and b/src/assets/fonts/DingTalk_JinBuTi_Regular.ttf differ diff --git a/src/assets/fonts/fonts.css b/src/assets/fonts/fonts.css new file mode 100644 index 0000000..8ade4da --- /dev/null +++ b/src/assets/fonts/fonts.css @@ -0,0 +1,6 @@ +@font-face { + font-family: "DingTalk_JinBuTi_Regular"; + src: url('DingTalk_JinBuTi_Regular.ttf'); + font-weight: normal; + font-style: normal; +} \ No newline at end of file diff --git a/src/assets/images/arrow1.png b/src/assets/images/arrow1.png new file mode 100644 index 0000000..3435700 Binary files /dev/null and b/src/assets/images/arrow1.png differ diff --git a/src/assets/images/arrow2.png b/src/assets/images/arrow2.png new file mode 100644 index 0000000..8f1e023 Binary files /dev/null and b/src/assets/images/arrow2.png differ diff --git a/src/assets/images/bg.png b/src/assets/images/bg.png new file mode 100644 index 0000000..655c21a Binary files /dev/null and b/src/assets/images/bg.png differ diff --git a/src/assets/images/bg2.png b/src/assets/images/bg2.png new file mode 100644 index 0000000..c1823d0 Binary files /dev/null and b/src/assets/images/bg2.png differ diff --git a/src/assets/images/book_03.png b/src/assets/images/book_03.png new file mode 100644 index 0000000..1c28961 Binary files /dev/null and b/src/assets/images/book_03.png differ diff --git a/src/assets/images/bottom-bg.png b/src/assets/images/bottom-bg.png new file mode 100644 index 0000000..933848e Binary files /dev/null and b/src/assets/images/bottom-bg.png differ diff --git a/src/assets/images/circle-bg.png b/src/assets/images/circle-bg.png new file mode 100644 index 0000000..67657f7 Binary files /dev/null and b/src/assets/images/circle-bg.png differ diff --git a/src/assets/images/database-icon1.png b/src/assets/images/database-icon1.png new file mode 100644 index 0000000..c348112 Binary files /dev/null and b/src/assets/images/database-icon1.png differ diff --git a/src/assets/images/database-icon2.png b/src/assets/images/database-icon2.png new file mode 100644 index 0000000..2f75942 Binary files /dev/null and b/src/assets/images/database-icon2.png differ diff --git a/src/assets/images/database-img2.png b/src/assets/images/database-img2.png new file mode 100644 index 0000000..15c2cea Binary files /dev/null and b/src/assets/images/database-img2.png differ diff --git a/src/assets/images/database-middle.png b/src/assets/images/database-middle.png new file mode 100644 index 0000000..7448f58 Binary files /dev/null and b/src/assets/images/database-middle.png differ diff --git a/src/assets/images/default-img.png b/src/assets/images/default-img.png new file mode 100644 index 0000000..01a60cb Binary files /dev/null and b/src/assets/images/default-img.png differ diff --git a/src/assets/images/header-bg.png b/src/assets/images/header-bg.png new file mode 100644 index 0000000..c3a1798 Binary files /dev/null and b/src/assets/images/header-bg.png differ diff --git a/src/assets/images/header_03.png b/src/assets/images/header_03.png new file mode 100644 index 0000000..3fda8c6 Binary files /dev/null and b/src/assets/images/header_03.png differ diff --git a/src/assets/images/header_05.png b/src/assets/images/header_05.png new file mode 100644 index 0000000..a7f0f81 Binary files /dev/null and b/src/assets/images/header_05.png differ diff --git a/src/assets/images/header_07.png b/src/assets/images/header_07.png new file mode 100644 index 0000000..eb8bb9a Binary files /dev/null and b/src/assets/images/header_07.png differ diff --git a/src/assets/images/header_09.png b/src/assets/images/header_09.png new file mode 100644 index 0000000..bc3403a Binary files /dev/null and b/src/assets/images/header_09.png differ diff --git a/src/assets/images/header_11.png b/src/assets/images/header_11.png new file mode 100644 index 0000000..a972743 Binary files /dev/null and b/src/assets/images/header_11.png differ diff --git a/src/assets/images/header_13.png b/src/assets/images/header_13.png new file mode 100644 index 0000000..f960003 Binary files /dev/null and b/src/assets/images/header_13.png differ diff --git a/src/assets/images/header_13_b.png b/src/assets/images/header_13_b.png new file mode 100644 index 0000000..6de642f Binary files /dev/null and b/src/assets/images/header_13_b.png differ diff --git a/src/assets/images/header_15.png b/src/assets/images/header_15.png new file mode 100644 index 0000000..bdacbe0 Binary files /dev/null and b/src/assets/images/header_15.png differ diff --git a/src/assets/images/lib.jpg b/src/assets/images/lib.jpg new file mode 100644 index 0000000..9bfb63b Binary files /dev/null and b/src/assets/images/lib.jpg differ diff --git a/src/assets/images/lib2.jpg b/src/assets/images/lib2.jpg new file mode 100644 index 0000000..0bcdf13 Binary files /dev/null and b/src/assets/images/lib2.jpg differ diff --git a/src/assets/images/lib3.jpg b/src/assets/images/lib3.jpg new file mode 100644 index 0000000..08d2686 Binary files /dev/null and b/src/assets/images/lib3.jpg differ diff --git a/src/assets/images/lib4.jpg b/src/assets/images/lib4.jpg new file mode 100644 index 0000000..97950e6 Binary files /dev/null and b/src/assets/images/lib4.jpg differ diff --git a/src/assets/images/lib5.jpg b/src/assets/images/lib5.jpg new file mode 100644 index 0000000..d55b343 Binary files /dev/null and b/src/assets/images/lib5.jpg differ diff --git a/src/assets/images/lib6.jpg b/src/assets/images/lib6.jpg new file mode 100644 index 0000000..9ad2b0d Binary files /dev/null and b/src/assets/images/lib6.jpg differ diff --git a/src/assets/images/line.png b/src/assets/images/line.png new file mode 100644 index 0000000..f7f3564 Binary files /dev/null and b/src/assets/images/line.png differ diff --git a/src/assets/images/map-bg2.png b/src/assets/images/map-bg2.png new file mode 100644 index 0000000..7b5fd96 Binary files /dev/null and b/src/assets/images/map-bg2.png differ diff --git a/src/assets/images/map-hx-big2.png b/src/assets/images/map-hx-big2.png new file mode 100644 index 0000000..8daad2d Binary files /dev/null and b/src/assets/images/map-hx-big2.png differ diff --git a/src/assets/images/map-hx-dot.png b/src/assets/images/map-hx-dot.png new file mode 100644 index 0000000..bda07b7 Binary files /dev/null and b/src/assets/images/map-hx-dot.png differ diff --git a/src/assets/images/map-hx-small.png b/src/assets/images/map-hx-small.png new file mode 100644 index 0000000..1bef9a9 Binary files /dev/null and b/src/assets/images/map-hx-small.png differ diff --git a/src/assets/images/mapBg.png b/src/assets/images/mapBg.png new file mode 100644 index 0000000..278171f Binary files /dev/null and b/src/assets/images/mapBg.png differ diff --git a/src/assets/images/map_03.png b/src/assets/images/map_03.png new file mode 100644 index 0000000..62ba7a8 Binary files /dev/null and b/src/assets/images/map_03.png differ diff --git a/src/assets/images/map_10.png b/src/assets/images/map_10.png new file mode 100644 index 0000000..ddf52ae Binary files /dev/null and b/src/assets/images/map_10.png differ diff --git a/src/assets/images/map_18.png b/src/assets/images/map_18.png new file mode 100644 index 0000000..ea879e2 Binary files /dev/null and b/src/assets/images/map_18.png differ diff --git a/src/assets/images/map_20.png b/src/assets/images/map_20.png new file mode 100644 index 0000000..67f6ec0 Binary files /dev/null and b/src/assets/images/map_20.png differ diff --git a/src/assets/images/map_28.png b/src/assets/images/map_28.png new file mode 100644 index 0000000..472e106 Binary files /dev/null and b/src/assets/images/map_28.png differ diff --git a/src/assets/images/map_30.png b/src/assets/images/map_30.png new file mode 100644 index 0000000..16a4d53 Binary files /dev/null and b/src/assets/images/map_30.png differ diff --git a/src/assets/images/page4_02.png b/src/assets/images/page4_02.png new file mode 100644 index 0000000..3ed2680 Binary files /dev/null and b/src/assets/images/page4_02.png differ diff --git a/src/assets/images/page4_03.png b/src/assets/images/page4_03.png new file mode 100644 index 0000000..9798dac Binary files /dev/null and b/src/assets/images/page4_03.png differ diff --git a/src/assets/images/page4_06.png b/src/assets/images/page4_06.png new file mode 100644 index 0000000..bdd2cdb Binary files /dev/null and b/src/assets/images/page4_06.png differ diff --git a/src/assets/images/pageOne-1.png b/src/assets/images/pageOne-1.png new file mode 100644 index 0000000..7414c12 Binary files /dev/null and b/src/assets/images/pageOne-1.png differ diff --git a/src/assets/images/pageOne-2.png b/src/assets/images/pageOne-2.png new file mode 100644 index 0000000..e435f88 Binary files /dev/null and b/src/assets/images/pageOne-2.png differ diff --git a/src/assets/images/pageOne-3.png b/src/assets/images/pageOne-3.png new file mode 100644 index 0000000..b98530c Binary files /dev/null and b/src/assets/images/pageOne-3.png differ diff --git a/src/assets/images/pageOne-4.png b/src/assets/images/pageOne-4.png new file mode 100644 index 0000000..25aeda2 Binary files /dev/null and b/src/assets/images/pageOne-4.png differ diff --git a/src/assets/images/pageOne-5.png b/src/assets/images/pageOne-5.png new file mode 100644 index 0000000..4e76a15 Binary files /dev/null and b/src/assets/images/pageOne-5.png differ diff --git a/src/assets/images/pageOne-6.png b/src/assets/images/pageOne-6.png new file mode 100644 index 0000000..a418c70 Binary files /dev/null and b/src/assets/images/pageOne-6.png differ diff --git a/src/assets/images/poster.png b/src/assets/images/poster.png new file mode 100644 index 0000000..c15d10b Binary files /dev/null and b/src/assets/images/poster.png differ diff --git a/src/assets/images/ranking01.png b/src/assets/images/ranking01.png new file mode 100644 index 0000000..8451edf Binary files /dev/null and b/src/assets/images/ranking01.png differ diff --git a/src/assets/images/ranking02.png b/src/assets/images/ranking02.png new file mode 100644 index 0000000..3fb76e8 Binary files /dev/null and b/src/assets/images/ranking02.png differ diff --git a/src/assets/images/ranking03.png b/src/assets/images/ranking03.png new file mode 100644 index 0000000..a25e5e9 Binary files /dev/null and b/src/assets/images/ranking03.png differ diff --git a/src/assets/images/title-big.png b/src/assets/images/title-big.png new file mode 100644 index 0000000..0ccaa1d Binary files /dev/null and b/src/assets/images/title-big.png differ diff --git a/src/assets/images/title-middle.png b/src/assets/images/title-middle.png new file mode 100644 index 0000000..90518a5 Binary files /dev/null and b/src/assets/images/title-middle.png differ diff --git a/src/assets/images/title-small.png b/src/assets/images/title-small.png new file mode 100644 index 0000000..83c229e Binary files /dev/null and b/src/assets/images/title-small.png differ diff --git a/src/assets/images/wechat-img1.png b/src/assets/images/wechat-img1.png new file mode 100644 index 0000000..74841db Binary files /dev/null and b/src/assets/images/wechat-img1.png differ diff --git a/src/assets/images/wechat-img2.png b/src/assets/images/wechat-img2.png new file mode 100644 index 0000000..15a4e0a Binary files /dev/null and b/src/assets/images/wechat-img2.png differ diff --git a/src/assets/images/wq.png b/src/assets/images/wq.png new file mode 100644 index 0000000..239797b Binary files /dev/null and b/src/assets/images/wq.png differ diff --git a/src/assets/js/META.common.min.js b/src/assets/js/META.common.min.js new file mode 100644 index 0000000..8463940 --- /dev/null +++ b/src/assets/js/META.common.min.js @@ -0,0 +1,63 @@ +module.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"00ee":function(t,e,n){var i={};i[n("b622")("toStringTag")]="z",t.exports="[object z]"===String(i)},"02c2":function(t,e,n){n("907a"),n("986a"),n("1d02"),n("3c5d"),n("1b3b"),n("3d71"),n("c6e3"),n("14d9"),n("d9e2"),t.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t){void 0===t&&(t={}),this.isplaying=!1,this.lBuffer=[],this.rBuffer=[],this.tempPCM=[],this.inputSampleBits=16,this.playStamp=0,this.playTime=0,this.totalPlayTime=0,this.offset=0,this.fileSize=0;var e,n=new(window.AudioContext||window.webkitAudioContext);this.inputSampleRate=n.sampleRate,this.config={sampleBits:~[8,16].indexOf(t.sampleBits)?t.sampleBits:16,sampleRate:~[11025,16e3,22050,24e3,44100,48e3].indexOf(t.sampleRate)?t.sampleRate:this.inputSampleRate,numChannels:~[1,2].indexOf(t.numChannels)?t.numChannels:1,compiling:!!t.compiling||!1},this.outputSampleRate=this.config.sampleRate,this.oututSampleBits=this.config.sampleBits,this.littleEdian=(e=new ArrayBuffer(2),new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]),this.initUserMedia()}return t.prototype.initRecorder=function(){var t=this;this.context&&this.destroy(),this.context=new(window.AudioContext||window.webkitAudioContext),this.analyser=this.context.createAnalyser(),this.analyser.fftSize=2048;var e=this.context.createScriptProcessor||this.context.createJavaScriptNode;this.recorder=e.apply(this.context,[4096,this.config.numChannels,this.config.numChannels]),this.recorder.onaudioprocess=function(e){if(t.isrecording&&!t.ispause){var n,i=e.inputBuffer.getChannelData(0),r=null;if(t.lBuffer.push(new Float32Array(i)),t.size+=i.length,2===t.config.numChannels&&(r=e.inputBuffer.getChannelData(1),t.rBuffer.push(new Float32Array(r)),t.size+=r.length),t.config.compiling){var a=t.transformIntoPCM(i,r);t.tempPCM.push(a),t.fileSize=a.byteLength*t.tempPCM.length}else t.fileSize=Math.floor(t.size/Math.max(t.inputSampleRate/t.outputSampleRate,1))*(t.oututSampleBits/8);n=100*Math.max.apply(Math,i),t.duration+=4096/t.inputSampleRate,t.onprocess&&t.onprocess(t.duration),t.onprogress&&t.onprogress({duration:t.duration,fileSize:t.fileSize,vol:n,data:t.tempPCM})}}},t.prototype.getPermission=function(){return this.initUserMedia(),navigator.mediaDevices.getUserMedia({audio:!0}).then(function(t){t&&t.getTracks().forEach(function(t){return t.stop()})})},t.prototype.start=function(){var t=this;if(!this.isrecording)return this.clear(),this.initRecorder(),this.isrecording=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){t.audioInput=t.context.createMediaStreamSource(e),t.stream=e}).then(function(){t.audioInput.connect(t.analyser),t.analyser.connect(t.recorder),t.recorder.connect(t.context.destination)})},t.prototype.pause=function(){this.isrecording&&!this.ispause&&(this.ispause=!0,this.recorder.disconnect())},t.prototype.resume=function(){this.isrecording&&this.ispause&&(this.ispause=!1,this.audioInput&&this.audioInput.connect(this.analyser),this.analyser.connect(this.recorder),this.recorder.connect(this.context.destination))},t.prototype.stop=function(){this.isrecording=!1,this.audioInput&&this.audioInput.disconnect(),this.recorder.disconnect()},t.prototype.play=function(){this.stop(),this.source&&this.source.stop(),this.isplaying=!0,this.playTime=0,this.playAudioData()},t.prototype.getPlayTime=function(){var t=0;return(t=this.isplaying?this.context.currentTime-this.playStamp+this.playTime:this.playTime)>=this.totalPlayTime&&(t=this.totalPlayTime),t},t.prototype.pausePlay=function(){!this.isrecording&&this.isplaying&&(this.source&&this.source.disconnect(),this.playTime+=this.context.currentTime-this.playStamp,this.isplaying=!1)},t.prototype.resumePlay=function(){this.isrecording||this.isplaying||0===this.playTime||(this.isplaying=!0,this.playAudioData())},t.prototype.stopPlay=function(){this.isrecording||(this.playTime=0,this.isplaying=!1,this.source&&this.source.stop())},t.prototype.getWholeData=function(){return this.tempPCM},t.prototype.getNextData=function(){var t=this.tempPCM.length,e=this.tempPCM.slice(this.offset);return this.offset=t,e},t.prototype.playAudioData=function(){var e=this;this.context.decodeAudioData(this.getWAV().buffer,function(t){e.source=e.context.createBufferSource(),e.source.buffer=t,e.totalPlayTime=e.source.buffer.duration,e.source.connect(e.analyser),e.analyser.connect(e.context.destination),e.source.start(0,e.playTime),e.playStamp=e.context.currentTime},function(e){t.throwError(e)})},t.prototype.getRecordAnalyseData=function(){if(this.ispause)return this.prevDomainData;var t=new Uint8Array(this.analyser.frequencyBinCount);return this.analyser.getByteTimeDomainData(t),this.prevDomainData=t},t.prototype.getPlayAnalyseData=function(){return this.getRecordAnalyseData()},t.prototype.initUserMedia=function(){void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(t){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return e?new Promise(function(n,i){e.call(navigator,t,n,i)}):Promise.reject(new Error("浏览器不支持 getUserMedia !"))})},t.prototype.getPCM=function(){if(this.tempPCM.length){var e=new ArrayBuffer(this.tempPCM.length*this.tempPCM[0].byteLength),n=new DataView(e),i=0;this.tempPCM.forEach(function(t){for(var e=0,r=t.byteLength;ee?e:n,c=a,l=new ArrayBuffer(44+t.byteLength),u=new DataView(l),h=i,d=0;r(u,d,"RIFF"),d+=4,u.setUint32(d,36+t.byteLength,s),r(u,d+=4,"WAVE"),r(u,d+=4,"fmt "),d+=4,u.setUint32(d,16,s),d+=4,u.setUint16(d,1,s),d+=2,u.setUint16(d,h,s),d+=2,u.setUint32(d,o,s),d+=4,u.setUint32(d,h*o*(c/8),s),d+=4,u.setUint16(d,h*(c/8),s),d+=2,u.setUint16(d,c,s),r(u,d+=2,"data"),d+=4,u.setUint32(d,t.byteLength,s),d+=4;for(var p=0;p0&&e-1 in t)}S.fn=S.prototype={jquery:"3.6.1",constructor:S,length:0,toArray:function(){return o.call(this)},get:function(t){return null==t?o.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=S.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return S.each(this,t)},map:function(t){return this.pushStack(S.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(t,e){return(e+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(t,e){return e%2}))},eq:function(t){var e=this.length,n=+t+(t<0?e:0);return this.pushStack(n>=0&&n+~]|"+U+")"+U+"*"),W=new RegExp(U+"|>"),X=new RegExp(z),q=new RegExp("^"+F+"$"),$={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),TAG:new RegExp("^("+F+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+U+"*(even|odd|(([+-]|)(\\d*)n|)"+U+"*(?:([+-]|)"+U+"*(\\d+)|))"+U+"*\\)|)","i"),bool:new RegExp("^(?:"+k+")$","i"),needsContext:new RegExp("^"+U+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+U+"*((?:-\\d)?\\d*)"+U+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,K=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\[\\da-fA-F]{1,6}"+U+"?|\\\\([^\\r\\n\\f])","g"),nt=function(t,e){var n="0x"+t.slice(1)-65536;return e||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},it=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,rt=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},at=function(){d()},st=xt(function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{D.apply(L=O.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(t){D={apply:L.length?function(t,e){I.apply(t,O.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}function ot(t,e,i,r){var a,o,l,u,h,f,v,y=e&&e.ownerDocument,b=e?e.nodeType:9;if(i=i||[],"string"!=typeof t||!t||1!==b&&9!==b&&11!==b)return i;if(!r&&(d(e),e=e||p,m)){if(11!==b&&(h=Q.exec(t)))if(a=h[1]){if(9===b){if(!(l=e.getElementById(a)))return i;if(l.id===a)return i.push(l),i}else if(y&&(l=y.getElementById(a))&&_(e,l)&&l.id===a)return i.push(l),i}else{if(h[2])return D.apply(i,e.getElementsByTagName(t)),i;if((a=h[3])&&n.getElementsByClassName&&e.getElementsByClassName)return D.apply(i,e.getElementsByClassName(a)),i}if(n.qsa&&!A[t+" "]&&(!g||!g.test(t))&&(1!==b||"object"!==e.nodeName.toLowerCase())){if(v=t,y=e,1===b&&(W.test(t)||j.test(t))){for((y=tt.test(t)&&vt(e.parentNode)||e)===e&&n.scope||((u=e.getAttribute("id"))?u=u.replace(it,rt):e.setAttribute("id",u=x)),o=(f=s(t)).length;o--;)f[o]=(u?"#"+u:":scope")+" "+_t(f[o]);v=f.join(",")}try{return D.apply(i,y.querySelectorAll(v)),i}catch(e){A(t,!0)}finally{u===x&&e.removeAttribute("id")}}}return c(t.replace(V,"$1"),e,i,r)}function ct(){var t=[];return function e(n,r){return t.push(n+" ")>i.cacheLength&&delete e[t.shift()],e[n+" "]=r}}function lt(t){return t[x]=!0,t}function ut(t){var e=p.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ht(t,e){for(var n=t.split("|"),r=n.length;r--;)i.attrHandle[n[r]]=e}function dt(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function pt(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ft(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function mt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&st(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function gt(t){return lt(function(e){return e=+e,lt(function(n,i){for(var r,a=t([],n.length,e),s=a.length;s--;)n[r=a[s]]&&(n[r]=!(i[r]=n[r]))})})}function vt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in n=ot.support={},a=ot.isXML=function(t){var e=t&&t.namespaceURI,n=t&&(t.ownerDocument||t).documentElement;return!Y.test(e||n&&n.nodeName||"HTML")},d=ot.setDocument=function(t){var e,r,s=t?t.ownerDocument||t:b;return s!=p&&9===s.nodeType&&s.documentElement?(f=(p=s).documentElement,m=!a(p),b!=p&&(r=p.defaultView)&&r.top!==r&&(r.addEventListener?r.addEventListener("unload",at,!1):r.attachEvent&&r.attachEvent("onunload",at)),n.scope=ut(function(t){return f.appendChild(t).appendChild(p.createElement("div")),void 0!==t.querySelectorAll&&!t.querySelectorAll(":scope fieldset div").length}),n.attributes=ut(function(t){return t.className="i",!t.getAttribute("className")}),n.getElementsByTagName=ut(function(t){return t.appendChild(p.createComment("")),!t.getElementsByTagName("*").length}),n.getElementsByClassName=J.test(p.getElementsByClassName),n.getById=ut(function(t){return f.appendChild(t).id=x,!p.getElementsByName||!p.getElementsByName(x).length}),n.getById?(i.filter.ID=function(t){var e=t.replace(et,nt);return function(t){return t.getAttribute("id")===e}},i.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var n=e.getElementById(t);return n?[n]:[]}}):(i.filter.ID=function(t){var e=t.replace(et,nt);return function(t){var n=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}},i.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var n,i,r,a=e.getElementById(t);if(a){if((n=a.getAttributeNode("id"))&&n.value===t)return[a];for(r=e.getElementsByName(t),i=0;a=r[i++];)if((n=a.getAttributeNode("id"))&&n.value===t)return[a]}return[]}}),i.find.TAG=n.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):n.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],r=0,a=e.getElementsByTagName(t);if("*"===t){for(;n=a[r++];)1===n.nodeType&&i.push(n);return i}return a},i.find.CLASS=n.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&m)return e.getElementsByClassName(t)},v=[],g=[],(n.qsa=J.test(p.querySelectorAll))&&(ut(function(t){var e;f.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+U+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||g.push("\\["+U+"*(?:value|"+k+")"),t.querySelectorAll("[id~="+x+"-]").length||g.push("~="),(e=p.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||g.push("\\["+U+"*name"+U+"*="+U+"*(?:''|\"\")"),t.querySelectorAll(":checked").length||g.push(":checked"),t.querySelectorAll("a#"+x+"+*").length||g.push(".#.+[+~]"),t.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")}),ut(function(t){t.innerHTML="";var e=p.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&g.push("name"+U+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),f.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=J.test(y=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(t){n.disconnectedMatch=y.call(t,"*"),y.call(t,"[s!='']:x"),v.push("!=",z)}),g=g.length&&new RegExp(g.join("|")),v=v.length&&new RegExp(v.join("|")),e=J.test(f.compareDocumentPosition),_=e||J.test(f.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},C=e?function(t,e){if(t===e)return h=!0,0;var i=!t.compareDocumentPosition-!e.compareDocumentPosition;return i||(1&(i=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!n.sortDetached&&e.compareDocumentPosition(t)===i?t==p||t.ownerDocument==b&&_(b,t)?-1:e==p||e.ownerDocument==b&&_(b,e)?1:u?N(u,t)-N(u,e):0:4&i?-1:1)}:function(t,e){if(t===e)return h=!0,0;var n,i=0,r=t.parentNode,a=e.parentNode,s=[t],o=[e];if(!r||!a)return t==p?-1:e==p?1:r?-1:a?1:u?N(u,t)-N(u,e):0;if(r===a)return dt(t,e);for(n=t;n=n.parentNode;)s.unshift(n);for(n=e;n=n.parentNode;)o.unshift(n);for(;s[i]===o[i];)i++;return i?dt(s[i],o[i]):s[i]==b?-1:o[i]==b?1:0},p):p},ot.matches=function(t,e){return ot(t,null,null,e)},ot.matchesSelector=function(t,e){if(d(t),n.matchesSelector&&m&&!A[e+" "]&&(!v||!v.test(e))&&(!g||!g.test(e)))try{var i=y.call(t,e);if(i||n.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(t){A(e,!0)}return ot(e,p,null,[t]).length>0},ot.contains=function(t,e){return(t.ownerDocument||t)!=p&&d(t),_(t,e)},ot.attr=function(t,e){(t.ownerDocument||t)!=p&&d(t);var r=i.attrHandle[e.toLowerCase()],a=r&&R.call(i.attrHandle,e.toLowerCase())?r(t,e,!m):void 0;return void 0!==a?a:n.attributes||!m?t.getAttribute(e):(a=t.getAttributeNode(e))&&a.specified?a.value:null},ot.escape=function(t){return(t+"").replace(it,rt)},ot.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},ot.uniqueSort=function(t){var e,i=[],r=0,a=0;if(h=!n.detectDuplicates,u=!n.sortStable&&t.slice(0),t.sort(C),h){for(;e=t[a++];)e===t[a]&&(r=i.push(a));for(;r--;)t.splice(i[r],1)}return u=null,t},r=ot.getText=function(t){var e,n="",i=0,a=t.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=r(t)}else if(3===a||4===a)return t.nodeValue}else for(;e=t[i++];)n+=r(e);return n},(i=ot.selectors={cacheLength:50,createPseudo:lt,match:$,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,nt),t[3]=(t[3]||t[4]||t[5]||"").replace(et,nt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||ot.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&ot.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return $.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&X.test(n)&&(e=s(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,nt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=T[t+" "];return e||(e=new RegExp("(^|"+U+")"+t+"("+U+"|$)"))&&T(t,function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,e,n){return function(i){var r=ot.attr(i,t);return null==r?"!="===e:!e||(r+="","="===e?r===n:"!="===e?r!==n:"^="===e?n&&0===r.indexOf(n):"*="===e?n&&r.indexOf(n)>-1:"$="===e?n&&r.slice(-n.length)===n:"~="===e?(" "+r.replace(H," ")+" ").indexOf(n)>-1:"|="===e&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,n,i,r){var a="nth"!==t.slice(0,3),s="last"!==t.slice(-4),o="of-type"===e;return 1===i&&0===r?function(t){return!!t.parentNode}:function(e,n,c){var l,u,h,d,p,f,m=a!==s?"nextSibling":"previousSibling",g=e.parentNode,v=o&&e.nodeName.toLowerCase(),y=!c&&!o,_=!1;if(g){if(a){for(;m;){for(d=e;d=d[m];)if(o?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;f=m="only"===t&&!f&&"nextSibling"}return!0}if(f=[s?g.firstChild:g.lastChild],s&&y){for(_=(p=(l=(u=(h=(d=g)[x]||(d[x]={}))[d.uniqueID]||(h[d.uniqueID]={}))[t]||[])[0]===w&&l[1])&&l[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(_=p=0)||f.pop();)if(1===d.nodeType&&++_&&d===e){u[t]=[w,p,_];break}}else if(y&&(_=p=(l=(u=(h=(d=e)[x]||(d[x]={}))[d.uniqueID]||(h[d.uniqueID]={}))[t]||[])[0]===w&&l[1]),!1===_)for(;(d=++p&&d&&d[m]||(_=p=0)||f.pop())&&((o?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++_||(y&&((u=(h=d[x]||(d[x]={}))[d.uniqueID]||(h[d.uniqueID]={}))[t]=[w,_]),d!==e)););return(_-=r)===i||_%i==0&&_/i>=0}}},PSEUDO:function(t,e){var n,r=i.pseudos[t]||i.setFilters[t.toLowerCase()]||ot.error("unsupported pseudo: "+t);return r[x]?r(e):r.length>1?(n=[t,t,"",e],i.setFilters.hasOwnProperty(t.toLowerCase())?lt(function(t,n){for(var i,a=r(t,e),s=a.length;s--;)t[i=N(t,a[s])]=!(n[i]=a[s])}):function(t){return r(t,0,n)}):r}},pseudos:{not:lt(function(t){var e=[],n=[],i=o(t.replace(V,"$1"));return i[x]?lt(function(t,e,n,r){for(var a,s=i(t,null,r,[]),o=t.length;o--;)(a=s[o])&&(t[o]=!(e[o]=a))}):function(t,r,a){return e[0]=t,i(e,null,a,n),e[0]=null,!n.pop()}}),has:lt(function(t){return function(e){return ot(t,e).length>0}}),contains:lt(function(t){return t=t.replace(et,nt),function(e){return(e.textContent||r(e)).indexOf(t)>-1}}),lang:lt(function(t){return q.test(t||"")||ot.error("unsupported lang: "+t),t=t.replace(et,nt).toLowerCase(),function(e){var n;do{if(n=m?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(n=n.toLowerCase())===t||0===n.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===f},focus:function(t){return t===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:mt(!1),disabled:mt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!i.pseudos.empty(t)},header:function(t){return Z.test(t.nodeName)},input:function(t){return K.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:gt(function(){return[0]}),last:gt(function(t,e){return[e-1]}),eq:gt(function(t,e,n){return[n<0?n+e:n]}),even:gt(function(t,e){for(var n=0;ne?e:n;--i>=0;)t.push(i);return t}),gt:gt(function(t,e,n){for(var i=n<0?n+e:n;++i1?function(e,n,i){for(var r=t.length;r--;)if(!t[r](e,n,i))return!1;return!0}:t[0]}function wt(t,e,n,i,r){for(var a,s=[],o=0,c=t.length,l=null!=e;o-1&&(a[l]=!(s[l]=h))}}else v=wt(v===s?v.splice(f,v.length):v),r?r(null,s,v,c):D.apply(s,v)})}function Tt(t){for(var e,n,r,a=t.length,s=i.relative[t[0].type],o=s||i.relative[" "],c=s?1:0,u=xt(function(t){return t===e},o,!0),h=xt(function(t){return N(e,t)>-1},o,!0),d=[function(t,n,i){var r=!s&&(i||n!==l)||((e=n).nodeType?u(t,n,i):h(t,n,i));return e=null,r}];c1&&bt(d),c>1&&_t(t.slice(0,c-1).concat({value:" "===t[c-2].type?"*":""})).replace(V,"$1"),n,c0,r=t.length>0,a=function(a,s,o,c,u){var h,f,g,v=0,y="0",_=a&&[],x=[],b=l,S=a||r&&i.find.TAG("*",u),T=w+=null==b?1:Math.random()||.1,M=S.length;for(u&&(l=s==p||s||u);y!==M&&null!=(h=S[y]);y++){if(r&&h){for(f=0,s||h.ownerDocument==p||(d(h),o=!m);g=t[f++];)if(g(h,s||p,o)){c.push(h);break}u&&(w=T)}n&&((h=!g&&h)&&v--,a&&_.push(h))}if(v+=y,n&&y!==v){for(f=0;g=e[f++];)g(_,x,s,o);if(a){if(v>0)for(;y--;)_[y]||x[y]||(x[y]=P.call(c));x=wt(x)}D.apply(c,x),u&&!a&&x.length>0&&v+e.length>1&&ot.uniqueSort(c)}return u&&(w=T,l=b),_};return n?lt(a):a}(a,r))).selector=t}return o},c=ot.select=function(t,e,n,r){var a,c,l,u,h,d="function"==typeof t&&t,p=!r&&s(t=d.selector||t);if(n=n||[],1===p.length){if((c=p[0]=p[0].slice(0)).length>2&&"ID"===(l=c[0]).type&&9===e.nodeType&&m&&i.relative[c[1].type]){if(!(e=(i.find.ID(l.matches[0].replace(et,nt),e)||[])[0]))return n;d&&(e=e.parentNode),t=t.slice(c.shift().value.length)}for(a=$.needsContext.test(t)?0:c.length;a--&&(l=c[a],!i.relative[u=l.type]);)if((h=i.find[u])&&(r=h(l.matches[0].replace(et,nt),tt.test(c[0].type)&&vt(e.parentNode)||e))){if(c.splice(a,1),!(t=r.length&&_t(c)))return D.apply(n,r),n;break}}return(d||o(t,p))(r,e,!m,n,!e||tt.test(t)&&vt(e.parentNode)||e),n},n.sortStable=x.split("").sort(C).join("")===x,n.detectDuplicates=!!h,d(),n.sortDetached=ut(function(t){return 1&t.compareDocumentPosition(p.createElement("fieldset"))}),ut(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||ht("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),n.attributes&&ut(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||ht("value",function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),ut(function(t){return null==t.getAttribute("disabled")})||ht(k,function(t,e,n){var i;if(!n)return!0===t[e]?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),ot}(n);S.find=M,S.expr=M.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=M.uniqueSort,S.text=M.getText,S.isXMLDoc=M.isXML,S.contains=M.contains,S.escapeSelector=M.escape;var E=function(t,e,n){for(var i=[],r=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&S(t).is(n))break;i.push(t)}return i},A=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},C=S.expr.match.needsContext;function R(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var L=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function P(t,e,n){return v(e)?S.grep(t,function(t,i){return!!e.call(t,i,t)!==n}):e.nodeType?S.grep(t,function(t){return t===e!==n}):"string"!=typeof e?S.grep(t,function(t){return u.call(e,t)>-1!==n}):S.filter(e,t,n)}S.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?S.find.matchesSelector(i,t)?[i]:[]:S.find.matches(t,S.grep(e,function(t){return 1===t.nodeType}))},S.fn.extend({find:function(t){var e,n,i=this.length,r=this;if("string"!=typeof t)return this.pushStack(S(t).filter(function(){for(e=0;e1?S.uniqueSort(n):n},filter:function(t){return this.pushStack(P(this,t||[],!1))},not:function(t){return this.pushStack(P(this,t||[],!0))},is:function(t){return!!P(this,"string"==typeof t&&C.test(t)?S(t):t||[],!1).length}});var I,D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(t,e,n){var i,r;if(!t)return this;if(n=n||I,"string"==typeof t){if(!(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:D.exec(t))||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof S?e[0]:e,S.merge(this,S.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:_,!0)),L.test(i[1])&&S.isPlainObject(e))for(i in e)v(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return(r=_.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):v(t)?void 0!==n.ready?n.ready(t):t(S):S.makeArray(t,this)}).prototype=S.fn,I=S(_);var O=/^(?:parents|prev(?:Until|All))/,N={children:!0,contents:!0,next:!0,prev:!0};function k(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}S.fn.extend({has:function(t){var e=S(t,this),n=e.length;return this.filter(function(){for(var t=0;t-1:1===n.nodeType&&S.find.matchesSelector(n,t))){a.push(n);break}return this.pushStack(a.length>1?S.uniqueSort(a):a)},index:function(t){return t?"string"==typeof t?u.call(S(t),this[0]):u.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),S.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return E(t,"parentNode")},parentsUntil:function(t,e,n){return E(t,"parentNode",n)},next:function(t){return k(t,"nextSibling")},prev:function(t){return k(t,"previousSibling")},nextAll:function(t){return E(t,"nextSibling")},prevAll:function(t){return E(t,"previousSibling")},nextUntil:function(t,e,n){return E(t,"nextSibling",n)},prevUntil:function(t,e,n){return E(t,"previousSibling",n)},siblings:function(t){return A((t.parentNode||{}).firstChild,t)},children:function(t){return A(t.firstChild)},contents:function(t){return null!=t.contentDocument&&s(t.contentDocument)?t.contentDocument:(R(t,"template")&&(t=t.content||t),S.merge([],t.childNodes))}},function(t,e){S.fn[t]=function(n,i){var r=S.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=S.filter(i,r)),this.length>1&&(N[t]||S.uniqueSort(r),O.test(t)&&r.reverse()),this.pushStack(r)}});var U=/[^\x20\t\r\n\f]+/g;function F(t){return t}function B(t){throw t}function z(t,e,n,i){var r;try{t&&v(r=t.promise)?r.call(t).done(e).fail(n):t&&v(r=t.then)?r.call(t,e,n):e.apply(void 0,[t].slice(i))}catch(t){n.apply(void 0,[t])}}S.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return S.each(t.match(U)||[],function(t,n){e[n]=!0}),e}(t):S.extend({},t);var e,n,i,r,a=[],s=[],o=-1,c=function(){for(r=r||t.once,i=e=!0;s.length;o=-1)for(n=s.shift();++o-1;)a.splice(n,1),n<=o&&o--}),this},has:function(t){return t?S.inArray(t,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return r=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return r=s=[],n||e||(a=n=""),this},locked:function(){return!!r},fireWith:function(t,n){return r||(n=[t,(n=n||[]).slice?n.slice():n],s.push(n),e||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!i}};return l},S.extend({Deferred:function(t){var e=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",r={state:function(){return i},always:function(){return a.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var t=arguments;return S.Deferred(function(n){S.each(e,function(e,i){var r=v(t[i[4]])&&t[i[4]];a[i[1]](function(){var t=r&&r.apply(this,arguments);t&&v(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[t]:arguments)})}),t=null}).promise()},then:function(t,i,r){var a=0;function s(t,e,i,r){return function(){var o=this,c=arguments,l=function(){var n,l;if(!(t=a&&(i!==B&&(o=void 0,c=[n]),e.rejectWith(o,c))}};t?u():(S.Deferred.getStackHook&&(u.stackTrace=S.Deferred.getStackHook()),n.setTimeout(u))}}return S.Deferred(function(n){e[0][3].add(s(0,n,v(r)?r:F,n.notifyWith)),e[1][3].add(s(0,n,v(t)?t:F)),e[2][3].add(s(0,n,v(i)?i:B))}).promise()},promise:function(t){return null!=t?S.extend(t,r):r}},a={};return S.each(e,function(t,n){var s=n[2],o=n[5];r[n[1]]=s.add,o&&s.add(function(){i=o},e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),s.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=s.fireWith}),r.promise(a),t&&t.call(a,a),a},when:function(t){var e=arguments.length,n=e,i=Array(n),r=o.call(arguments),a=S.Deferred(),s=function(t){return function(n){i[t]=this,r[t]=arguments.length>1?o.call(arguments):n,--e||a.resolveWith(i,r)}};if(e<=1&&(z(t,a.done(s(n)).resolve,a.reject,!e),"pending"===a.state()||v(r[n]&&r[n].then)))return a.then();for(;n--;)z(r[n],s(n),a.reject);return a.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(t,e){n.console&&n.console.warn&&t&&H.test(t.name)&&n.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},S.readyException=function(t){n.setTimeout(function(){throw t})};var V=S.Deferred();function G(){_.removeEventListener("DOMContentLoaded",G),n.removeEventListener("load",G),S.ready()}S.fn.ready=function(t){return V.then(t).catch(function(t){S.readyException(t)}),this},S.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--S.readyWait:S.isReady)||(S.isReady=!0,!0!==t&&--S.readyWait>0||V.resolveWith(_,[S]))}}),S.ready.then=V.then,"complete"===_.readyState||"loading"!==_.readyState&&!_.documentElement.doScroll?n.setTimeout(S.ready):(_.addEventListener("DOMContentLoaded",G),n.addEventListener("load",G));var j=function(t,e,n,i,r,a,s){var o=0,c=t.length,l=null==n;if("object"===w(n))for(o in r=!0,n)j(t,e,o,n[o],!0,a,s);else if(void 0!==i&&(r=!0,v(i)||(s=!0),l&&(s?(e.call(t,i),e=null):(l=e,e=function(t,e,n){return l.call(S(t),n)})),e))for(;o1,null,!0)},removeData:function(t){return this.each(function(){J.remove(this,t)})}}),S.extend({queue:function(t,e,n){var i;if(t)return e=(e||"fx")+"queue",i=Z.get(t,e),n&&(!i||Array.isArray(n)?i=Z.access(t,e,S.makeArray(n)):i.push(n)),i||[]},dequeue:function(t,e){e=e||"fx";var n=S.queue(t,e),i=n.length,r=n.shift(),a=S._queueHooks(t,e);"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===e&&n.unshift("inprogress"),delete a.stop,r.call(t,function(){S.dequeue(t,e)},a)),!i&&a&&a.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Z.get(t,n)||Z.access(t,n,{empty:S.Callbacks("once memory").add(function(){Z.remove(t,[e+"queue",n])})})}}),S.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]*)/i,vt=/^$|^module$|\/(?:java|ecma)script/i;pt=_.createDocumentFragment().appendChild(_.createElement("div")),(ft=_.createElement("input")).setAttribute("type","radio"),ft.setAttribute("checked","checked"),ft.setAttribute("name","t"),pt.appendChild(ft),g.checkClone=pt.cloneNode(!0).cloneNode(!0).lastChild.checked,pt.innerHTML="",g.noCloneChecked=!!pt.cloneNode(!0).lastChild.defaultValue,pt.innerHTML="",g.option=!!pt.lastChild;var yt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function _t(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&R(t,e)?S.merge([t],n):n}function xt(t,e){for(var n=0,i=t.length;n",""]);var bt=/<|&#?\w+;/;function wt(t,e,n,i,r){for(var a,s,o,c,l,u,h=e.createDocumentFragment(),d=[],p=0,f=t.length;p-1)r&&r.push(a);else if(l=st(a),s=_t(h.appendChild(a),"script"),l&&xt(s),n)for(u=0;a=s[u++];)vt.test(a.type||"")&&n.push(a);return h}var St=/^([^.]*)(?:\.(.+)|)/;function Tt(){return!0}function Mt(){return!1}function Et(t,e){return t===function(){try{return _.activeElement}catch(t){}}()==("focus"===e)}function At(t,e,n,i,r,a){var s,o;if("object"==typeof e){for(o in"string"!=typeof n&&(i=i||n,n=void 0),e)At(t,o,n,i,e[o],a);return t}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=Mt;else if(!r)return t;return 1===a&&(s=r,(r=function(t){return S().off(t),s.apply(this,arguments)}).guid=s.guid||(s.guid=S.guid++)),t.each(function(){S.event.add(this,e,r,i,n)})}function Ct(t,e,n){n?(Z.set(t,e,!1),S.event.add(t,e,{namespace:!1,handler:function(t){var i,r,a=Z.get(this,e);if(1&t.isTrigger&&this[e]){if(a.length)(S.event.special[e]||{}).delegateType&&t.stopPropagation();else if(a=o.call(arguments),Z.set(this,e,a),i=n(this,e),this[e](),a!==(r=Z.get(this,e))||i?Z.set(this,e,!1):r={},a!==r)return t.stopImmediatePropagation(),t.preventDefault(),r&&r.value}else a.length&&(Z.set(this,e,{value:S.event.trigger(S.extend(a[0],S.Event.prototype),a.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Z.get(t,e)&&S.event.add(t,e,Tt)}S.event={global:{},add:function(t,e,n,i,r){var a,s,o,c,l,u,h,d,p,f,m,g=Z.get(t);if(Y(t))for(n.handler&&(n=(a=n).handler,r=a.selector),r&&S.find.matchesSelector(at,r),n.guid||(n.guid=S.guid++),(c=g.events)||(c=g.events=Object.create(null)),(s=g.handle)||(s=g.handle=function(e){return void 0!==S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(U)||[""]).length;l--;)p=m=(o=St.exec(e[l])||[])[1],f=(o[2]||"").split(".").sort(),p&&(h=S.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,h=S.event.special[p]||{},u=S.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&S.expr.match.needsContext.test(r),namespace:f.join(".")},a),(d=c[p])||((d=c[p]=[]).delegateCount=0,h.setup&&!1!==h.setup.call(t,i,f,s)||t.addEventListener&&t.addEventListener(p,s)),h.add&&(h.add.call(t,u),u.handler.guid||(u.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,u):d.push(u),S.event.global[p]=!0)},remove:function(t,e,n,i,r){var a,s,o,c,l,u,h,d,p,f,m,g=Z.hasData(t)&&Z.get(t);if(g&&(c=g.events)){for(l=(e=(e||"").match(U)||[""]).length;l--;)if(p=m=(o=St.exec(e[l])||[])[1],f=(o[2]||"").split(".").sort(),p){for(h=S.event.special[p]||{},d=c[p=(i?h.delegateType:h.bindType)||p]||[],o=o[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=a=d.length;a--;)u=d[a],!r&&m!==u.origType||n&&n.guid!==u.guid||o&&!o.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(d.splice(a,1),u.selector&&d.delegateCount--,h.remove&&h.remove.call(t,u));s&&!d.length&&(h.teardown&&!1!==h.teardown.call(t,f,g.handle)||S.removeEvent(t,p,g.handle),delete c[p])}else for(p in c)S.event.remove(t,p+e[l],n,i,!0);S.isEmptyObject(c)&&Z.remove(t,"handle events")}},dispatch:function(t){var e,n,i,r,a,s,o=new Array(arguments.length),c=S.event.fix(t),l=(Z.get(this,"events")||Object.create(null))[c.type]||[],u=S.event.special[c.type]||{};for(o[0]=c,e=1;e=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==t.type||!0!==l.disabled)){for(a=[],s={},n=0;n-1:S.find(r,this,null,[l]).length),s[r]&&a.push(i);a.length&&o.push({elem:l,handlers:a})}return l=this,c\s*$/g;function It(t,e){return R(t,"table")&&R(11!==e.nodeType?e:e.firstChild,"tr")&&S(t).children("tbody")[0]||t}function Dt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Ot(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function Nt(t,e){var n,i,r,a,s,o;if(1===e.nodeType){if(Z.hasData(t)&&(o=Z.get(t).events))for(r in Z.remove(e,"handle events"),o)for(n=0,i=o[r].length;n1&&"string"==typeof f&&!g.checkClone&&Lt.test(f))return t.each(function(r){var a=t.eq(r);m&&(e[0]=f.call(this,r,a.html())),kt(a,e,n,i)});if(d&&(a=(r=wt(e,t[0].ownerDocument,!1,t,i)).firstChild,1===r.childNodes.length&&(r=a),a||i)){for(o=(s=S.map(_t(r,"script"),Dt)).length;h0&&xt(s,!h&&_t(t,"script")),u},cleanData:function(t){for(var e,n,i,r=S.event.special,a=0;void 0!==(n=t[a]);a++)if(Y(n)){if(e=n[Z.expando]){if(e.events)for(i in e.events)r[i]?S.event.remove(n,i):S.removeEvent(n,i,e.handle);n[Z.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),S.fn.extend({detach:function(t){return Ut(this,t,!0)},remove:function(t){return Ut(this,t)},text:function(t){return j(this,function(t){return void 0===t?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return kt(this,arguments,function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||It(this,t).appendChild(t)})},prepend:function(){return kt(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=It(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return kt(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return kt(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(S.cleanData(_t(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return S.clone(this,t,e)})},html:function(t){return j(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Rt.test(t)&&!yt[(gt.exec(t)||["",""])[1].toLowerCase()]){t=S.htmlPrefilter(t);try{for(;n=0&&(c+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-a-c-o-.5))||0),c}function ee(t,e,n){var i=zt(t),r=(!g.boxSizingReliable()||n)&&"border-box"===S.css(t,"boxSizing",!1,i),a=r,s=jt(t,e,i),o="offset"+e[0].toUpperCase()+e.slice(1);if(Ft.test(s)){if(!n)return s;s="auto"}return(!g.boxSizingReliable()&&r||!g.reliableTrDimensions()&&R(t,"tr")||"auto"===s||!parseFloat(s)&&"inline"===S.css(t,"display",!1,i))&&t.getClientRects().length&&(r="border-box"===S.css(t,"boxSizing",!1,i),(a=o in t)&&(s=t[o])),(s=parseFloat(s)||0)+te(t,e,n||(r?"border":"content"),a,i,s)+"px"}function ne(t,e,n,i,r){return new ne.prototype.init(t,e,n,i,r)}S.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=jt(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,a,s,o=$(e),c=Bt.test(e),l=t.style;if(c||(e=Yt(o)),s=S.cssHooks[e]||S.cssHooks[o],void 0===n)return s&&"get"in s&&void 0!==(r=s.get(t,!1,i))?r:l[e];"string"===(a=typeof n)&&(r=it.exec(n))&&r[1]&&(n=lt(t,e,r),a="number"),null!=n&&n==n&&("number"!==a||c||(n+=r&&r[3]||(S.cssNumber[o]?"":"px")),g.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),s&&"set"in s&&void 0===(n=s.set(t,n,i))||(c?l.setProperty(e,n):l[e]=n))}},css:function(t,e,n,i){var r,a,s,o=$(e);return Bt.test(e)||(e=Yt(o)),(s=S.cssHooks[e]||S.cssHooks[o])&&"get"in s&&(r=s.get(t,!0,n)),void 0===r&&(r=jt(t,e,i)),"normal"===r&&e in Jt&&(r=Jt[e]),""===n||n?(a=parseFloat(r),!0===n||isFinite(a)?a||0:r):r}}),S.each(["height","width"],function(t,e){S.cssHooks[e]={get:function(t,n,i){if(n)return!Kt.test(S.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?ee(t,e,i):Ht(t,Zt,function(){return ee(t,e,i)})},set:function(t,n,i){var r,a=zt(t),s=!g.scrollboxSize()&&"absolute"===a.position,o=(s||i)&&"border-box"===S.css(t,"boxSizing",!1,a),c=i?te(t,e,i,o,a):0;return o&&s&&(c-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(a[e])-te(t,e,"border",!1,a)-.5)),c&&(r=it.exec(n))&&"px"!==(r[3]||"px")&&(t.style[e]=n,n=S.css(t,e)),Qt(0,n,c)}}}),S.cssHooks.marginLeft=Wt(g.reliableMarginLeft,function(t,e){if(e)return(parseFloat(jt(t,"marginLeft"))||t.getBoundingClientRect().left-Ht(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(t,e){S.cssHooks[t+e]={expand:function(n){for(var i=0,r={},a="string"==typeof n?n.split(" "):[n];i<4;i++)r[t+rt[i]+e]=a[i]||a[i-2]||a[0];return r}},"margin"!==t&&(S.cssHooks[t+e].set=Qt)}),S.fn.extend({css:function(t,e){return j(this,function(t,e,n){var i,r,a={},s=0;if(Array.isArray(e)){for(i=zt(t),r=e.length;s1)}}),S.Tween=ne,ne.prototype={constructor:ne,init:function(t,e,n,i,r,a){this.elem=t,this.prop=n,this.easing=r||S.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=a||(S.cssNumber[n]?"":"px")},cur:function(){var t=ne.propHooks[this.prop];return t&&t.get?t.get(this):ne.propHooks._default.get(this)},run:function(t){var e,n=ne.propHooks[this.prop];return this.options.duration?this.pos=e=S.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ne.propHooks._default.set(this),this}},ne.prototype.init.prototype=ne.prototype,ne.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=S.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){S.fx.step[t.prop]?S.fx.step[t.prop](t):1!==t.elem.nodeType||!S.cssHooks[t.prop]&&null==t.elem.style[Yt(t.prop)]?t.elem[t.prop]=t.now:S.style(t.elem,t.prop,t.now+t.unit)}}},ne.propHooks.scrollTop=ne.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},S.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},S.fx=ne.prototype.init,S.fx.step={};var ie,re,ae=/^(?:toggle|show|hide)$/,se=/queueHooks$/;function oe(){re&&(!1===_.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(oe):n.setTimeout(oe,S.fx.interval),S.fx.tick())}function ce(){return n.setTimeout(function(){ie=void 0}),ie=Date.now()}function le(t,e){var n,i=0,r={height:t};for(e=e?1:0;i<4;i+=2-e)r["margin"+(n=rt[i])]=r["padding"+n]=t;return e&&(r.opacity=r.width=t),r}function ue(t,e,n){for(var i,r=(he.tweeners[e]||[]).concat(he.tweeners["*"]),a=0,s=r.length;a1)},removeAttr:function(t){return this.each(function(){S.removeAttr(this,t)})}}),S.extend({attr:function(t,e,n){var i,r,a=t.nodeType;if(3!==a&&8!==a&&2!==a)return void 0===t.getAttribute?S.prop(t,e,n):(1===a&&S.isXMLDoc(t)||(r=S.attrHooks[e.toLowerCase()]||(S.expr.match.bool.test(e)?de:void 0)),void 0!==n?null===n?void S.removeAttr(t,e):r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:(t.setAttribute(e,n+""),n):r&&"get"in r&&null!==(i=r.get(t,e))?i:null==(i=S.find.attr(t,e))?void 0:i)},attrHooks:{type:{set:function(t,e){if(!g.radioValue&&"radio"===e&&R(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i=0,r=e&&e.match(U);if(r&&1===t.nodeType)for(;n=r[i++];)t.removeAttribute(n)}}),de={set:function(t,e,n){return!1===e?S.removeAttr(t,n):t.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(t,e){var n=pe[e]||S.find.attr;pe[e]=function(t,e,i){var r,a,s=e.toLowerCase();return i||(a=pe[s],pe[s]=r,r=null!=n(t,e,i)?s:null,pe[s]=a),r}});var fe=/^(?:input|select|textarea|button)$/i,me=/^(?:a|area)$/i;function ge(t){return(t.match(U)||[]).join(" ")}function ve(t){return t.getAttribute&&t.getAttribute("class")||""}function ye(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(U)||[]}S.fn.extend({prop:function(t,e){return j(this,S.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[S.propFix[t]||t]})}}),S.extend({prop:function(t,e,n){var i,r,a=t.nodeType;if(3!==a&&8!==a&&2!==a)return 1===a&&S.isXMLDoc(t)||(e=S.propFix[e]||e,r=S.propHooks[e]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:t[e]=n:r&&"get"in r&&null!==(i=r.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=S.find.attr(t,"tabindex");return e?parseInt(e,10):fe.test(t.nodeName)||me.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(S.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,i,r,a,s;return v(t)?this.each(function(e){S(this).addClass(t.call(this,e,ve(this)))}):(e=ye(t)).length?this.each(function(){if(i=ve(this),n=1===this.nodeType&&" "+ge(i)+" "){for(a=0;a-1;)n=n.replace(" "+r+" "," ");s=ge(n),i!==s&&this.setAttribute("class",s)}}):this:this.attr("class","")},toggleClass:function(t,e){var n,i,r,a,s=typeof t,o="string"===s||Array.isArray(t);return v(t)?this.each(function(n){S(this).toggleClass(t.call(this,n,ve(this),e),e)}):"boolean"==typeof e&&o?e?this.addClass(t):this.removeClass(t):(n=ye(t),this.each(function(){if(o)for(a=S(this),r=0;r-1)return!0;return!1}});var _e=/\r/g;S.fn.extend({val:function(t){var e,n,i,r=this[0];return arguments.length?(i=v(t),this.each(function(n){var r;1===this.nodeType&&(null==(r=i?t.call(this,n,S(this).val()):t)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=S.map(r,function(t){return null==t?"":t+""})),(e=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))})):r?(e=S.valHooks[r.type]||S.valHooks[r.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(_e,""):null==n?"":n:void 0}}),S.extend({valHooks:{option:{get:function(t){var e=S.find.attr(t,"value");return null!=e?e:ge(S.text(t))}},select:{get:function(t){var e,n,i,r=t.options,a=t.selectedIndex,s="select-one"===t.type,o=s?null:[],c=s?a+1:r.length;for(i=a<0?c:s?a:0;i-1)&&(n=!0);return n||(t.selectedIndex=-1),a}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=S.inArray(S(t).val(),e)>-1}},g.checkOn||(S.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),g.focusin="onfocusin"in n;var xe=/^(?:focusinfocus|focusoutblur)$/,be=function(t){t.stopPropagation()};S.extend(S.event,{trigger:function(t,e,i,r){var a,s,o,c,l,u,h,d,f=[i||_],m=p.call(t,"type")?t.type:t,g=p.call(t,"namespace")?t.namespace.split("."):[];if(s=d=o=i=i||_,3!==i.nodeType&&8!==i.nodeType&&!xe.test(m+S.event.triggered)&&(m.indexOf(".")>-1&&(m=(g=m.split(".")).shift(),g.sort()),l=m.indexOf(":")<0&&"on"+m,(t=t[S.expando]?t:new S.Event(m,"object"==typeof t&&t)).isTrigger=r?2:3,t.namespace=g.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),e=null==e?[t]:S.makeArray(e,[t]),h=S.event.special[m]||{},r||!h.trigger||!1!==h.trigger.apply(i,e))){if(!r&&!h.noBubble&&!y(i)){for(c=h.delegateType||m,xe.test(c+m)||(s=s.parentNode);s;s=s.parentNode)f.push(s),o=s;o===(i.ownerDocument||_)&&f.push(o.defaultView||o.parentWindow||n)}for(a=0;(s=f[a++])&&!t.isPropagationStopped();)d=s,t.type=a>1?c:h.bindType||m,(u=(Z.get(s,"events")||Object.create(null))[t.type]&&Z.get(s,"handle"))&&u.apply(s,e),(u=l&&s[l])&&u.apply&&Y(s)&&(t.result=u.apply(s,e),!1===t.result&&t.preventDefault());return t.type=m,r||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(f.pop(),e)||!Y(i)||l&&v(i[m])&&!y(i)&&((o=i[l])&&(i[l]=null),S.event.triggered=m,t.isPropagationStopped()&&d.addEventListener(m,be),i[m](),t.isPropagationStopped()&&d.removeEventListener(m,be),S.event.triggered=void 0,o&&(i[l]=o)),t.result}},simulate:function(t,e,n){var i=S.extend(new S.Event,n,{type:t,isSimulated:!0});S.event.trigger(i,null,e)}}),S.fn.extend({trigger:function(t,e){return this.each(function(){S.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];if(n)return S.event.trigger(t,e,n,!0)}}),g.focusin||S.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){S.event.simulate(e,t.target,S.event.fix(t))};S.event.special[e]={setup:function(){var i=this.ownerDocument||this.document||this,r=Z.access(i,e);r||i.addEventListener(t,n,!0),Z.access(i,e,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this.document||this,r=Z.access(i,e)-1;r?Z.access(i,e,r):(i.removeEventListener(t,n,!0),Z.remove(i,e))}}});var we=n.location,Se={guid:Date.now()},Te=/\?/;S.parseXML=function(t){var e,i;if(!t||"string"!=typeof t)return null;try{e=(new n.DOMParser).parseFromString(t,"text/xml")}catch(t){}return i=e&&e.getElementsByTagName("parsererror")[0],e&&!i||S.error("Invalid XML: "+(i?S.map(i.childNodes,function(t){return t.textContent}).join("\n"):t)),e};var Me=/\[\]$/,Ee=/\r?\n/g,Ae=/^(?:submit|button|image|reset|file)$/i,Ce=/^(?:input|select|textarea|keygen)/i;function Re(t,e,n,i){var r;if(Array.isArray(e))S.each(e,function(e,r){n||Me.test(t)?i(t,r):Re(t+"["+("object"==typeof r&&null!=r?e:"")+"]",r,n,i)});else if(n||"object"!==w(e))i(t,e);else for(r in e)Re(t+"["+r+"]",e[r],n,i)}S.param=function(t,e){var n,i=[],r=function(t,e){var n=v(e)?e():e;i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!S.isPlainObject(t))S.each(t,function(){r(this.name,this.value)});else for(n in t)Re(n,t[n],e,r);return i.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=S.prop(this,"elements");return t?S.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!S(this).is(":disabled")&&Ce.test(this.nodeName)&&!Ae.test(t)&&(this.checked||!mt.test(t))}).map(function(t,e){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(t){return{name:e.name,value:t.replace(Ee,"\r\n")}}):{name:e.name,value:n.replace(Ee,"\r\n")}}).get()}});var Le=/%20/g,Pe=/#.*$/,Ie=/([?&])_=[^&]*/,De=/^(.*?):[ \t]*([^\r\n]*)$/gm,Oe=/^(?:GET|HEAD)$/,Ne=/^\/\//,ke={},Ue={},Fe="*/".concat("*"),Be=_.createElement("a");function ze(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,r=0,a=e.toLowerCase().match(U)||[];if(v(n))for(;i=a[r++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function He(t,e,n,i){var r={},a=t===Ue;function s(o){var c;return r[o]=!0,S.each(t[o]||[],function(t,o){var l=o(e,n,i);return"string"!=typeof l||a||r[l]?a?!(c=l):void 0:(e.dataTypes.unshift(l),s(l),!1)}),c}return s(e.dataTypes[0])||!r["*"]&&s("*")}function Ve(t,e){var n,i,r=S.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((r[n]?t:i||(i={}))[n]=e[n]);return i&&S.extend(!0,t,i),t}Be.href=we.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:we.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(we.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Fe,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ve(Ve(t,S.ajaxSettings),e):Ve(S.ajaxSettings,t)},ajaxPrefilter:ze(ke),ajaxTransport:ze(Ue),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var i,r,a,s,o,c,l,u,h,d,p=S.ajaxSetup({},e),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?S(f):S.event,g=S.Deferred(),v=S.Callbacks("once memory"),y=p.statusCode||{},x={},b={},w="canceled",T={readyState:0,getResponseHeader:function(t){var e;if(l){if(!s)for(s={};e=De.exec(a);)s[e[1].toLowerCase()+" "]=(s[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=s[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return l?a:null},setRequestHeader:function(t,e){return null==l&&(t=b[t.toLowerCase()]=b[t.toLowerCase()]||t,x[t]=e),this},overrideMimeType:function(t){return null==l&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(l)T.always(t[T.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||w;return i&&i.abort(e),M(0,e),this}};if(g.promise(T),p.url=((t||p.url||we.href)+"").replace(Ne,we.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(U)||[""],null==p.crossDomain){c=_.createElement("a");try{c.href=p.url,c.href=c.href,p.crossDomain=Be.protocol+"//"+Be.host!=c.protocol+"//"+c.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=S.param(p.data,p.traditional)),He(ke,p,e,T),l)return T;for(h in(u=S.event&&p.global)&&0==S.active++&&S.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Oe.test(p.type),r=p.url.replace(Pe,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Le,"+")):(d=p.url.slice(r.length),p.data&&(p.processData||"string"==typeof p.data)&&(r+=(Te.test(r)?"&":"?")+p.data,delete p.data),!1===p.cache&&(r=r.replace(Ie,"$1"),d=(Te.test(r)?"&":"?")+"_="+Se.guid+++d),p.url=r+d),p.ifModified&&(S.lastModified[r]&&T.setRequestHeader("If-Modified-Since",S.lastModified[r]),S.etag[r]&&T.setRequestHeader("If-None-Match",S.etag[r])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&T.setRequestHeader("Content-Type",p.contentType),T.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Fe+"; q=0.01":""):p.accepts["*"]),p.headers)T.setRequestHeader(h,p.headers[h]);if(p.beforeSend&&(!1===p.beforeSend.call(f,T,p)||l))return T.abort();if(w="abort",v.add(p.complete),T.done(p.success),T.fail(p.error),i=He(Ue,p,e,T)){if(T.readyState=1,u&&m.trigger("ajaxSend",[T,p]),l)return T;p.async&&p.timeout>0&&(o=n.setTimeout(function(){T.abort("timeout")},p.timeout));try{l=!1,i.send(x,M)}catch(t){if(l)throw t;M(-1,t)}}else M(-1,"No Transport");function M(t,e,s,c){var h,d,_,x,b,w=e;l||(l=!0,o&&n.clearTimeout(o),i=void 0,a=c||"",T.readyState=t>0?4:0,h=t>=200&&t<300||304===t,s&&(x=function(t,e,n){for(var i,r,a,s,o=t.contents,c=t.dataTypes;"*"===c[0];)c.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(r in o)if(o[r]&&o[r].test(i)){c.unshift(r);break}if(c[0]in n)a=c[0];else{for(r in n){if(!c[0]||t.converters[r+" "+c[0]]){a=r;break}s||(s=r)}a=a||s}if(a)return a!==c[0]&&c.unshift(a),n[a]}(p,T,s)),!h&&S.inArray("script",p.dataTypes)>-1&&S.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),x=function(t,e,n,i){var r,a,s,o,c,l={},u=t.dataTypes.slice();if(u[1])for(s in t.converters)l[s.toLowerCase()]=t.converters[s];for(a=u.shift();a;)if(t.responseFields[a]&&(n[t.responseFields[a]]=e),!c&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),c=a,a=u.shift())if("*"===a)a=c;else if("*"!==c&&c!==a){if(!(s=l[c+" "+a]||l["* "+a]))for(r in l)if((o=r.split(" "))[1]===a&&(s=l[c+" "+o[0]]||l["* "+o[0]])){!0===s?s=l[r]:!0!==l[r]&&(a=o[0],u.unshift(o[1]));break}if(!0!==s)if(s&&t.throws)e=s(e);else try{e=s(e)}catch(t){return{state:"parsererror",error:s?t:"No conversion from "+c+" to "+a}}}return{state:"success",data:e}}(p,x,T,h),h?(p.ifModified&&((b=T.getResponseHeader("Last-Modified"))&&(S.lastModified[r]=b),(b=T.getResponseHeader("etag"))&&(S.etag[r]=b)),204===t||"HEAD"===p.type?w="nocontent":304===t?w="notmodified":(w=x.state,d=x.data,h=!(_=x.error))):(_=w,!t&&w||(w="error",t<0&&(t=0))),T.status=t,T.statusText=(e||w)+"",h?g.resolveWith(f,[d,w,T]):g.rejectWith(f,[T,w,_]),T.statusCode(y),y=void 0,u&&m.trigger(h?"ajaxSuccess":"ajaxError",[T,p,h?d:_]),v.fireWith(f,[T,w]),u&&(m.trigger("ajaxComplete",[T,p]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(t,e,n){return S.get(t,e,n,"json")},getScript:function(t,e){return S.get(t,void 0,e,"script")}}),S.each(["get","post"],function(t,e){S[e]=function(t,n,i,r){return v(n)&&(r=r||i,i=n,n=void 0),S.ajax(S.extend({url:t,type:e,dataType:r,data:n,success:i},S.isPlainObject(t)&&t))}}),S.ajaxPrefilter(function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")}),S._evalUrl=function(t,e,n){return S.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){S.globalEval(t,e,n)}})},S.fn.extend({wrapAll:function(t){var e;return this[0]&&(v(t)&&(t=t.call(this[0])),e=S(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return v(t)?this.each(function(e){S(this).wrapInner(t.call(this,e))}):this.each(function(){var e=S(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=v(t);return this.each(function(n){S(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(t){return!S.expr.pseudos.visible(t)},S.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(t){}};var Ge={0:200,1223:204},je=S.ajaxSettings.xhr();g.cors=!!je&&"withCredentials"in je,g.ajax=je=!!je,S.ajaxTransport(function(t){var e,i;if(g.cors||je&&!t.crossDomain)return{send:function(r,a){var s,o=t.xhr();if(o.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)o[s]=t.xhrFields[s];for(s in t.mimeType&&o.overrideMimeType&&o.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)o.setRequestHeader(s,r[s]);e=function(t){return function(){e&&(e=i=o.onload=o.onerror=o.onabort=o.ontimeout=o.onreadystatechange=null,"abort"===t?o.abort():"error"===t?"number"!=typeof o.status?a(0,"error"):a(o.status,o.statusText):a(Ge[o.status]||o.status,o.statusText,"text"!==(o.responseType||"text")||"string"!=typeof o.responseText?{binary:o.response}:{text:o.responseText},o.getAllResponseHeaders()))}},o.onload=e(),i=o.onerror=o.ontimeout=e("error"),void 0!==o.onabort?o.onabort=i:o.onreadystatechange=function(){4===o.readyState&&n.setTimeout(function(){e&&i()})},e=e("abort");try{o.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}}),S.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return S.globalEval(t),t}}}),S.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),S.ajaxTransport("script",function(t){var e,n;if(t.crossDomain||t.scriptAttrs)return{send:function(i,r){e=S(" + + + diff --git a/src/components/echart/barEcharts.vue b/src/components/echart/barEcharts.vue new file mode 100644 index 0000000..b25ec0b --- /dev/null +++ b/src/components/echart/barEcharts.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/components/echart/lineChart.vue b/src/components/echart/lineChart.vue new file mode 100644 index 0000000..08dd8c9 --- /dev/null +++ b/src/components/echart/lineChart.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/components/echart/todayCircle.vue b/src/components/echart/todayCircle.vue new file mode 100644 index 0000000..0c25530 --- /dev/null +++ b/src/components/echart/todayCircle.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/src/components/echart/yearCircle.vue b/src/components/echart/yearCircle.vue new file mode 100644 index 0000000..bc1aaf4 --- /dev/null +++ b/src/components/echart/yearCircle.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/icons/index.js b/src/icons/index.js new file mode 100644 index 0000000..4083da1 --- /dev/null +++ b/src/icons/index.js @@ -0,0 +1,10 @@ +import Vue from 'vue' +import SvgIcon from '@/components/SvgIcon'// svg component + +// register globally +Vue.component('svg-icon', SvgIcon) + +// 进行导入所有的svg格式 如果手动引入 需要依次引入 +const req = require.context('./svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys().map(requireContext) +requireAll(req) diff --git a/src/icons/svg/map.svg b/src/icons/svg/map.svg new file mode 100644 index 0000000..8779e6e --- /dev/null +++ b/src/icons/svg/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/place.svg b/src/icons/svg/place.svg new file mode 100644 index 0000000..24c40c1 --- /dev/null +++ b/src/icons/svg/place.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..f564836 --- /dev/null +++ b/src/main.js @@ -0,0 +1,71 @@ +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store' + +import ElementUI from 'element-ui' +import 'element-ui/lib/theme-chalk/index.css' +Vue.use(ElementUI) + +// 适配flex +import '@/common/flexible.js' + +import './assets/js/rollSlide.js' +// import './assets/js/tagcloud-2.2.js' + +import './utils/mixins' + +// 引入全局css +import './assets/fonts/fonts.css' +import './assets/styles/style.scss' + +import './icons' + +// 按需引入然后注册在vue原型上 +import { Message } from 'element-ui' +Vue.prototype.$message = Message + +// 馆代码 1201为东西湖馆代码 / 本地测试用FTZN +// Vue.prototype.libcode = 'FTZN' +Vue.prototype.libcode = '1201' + +// 全局注册过滤 - 时间 +import { parseTime, getFormattedDate } from '@/utils/index.js' +Vue.filter('parseTime', function(time, cFormat) { + return parseTime(time, cFormat) +}) +Vue.prototype.getFormattedDate = getFormattedDate + +import axios from 'axios' +Vue.prototype.$axios = axios + +// 引入echart +import echarts from 'echarts' +Vue.prototype.$echarts = echarts + +import scroll from 'vue-seamless-scroll' +Vue.use(scroll) + +import { + loading, + borderBox8, + decoration3, + decoration5, + decoration10, + activeRingChart +} from '@jiaminghi/data-view' + +Vue.use(loading) +Vue.use(borderBox8) +Vue.use(decoration3) +Vue.use(decoration5) +Vue.use(decoration10) +Vue.use(activeRingChart) + +Vue.config.productionTip = false +Vue.component(Message.name, Message) +new Vue({ + router, + store, + render: (h) => h(App) +}).$mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..670a5f8 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,22 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' + +Vue.use(VueRouter) + +const routes = [ + { + path: '/', + name: 'index', + component: () => import('../views/index.vue'), + meta: { + title: '智慧大屏' + } + } +] + +const router = new VueRouter({ + mode: 'hash', + routes +}) + +export default router diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..b2f39d8 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + }, + mutations: { + }, + actions: { + }, + modules: { + } +}) diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..d7ed7b6 --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,105 @@ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result + + const later = function() { + // 据上一次触发时间间隔 + const last = +new Date() - timestamp + + // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last) + } else { + timeout = null + // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 + if (!immediate) { + result = func.apply(context, args) + if (!timeout) context = args = null + } + } + } + + return function(...args) { + context = this + timestamp = +new Date() + const callNow = immediate && !timeout + // 如果延时不存在,重新设定延时 + if (!timeout) timeout = setTimeout(later, wait) + if (callNow) { + result = func.apply(context, args) + context = args = null + } + + return result + } +} + +/** + * Parse the time to string + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string} + */ +export function parseTime(time, cFormat) { + if (arguments.length === 0) { + return null + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'undefined' || time === null || time === 'null') { + return '' + } else if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { + time = parseInt(time) + } + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} + +// 获取当前日期时间 +export function getCurrentTime() { + const yy = new Date().getFullYear() + const mm = new Date().getMonth() + 1 + const dd = new Date().getDate() + const hh = new Date().getHours() + const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes() + const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds() + const time = yy + '年' + mm + '月' + dd + '日 ' + hh + ':' + mf + ':' + ss + return time +} + +export function getFormattedDate(date, yearOffset = 0) { + date.setFullYear(date.getFullYear() + yearOffset) + const year = date.getFullYear() + const month = (date.getMonth() + 1).toString().padStart(2, '0') + const day = date.getDate().toString().padStart(2, '0') + return `${year}-${month}-${day}` +} + +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path) +} + diff --git a/src/utils/mixins.js b/src/utils/mixins.js new file mode 100644 index 0000000..9d65d46 --- /dev/null +++ b/src/utils/mixins.js @@ -0,0 +1,162 @@ +import Vue from 'vue' + +Vue.mixin({ + methods: { + // 错误 + $LoopShowTooltip(chart, chartOption, options) { + const defaultOptions = { + interval: 2000, + loopSeries: false, + seriesIndex: 0, + updateData: null + } + + if (!chart || !chartOption) { + return {} + } + + let dataIndex = 0 // 数据索引,初始化为-1,是为了判断是否是第一次执行 + let seriesIndex = 0 // 系列索引 + let timeTicket = 0 + const seriesLen = chartOption.series.length // 系列个数 + let dataLen = 0 // 某个系列数据个数 + let chartType // 系列类型 + let first = true + + // 不循环series时seriesIndex指定显示tooltip的系列,不指定默认为0,指定多个则默认为第一个 + // 循环series时seriesIndex指定循环的series,不指定则从0开始循环所有series,指定单个则相当于不循环,指定多个 + // 要不要添加开始series索引和开始的data索引? + + if (options) { + options.interval = options.interval || defaultOptions.interval + options.loopSeries = options.loopSeries || defaultOptions.loopSeries + options.seriesIndex = options.seriesIndex || defaultOptions.seriesIndex + options.updateData = options.updateData || defaultOptions.updateData + } else { + options = defaultOptions + } + + // 如果设置的seriesIndex无效,则默认为0 + if (options.seriesIndex < 0 || options.seriesIndex >= seriesLen) { + seriesIndex = 0 + } else { + seriesIndex = options.seriesIndex + } + + function autoShowTip() { + function showTip() { + // 判断是否更新数据 + if (dataIndex === 0 && !first && typeof options.updateData === 'function') { + options.updateData() + chart.setOption(chartOption) + } + + const series = chartOption.series + chartType = series[seriesIndex].type // 系列类型 + dataLen = series[seriesIndex].data.length // 某个系列的数据个数 + + const tipParams = { seriesIndex: seriesIndex } + switch (chartType) { + case 'map': + case 'pie': + case 'chord': + tipParams.name = series[seriesIndex].data[dataIndex].name + break + case 'radar': // 雷达图 + tipParams.seriesIndex = seriesIndex + tipParams.dataIndex = dataIndex + break + default: + tipParams.dataIndex = dataIndex + break + } + + if (chartType === 'pie' || chartType === 'radar') { + // 取消之前高亮的图形 + chart.dispatchAction({ + type: 'downplay', + seriesIndex: options.loopSeries ? (seriesIndex === 0 ? seriesLen - 1 : seriesIndex - 1) : seriesIndex, + dataIndex: dataIndex === 0 ? dataLen - 1 : dataIndex - 1 + }) + + // 高亮当前图形 + chart.dispatchAction({ + type: 'highlight', + seriesIndex: seriesIndex, + dataIndex: dataIndex + }) + } + + // 显示 tooltip + tipParams.type = 'showTip' + chart.dispatchAction(tipParams) + + dataIndex = (dataIndex + 1) % dataLen + if (options.loopSeries && dataIndex === 0 && !first) { // 数据索引归0表示当前系列数据已经循环完 + seriesIndex = (seriesIndex + 1) % seriesLen + } + + first = false + } + + showTip() + // timeTicket = setInterval(showTip, options.interval) + } + + // 关闭轮播 + function stopAutoShow() { + if (timeTicket) { + clearInterval(timeTicket) + timeTicket = 0 + + if (chartType === 'pie' || chartType === 'radar') { + // 取消高亮的图形 + chart.dispatchAction({ + type: 'downplay', + seriesIndex: options.loopSeries ? (seriesIndex === 0 ? seriesLen - 1 : seriesIndex - 1) : seriesIndex, + dataIndex: dataIndex === 0 ? dataLen - 1 : dataIndex - 1 + }) + } + } + } + + const zRender = chart.getZr() + + function zRenderMouseMove(param) { + if (param.event) { + // 阻止canvas上的鼠标移动事件冒泡 + param.event.cancelBubble = true + } + + stopAutoShow() + } + + // 离开echarts图时恢复自动轮播 + function zRenderGlobalOut() { + if (!timeTicket) { + autoShowTip() + } + } + + // 鼠标在echarts图上时停止轮播 + chart.on('mousemove', stopAutoShow) + zRender.on('mousemove', zRenderMouseMove) + zRender.on('globalout', zRenderGlobalOut) + + autoShowTip() + + return { + clearLoop: function() { + if (timeTicket) { + clearInterval(timeTicket) + timeTicket = 0 + } + + chart.off('mousemove', stopAutoShow) + zRender.off('mousemove', zRenderMouseMove) + zRender.off('globalout', zRenderGlobalOut) + } + } + } + } +}) diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..dd547e9 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,46 @@ +import axios from 'axios' +// import { Message } from 'element-ui' +// 创建axios实例 +const service = axios.create({ + // baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/', // api 的 base_url + // baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url + timeout: 1000 * 30, // 请求超时时间 + headers: { + 'Content-Type': 'application/json' + } +}) + +// request拦截器 +service.interceptors.request.use( + config => { + // if (getToken()) { + // config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + // } + switch (config.urlType) { + case 'local': + config.url = (process.env.NODE_ENV === 'production' ? window.g.ApiUrl : process.env.VUE_APP_BASE_API) + config.url + break + case 'interlib': + config.url = (process.env.NODE_ENV === 'production' ? window.g.LibUrl : process.env.VUE_APP_LIB_API) + config.url + break + } + const token = '' // 登录后生成用于识别用户身份,项目不需要直接去掉 + config.headers['Authorization'] = token || '' + return config + }, + error => { + console.error('error: ', error) + Promise.reject(error) + } +) + +// response 拦截器 +service.interceptors.response.use( + response => { + return response.data + }, + error => { + return Promise.reject(error) + } +) +export default service diff --git a/src/utils/resizeMixins.js b/src/utils/resizeMixins.js new file mode 100644 index 0000000..6adc38e --- /dev/null +++ b/src/utils/resizeMixins.js @@ -0,0 +1,55 @@ +import { debounce } from '@/utils' + +export default { + data() { + return { + $_sidebarElm: null, + $_resizeHandler: null + } + }, + mounted() { + this.$_resizeHandler = debounce(() => { + if (this.chart) { + this.chart.resize() + } + }, 100) + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + beforeDestroy() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + // to fixed bug when cached by keep-alive + // https://github.com/PanJiaChen/vue-element-admin/issues/2116 + activated() { + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + deactivated() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_initResizeEvent() { + window.addEventListener('resize', this.$_resizeHandler) + }, + $_destroyResizeEvent() { + window.removeEventListener('resize', this.$_resizeHandler) + }, + $_sidebarResizeHandler(e) { + if (e.propertyName === 'width') { + this.$_resizeHandler() + } + }, + $_initSidebarResizeEvent() { + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) + }, + $_destroySidebarResizeEvent() { + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) + } + } +} diff --git a/src/views/header/index.vue b/src/views/header/index.vue new file mode 100644 index 0000000..b7bf7d3 --- /dev/null +++ b/src/views/header/index.vue @@ -0,0 +1,90 @@ +