更新
							
								
								
									
										12
									
								
								.babelrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "presets": [
 | 
			
		||||
    ["env", {
 | 
			
		||||
      "modules": false,
 | 
			
		||||
      "targets": {
 | 
			
		||||
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
 | 
			
		||||
      }
 | 
			
		||||
    }],
 | 
			
		||||
    "stage-2"
 | 
			
		||||
  ],
 | 
			
		||||
  "plugins":["transform-vue-jsx", "transform-runtime"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
			
		||||
# http://editorconfig.org
 | 
			
		||||
root = true
 | 
			
		||||
 | 
			
		||||
[*]
 | 
			
		||||
charset = utf-8
 | 
			
		||||
indent_style = space
 | 
			
		||||
indent_size = 2
 | 
			
		||||
end_of_line = lf
 | 
			
		||||
insert_final_newline = true
 | 
			
		||||
trim_trailing_whitespace = true
 | 
			
		||||
 | 
			
		||||
[*.md]
 | 
			
		||||
insert_final_newline = false
 | 
			
		||||
trim_trailing_whitespace = false
 | 
			
		||||
							
								
								
									
										15
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,15 @@
 | 
			
		||||
.DS_Store
 | 
			
		||||
node_modules/
 | 
			
		||||
dist/
 | 
			
		||||
npm-debug.log*
 | 
			
		||||
yarn-debug.log*
 | 
			
		||||
yarn-error.log*
 | 
			
		||||
package-lock.json
 | 
			
		||||
 | 
			
		||||
# Editor directories and files
 | 
			
		||||
.idea
 | 
			
		||||
.vscode
 | 
			
		||||
*.suo
 | 
			
		||||
*.ntvs*
 | 
			
		||||
*.njsproj
 | 
			
		||||
*.sln
 | 
			
		||||
							
								
								
									
										10
									
								
								.postcssrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,10 @@
 | 
			
		||||
// https://github.com/michael-ciniawsky/postcss-load-config
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  "plugins": {
 | 
			
		||||
    "postcss-import": {},
 | 
			
		||||
    "postcss-url": {},
 | 
			
		||||
    // to edit target browsers: use "browserslist" field in package.json
 | 
			
		||||
    "autoprefixer": {}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,4 @@
 | 
			
		||||
# Dockerfile
 | 
			
		||||
FROM nginx:alpine
 | 
			
		||||
COPY dist/ /usr/share/nginx/html/
 | 
			
		||||
EXPOSE 80
 | 
			
		||||
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,22 @@
 | 
			
		||||
### 本地运行
 | 
			
		||||
```
 | 
			
		||||
npm install
 | 
			
		||||
npm run dev
 | 
			
		||||
```
 | 
			
		||||
### 打包
 | 
			
		||||
```
 | 
			
		||||
npm install
 | 
			
		||||
npm run build:prod
 | 
			
		||||
编译结果:report/report-ui/dist目录
 | 
			
		||||
```
 | 
			
		||||
### 前端技术
 | 
			
		||||
- [npm](https://www.npmjs.com/):node.js的包管理工具,用于统一管理我们前端项目中需要用到的包、插件、工具、命令等,便于开发和维护。
 | 
			
		||||
- [webpack](https://webpack.docschina.org/):用于现代 JavaScript 应用程序的_静态模块打包工具
 | 
			
		||||
- [ES6](https://es6.ruanyifeng.com/):Javascript的新版本,ECMAScript6的简称。利用ES6我们可以简化我们的JS代码,同时利用其提供的强大功能来快速实现JS逻辑。
 | 
			
		||||
- [vue-cli](https://cli.vuejs.org/):Vue的脚手架工具,用于自动生成Vue项目的目录及文件。
 | 
			
		||||
- [vue-router](https://router.vuejs.org/): Vue提供的前端路由工具,利用其我们实现页面的路由控制,局部刷新及按需加载,构建单页应用,实现前后端分离。
 | 
			
		||||
- [element-ui](https://element.eleme.cn/#/zh-CN):基于MVVM框架Vue开源出来的一套前端ui组件。
 | 
			
		||||
- [avue](https://www.avuejs.com/): 用该组件包裹后可以变成拖拽组件,采用相对于父类绝对定位;用键盘的上下左右也可以控制移动
 | 
			
		||||
- [vue-echarts](https://www.npmjs.com/package/vue-echarts/): vue-echarts是封装后的vue插件,基于 ECharts v4.0.1+ 开发
 | 
			
		||||
- [vue-superslide](https://www.npmjs.com/package/vue-super-slider/): Vue-SuperSlide(Github) 是 SuperSlide 的 Vue 封装版本
 | 
			
		||||
- [vuedraggable](https://github.com/SortableJS/Vue.Draggable/): 是一款基于Sortable.js实现的vue拖拽插件。
 | 
			
		||||
							
								
								
									
										45
									
								
								build/build.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,45 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
require('./check-versions')()
 | 
			
		||||
 | 
			
		||||
//process.env.NODE_ENV = 'production'
 | 
			
		||||
 | 
			
		||||
const ora = require('ora')
 | 
			
		||||
const rm = require('rimraf')
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const chalk = require('chalk')
 | 
			
		||||
const webpack = require('webpack')
 | 
			
		||||
const config = require('../config')
 | 
			
		||||
const webpackConfig = require('./webpack.prod.conf')
 | 
			
		||||
 | 
			
		||||
const spinner = ora('building for ' + process.env.NODE_ENV + '...')
 | 
			
		||||
spinner.start()
 | 
			
		||||
 | 
			
		||||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
 | 
			
		||||
  if (err) throw err
 | 
			
		||||
  webpack(webpackConfig, (err, stats) => {
 | 
			
		||||
    spinner.stop()
 | 
			
		||||
    if (err) throw err
 | 
			
		||||
    process.stdout.write(
 | 
			
		||||
      stats.toString({
 | 
			
		||||
        colors: true,
 | 
			
		||||
        modules: false,
 | 
			
		||||
        children: false,
 | 
			
		||||
        chunks: false,
 | 
			
		||||
        chunkModules: false
 | 
			
		||||
      }) + '\n\n'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if (stats.hasErrors()) {
 | 
			
		||||
      console.log(chalk.red('  Build failed with errors.\n'))
 | 
			
		||||
      process.exit(1)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.log(chalk.cyan('  Build complete.\n'))
 | 
			
		||||
    console.log(
 | 
			
		||||
      chalk.yellow(
 | 
			
		||||
        '  Tip: built files are meant to be served over an HTTP server.\n' +
 | 
			
		||||
        "  Opening index.html over file:// won't work.\n"
 | 
			
		||||
      )
 | 
			
		||||
    )
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										64
									
								
								build/check-versions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,64 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const chalk = require('chalk')
 | 
			
		||||
const semver = require('semver')
 | 
			
		||||
const packageConfig = require('../package.json')
 | 
			
		||||
const shell = require('shelljs')
 | 
			
		||||
 | 
			
		||||
function exec(cmd) {
 | 
			
		||||
  return require('child_process')
 | 
			
		||||
    .execSync(cmd)
 | 
			
		||||
    .toString()
 | 
			
		||||
    .trim()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const versionRequirements = [
 | 
			
		||||
  {
 | 
			
		||||
    name: 'node',
 | 
			
		||||
    currentVersion: semver.clean(process.version),
 | 
			
		||||
    versionRequirement: packageConfig.engines.node
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
if (shell.which('npm')) {
 | 
			
		||||
  versionRequirements.push({
 | 
			
		||||
    name: 'npm',
 | 
			
		||||
    currentVersion: exec('npm --version'),
 | 
			
		||||
    versionRequirement: packageConfig.engines.npm
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = function() {
 | 
			
		||||
  const warnings = []
 | 
			
		||||
 | 
			
		||||
  for (let i = 0; i < versionRequirements.length; i++) {
 | 
			
		||||
    const mod = versionRequirements[i]
 | 
			
		||||
 | 
			
		||||
    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
 | 
			
		||||
      warnings.push(
 | 
			
		||||
        mod.name +
 | 
			
		||||
          ': ' +
 | 
			
		||||
          chalk.red(mod.currentVersion) +
 | 
			
		||||
          ' should be ' +
 | 
			
		||||
          chalk.green(mod.versionRequirement)
 | 
			
		||||
      )
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (warnings.length) {
 | 
			
		||||
    console.log('')
 | 
			
		||||
    console.log(
 | 
			
		||||
      chalk.yellow(
 | 
			
		||||
        'To use this template, you must update following to modules:'
 | 
			
		||||
      )
 | 
			
		||||
    )
 | 
			
		||||
    console.log()
 | 
			
		||||
 | 
			
		||||
    for (let i = 0; i < warnings.length; i++) {
 | 
			
		||||
      const warning = warnings[i]
 | 
			
		||||
      console.log('  ' + warning)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.log()
 | 
			
		||||
    process.exit(1)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								build/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.7 KiB  | 
							
								
								
									
										108
									
								
								build/utils.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,108 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const config = require('../config')
 | 
			
		||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
 | 
			
		||||
const packageConfig = require('../package.json')
 | 
			
		||||
 | 
			
		||||
exports.assetsPath = function(_path) {
 | 
			
		||||
  const assetsSubDirectory =
 | 
			
		||||
    process.env.NODE_ENV === 'production'
 | 
			
		||||
      ? config.build.assetsSubDirectory
 | 
			
		||||
      : config.dev.assetsSubDirectory
 | 
			
		||||
 | 
			
		||||
  return path.posix.join(assetsSubDirectory, _path)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.cssLoaders = function(options) {
 | 
			
		||||
  options = options || {}
 | 
			
		||||
 | 
			
		||||
  const cssLoader = {
 | 
			
		||||
    loader: 'css-loader',
 | 
			
		||||
    options: {
 | 
			
		||||
      sourceMap: options.sourceMap
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const postcssLoader = {
 | 
			
		||||
    loader: 'postcss-loader',
 | 
			
		||||
    options: {
 | 
			
		||||
      sourceMap: options.sourceMap
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // generate loader string to be used with extract text plugin
 | 
			
		||||
  function generateLoaders(loader, loaderOptions) {
 | 
			
		||||
    const loaders = []
 | 
			
		||||
 | 
			
		||||
    // Extract CSS when that option is specified
 | 
			
		||||
    // (which is the case during production build)
 | 
			
		||||
    if (options.extract) {
 | 
			
		||||
      loaders.push(MiniCssExtractPlugin.loader)
 | 
			
		||||
    } else {
 | 
			
		||||
      loaders.push('vue-style-loader')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    loaders.push(cssLoader)
 | 
			
		||||
 | 
			
		||||
    if (options.usePostCSS) {
 | 
			
		||||
      loaders.push(postcssLoader)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (loader) {
 | 
			
		||||
      loaders.push({
 | 
			
		||||
        loader: loader + '-loader',
 | 
			
		||||
        options: Object.assign({}, loaderOptions, {
 | 
			
		||||
          sourceMap: options.sourceMap
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return loaders
 | 
			
		||||
  }
 | 
			
		||||
  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
 | 
			
		||||
  return {
 | 
			
		||||
    css: generateLoaders(),
 | 
			
		||||
    postcss: generateLoaders(),
 | 
			
		||||
    less: generateLoaders('less'),
 | 
			
		||||
    sass: generateLoaders('sass', {
 | 
			
		||||
      indentedSyntax: true
 | 
			
		||||
    }),
 | 
			
		||||
    scss: generateLoaders('sass'),
 | 
			
		||||
    stylus: generateLoaders('stylus'),
 | 
			
		||||
    styl: generateLoaders('stylus')
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Generate loaders for standalone style files (outside of .vue)
 | 
			
		||||
exports.styleLoaders = function(options) {
 | 
			
		||||
  const output = []
 | 
			
		||||
  const loaders = exports.cssLoaders(options)
 | 
			
		||||
 | 
			
		||||
  for (const extension in loaders) {
 | 
			
		||||
    const loader = loaders[extension]
 | 
			
		||||
    output.push({
 | 
			
		||||
      test: new RegExp('\\.' + extension + '$'),
 | 
			
		||||
      use: loader
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return output
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.createNotifierCallback = () => {
 | 
			
		||||
  const notifier = require('node-notifier')
 | 
			
		||||
 | 
			
		||||
  return (severity, errors) => {
 | 
			
		||||
    if (severity !== 'error') return
 | 
			
		||||
 | 
			
		||||
    const error = errors[0]
 | 
			
		||||
    const filename = error.file && error.file.split('!').pop()
 | 
			
		||||
 | 
			
		||||
    notifier.notify({
 | 
			
		||||
      title: packageConfig.name,
 | 
			
		||||
      message: severity + ': ' + error.name,
 | 
			
		||||
      subtitle: filename || '',
 | 
			
		||||
      icon: path.join(__dirname, 'logo.png')
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								build/vue-loader.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  //You can set the vue-loader configuration by yourself.
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										93
									
								
								build/webpack.base.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,93 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const utils = require('./utils')
 | 
			
		||||
const config = require('../config')
 | 
			
		||||
const {
 | 
			
		||||
  VueLoaderPlugin
 | 
			
		||||
} = require('vue-loader')
 | 
			
		||||
const vueLoaderConfig = require('./vue-loader.conf')
 | 
			
		||||
 | 
			
		||||
function resolve(dir) {
 | 
			
		||||
  return path.join(__dirname, '..', dir)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  context: path.resolve(__dirname, '../'),
 | 
			
		||||
  entry: {
 | 
			
		||||
    app: './src/main.js'
 | 
			
		||||
  },
 | 
			
		||||
  output: {
 | 
			
		||||
    path: config.build.assetsRoot,
 | 
			
		||||
    filename: '[name].js',
 | 
			
		||||
    publicPath: config.build.assetsPublicPath //process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath
 | 
			
		||||
  },
 | 
			
		||||
  resolve: {
 | 
			
		||||
    extensions: ['.js', '.vue', '.json'],
 | 
			
		||||
    alias: {
 | 
			
		||||
      '@': resolve('src')
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  module: {
 | 
			
		||||
    rules: [{
 | 
			
		||||
        test: /\.vue$/,
 | 
			
		||||
        loader: 'vue-loader',
 | 
			
		||||
        options: vueLoaderConfig
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        test: /\.js$/,
 | 
			
		||||
        loader: 'babel-loader',
 | 
			
		||||
        include: [
 | 
			
		||||
          resolve('src'),
 | 
			
		||||
          resolve('test'),
 | 
			
		||||
          resolve('node_modules/webpack-dev-server/client')
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        test: /\.svg$/,
 | 
			
		||||
        loader: 'svg-sprite-loader',
 | 
			
		||||
        include: [resolve('src/icons')],
 | 
			
		||||
        options: {
 | 
			
		||||
          symbolId: 'icon-[name]'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
 | 
			
		||||
        loader: 'url-loader',
 | 
			
		||||
        exclude: [resolve('src/icons')],
 | 
			
		||||
        options: {
 | 
			
		||||
          limit: 10000,
 | 
			
		||||
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
 | 
			
		||||
        loader: 'url-loader',
 | 
			
		||||
        options: {
 | 
			
		||||
          limit: 10000,
 | 
			
		||||
          name: utils.assetsPath('media/[name].[hash:7].[ext]')
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
 | 
			
		||||
        loader: 'url-loader',
 | 
			
		||||
        options: {
 | 
			
		||||
          limit: 10000,
 | 
			
		||||
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  plugins: [new VueLoaderPlugin()],
 | 
			
		||||
  node: {
 | 
			
		||||
    // prevent webpack from injecting useless setImmediate polyfill because Vue
 | 
			
		||||
    // source contains it (although only uses it if it's native).
 | 
			
		||||
    setImmediate: false,
 | 
			
		||||
    // prevent webpack from injecting mocks to Node native modules
 | 
			
		||||
    // that does not make sense for the client
 | 
			
		||||
    dgram: 'empty',
 | 
			
		||||
    fs: 'empty',
 | 
			
		||||
    net: 'empty',
 | 
			
		||||
    tls: 'empty',
 | 
			
		||||
    child_process: 'empty'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										100
									
								
								build/webpack.dev.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const utils = require('./utils')
 | 
			
		||||
const webpack = require('webpack')
 | 
			
		||||
const config = require('../config')
 | 
			
		||||
const merge = require('webpack-merge')
 | 
			
		||||
const baseWebpackConfig = require('./webpack.base.conf')
 | 
			
		||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
 | 
			
		||||
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
 | 
			
		||||
const portfinder = require('portfinder')
 | 
			
		||||
 | 
			
		||||
function resolve(dir) {
 | 
			
		||||
  return path.join(__dirname, '..', dir)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const HOST = process.env.HOST
 | 
			
		||||
const PORT = process.env.PORT && Number(process.env.PORT)
 | 
			
		||||
 | 
			
		||||
const devWebpackConfig = merge(baseWebpackConfig, {
 | 
			
		||||
  mode: 'development',
 | 
			
		||||
  output: {
 | 
			
		||||
    path: config.build.assetsRoot,
 | 
			
		||||
    filename: '[name].js',
 | 
			
		||||
    publicPath: config.dev.assetsPublicPath
 | 
			
		||||
  },
 | 
			
		||||
  module: {
 | 
			
		||||
    rules: utils.styleLoaders({
 | 
			
		||||
      sourceMap: config.dev.cssSourceMap,
 | 
			
		||||
      usePostCSS: true
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  // cheap-module-eval-source-map is faster for development
 | 
			
		||||
  devtool: config.dev.devtool,
 | 
			
		||||
 | 
			
		||||
  // these devServer options should be customized in /config/index.js
 | 
			
		||||
  devServer: {
 | 
			
		||||
    clientLogLevel: 'warning',
 | 
			
		||||
    historyApiFallback: true,
 | 
			
		||||
    hot: true,
 | 
			
		||||
    compress: true,
 | 
			
		||||
    host: HOST || config.dev.host,
 | 
			
		||||
    port: PORT || config.dev.port,
 | 
			
		||||
    open: config.dev.autoOpenBrowser,
 | 
			
		||||
    overlay: config.dev.errorOverlay
 | 
			
		||||
      ? { warnings: false, errors: true }
 | 
			
		||||
      : false,
 | 
			
		||||
    publicPath: config.dev.assetsPublicPath,
 | 
			
		||||
    proxy: config.dev.proxyTable,
 | 
			
		||||
    quiet: true, // necessary for FriendlyErrorsPlugin
 | 
			
		||||
    watchOptions: {
 | 
			
		||||
      poll: config.dev.poll
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  plugins: [
 | 
			
		||||
    new webpack.DefinePlugin({
 | 
			
		||||
      'process.env': require('../config/dev.env')
 | 
			
		||||
    }),
 | 
			
		||||
    new webpack.HotModuleReplacementPlugin(),
 | 
			
		||||
    // https://github.com/ampedandwired/html-webpack-plugin
 | 
			
		||||
    new HtmlWebpackPlugin({
 | 
			
		||||
      filename: 'index.html',
 | 
			
		||||
      template: 'index.html',
 | 
			
		||||
      inject: true,
 | 
			
		||||
      favicon: resolve('static/favicon.ico'),
 | 
			
		||||
      title: 'vue-admin-template'
 | 
			
		||||
    })
 | 
			
		||||
  ]
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
module.exports = new Promise((resolve, reject) => {
 | 
			
		||||
  portfinder.basePort = process.env.PORT || config.dev.port
 | 
			
		||||
  portfinder.getPort((err, port) => {
 | 
			
		||||
    if (err) {
 | 
			
		||||
      reject(err)
 | 
			
		||||
    } else {
 | 
			
		||||
      // publish the new Port, necessary for e2e tests
 | 
			
		||||
      process.env.PORT = port
 | 
			
		||||
      // add port to devServer config
 | 
			
		||||
      devWebpackConfig.devServer.port = port
 | 
			
		||||
 | 
			
		||||
      // Add FriendlyErrorsPlugin
 | 
			
		||||
      devWebpackConfig.plugins.push(
 | 
			
		||||
        new FriendlyErrorsPlugin({
 | 
			
		||||
          compilationSuccessInfo: {
 | 
			
		||||
            messages: [
 | 
			
		||||
              `Your application is running here: http://${
 | 
			
		||||
                devWebpackConfig.devServer.host
 | 
			
		||||
              }:${port}`
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          onErrors: config.dev.notifyOnErrors
 | 
			
		||||
            ? utils.createNotifierCallback()
 | 
			
		||||
            : undefined
 | 
			
		||||
        })
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      resolve(devWebpackConfig)
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										182
									
								
								build/webpack.prod.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,182 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const utils = require('./utils')
 | 
			
		||||
const webpack = require('webpack')
 | 
			
		||||
const config = require('../config')
 | 
			
		||||
const merge = require('webpack-merge')
 | 
			
		||||
const baseWebpackConfig = require('./webpack.base.conf')
 | 
			
		||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
 | 
			
		||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
 | 
			
		||||
const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
 | 
			
		||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
 | 
			
		||||
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
 | 
			
		||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
 | 
			
		||||
 | 
			
		||||
function resolve(dir) {
 | 
			
		||||
  return path.join(__dirname, '..', dir)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var env = require('../config/dev.env')
 | 
			
		||||
if (process.env.NODE_ENV === 'testing') {
 | 
			
		||||
  env = require('../config/test.env')
 | 
			
		||||
}
 | 
			
		||||
if (process.env.NODE_ENV === 'production') {
 | 
			
		||||
  env = require('../config/prod.env')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// For NamedChunksPlugin
 | 
			
		||||
const seen = new Set()
 | 
			
		||||
const nameLength = 4
 | 
			
		||||
 | 
			
		||||
const webpackConfig = merge(baseWebpackConfig, {
 | 
			
		||||
  mode: 'production',
 | 
			
		||||
  module: {
 | 
			
		||||
    rules: utils.styleLoaders({
 | 
			
		||||
      sourceMap: config.build.productionSourceMap,
 | 
			
		||||
      extract: true,
 | 
			
		||||
      usePostCSS: true
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  devtool: config.build.productionSourceMap ? config.build.devtool : false,
 | 
			
		||||
  output: {
 | 
			
		||||
    path: config.build.assetsRoot,
 | 
			
		||||
    filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
 | 
			
		||||
    chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
 | 
			
		||||
  },
 | 
			
		||||
  plugins: [
 | 
			
		||||
    // http://vuejs.github.io/vue-loader/en/workflow/production.html
 | 
			
		||||
    new webpack.DefinePlugin({
 | 
			
		||||
      'process.env': env
 | 
			
		||||
    }),
 | 
			
		||||
    // extract css into its own file
 | 
			
		||||
    new MiniCssExtractPlugin({
 | 
			
		||||
      filename: utils.assetsPath('css/[name].[contenthash:8].css'),
 | 
			
		||||
      chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css')
 | 
			
		||||
    }),
 | 
			
		||||
    // generate dist index.html with correct asset hash for caching.
 | 
			
		||||
    // you can customize output by editing /index.html
 | 
			
		||||
    // see https://github.com/ampedandwired/html-webpack-plugin
 | 
			
		||||
    new HtmlWebpackPlugin({
 | 
			
		||||
      filename: config.build.index,
 | 
			
		||||
      template: 'index.html',
 | 
			
		||||
      inject: true,
 | 
			
		||||
      favicon: resolve('static/favicon.ico'),
 | 
			
		||||
      title: 'vue-admin-template',
 | 
			
		||||
      minify: {
 | 
			
		||||
        removeComments: true,
 | 
			
		||||
        collapseWhitespace: true,
 | 
			
		||||
        removeAttributeQuotes: true
 | 
			
		||||
        // more options:
 | 
			
		||||
        // https://github.com/kangax/html-minifier#options-quick-reference
 | 
			
		||||
      }
 | 
			
		||||
      // default sort mode uses toposort which cannot handle cyclic deps
 | 
			
		||||
      // in certain cases, and in webpack 4, chunk order in HTML doesn't
 | 
			
		||||
      // matter anyway
 | 
			
		||||
    }),
 | 
			
		||||
    new ScriptExtHtmlWebpackPlugin({
 | 
			
		||||
      //`runtime` must same as runtimeChunk name. default is `runtime`
 | 
			
		||||
      inline: /runtime\..*\.js$/
 | 
			
		||||
    }),
 | 
			
		||||
    // keep chunk.id stable when chunk has no name
 | 
			
		||||
    new webpack.NamedChunksPlugin(chunk => {
 | 
			
		||||
      if (chunk.name) {
 | 
			
		||||
        return chunk.name
 | 
			
		||||
      }
 | 
			
		||||
      const modules = Array.from(chunk.modulesIterable)
 | 
			
		||||
      if (modules.length > 1) {
 | 
			
		||||
        const hash = require('hash-sum')
 | 
			
		||||
        const joinedHash = hash(modules.map(m => m.id).join('_'))
 | 
			
		||||
        let len = nameLength
 | 
			
		||||
        while (seen.has(joinedHash.substr(0, len))) len++
 | 
			
		||||
        seen.add(joinedHash.substr(0, len))
 | 
			
		||||
        return `chunk-${joinedHash.substr(0, len)}`
 | 
			
		||||
      } else {
 | 
			
		||||
        return modules[0].id
 | 
			
		||||
      }
 | 
			
		||||
    }),
 | 
			
		||||
    // keep module.id stable when vender modules does not change
 | 
			
		||||
    new webpack.HashedModuleIdsPlugin(),
 | 
			
		||||
    // copy custom static assets
 | 
			
		||||
    new CopyWebpackPlugin([{
 | 
			
		||||
      from: path.resolve(__dirname, '../static'),
 | 
			
		||||
      to: config.build.assetsSubDirectory,
 | 
			
		||||
      ignore: ['.*']
 | 
			
		||||
    }])
 | 
			
		||||
  ],
 | 
			
		||||
  optimization: {
 | 
			
		||||
    splitChunks: {
 | 
			
		||||
      chunks: 'all',
 | 
			
		||||
      cacheGroups: {
 | 
			
		||||
        libs: {
 | 
			
		||||
          name: 'chunk-libs',
 | 
			
		||||
          test: /[\\/]node_modules[\\/]/,
 | 
			
		||||
          priority: 10,
 | 
			
		||||
          chunks: 'initial' // 只打包初始时依赖的第三方
 | 
			
		||||
        },
 | 
			
		||||
        elementUI: {
 | 
			
		||||
          name: 'chunk-elementUI', // 单独将 elementUI 拆包
 | 
			
		||||
          priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app
 | 
			
		||||
          test: /[\\/]node_modules[\\/]element-ui[\\/]/
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    runtimeChunk: 'single',
 | 
			
		||||
    minimizer: [
 | 
			
		||||
      new UglifyJsPlugin({
 | 
			
		||||
        uglifyOptions: {
 | 
			
		||||
          mangle: {
 | 
			
		||||
            safari10: true
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        sourceMap: config.build.productionSourceMap,
 | 
			
		||||
        cache: true,
 | 
			
		||||
        parallel: true
 | 
			
		||||
      }),
 | 
			
		||||
      // Compress extracted CSS. We are using this plugin so that possible
 | 
			
		||||
      // duplicated CSS from different components can be deduped.
 | 
			
		||||
      new OptimizeCSSAssetsPlugin()
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
if (config.build.productionGzip) {
 | 
			
		||||
  const CompressionWebpackPlugin = require('compression-webpack-plugin')
 | 
			
		||||
 | 
			
		||||
  webpackConfig.plugins.push(
 | 
			
		||||
    new CompressionWebpackPlugin({
 | 
			
		||||
      asset: '[path].gz[query]',
 | 
			
		||||
      algorithm: 'gzip',
 | 
			
		||||
      test: new RegExp(
 | 
			
		||||
        '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
 | 
			
		||||
      ),
 | 
			
		||||
      threshold: 10240,
 | 
			
		||||
      minRatio: 0.8
 | 
			
		||||
    })
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) {
 | 
			
		||||
  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
 | 
			
		||||
    .BundleAnalyzerPlugin
 | 
			
		||||
 | 
			
		||||
  if (config.build.bundleAnalyzerReport) {
 | 
			
		||||
    webpackConfig.plugins.push(
 | 
			
		||||
      new BundleAnalyzerPlugin({
 | 
			
		||||
        analyzerPort: 8080,
 | 
			
		||||
        generateStatsFile: false
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (config.build.generateAnalyzerReport) {
 | 
			
		||||
    webpackConfig.plugins.push(
 | 
			
		||||
      new BundleAnalyzerPlugin({
 | 
			
		||||
        analyzerMode: 'static',
 | 
			
		||||
        reportFilename: 'bundle-report.html',
 | 
			
		||||
        openAnalyzer: false
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = webpackConfig
 | 
			
		||||
							
								
								
									
										16
									
								
								config/dev.env.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,16 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-02-07 08:55:09
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-02-27 14:59:13
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
'use strict'
 | 
			
		||||
const merge = require('webpack-merge')
 | 
			
		||||
const prodEnv = require('./prod.env')
 | 
			
		||||
 | 
			
		||||
module.exports = merge(prodEnv, {
 | 
			
		||||
  NODE_ENV: '"development"',
 | 
			
		||||
  BASE_API: '"http://192.168.1.12:9095"'
 | 
			
		||||
  //BASE_API: '"http://10.108.26.197:9095"'
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										93
									
								
								config/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,93 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-02-07 08:55:09
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-02-24 10:25:00
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
'use strict'
 | 
			
		||||
// Template version: 1.2.6
 | 
			
		||||
// see http://vuejs-templates.github.io/webpack for documentation.
 | 
			
		||||
 | 
			
		||||
const path = require('path')
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  dev: {
 | 
			
		||||
    // Paths
 | 
			
		||||
    assetsSubDirectory: 'static',
 | 
			
		||||
    assetsPublicPath: '/',
 | 
			
		||||
    proxyTable: {},
 | 
			
		||||
 | 
			
		||||
    // Various Dev Server settings
 | 
			
		||||
    host: '192.168.1.59', // can be overwritten by process.env.HOST
 | 
			
		||||
    port: 9528, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
 | 
			
		||||
    autoOpenBrowser: true,
 | 
			
		||||
    errorOverlay: true,
 | 
			
		||||
    notifyOnErrors: false,
 | 
			
		||||
    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
 | 
			
		||||
 | 
			
		||||
    // Use Eslint Loader?
 | 
			
		||||
    // If true, your code will be linted during bundling and
 | 
			
		||||
    // linting errors and warnings will be shown in the console.
 | 
			
		||||
    useEslint: true,
 | 
			
		||||
    // If true, eslint errors and warnings will also be shown in the error overlay
 | 
			
		||||
    // in the browser.
 | 
			
		||||
    showEslintErrorsInOverlay: false,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Source Maps
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    // https://webpack.js.org/configuration/devtool/#development
 | 
			
		||||
    devtool: 'cheap-source-map',
 | 
			
		||||
 | 
			
		||||
    // CSS Sourcemaps off by default because relative paths are "buggy"
 | 
			
		||||
    // with this option, according to the CSS-Loader README
 | 
			
		||||
    // (https://github.com/webpack/css-loader#sourcemaps)
 | 
			
		||||
    // In our experience, they generally work as expected,
 | 
			
		||||
    // just be aware of this issue when enabling this option.
 | 
			
		||||
    cssSourceMap: false
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  build: {
 | 
			
		||||
    // Template for index.html
 | 
			
		||||
    index: path.resolve(__dirname, '../dist/index.html'),
 | 
			
		||||
 | 
			
		||||
    // Paths
 | 
			
		||||
    assetsRoot: path.resolve(__dirname, '../dist'),
 | 
			
		||||
    assetsSubDirectory: 'static',
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * You can set by youself according to actual condition
 | 
			
		||||
     * You will need to set this if you plan to deploy your site under a sub path,
 | 
			
		||||
     * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
 | 
			
		||||
     * then assetsPublicPath should be set to "/bar/".
 | 
			
		||||
     * In most cases please use '/' !!!
 | 
			
		||||
     */
 | 
			
		||||
    assetsPublicPath: '/',
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Source Maps
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    productionSourceMap: false,
 | 
			
		||||
    // https://webpack.js.org/configuration/devtool/#production
 | 
			
		||||
    devtool: 'source-map',
 | 
			
		||||
 | 
			
		||||
    // Gzip off by default as many popular static hosts such as
 | 
			
		||||
    // Surge or Netlify already gzip all static assets for you.
 | 
			
		||||
    // Before setting to `true`, make sure to:
 | 
			
		||||
    // npm install --save-dev compression-webpack-plugin
 | 
			
		||||
    productionGzip: false,
 | 
			
		||||
    productionGzipExtensions: ['js', 'css'],
 | 
			
		||||
 | 
			
		||||
    // Run the build command with an extra argument to
 | 
			
		||||
    // View the bundle analyzer report after build finishes:
 | 
			
		||||
    // `npm run build --report`
 | 
			
		||||
    // Set to `true` or `false` to always turn it on or off
 | 
			
		||||
    bundleAnalyzerReport: process.env.npm_config_report || false,
 | 
			
		||||
 | 
			
		||||
    // `npm run build:prod --generate_report`
 | 
			
		||||
    generateAnalyzerReport: process.env.npm_config_generate_report || false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								config/prod.env.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
module.exports = {
 | 
			
		||||
  NODE_ENV: '"production"',
 | 
			
		||||
  BASE_API: '"./"'
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								config/test.env.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const merge = require('webpack-merge')
 | 
			
		||||
const prodEnv = require('./prod.env')
 | 
			
		||||
 | 
			
		||||
module.exports = merge(prodEnv, {
 | 
			
		||||
  NODE_ENV: '"testing"',
 | 
			
		||||
  BASE_API: '"./"'
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										31
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,31 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset="utf-8">
 | 
			
		||||
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
 | 
			
		||||
  <title>AJ-Report</title>
 | 
			
		||||
  <link rel='stylesheet' href='./static/luckysheet/plugins/css/pluginsCss.css' />
 | 
			
		||||
  <link rel='stylesheet' href='./static/luckysheet/plugins/plugins.css' />
 | 
			
		||||
  <link rel='stylesheet' href='./static/luckysheet/css/luckysheet.css' />
 | 
			
		||||
  <!-- <link rel='stylesheet' href='./static/luckysheet/assets/iconfont/iconfont.css' /> -->
 | 
			
		||||
  <script src="./static/luckysheet/plugins/js/plugin.js"></script>
 | 
			
		||||
  <script src="./static/luckysheet/luckysheet.umd.js"></script>
 | 
			
		||||
 | 
			
		||||
<!--  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/css/pluginsCss.css' />-->
 | 
			
		||||
<!--  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/plugins.css' />-->
 | 
			
		||||
<!--  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/css/luckysheet.css' />-->
 | 
			
		||||
<!--  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet/dist/assets/iconfont/iconfont.css' />-->
 | 
			
		||||
<!--  <script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/js/plugin.js"></script>-->
 | 
			
		||||
<!--  <script src="https://cdn.jsdelivr.net/npm/luckysheet/dist/luckysheet.umd.js"></script>-->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
  <div id="app"></div>
 | 
			
		||||
  <!-- built files will be auto injected -->
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										104
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,104 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mirror-manager",
 | 
			
		||||
  "version": "3.8.0",
 | 
			
		||||
  "description": "mirror-manager",
 | 
			
		||||
  "author": "mirror-team@anji-plus.com",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
 | 
			
		||||
    "start": "npm run dev",
 | 
			
		||||
    "build": "cross-env NODE_ENV=production node build/build.js",
 | 
			
		||||
    "build:dev": "cross-env NODE_ENV=development node build/build.js",
 | 
			
		||||
    "build:test": "cross-env NODE_ENV=testing node build/build.js",
 | 
			
		||||
    "build:prod": "cross-env NODE_ENV=production node build/build.js"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@ckeditor/ckeditor5-build-decoupled-document": "^23.1.0",
 | 
			
		||||
    "@smallwei/avue": "^2.8.23",
 | 
			
		||||
    "axios": "0.18.0",
 | 
			
		||||
    "chokidar": "^3.5.2",
 | 
			
		||||
    "codemirror": "^5.58.1",
 | 
			
		||||
    "crypto-js": "^3.1.9-1",
 | 
			
		||||
    "echarts": "^4.9.0",
 | 
			
		||||
    "echarts-gl": "^1.1.1",
 | 
			
		||||
    "element-ui": "^2.9.2",
 | 
			
		||||
    "js-cookie": "2.2.0",
 | 
			
		||||
    "jsbarcode": "^3.11.4",
 | 
			
		||||
    "miment": "^0.0.9",
 | 
			
		||||
    "moment": "^2.29.1",
 | 
			
		||||
    "monaco-editor": "^0.20.0",
 | 
			
		||||
    "normalize.css": "7.0.0",
 | 
			
		||||
    "nprogress": "0.2.0",
 | 
			
		||||
    "qrcodejs2": "0.0.2",
 | 
			
		||||
    "sortablejs": "^1.10.2",
 | 
			
		||||
    "uninstall": "0.0.0",
 | 
			
		||||
    "v-chart": "^1.0.0",
 | 
			
		||||
    "vue": "2.6.11",
 | 
			
		||||
    "vue-codemirror": "^4.0.6",
 | 
			
		||||
    "vue-color": "^2.8.1",
 | 
			
		||||
    "vue-drag-resize": "^1.5.4",
 | 
			
		||||
    "vue-echarts": "^5.0.0-beta.0",
 | 
			
		||||
    "vue-json-editor": "^1.4.3",
 | 
			
		||||
    "vue-router": "3.0.1",
 | 
			
		||||
    "vue-ruler-tool": "^1.2.4",
 | 
			
		||||
    "vue-superslide": "^0.1.1",
 | 
			
		||||
    "vuedraggable": "^2.24.1",
 | 
			
		||||
    "vuex": "3.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "autoprefixer": "8.5.0",
 | 
			
		||||
    "babel-core": "6.26.0",
 | 
			
		||||
    "babel-helper-vue-jsx-merge-props": "2.0.3",
 | 
			
		||||
    "babel-loader": "7.1.5",
 | 
			
		||||
    "babel-plugin-syntax-jsx": "6.18.0",
 | 
			
		||||
    "babel-plugin-transform-runtime": "6.23.0",
 | 
			
		||||
    "babel-plugin-transform-vue-jsx": "3.7.0",
 | 
			
		||||
    "babel-preset-env": "1.7.0",
 | 
			
		||||
    "babel-preset-stage-2": "6.24.1",
 | 
			
		||||
    "chalk": "2.4.1",
 | 
			
		||||
    "copy-webpack-plugin": "4.5.2",
 | 
			
		||||
    "cross-env": "^5.2.0",
 | 
			
		||||
    "css-loader": "1.0.0",
 | 
			
		||||
    "eventsource-polyfill": "0.9.6",
 | 
			
		||||
    "file-loader": "1.1.11",
 | 
			
		||||
    "friendly-errors-webpack-plugin": "1.7.0",
 | 
			
		||||
    "html-webpack-plugin": "4.0.0-alpha",
 | 
			
		||||
    "js-md5": "^0.7.3",
 | 
			
		||||
    "mini-css-extract-plugin": "0.4.1",
 | 
			
		||||
    "monaco-editor-webpack-plugin": "^4.1.1",
 | 
			
		||||
    "node-notifier": "5.2.1",
 | 
			
		||||
    "node-sass": "^4.7.2",
 | 
			
		||||
    "optimize-css-assets-webpack-plugin": "5.0.0",
 | 
			
		||||
    "ora": "3.0.0",
 | 
			
		||||
    "path-to-regexp": "2.4.0",
 | 
			
		||||
    "portfinder": "1.0.16",
 | 
			
		||||
    "postcss-import": "12.0.0",
 | 
			
		||||
    "postcss-loader": "2.1.6",
 | 
			
		||||
    "postcss-url": "7.3.2",
 | 
			
		||||
    "rimraf": "2.6.2",
 | 
			
		||||
    "sass-loader": "7.0.3",
 | 
			
		||||
    "script-ext-html-webpack-plugin": "2.0.1",
 | 
			
		||||
    "semver": "5.5.0",
 | 
			
		||||
    "shelljs": "0.8.2",
 | 
			
		||||
    "svg-sprite-loader": "3.8.0",
 | 
			
		||||
    "svgo": "1.0.5",
 | 
			
		||||
    "uglifyjs-webpack-plugin": "1.2.7",
 | 
			
		||||
    "url-loader": "1.0.1",
 | 
			
		||||
    "vue-loader": "15.3.0",
 | 
			
		||||
    "vue-style-loader": "4.1.2",
 | 
			
		||||
    "vue-template-compiler": "2.6.11",
 | 
			
		||||
    "webpack": "4.16.5",
 | 
			
		||||
    "webpack-bundle-analyzer": "2.13.1",
 | 
			
		||||
    "webpack-cli": "3.1.0",
 | 
			
		||||
    "webpack-dev-server": "3.1.5",
 | 
			
		||||
    "webpack-merge": "4.1.4"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">= 6.0.0",
 | 
			
		||||
    "npm": ">= 3.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "browserslist": [
 | 
			
		||||
    "> 1%",
 | 
			
		||||
    "last 2 versions",
 | 
			
		||||
    "not ie <= 8"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,48 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div id="app">
 | 
			
		||||
    <router-view v-if="isRouterAlive" />
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import "@/assets/iconfont/iconfont.css";
 | 
			
		||||
import { initDictToLocalstorage } from "@/api/dict-data";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "App",
 | 
			
		||||
  provide() {
 | 
			
		||||
    return {
 | 
			
		||||
      reload: this.reload
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      isRouterAlive: false
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
    $route(to, form) {
 | 
			
		||||
      if (to.path == "/login") {
 | 
			
		||||
        this.queryDictName();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {},
 | 
			
		||||
  created() {
 | 
			
		||||
    this.queryDictName();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    queryDictName() {
 | 
			
		||||
      // 初始化数据字典到浏览器本地缓存
 | 
			
		||||
      initDictToLocalstorage(() => {
 | 
			
		||||
        this.isRouterAlive = true;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    reload() {
 | 
			
		||||
      this.isRouterAlive = false;
 | 
			
		||||
      this.$nextTick(function() {
 | 
			
		||||
        this.isRouterAlive = true;
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										71
									
								
								src/api/GaeaReport.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,71 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
import {getShareToken, getToken} from "@/utils/auth";
 | 
			
		||||
 | 
			
		||||
// 设计报表
 | 
			
		||||
export function design(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'report/design',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 预览报表,渲染数据
 | 
			
		||||
export function preview(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportExcel/preview',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    headers: { 'Share-Token': getShareToken(), 'Authorization': getToken() },
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导出报表
 | 
			
		||||
export function exportExcel(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportExcel/exportExcel',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导出报表
 | 
			
		||||
export function exportPdf(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportExcel/exportPdf',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//  获取所有数据集
 | 
			
		||||
export function queryAllDataSet() {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/queryAllDataSet',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//  获取对应数据集的列集合
 | 
			
		||||
export function detail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/detailBysetId/' + data,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//  获取对应数据集的列集合
 | 
			
		||||
export function detailBysetCode(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/detailBysetCode/' + data,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//  根据reportCode获取报表表格详情
 | 
			
		||||
export function detailByReportCode(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportExcel/detailByReportCode/' + data,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								src/api/accessAuthority.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,42 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function accessAuthorityList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessAuthority/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessAuthorityAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessAuthority',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessAuthorityDeleteBatch(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessAuthority/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessAuthorityUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessAuthority',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessAuthorityDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessAuthority/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { accessAuthorityList, accessAuthorityAdd, accessAuthorityDeleteBatch, accessAuthorityUpdate, accessAuthorityDetail }
 | 
			
		||||
							
								
								
									
										58
									
								
								src/api/accessRole.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,58 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function accessRoleList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessRoleAdd (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessRoleDeleteBatch (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessRoleUpdate (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessRoleDetail (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessRoleAuthorityTree (roleCode) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole/authorityTree/' + roleCode,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function saveAuthorityTree (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessRole/saveAuthorityTree',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default { accessRoleList, accessRoleAdd, accessRoleDeleteBatch, accessRoleUpdate, accessRoleDetail, accessRoleAuthorityTree, saveAuthorityTree }
 | 
			
		||||
							
								
								
									
										59
									
								
								src/api/accessUser.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,59 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function accessUserList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessUserAdd (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessUserDeleteBatch (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessUserUpdate (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function accessUserDetail (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export function getRoleTree (loginName) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/roleTree/' + loginName,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function saveRoleTree (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/saveRoleTree',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default { accessUserList, accessUserAdd, accessUserDeleteBatch, accessUserUpdate, accessUserDetail, getRoleTree, saveRoleTree }
 | 
			
		||||
							
								
								
									
										71
									
								
								src/api/axios.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,71 @@
 | 
			
		||||
import axios from 'axios';
 | 
			
		||||
import { Message, MessageBox } from 'element-ui';
 | 
			
		||||
axios.defaults.baseURL = process.env.BASE_API
 | 
			
		||||
const service = axios.create({
 | 
			
		||||
  withCredentials: false,
 | 
			
		||||
  timeout: 60000,
 | 
			
		||||
  headers: {
 | 
			
		||||
    'Content-Type': 'application/json',
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
service.interceptors.request.use(
 | 
			
		||||
  config => {
 | 
			
		||||
    return config
 | 
			
		||||
  },
 | 
			
		||||
  error => {
 | 
			
		||||
    // Do something with request error 
 | 
			
		||||
    Promise.reject(error)
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// response interceptor
 | 
			
		||||
service.interceptors.response.use(
 | 
			
		||||
  response => {
 | 
			
		||||
    const res = response.data;
 | 
			
		||||
    if (res.code == 200) {
 | 
			
		||||
      return res
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    else if (res.code == '50014') {
 | 
			
		||||
      //登录超时或被登出,弹确认框,用户确认后,跳转到登录页面
 | 
			
		||||
      MessageBox({
 | 
			
		||||
        message: "当前登录已失效或异地登录,请重新登录",
 | 
			
		||||
        type: 'error',
 | 
			
		||||
        duration: 3 * 1000,
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        sessionStorage.clear();
 | 
			
		||||
        localStorage.clear();
 | 
			
		||||
        window.location.href = "/";
 | 
			
		||||
      }).catch(err => {
 | 
			
		||||
      })
 | 
			
		||||
    } else if (res.code == "3100" || res.code == "3101") {
 | 
			
		||||
      return res;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      Message({
 | 
			
		||||
        message: res.repMsg || res.message,
 | 
			
		||||
        type: 'error',
 | 
			
		||||
        duration: 3 * 1000
 | 
			
		||||
      })
 | 
			
		||||
      return res;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  error => {
 | 
			
		||||
    var errorStatus = error.response.code;
 | 
			
		||||
    var errorData = error.response.data;
 | 
			
		||||
    var messageTxt = "";
 | 
			
		||||
    if (errorStatus != 200) {
 | 
			
		||||
      messageTxt = "服务器内部错误,请联系管理员";
 | 
			
		||||
    } else {
 | 
			
		||||
      messageTxt = '失败原因:' + errorData.code + '--' + errorData.repMsg;
 | 
			
		||||
    }
 | 
			
		||||
    Message({
 | 
			
		||||
      message: messageTxt,
 | 
			
		||||
      type: 'error',
 | 
			
		||||
      duration: 5 * 1000
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
export default service
 | 
			
		||||
							
								
								
									
										75
									
								
								src/api/bigscreen.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,75 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
import { getShareToken, getToken } from "@/utils/auth";
 | 
			
		||||
import axios from 'axios';
 | 
			
		||||
 | 
			
		||||
// 保存大屏设计
 | 
			
		||||
export function insertDashboard(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportDashboard',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 预览、查询大屏详情
 | 
			
		||||
export function detailDashboard(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportDashboard/' + data,
 | 
			
		||||
    headers: { 'Share-Token': getShareToken(), 'Authorization': getToken() },
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 数据集查询
 | 
			
		||||
export function queryAllDataSet(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/queryAllDataSet',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获取数据集信息
 | 
			
		||||
export function detailBysetId(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/detailBysetId/' + data,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获取动态数据
 | 
			
		||||
export function getData(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportDashboard/getData',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    headers: { 'Share-Token': getShareToken(), 'Authorization': getToken() },
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导出大屏
 | 
			
		||||
export function exportDashboard(data) {
 | 
			
		||||
  return new Promise((resolve) =>{
 | 
			
		||||
    axios({
 | 
			
		||||
      method:'get',
 | 
			
		||||
      url: process.env.BASE_API + '/reportDashboard/export',
 | 
			
		||||
      headers: { 'Authorization': getToken() },
 | 
			
		||||
      params:data,
 | 
			
		||||
      responseType:'blob'
 | 
			
		||||
    }).then(res =>{
 | 
			
		||||
      resolve(res.data);
 | 
			
		||||
    }).catch(err =>{
 | 
			
		||||
      resolve('error');
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导入大屏
 | 
			
		||||
export function importDashboard(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportDashboard/import',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										64
									
								
								src/api/calculation/calculation.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,64 @@
 | 
			
		||||
import request from '@/api/axios'
 | 
			
		||||
 | 
			
		||||
// 分页查询
 | 
			
		||||
export const reqPageList = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/queryByPage',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 新增
 | 
			
		||||
export const reqAddDeviceType = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/create',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 编辑
 | 
			
		||||
export const reqEditDeviceType = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/updateById',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 删除
 | 
			
		||||
export const reqDeleteDeviceType = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/deleteByIds',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据id查明细
 | 
			
		||||
export const reqDetail =  data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/queryById',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据监控项id 拉取监控项树结构
 | 
			
		||||
export const reqItemTree = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/item/tree',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 计算执行sql 语句 
 | 
			
		||||
export const reqExecuteSql = data => {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/analysis-service/calculate/executeSql',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								src/api/common.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,25 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: qianlishi
 | 
			
		||||
 * @Date: 2020-07-13 15:13:34
 | 
			
		||||
 * @Last Modified by: qianlishi
 | 
			
		||||
 * @Last Modified time: 2021-03-15 13:28:28
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// 数据字典接口
 | 
			
		||||
export function dataDictionary (dictName) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict/select/' + dictName,
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 图片上传接口
 | 
			
		||||
export function uploadImg (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/file/upload',
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										79
									
								
								src/api/dict-data.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,79 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: qianlishi
 | 
			
		||||
 * @Date: 2020-07-13 15:13:17
 | 
			
		||||
 * @Last Modified by: qianlishi
 | 
			
		||||
 * @Last Modified time: 2020-12-15 15:34:34
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
import { setStorageItem } from '@/utils/storage'
 | 
			
		||||
// 数据字典和基础数据查询的相关接口
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 数据字典多类型编码查询接口
 | 
			
		||||
 * type参数 类型 String
 | 
			
		||||
 * type参数 格式 'type'
 | 
			
		||||
 */
 | 
			
		||||
export function getDictList (type) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/gaeaDict/select/${type}`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
export function getDictCodes (project) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/gaeaDict/selectAll/${project}`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 数据字典多类型编码查询接口
 | 
			
		||||
 * typeList参数 类型 Array
 | 
			
		||||
 * typeList参数 格式 ['type1','type2',...]
 | 
			
		||||
 */
 | 
			
		||||
export function getMultipleDictList (typeList) {
 | 
			
		||||
  const types = typeList + ''
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/v1/dict/types`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { types },
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 主数据编码查询接口
 | 
			
		||||
 * typeList参数 类型 Array
 | 
			
		||||
 * typeList参数 格式 ['type1','type2',...]
 | 
			
		||||
 */
 | 
			
		||||
export function getBaseDataList (typeList) {
 | 
			
		||||
  const types = typeList + ''
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/v1/master/types`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { types },
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询所有数据字典接口
 | 
			
		||||
export function getAllDict() {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict/all',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 将所有接口初始化到浏览器本地缓存
 | 
			
		||||
export function initDictToLocalstorage(callback) {
 | 
			
		||||
  getAllDict().then((res) => {
 | 
			
		||||
    if (res.code != 200) {
 | 
			
		||||
      console.error('初始化数据字典到local storage失败: ' + res.message)
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 保存数据字典到localStorage
 | 
			
		||||
    setStorageItem('AJReportDict', res.data)
 | 
			
		||||
    if (callback != null) {
 | 
			
		||||
      callback()
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										75
									
								
								src/api/dict.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,75 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// 字典管理查询
 | 
			
		||||
export function getDictList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 获取单个字典数据
 | 
			
		||||
export function getDictItems(dictCode) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/gaeaDict/select/${dictCode}`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 字典管理新增
 | 
			
		||||
export function dictAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict',
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 字典管理编辑
 | 
			
		||||
export function dictEdit(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict',
 | 
			
		||||
    method: 'PUT',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function dictDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey },
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 字典管理批量删除
 | 
			
		||||
export function dictsDelect(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/gaeaDict/delete/batch`,
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 刷新数据字典
 | 
			
		||||
 * @param data
 | 
			
		||||
 */
 | 
			
		||||
export function freshDict(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDict/freshDict',
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获取国家省份城市
 | 
			
		||||
export function queryCountryCity(value) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/countryCity/select`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: {
 | 
			
		||||
      value: value,
 | 
			
		||||
    },
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
export default { dictDetail, getDictList, dictAdd, dictEdit, dictsDelect }
 | 
			
		||||
							
								
								
									
										47
									
								
								src/api/dictItem.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,47 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// 字典项管理查询
 | 
			
		||||
export function dictItemPageList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDictItem/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 字典项管理新增
 | 
			
		||||
export function dictItemAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDictItem',
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 字典项管理编辑
 | 
			
		||||
export function dictItemEdit(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDictItem',
 | 
			
		||||
    method: 'PUT',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 字典项管理批量删除
 | 
			
		||||
export function dictsItemDelect(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/gaeaDictItem/delete/batch`,
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function dictItemDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/gaeaDictItem/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey },
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { dictItemDetail, dictItemPageList, dictItemAdd, dictItemEdit, dictsItemDelect }
 | 
			
		||||
							
								
								
									
										58
									
								
								src/api/file.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,58 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zyk
 | 
			
		||||
 * @Date: 2021-02-23 15:13:17
 | 
			
		||||
 * @Last Modified by: zyk
 | 
			
		||||
 * @Last Modified time: 2021-03-15 13:28:36
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
// 导出中心
 | 
			
		||||
 | 
			
		||||
export function download(fileId) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/file/download/${fileId}`,
 | 
			
		||||
    responseType: 'blob',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function fileList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/file/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function fileAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/file',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function fileDel(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/file/delete/batch`,
 | 
			
		||||
    method: 'POST',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function fileUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/file',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function fileDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/file/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { fileList, fileAdd, fileDel, fileUpdate, fileDetail }
 | 
			
		||||
							
								
								
									
										25
									
								
								src/api/login/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,25 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function login (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/login',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function logout () {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'accessUser/logout',
 | 
			
		||||
    method: 'post'
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 登录之后   根据旧修改密码
 | 
			
		||||
export function reqUpdatePassword (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/accessUser/updatePassword',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										131
									
								
								src/api/report.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,131 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: qianlishi
 | 
			
		||||
 * @Date: 2020-07-13 15:13:37
 | 
			
		||||
 * @Last Modified by: qianlishi
 | 
			
		||||
 * @Last Modified time: 2021-03-04 10:46:26
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// resultset
 | 
			
		||||
export function dataSetPreview (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/dataSet/detailBysetId/${data.id}`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function addDataSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSet',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
export function editDataSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSet',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// delete dataset
 | 
			
		||||
export function deleteDataSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSet/' + data.id,
 | 
			
		||||
    method: 'delete',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 下拉数据源
 | 
			
		||||
export function queryAllDataSourceSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSource/queryAllDataSource',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 数据集高级规则js验证
 | 
			
		||||
export function verificationSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSetParam/verification',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 测试数据转换,以及返回数据table列表
 | 
			
		||||
export function testTransformSet (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSet/testTransform',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// report
 | 
			
		||||
export function reportPageList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/pageList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// report
 | 
			
		||||
export function addReport (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// report
 | 
			
		||||
export function editReport (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// report
 | 
			
		||||
export function delReport (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/delReport',
 | 
			
		||||
    method: 'delete',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// report
 | 
			
		||||
export function detailReport (id, accessKey) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/report/${id}?accessKey=${accessKey}`,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// reportExcel
 | 
			
		||||
export function addReportExcel (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/reportExcel',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// reportExcel
 | 
			
		||||
export function editReportExcel (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/reportExcel',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// /dataSet/pageList
 | 
			
		||||
export function dataSetPageList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSet/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								src/api/reportDataSet.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,42 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function reportDataSetList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSetAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSetDeleteBatch(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSetUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSetDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSet/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { reportDataSetList, reportDataSetAdd, reportDataSetDeleteBatch, reportDataSetUpdate, reportDataSetDetail }
 | 
			
		||||
							
								
								
									
										51
									
								
								src/api/reportDataSource.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,51 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function reportDataSourceList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSource/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSourceAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSource',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSourceDeleteBatch(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSource/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSourceUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSource',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDataSourceDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'dataSource/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function testConnection (data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/dataSource/testConnection',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { reportDataSourceList, reportDataSourceAdd, reportDataSourceDeleteBatch, reportDataSourceUpdate, reportDataSourceDetail, testConnection}
 | 
			
		||||
							
								
								
									
										66
									
								
								src/api/reportShare.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,66 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function reportShareList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportDashboard/share',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function excelShareAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportExcel/share',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareDelay(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare/shareDelay',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareDeleteBatch(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: {accessKey: data.accessKey}
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportShareDetailByCode(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: 'reportShare/detailByCode',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: {shareCode: data}
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {reportShareList, reportShareAdd, reportShareDeleteBatch, reportShareUpdate, reportShareDetail}
 | 
			
		||||
							
								
								
									
										50
									
								
								src/api/reportmanage.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,50 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function reportList(params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/pageList',
 | 
			
		||||
    method: 'GET',
 | 
			
		||||
    params,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportAdd(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDeleteBatch(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/delete/batch',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportUpdate(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report',
 | 
			
		||||
    method: 'put', data,
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportDetail(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/' + data.id,
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: { accessKey: data.accessKey }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function reportCopy(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/report/copy',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default { reportList, reportAdd, reportDeleteBatch, reportUpdate, reportDetail }
 | 
			
		||||
							
								
								
									
										70
									
								
								src/api/upload.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,70 @@
 | 
			
		||||
import axios from 'axios';
 | 
			
		||||
import { Message, MessageBox } from 'element-ui';
 | 
			
		||||
import { delItem } from '@/utils/storage';
 | 
			
		||||
 | 
			
		||||
axios.defaults.baseURL = process.env.BASE_API
 | 
			
		||||
// axios.defaults.baseURL = 'http://10.108.12.23:8080'   // 德明本地
 | 
			
		||||
// axios.defaults.baseURL = "http://haitongnla.test.anji-plus.com"
 | 
			
		||||
// axios.defaults.baseURL = "http://10.108.26.163:8080"
 | 
			
		||||
 | 
			
		||||
const service = axios.create({
 | 
			
		||||
  withCredentials: true,
 | 
			
		||||
  timeout: 60000,
 | 
			
		||||
  headers: {
 | 
			
		||||
    'Content-Type': 'multipart/form-data'
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// response interceptor
 | 
			
		||||
service.interceptors.response.use(
 | 
			
		||||
  response => {
 | 
			
		||||
    const res = response.data;
 | 
			
		||||
    if (res.repCode == '0000') {
 | 
			
		||||
      return res
 | 
			
		||||
    }
 | 
			
		||||
    else if (res.repCode == '0024') {
 | 
			
		||||
     
 | 
			
		||||
      //登录超时或被登出,弹确认框,用户确认后,跳转到登录页面
 | 
			
		||||
      MessageBox({
 | 
			
		||||
        message: "当前登录已失效或异地登录,请重新登录",
 | 
			
		||||
        type: 'error',
 | 
			
		||||
        duration: 3 * 1000,
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        console.log(1)
 | 
			
		||||
        sessionStorage.clear();
 | 
			
		||||
        localStorage.clear();
 | 
			
		||||
        // location.reload();
 | 
			
		||||
        window.location.href = "/";
 | 
			
		||||
      }).catch(err => {
 | 
			
		||||
        console.log(2)
 | 
			
		||||
      })
 | 
			
		||||
    }else if(res.repCode == "3100" || res.repCode == "3101"){
 | 
			
		||||
      return res;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      Message({
 | 
			
		||||
        message: res.repMsg,
 | 
			
		||||
        type: 'error',
 | 
			
		||||
        duration: 3 * 1000
 | 
			
		||||
      })
 | 
			
		||||
      return res;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  error => {
 | 
			
		||||
    var errorStatus = error.response.status;
 | 
			
		||||
    var errorData = error.response.data;
 | 
			
		||||
    var messageTxt = "";
 | 
			
		||||
    if (errorStatus != 200) {
 | 
			
		||||
      messageTxt = "服务器内部错误,请联系管理员";
 | 
			
		||||
    } else {
 | 
			
		||||
      messageTxt = '失败原因:' + errorData.repCode + '--' + errorData.repMsg;
 | 
			
		||||
    }
 | 
			
		||||
    Message({
 | 
			
		||||
      message: messageTxt,
 | 
			
		||||
      type: 'error',
 | 
			
		||||
      duration: 5 * 1000
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
export default service
 | 
			
		||||
							
								
								
									
										539
									
								
								src/assets/iconfont/demo.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,539 @@
 | 
			
		||||
/* Logo 字体 */
 | 
			
		||||
@font-face {
 | 
			
		||||
  font-family: "iconfont logo";
 | 
			
		||||
  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
 | 
			
		||||
  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
 | 
			
		||||
    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
 | 
			
		||||
    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
 | 
			
		||||
    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.logo {
 | 
			
		||||
  font-family: "iconfont logo";
 | 
			
		||||
  font-size: 160px;
 | 
			
		||||
  font-style: normal;
 | 
			
		||||
  -webkit-font-smoothing: antialiased;
 | 
			
		||||
  -moz-osx-font-smoothing: grayscale;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* tabs */
 | 
			
		||||
.nav-tabs {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.nav-tabs .nav-more {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  height: 42px;
 | 
			
		||||
  line-height: 42px;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#tabs {
 | 
			
		||||
  border-bottom: 1px solid #eee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#tabs li {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  width: 100px;
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  line-height: 40px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 16px;
 | 
			
		||||
  border-bottom: 2px solid transparent;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#tabs .active {
 | 
			
		||||
  border-bottom-color: #f00;
 | 
			
		||||
  color: #222;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tab-container .content {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 页面布局 */
 | 
			
		||||
.main {
 | 
			
		||||
  padding: 30px 100px;
 | 
			
		||||
  width: 960px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.main .logo {
 | 
			
		||||
  color: #333;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  margin-bottom: 30px;
 | 
			
		||||
  line-height: 1;
 | 
			
		||||
  height: 110px;
 | 
			
		||||
  margin-top: -50px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  *zoom: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.main .logo a {
 | 
			
		||||
  font-size: 160px;
 | 
			
		||||
  color: #333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.helps {
 | 
			
		||||
  margin-top: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.helps pre {
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
  border: solid 1px #e7e1cd;
 | 
			
		||||
  background-color: #fffdef;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists {
 | 
			
		||||
  width: 100% !important;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  *zoom: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists li {
 | 
			
		||||
  width: 100px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
  margin-right: 20px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  list-style: none !important;
 | 
			
		||||
  cursor: default;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists li .code-name {
 | 
			
		||||
  line-height: 1.2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists .icon {
 | 
			
		||||
  display: block;
 | 
			
		||||
  height: 100px;
 | 
			
		||||
  line-height: 100px;
 | 
			
		||||
  font-size: 42px;
 | 
			
		||||
  margin: 10px auto;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
 | 
			
		||||
  -moz-transition: font-size 0.25s linear, width 0.25s linear;
 | 
			
		||||
  transition: font-size 0.25s linear, width 0.25s linear;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists .icon:hover {
 | 
			
		||||
  font-size: 100px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists .svg-icon {
 | 
			
		||||
  /* 通过设置 font-size 来改变图标大小 */
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  /* 图标和文字相邻时,垂直对齐 */
 | 
			
		||||
  vertical-align: -0.15em;
 | 
			
		||||
  /* 通过设置 color 来改变 SVG 的颜色/fill */
 | 
			
		||||
  fill: currentColor;
 | 
			
		||||
  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
 | 
			
		||||
      normalize.css 中也包含这行 */
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon_lists li .name,
 | 
			
		||||
.icon_lists li .code-name {
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* markdown 样式 */
 | 
			
		||||
.markdown {
 | 
			
		||||
  color: #666;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  line-height: 1.8;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.highlight {
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown img {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h1 {
 | 
			
		||||
  color: #404040;
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  line-height: 40px;
 | 
			
		||||
  margin-bottom: 24px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h2,
 | 
			
		||||
.markdown h3,
 | 
			
		||||
.markdown h4,
 | 
			
		||||
.markdown h5,
 | 
			
		||||
.markdown h6 {
 | 
			
		||||
  color: #404040;
 | 
			
		||||
  margin: 1.6em 0 0.6em 0;
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h1 {
 | 
			
		||||
  font-size: 28px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h2 {
 | 
			
		||||
  font-size: 22px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h3 {
 | 
			
		||||
  font-size: 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h4 {
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h5 {
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h6 {
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown hr {
 | 
			
		||||
  height: 1px;
 | 
			
		||||
  border: 0;
 | 
			
		||||
  background: #e9e9e9;
 | 
			
		||||
  margin: 16px 0;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown p {
 | 
			
		||||
  margin: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>p,
 | 
			
		||||
.markdown>blockquote,
 | 
			
		||||
.markdown>.highlight,
 | 
			
		||||
.markdown>ol,
 | 
			
		||||
.markdown>ul {
 | 
			
		||||
  width: 80%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown ul>li {
 | 
			
		||||
  list-style: circle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>ul li,
 | 
			
		||||
.markdown blockquote ul>li {
 | 
			
		||||
  margin-left: 20px;
 | 
			
		||||
  padding-left: 4px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>ul li p,
 | 
			
		||||
.markdown>ol li p {
 | 
			
		||||
  margin: 0.6em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown ol>li {
 | 
			
		||||
  list-style: decimal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>ol li,
 | 
			
		||||
.markdown blockquote ol>li {
 | 
			
		||||
  margin-left: 20px;
 | 
			
		||||
  padding-left: 4px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown code {
 | 
			
		||||
  margin: 0 3px;
 | 
			
		||||
  padding: 0 5px;
 | 
			
		||||
  background: #eee;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown strong,
 | 
			
		||||
.markdown b {
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>table {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
  border-spacing: 0px;
 | 
			
		||||
  empty-cells: show;
 | 
			
		||||
  border: 1px solid #e9e9e9;
 | 
			
		||||
  width: 95%;
 | 
			
		||||
  margin-bottom: 24px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>table th {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>table th,
 | 
			
		||||
.markdown>table td {
 | 
			
		||||
  border: 1px solid #e9e9e9;
 | 
			
		||||
  padding: 8px 16px;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>table th {
 | 
			
		||||
  background: #F7F7F7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown blockquote {
 | 
			
		||||
  font-size: 90%;
 | 
			
		||||
  color: #999;
 | 
			
		||||
  border-left: 4px solid #e9e9e9;
 | 
			
		||||
  padding-left: 0.8em;
 | 
			
		||||
  margin: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown blockquote p {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown .anchor {
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  transition: opacity 0.3s ease;
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown .waiting {
 | 
			
		||||
  color: #ccc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown h1:hover .anchor,
 | 
			
		||||
.markdown h2:hover .anchor,
 | 
			
		||||
.markdown h3:hover .anchor,
 | 
			
		||||
.markdown h4:hover .anchor,
 | 
			
		||||
.markdown h5:hover .anchor,
 | 
			
		||||
.markdown h6:hover .anchor {
 | 
			
		||||
  opacity: 1;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.markdown>br,
 | 
			
		||||
.markdown>p>br {
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.hljs {
 | 
			
		||||
  display: block;
 | 
			
		||||
  background: white;
 | 
			
		||||
  padding: 0.5em;
 | 
			
		||||
  color: #333333;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-comment,
 | 
			
		||||
.hljs-meta {
 | 
			
		||||
  color: #969896;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-string,
 | 
			
		||||
.hljs-variable,
 | 
			
		||||
.hljs-template-variable,
 | 
			
		||||
.hljs-strong,
 | 
			
		||||
.hljs-emphasis,
 | 
			
		||||
.hljs-quote {
 | 
			
		||||
  color: #df5000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-keyword,
 | 
			
		||||
.hljs-selector-tag,
 | 
			
		||||
.hljs-type {
 | 
			
		||||
  color: #a71d5d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-literal,
 | 
			
		||||
.hljs-symbol,
 | 
			
		||||
.hljs-bullet,
 | 
			
		||||
.hljs-attribute {
 | 
			
		||||
  color: #0086b3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-section,
 | 
			
		||||
.hljs-name {
 | 
			
		||||
  color: #63a35c;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-tag {
 | 
			
		||||
  color: #333333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-title,
 | 
			
		||||
.hljs-attr,
 | 
			
		||||
.hljs-selector-id,
 | 
			
		||||
.hljs-selector-class,
 | 
			
		||||
.hljs-selector-attr,
 | 
			
		||||
.hljs-selector-pseudo {
 | 
			
		||||
  color: #795da3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-addition {
 | 
			
		||||
  color: #55a532;
 | 
			
		||||
  background-color: #eaffea;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-deletion {
 | 
			
		||||
  color: #bd2c00;
 | 
			
		||||
  background-color: #ffecec;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hljs-link {
 | 
			
		||||
  text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 代码高亮 */
 | 
			
		||||
/* PrismJS 1.15.0
 | 
			
		||||
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
 | 
			
		||||
/**
 | 
			
		||||
 * prism.js default theme for JavaScript, CSS and HTML
 | 
			
		||||
 * Based on dabblet (http://dabblet.com)
 | 
			
		||||
 * @author Lea Verou
 | 
			
		||||
 */
 | 
			
		||||
code[class*="language-"],
 | 
			
		||||
pre[class*="language-"] {
 | 
			
		||||
  color: black;
 | 
			
		||||
  background: none;
 | 
			
		||||
  text-shadow: 0 1px white;
 | 
			
		||||
  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  white-space: pre;
 | 
			
		||||
  word-spacing: normal;
 | 
			
		||||
  word-break: normal;
 | 
			
		||||
  word-wrap: normal;
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
 | 
			
		||||
  -moz-tab-size: 4;
 | 
			
		||||
  -o-tab-size: 4;
 | 
			
		||||
  tab-size: 4;
 | 
			
		||||
 | 
			
		||||
  -webkit-hyphens: none;
 | 
			
		||||
  -moz-hyphens: none;
 | 
			
		||||
  -ms-hyphens: none;
 | 
			
		||||
  hyphens: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pre[class*="language-"]::-moz-selection,
 | 
			
		||||
pre[class*="language-"] ::-moz-selection,
 | 
			
		||||
code[class*="language-"]::-moz-selection,
 | 
			
		||||
code[class*="language-"] ::-moz-selection {
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
  background: #b3d4fc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pre[class*="language-"]::selection,
 | 
			
		||||
pre[class*="language-"] ::selection,
 | 
			
		||||
code[class*="language-"]::selection,
 | 
			
		||||
code[class*="language-"] ::selection {
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
  background: #b3d4fc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media print {
 | 
			
		||||
 | 
			
		||||
  code[class*="language-"],
 | 
			
		||||
  pre[class*="language-"] {
 | 
			
		||||
    text-shadow: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Code blocks */
 | 
			
		||||
pre[class*="language-"] {
 | 
			
		||||
  padding: 1em;
 | 
			
		||||
  margin: .5em 0;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
:not(pre)>code[class*="language-"],
 | 
			
		||||
pre[class*="language-"] {
 | 
			
		||||
  background: #f5f2f0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Inline code */
 | 
			
		||||
:not(pre)>code[class*="language-"] {
 | 
			
		||||
  padding: .1em;
 | 
			
		||||
  border-radius: .3em;
 | 
			
		||||
  white-space: normal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.comment,
 | 
			
		||||
.token.prolog,
 | 
			
		||||
.token.doctype,
 | 
			
		||||
.token.cdata {
 | 
			
		||||
  color: slategray;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.punctuation {
 | 
			
		||||
  color: #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.namespace {
 | 
			
		||||
  opacity: .7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.property,
 | 
			
		||||
.token.tag,
 | 
			
		||||
.token.boolean,
 | 
			
		||||
.token.number,
 | 
			
		||||
.token.constant,
 | 
			
		||||
.token.symbol,
 | 
			
		||||
.token.deleted {
 | 
			
		||||
  color: #905;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.selector,
 | 
			
		||||
.token.attr-name,
 | 
			
		||||
.token.string,
 | 
			
		||||
.token.char,
 | 
			
		||||
.token.builtin,
 | 
			
		||||
.token.inserted {
 | 
			
		||||
  color: #690;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.operator,
 | 
			
		||||
.token.entity,
 | 
			
		||||
.token.url,
 | 
			
		||||
.language-css .token.string,
 | 
			
		||||
.style .token.string {
 | 
			
		||||
  color: #9a6e3a;
 | 
			
		||||
  background: hsla(0, 0%, 100%, .5);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.atrule,
 | 
			
		||||
.token.attr-value,
 | 
			
		||||
.token.keyword {
 | 
			
		||||
  color: #07a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.function,
 | 
			
		||||
.token.class-name {
 | 
			
		||||
  color: #DD4A68;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.regex,
 | 
			
		||||
.token.important,
 | 
			
		||||
.token.variable {
 | 
			
		||||
  color: #e90;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.important,
 | 
			
		||||
.token.bold {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.italic {
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.token.entity {
 | 
			
		||||
  cursor: help;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3040
									
								
								src/assets/iconfont/demo_index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										511
									
								
								src/assets/iconfont/iconfont.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,511 @@
 | 
			
		||||
@font-face {
 | 
			
		||||
  font-family: "iconfont"; /* Project id 1513211 */
 | 
			
		||||
  src: url('iconfont.woff2?t=1666946350865') format('woff2'),
 | 
			
		||||
       url('iconfont.woff?t=1666946350865') format('woff'),
 | 
			
		||||
       url('iconfont.ttf?t=1666946350865') format('truetype');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfont {
 | 
			
		||||
  font-family: "iconfont" !important;
 | 
			
		||||
  font-size: 16px;
 | 
			
		||||
  font-style: normal;
 | 
			
		||||
  -webkit-font-smoothing: antialiased;
 | 
			
		||||
  -moz-osx-font-smoothing: grayscale;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconleidatu:before {
 | 
			
		||||
  content: "\e640";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconrelitu:before {
 | 
			
		||||
  content: "\e683";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconhuifubeifen:before {
 | 
			
		||||
  content: "\e60d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconundo:before {
 | 
			
		||||
  content: "\e60e";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconciyuntu:before {
 | 
			
		||||
  content: "\e7af";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondaochu:before {
 | 
			
		||||
  content: "\e618";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondaoru:before {
 | 
			
		||||
  content: "\e608";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconduibitupu:before {
 | 
			
		||||
  content: "\e9ca";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhexian:before {
 | 
			
		||||
  content: "\e635";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbianzu23:before {
 | 
			
		||||
  content: "\e621";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconduidietu:before {
 | 
			
		||||
  content: "\e61f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfill_folder:before {
 | 
			
		||||
  content: "\e645";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzidianxiang:before {
 | 
			
		||||
  content: "\e7df";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconAPIwangguan:before {
 | 
			
		||||
  content: "\e66b";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondatabase:before {
 | 
			
		||||
  content: "\e7b6";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbaifenbi:before {
 | 
			
		||||
  content: "\e616";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfolder-o:before {
 | 
			
		||||
  content: "\e70f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconjinlingyingcaiwangtubiao01:before {
 | 
			
		||||
  content: "\e724";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconleft-copy:before {
 | 
			
		||||
  content: "\e6af";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfuzhi1:before {
 | 
			
		||||
  content: "\e626";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhongguoditu:before {
 | 
			
		||||
  content: "\e738";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbiaoge:before {
 | 
			
		||||
  content: "\e625";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icongexingzhuangban:before {
 | 
			
		||||
  content: "\e646";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyibiaopan-chaobiao:before {
 | 
			
		||||
  content: "\e72e";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconnandinggeermeiguitu:before {
 | 
			
		||||
  content: "\e851";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhankai:before {
 | 
			
		||||
  content: "\e631";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconexcel:before {
 | 
			
		||||
  content: "\e650";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbaocun:before {
 | 
			
		||||
  content: "\e737";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconguanbi:before {
 | 
			
		||||
  content: "\e6c5";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconpdf:before {
 | 
			
		||||
  content: "\e614";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfuzhi:before {
 | 
			
		||||
  content: "\e61e";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon020kongxinbingtu:before {
 | 
			
		||||
  content: "\e78c";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshijian:before {
 | 
			
		||||
  content: "\e662";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconsave:before {
 | 
			
		||||
  content: "\e6f6";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icontupian:before {
 | 
			
		||||
  content: "\e612";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhuzhuangtu:before {
 | 
			
		||||
  content: "\e691";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconchaolianjie:before {
 | 
			
		||||
  content: "\e65f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconziyuan:before {
 | 
			
		||||
  content: "\e605";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshipin:before {
 | 
			
		||||
  content: "\ecc1";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconkuangjia:before {
 | 
			
		||||
  content: "\e66a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyulan:before {
 | 
			
		||||
  content: "\e728";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconhengxiangwenzi:before {
 | 
			
		||||
  content: "\e601";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconicon_tubiao_bingtu:before {
 | 
			
		||||
  content: "\e602";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconloudoutu:before {
 | 
			
		||||
  content: "\e6d5";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icontubiaozhexiantu:before {
 | 
			
		||||
  content: "\e630";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhuxiantu:before {
 | 
			
		||||
  content: "\e607";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icontupian1:before {
 | 
			
		||||
  content: "\e81d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyibiaopan:before {
 | 
			
		||||
  content: "\e706";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon1:before {
 | 
			
		||||
  content: "\e63b";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconxiazai:before {
 | 
			
		||||
  content: "\e639";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon11-04:before {
 | 
			
		||||
  content: "\e784";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyouxiang:before {
 | 
			
		||||
  content: "\e769";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbangdingshouji:before {
 | 
			
		||||
  content: "\e64d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshouji:before {
 | 
			
		||||
  content: "\e854";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon52-shouji:before {
 | 
			
		||||
  content: "\e871";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconhome:before {
 | 
			
		||||
  content: "\e610";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconhome2:before {
 | 
			
		||||
  content: "\e61a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconKafka:before {
 | 
			
		||||
  content: "\e65a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshujujieruKafkajiqun:before {
 | 
			
		||||
  content: "\e64f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconkafka:before {
 | 
			
		||||
  content: "\e6f2";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconelasticsearch-Elasticsearch:before {
 | 
			
		||||
  content: "\e853";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconapachekafka:before {
 | 
			
		||||
  content: "\eb3f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconelasticsearch:before {
 | 
			
		||||
  content: "\eb85";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconwentifankui:before {
 | 
			
		||||
  content: "\e8d1";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconwentifankui1:before {
 | 
			
		||||
  content: "\e70e";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconwentifankui2:before {
 | 
			
		||||
  content: "\e643";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconalikafkaxiaoxiduilieKafka:before {
 | 
			
		||||
  content: "\e8a4";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconxiangmuchaxun-chakanshebei:before {
 | 
			
		||||
  content: "\e682";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconelasticsearchElasticsearch:before {
 | 
			
		||||
  content: "\e6a1";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon511tongji_shutu:before {
 | 
			
		||||
  content: "\e64a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfenxiang1:before {
 | 
			
		||||
  content: "\e615";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfenxiang2:before {
 | 
			
		||||
  content: "\e60f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfenxiang_2:before {
 | 
			
		||||
  content: "\e600";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconNMStubiao-:before {
 | 
			
		||||
  content: "\e628";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconwanchenganquanshijian:before {
 | 
			
		||||
  content: "\e68a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconeventbridgexiaoxishijianzongxian:before {
 | 
			
		||||
  content: "\e74d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshu:before {
 | 
			
		||||
  content: "\e629";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshebeiguanji:before {
 | 
			
		||||
  content: "\e61d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconhaofangtuo400iconfontduanxin:before {
 | 
			
		||||
  content: "\e6d8";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconnavicon-ywcs:before {
 | 
			
		||||
  content: "\e661";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconliebiao:before {
 | 
			
		||||
  content: "\e660";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbianji:before {
 | 
			
		||||
  content: "\e60c";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyoujian:before {
 | 
			
		||||
  content: "\e63a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshejiaodingding:before {
 | 
			
		||||
  content: "\e678";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzidianguanli:before {
 | 
			
		||||
  content: "\e624";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icontubiao:before {
 | 
			
		||||
  content: "\e73f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondingding:before {
 | 
			
		||||
  content: "\e690";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconduanxin:before {
 | 
			
		||||
  content: "\e603";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondirectmailyoujiantuisong:before {
 | 
			
		||||
  content: "\e714";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshebeisheshi:before {
 | 
			
		||||
  content: "\e61c";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icontongzhi:before {
 | 
			
		||||
  content: "\e606";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconrizhi:before {
 | 
			
		||||
  content: "\e663";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconchufaqipeizhi-hui:before {
 | 
			
		||||
  content: "\e689";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconvcsshijuejisuanfuwu:before {
 | 
			
		||||
  content: "\e759";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbar_icon_shebei:before {
 | 
			
		||||
  content: "\e60a";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconuser-before:before {
 | 
			
		||||
  content: "\e617";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconkemuweihutubiao:before {
 | 
			
		||||
  content: "\e60b";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconaccounting-subjects:before {
 | 
			
		||||
  content: "\e677";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconRectangleCopy:before {
 | 
			
		||||
  content: "\e6dd";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconchengbenshujuguanli:before {
 | 
			
		||||
  content: "\e6c7";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconjibenshuju:before {
 | 
			
		||||
  content: "\e71d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconB-shengshiqu:before {
 | 
			
		||||
  content: "\e72d";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzuzhijigou:before {
 | 
			
		||||
  content: "\e66e";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconanniu:before {
 | 
			
		||||
  content: "\e8c5";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconcaidan2:before {
 | 
			
		||||
  content: "\e61b";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconwenhao:before {
 | 
			
		||||
  content: "\e67f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconlajitong:before {
 | 
			
		||||
  content: "\e636";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhongzhimima:before {
 | 
			
		||||
  content: "\e620";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshezhi:before {
 | 
			
		||||
  content: "\e68f";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzhongzhuan:before {
 | 
			
		||||
  content: "\e69b";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconadd:before {
 | 
			
		||||
  content: "\e6b9";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconminus:before {
 | 
			
		||||
  content: "\e6ba";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconpassword:before {
 | 
			
		||||
  content: "\e622";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconyonghu:before {
 | 
			
		||||
  content: "\e604";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconquanxian:before {
 | 
			
		||||
  content: "\e633";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconjiaose1:before {
 | 
			
		||||
  content: "\e64c";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconzidian:before {
 | 
			
		||||
  content: "\e716";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconcssz:before {
 | 
			
		||||
  content: "\e672";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconbianji1:before {
 | 
			
		||||
  content: "\e642";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icondfzq-:before {
 | 
			
		||||
  content: "\e609";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconfenxiang:before {
 | 
			
		||||
  content: "\e641";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconshouquan1:before {
 | 
			
		||||
  content: "\e634";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconjiantou:before {
 | 
			
		||||
  content: "\e653";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconjiantou-copy-copy:before {
 | 
			
		||||
  content: "\e654";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								src/assets/iconfont/iconfont.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										877
									
								
								src/assets/iconfont/iconfont.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,877 @@
 | 
			
		||||
{
 | 
			
		||||
  "id": "1513211",
 | 
			
		||||
  "name": "基础权限",
 | 
			
		||||
  "font_family": "iconfont",
 | 
			
		||||
  "css_prefix_text": "icon",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "glyphs": [
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9013588",
 | 
			
		||||
      "name": "雷达图2",
 | 
			
		||||
      "font_class": "leidatu",
 | 
			
		||||
      "unicode": "e640",
 | 
			
		||||
      "unicode_decimal": 58944
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "19004935",
 | 
			
		||||
      "name": "热力图",
 | 
			
		||||
      "font_class": "relitu",
 | 
			
		||||
      "unicode": "e683",
 | 
			
		||||
      "unicode_decimal": 59011
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15047024",
 | 
			
		||||
      "name": "恢复备份",
 | 
			
		||||
      "font_class": "huifubeifen",
 | 
			
		||||
      "unicode": "e60d",
 | 
			
		||||
      "unicode_decimal": 58893
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "19657550",
 | 
			
		||||
      "name": "撤销",
 | 
			
		||||
      "font_class": "undo",
 | 
			
		||||
      "unicode": "e60e",
 | 
			
		||||
      "unicode_decimal": 58894
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "23043843",
 | 
			
		||||
      "name": "词云图",
 | 
			
		||||
      "font_class": "ciyuntu",
 | 
			
		||||
      "unicode": "e7af",
 | 
			
		||||
      "unicode_decimal": 59311
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14325372",
 | 
			
		||||
      "name": "导出",
 | 
			
		||||
      "font_class": "daochu",
 | 
			
		||||
      "unicode": "e618",
 | 
			
		||||
      "unicode_decimal": 58904
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15040056",
 | 
			
		||||
      "name": "导入",
 | 
			
		||||
      "font_class": "daoru",
 | 
			
		||||
      "unicode": "e608",
 | 
			
		||||
      "unicode_decimal": 58888
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "18140536",
 | 
			
		||||
      "name": "对比图谱",
 | 
			
		||||
      "font_class": "duibitupu",
 | 
			
		||||
      "unicode": "e9ca",
 | 
			
		||||
      "unicode_decimal": 59850
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "23013771",
 | 
			
		||||
      "name": "折线",
 | 
			
		||||
      "font_class": "zhexian",
 | 
			
		||||
      "unicode": "e635",
 | 
			
		||||
      "unicode_decimal": 58933
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "18888301",
 | 
			
		||||
      "name": "堆叠图",
 | 
			
		||||
      "font_class": "bianzu23",
 | 
			
		||||
      "unicode": "e621",
 | 
			
		||||
      "unicode_decimal": 58913
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "23457042",
 | 
			
		||||
      "name": "堆叠图",
 | 
			
		||||
      "font_class": "duidietu",
 | 
			
		||||
      "unicode": "e61f",
 | 
			
		||||
      "unicode_decimal": 58911
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5472881",
 | 
			
		||||
      "name": "文件",
 | 
			
		||||
      "font_class": "fill_folder",
 | 
			
		||||
      "unicode": "e645",
 | 
			
		||||
      "unicode_decimal": 58949
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15994720",
 | 
			
		||||
      "name": "字典项",
 | 
			
		||||
      "font_class": "zidianxiang",
 | 
			
		||||
      "unicode": "e7df",
 | 
			
		||||
      "unicode_decimal": 59359
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1364704",
 | 
			
		||||
      "name": "API网关",
 | 
			
		||||
      "font_class": "APIwangguan",
 | 
			
		||||
      "unicode": "e66b",
 | 
			
		||||
      "unicode_decimal": 58987
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14341931",
 | 
			
		||||
      "name": "database",
 | 
			
		||||
      "font_class": "database",
 | 
			
		||||
      "unicode": "e7b6",
 | 
			
		||||
      "unicode_decimal": 59318
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15338097",
 | 
			
		||||
      "name": "百分比",
 | 
			
		||||
      "font_class": "baifenbi",
 | 
			
		||||
      "unicode": "e616",
 | 
			
		||||
      "unicode_decimal": 58902
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15461480",
 | 
			
		||||
      "name": "文件",
 | 
			
		||||
      "font_class": "folder-o",
 | 
			
		||||
      "unicode": "e70f",
 | 
			
		||||
      "unicode_decimal": 59151
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "182207",
 | 
			
		||||
      "name": "上",
 | 
			
		||||
      "font_class": "jinlingyingcaiwangtubiao01",
 | 
			
		||||
      "unicode": "e724",
 | 
			
		||||
      "unicode_decimal": 59172
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "2773923",
 | 
			
		||||
      "name": "下",
 | 
			
		||||
      "font_class": "left-copy",
 | 
			
		||||
      "unicode": "e6af",
 | 
			
		||||
      "unicode_decimal": 59055
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4653465",
 | 
			
		||||
      "name": "复制",
 | 
			
		||||
      "font_class": "fuzhi1",
 | 
			
		||||
      "unicode": "e626",
 | 
			
		||||
      "unicode_decimal": 58918
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "22378736",
 | 
			
		||||
      "name": "中国地图",
 | 
			
		||||
      "font_class": "zhongguoditu",
 | 
			
		||||
      "unicode": "e738",
 | 
			
		||||
      "unicode_decimal": 59192
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "21338828",
 | 
			
		||||
      "name": "表格",
 | 
			
		||||
      "font_class": "biaoge",
 | 
			
		||||
      "unicode": "e625",
 | 
			
		||||
      "unicode_decimal": 58917
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13087633",
 | 
			
		||||
      "name": "个性装扮",
 | 
			
		||||
      "font_class": "gexingzhuangban",
 | 
			
		||||
      "unicode": "e646",
 | 
			
		||||
      "unicode_decimal": 58950
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16466332",
 | 
			
		||||
      "name": "仪表盘-抄表",
 | 
			
		||||
      "font_class": "yibiaopan-chaobiao",
 | 
			
		||||
      "unicode": "e72e",
 | 
			
		||||
      "unicode_decimal": 59182
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15872322",
 | 
			
		||||
      "name": "南丁格尔玫瑰图",
 | 
			
		||||
      "font_class": "nandinggeermeiguitu",
 | 
			
		||||
      "unicode": "e851",
 | 
			
		||||
      "unicode_decimal": 59473
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "11990084",
 | 
			
		||||
      "name": "展 开 ",
 | 
			
		||||
      "font_class": "zhankai",
 | 
			
		||||
      "unicode": "e631",
 | 
			
		||||
      "unicode_decimal": 58929
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1990758",
 | 
			
		||||
      "name": "excel",
 | 
			
		||||
      "font_class": "excel",
 | 
			
		||||
      "unicode": "e650",
 | 
			
		||||
      "unicode_decimal": 58960
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9445573",
 | 
			
		||||
      "name": "保存",
 | 
			
		||||
      "font_class": "baocun",
 | 
			
		||||
      "unicode": "e737",
 | 
			
		||||
      "unicode_decimal": 59191
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "11920154",
 | 
			
		||||
      "name": "关  闭",
 | 
			
		||||
      "font_class": "guanbi",
 | 
			
		||||
      "unicode": "e6c5",
 | 
			
		||||
      "unicode_decimal": 59077
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16968592",
 | 
			
		||||
      "name": "pdf",
 | 
			
		||||
      "font_class": "pdf",
 | 
			
		||||
      "unicode": "e614",
 | 
			
		||||
      "unicode_decimal": 58900
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "21538118",
 | 
			
		||||
      "name": "复制",
 | 
			
		||||
      "font_class": "fuzhi",
 | 
			
		||||
      "unicode": "e61e",
 | 
			
		||||
      "unicode_decimal": 58910
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1066041",
 | 
			
		||||
      "name": "020空心饼图",
 | 
			
		||||
      "font_class": "020kongxinbingtu",
 | 
			
		||||
      "unicode": "e78c",
 | 
			
		||||
      "unicode_decimal": 59276
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "2032219",
 | 
			
		||||
      "name": "时间",
 | 
			
		||||
      "font_class": "shijian",
 | 
			
		||||
      "unicode": "e662",
 | 
			
		||||
      "unicode_decimal": 58978
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "2721664",
 | 
			
		||||
      "name": "保存",
 | 
			
		||||
      "font_class": "save",
 | 
			
		||||
      "unicode": "e6f6",
 | 
			
		||||
      "unicode_decimal": 59126
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4803230",
 | 
			
		||||
      "name": "图片",
 | 
			
		||||
      "font_class": "tupian",
 | 
			
		||||
      "unicode": "e612",
 | 
			
		||||
      "unicode_decimal": 58898
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5963559",
 | 
			
		||||
      "name": "柱状图",
 | 
			
		||||
      "font_class": "zhuzhuangtu",
 | 
			
		||||
      "unicode": "e691",
 | 
			
		||||
      "unicode_decimal": 59025
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "6642296",
 | 
			
		||||
      "name": "超链接",
 | 
			
		||||
      "font_class": "chaolianjie",
 | 
			
		||||
      "unicode": "e65f",
 | 
			
		||||
      "unicode_decimal": 58975
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7732218",
 | 
			
		||||
      "name": "文本",
 | 
			
		||||
      "font_class": "ziyuan",
 | 
			
		||||
      "unicode": "e605",
 | 
			
		||||
      "unicode_decimal": 58885
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9592086",
 | 
			
		||||
      "name": "视频",
 | 
			
		||||
      "font_class": "shipin",
 | 
			
		||||
      "unicode": "ecc1",
 | 
			
		||||
      "unicode_decimal": 60609
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "12252496",
 | 
			
		||||
      "name": "框架",
 | 
			
		||||
      "font_class": "kuangjia",
 | 
			
		||||
      "unicode": "e66a",
 | 
			
		||||
      "unicode_decimal": 58986
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14717060",
 | 
			
		||||
      "name": "预览",
 | 
			
		||||
      "font_class": "yulan",
 | 
			
		||||
      "unicode": "e728",
 | 
			
		||||
      "unicode_decimal": 59176
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14728974",
 | 
			
		||||
      "name": "横向文字",
 | 
			
		||||
      "font_class": "hengxiangwenzi",
 | 
			
		||||
      "unicode": "e601",
 | 
			
		||||
      "unicode_decimal": 58881
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15066193",
 | 
			
		||||
      "name": "图表 _饼图",
 | 
			
		||||
      "font_class": "icon_tubiao_bingtu",
 | 
			
		||||
      "unicode": "e602",
 | 
			
		||||
      "unicode_decimal": 58882
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "17247792",
 | 
			
		||||
      "name": "漏斗图",
 | 
			
		||||
      "font_class": "loudoutu",
 | 
			
		||||
      "unicode": "e6d5",
 | 
			
		||||
      "unicode_decimal": 59093
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "21925168",
 | 
			
		||||
      "name": "图表 折线图",
 | 
			
		||||
      "font_class": "tubiaozhexiantu",
 | 
			
		||||
      "unicode": "e630",
 | 
			
		||||
      "unicode_decimal": 58928
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "22117888",
 | 
			
		||||
      "name": "柱线图",
 | 
			
		||||
      "font_class": "zhuxiantu",
 | 
			
		||||
      "unicode": "e607",
 | 
			
		||||
      "unicode_decimal": 58887
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "22300259",
 | 
			
		||||
      "name": "图片",
 | 
			
		||||
      "font_class": "tupian1",
 | 
			
		||||
      "unicode": "e81d",
 | 
			
		||||
      "unicode_decimal": 59421
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "22398839",
 | 
			
		||||
      "name": "仪表盘",
 | 
			
		||||
      "font_class": "yibiaopan",
 | 
			
		||||
      "unicode": "e706",
 | 
			
		||||
      "unicode_decimal": 59142
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "18774317",
 | 
			
		||||
      "name": "返回",
 | 
			
		||||
      "font_class": "1",
 | 
			
		||||
      "unicode": "e63b",
 | 
			
		||||
      "unicode_decimal": 58939
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5388367",
 | 
			
		||||
      "name": "下载",
 | 
			
		||||
      "font_class": "xiazai",
 | 
			
		||||
      "unicode": "e639",
 | 
			
		||||
      "unicode_decimal": 58937
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14245657",
 | 
			
		||||
      "name": "下载",
 | 
			
		||||
      "font_class": "11-04",
 | 
			
		||||
      "unicode": "e784",
 | 
			
		||||
      "unicode_decimal": 59268
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4933441",
 | 
			
		||||
      "name": "邮箱",
 | 
			
		||||
      "font_class": "youxiang",
 | 
			
		||||
      "unicode": "e769",
 | 
			
		||||
      "unicode_decimal": 59241
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7140630",
 | 
			
		||||
      "name": "绑定手机",
 | 
			
		||||
      "font_class": "bangdingshouji",
 | 
			
		||||
      "unicode": "e64d",
 | 
			
		||||
      "unicode_decimal": 58957
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "8288872",
 | 
			
		||||
      "name": "手机",
 | 
			
		||||
      "font_class": "shouji",
 | 
			
		||||
      "unicode": "e854",
 | 
			
		||||
      "unicode_decimal": 59476
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16218102",
 | 
			
		||||
      "name": "52-手机",
 | 
			
		||||
      "font_class": "52-shouji",
 | 
			
		||||
      "unicode": "e871",
 | 
			
		||||
      "unicode_decimal": 59505
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "684484",
 | 
			
		||||
      "name": "home",
 | 
			
		||||
      "font_class": "home",
 | 
			
		||||
      "unicode": "e610",
 | 
			
		||||
      "unicode_decimal": 58896
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7165766",
 | 
			
		||||
      "name": "home",
 | 
			
		||||
      "font_class": "home2",
 | 
			
		||||
      "unicode": "e61a",
 | 
			
		||||
      "unicode_decimal": 58906
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "981325",
 | 
			
		||||
      "name": "Kafka",
 | 
			
		||||
      "font_class": "Kafka",
 | 
			
		||||
      "unicode": "e65a",
 | 
			
		||||
      "unicode_decimal": 58970
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4772840",
 | 
			
		||||
      "name": "数据接入—Kafka集群",
 | 
			
		||||
      "font_class": "shujujieruKafkajiqun",
 | 
			
		||||
      "unicode": "e64f",
 | 
			
		||||
      "unicode_decimal": 58959
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "8691927",
 | 
			
		||||
      "name": "kafka",
 | 
			
		||||
      "font_class": "kafka",
 | 
			
		||||
      "unicode": "e6f2",
 | 
			
		||||
      "unicode_decimal": 59122
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13140799",
 | 
			
		||||
      "name": "elasticsearch-Elasticsearch",
 | 
			
		||||
      "font_class": "elasticsearch-Elasticsearch",
 | 
			
		||||
      "unicode": "e853",
 | 
			
		||||
      "unicode_decimal": 59475
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15378137",
 | 
			
		||||
      "name": "apachekafka",
 | 
			
		||||
      "font_class": "apachekafka",
 | 
			
		||||
      "unicode": "eb3f",
 | 
			
		||||
      "unicode_decimal": 60223
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "15378319",
 | 
			
		||||
      "name": "elasticsearch",
 | 
			
		||||
      "font_class": "elasticsearch",
 | 
			
		||||
      "unicode": "eb85",
 | 
			
		||||
      "unicode_decimal": 60293
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3253279",
 | 
			
		||||
      "name": "问题反馈",
 | 
			
		||||
      "font_class": "wentifankui",
 | 
			
		||||
      "unicode": "e8d1",
 | 
			
		||||
      "unicode_decimal": 59601
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3922909",
 | 
			
		||||
      "name": "问题反馈",
 | 
			
		||||
      "font_class": "wentifankui1",
 | 
			
		||||
      "unicode": "e70e",
 | 
			
		||||
      "unicode_decimal": 59150
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13177275",
 | 
			
		||||
      "name": "问题反馈",
 | 
			
		||||
      "font_class": "wentifankui2",
 | 
			
		||||
      "unicode": "e643",
 | 
			
		||||
      "unicode_decimal": 58947
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5583350",
 | 
			
		||||
      "name": "alikafka 消息队列Kafka",
 | 
			
		||||
      "font_class": "alikafkaxiaoxiduilieKafka",
 | 
			
		||||
      "unicode": "e8a4",
 | 
			
		||||
      "unicode_decimal": 59556
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "11033199",
 | 
			
		||||
      "name": "项目查询-查看设备",
 | 
			
		||||
      "font_class": "xiangmuchaxun-chakanshebei",
 | 
			
		||||
      "unicode": "e682",
 | 
			
		||||
      "unicode_decimal": 59010
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13543355",
 | 
			
		||||
      "name": "elasticsearch Elasticsearch",
 | 
			
		||||
      "font_class": "elasticsearchElasticsearch",
 | 
			
		||||
      "unicode": "e6a1",
 | 
			
		||||
      "unicode_decimal": 59041
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1308482",
 | 
			
		||||
      "name": "511统计_树图",
 | 
			
		||||
      "font_class": "511tongji_shutu",
 | 
			
		||||
      "unicode": "e64a",
 | 
			
		||||
      "unicode_decimal": 58954
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "8084555",
 | 
			
		||||
      "name": "分享",
 | 
			
		||||
      "font_class": "fenxiang1",
 | 
			
		||||
      "unicode": "e615",
 | 
			
		||||
      "unicode_decimal": 58901
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9148583",
 | 
			
		||||
      "name": "分享",
 | 
			
		||||
      "font_class": "fenxiang2",
 | 
			
		||||
      "unicode": "e60f",
 | 
			
		||||
      "unicode_decimal": 58895
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9810108",
 | 
			
		||||
      "name": "分享",
 | 
			
		||||
      "font_class": "fenxiang_2",
 | 
			
		||||
      "unicode": "e600",
 | 
			
		||||
      "unicode_decimal": 58880
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "10064575",
 | 
			
		||||
      "name": "告警-紧急",
 | 
			
		||||
      "font_class": "NMStubiao-",
 | 
			
		||||
      "unicode": "e628",
 | 
			
		||||
      "unicode_decimal": 58920
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13186637",
 | 
			
		||||
      "name": "完成安全事件",
 | 
			
		||||
      "font_class": "wanchenganquanshijian",
 | 
			
		||||
      "unicode": "e68a",
 | 
			
		||||
      "unicode_decimal": 59018
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "14772380",
 | 
			
		||||
      "name": "eventbridge 消息事件总线",
 | 
			
		||||
      "font_class": "eventbridgexiaoxishijianzongxian",
 | 
			
		||||
      "unicode": "e74d",
 | 
			
		||||
      "unicode_decimal": 59213
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16852593",
 | 
			
		||||
      "name": "树",
 | 
			
		||||
      "font_class": "shu",
 | 
			
		||||
      "unicode": "e629",
 | 
			
		||||
      "unicode_decimal": 58921
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16800949",
 | 
			
		||||
      "name": "设备关机",
 | 
			
		||||
      "font_class": "shebeiguanji",
 | 
			
		||||
      "unicode": "e61d",
 | 
			
		||||
      "unicode_decimal": 58909
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1111782",
 | 
			
		||||
      "name": "好房拓 4.0.0 iconfont_短信",
 | 
			
		||||
      "font_class": "haofangtuo400iconfontduanxin",
 | 
			
		||||
      "unicode": "e6d8",
 | 
			
		||||
      "unicode_decimal": 59096
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3703026",
 | 
			
		||||
      "name": "业务参数",
 | 
			
		||||
      "font_class": "navicon-ywcs",
 | 
			
		||||
      "unicode": "e661",
 | 
			
		||||
      "unicode_decimal": 58977
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3851361",
 | 
			
		||||
      "name": "列表",
 | 
			
		||||
      "font_class": "liebiao",
 | 
			
		||||
      "unicode": "e660",
 | 
			
		||||
      "unicode_decimal": 58976
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3858850",
 | 
			
		||||
      "name": "编辑",
 | 
			
		||||
      "font_class": "bianji",
 | 
			
		||||
      "unicode": "e60c",
 | 
			
		||||
      "unicode_decimal": 58892
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5203312",
 | 
			
		||||
      "name": "邮件",
 | 
			
		||||
      "font_class": "youjian",
 | 
			
		||||
      "unicode": "e63a",
 | 
			
		||||
      "unicode_decimal": 58938
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5321887",
 | 
			
		||||
      "name": "社交钉钉",
 | 
			
		||||
      "font_class": "shejiaodingding",
 | 
			
		||||
      "unicode": "e678",
 | 
			
		||||
      "unicode_decimal": 59000
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "6627754",
 | 
			
		||||
      "name": "字典管理",
 | 
			
		||||
      "font_class": "zidianguanli",
 | 
			
		||||
      "unicode": "e624",
 | 
			
		||||
      "unicode_decimal": 58916
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7092362",
 | 
			
		||||
      "name": "图表",
 | 
			
		||||
      "font_class": "tubiao",
 | 
			
		||||
      "unicode": "e73f",
 | 
			
		||||
      "unicode_decimal": 59199
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "9307592",
 | 
			
		||||
      "name": "钉钉",
 | 
			
		||||
      "font_class": "dingding",
 | 
			
		||||
      "unicode": "e690",
 | 
			
		||||
      "unicode_decimal": 59024
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "10392609",
 | 
			
		||||
      "name": "短信",
 | 
			
		||||
      "font_class": "duanxin",
 | 
			
		||||
      "unicode": "e603",
 | 
			
		||||
      "unicode_decimal": 58883
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13592918",
 | 
			
		||||
      "name": "directmail 邮件推送",
 | 
			
		||||
      "font_class": "directmailyoujiantuisong",
 | 
			
		||||
      "unicode": "e714",
 | 
			
		||||
      "unicode_decimal": 59156
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16589013",
 | 
			
		||||
      "name": "设备设施",
 | 
			
		||||
      "font_class": "shebeisheshi",
 | 
			
		||||
      "unicode": "e61c",
 | 
			
		||||
      "unicode_decimal": 58908
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "6249282",
 | 
			
		||||
      "name": "通知",
 | 
			
		||||
      "font_class": "tongzhi",
 | 
			
		||||
      "unicode": "e606",
 | 
			
		||||
      "unicode_decimal": 58886
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7450630",
 | 
			
		||||
      "name": "日志",
 | 
			
		||||
      "font_class": "rizhi",
 | 
			
		||||
      "unicode": "e663",
 | 
			
		||||
      "unicode_decimal": 58979
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "11103449",
 | 
			
		||||
      "name": "触发器配置-灰",
 | 
			
		||||
      "font_class": "chufaqipeizhi-hui",
 | 
			
		||||
      "unicode": "e689",
 | 
			
		||||
      "unicode_decimal": 59017
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "17566612",
 | 
			
		||||
      "name": "vcs 视觉计算服务",
 | 
			
		||||
      "font_class": "vcsshijuejisuanfuwu",
 | 
			
		||||
      "unicode": "e759",
 | 
			
		||||
      "unicode_decimal": 59225
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "17755673",
 | 
			
		||||
      "name": "设备",
 | 
			
		||||
      "font_class": "bar_icon_shebei",
 | 
			
		||||
      "unicode": "e60a",
 | 
			
		||||
      "unicode_decimal": 58890
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1327507",
 | 
			
		||||
      "name": "user-before",
 | 
			
		||||
      "font_class": "user-before",
 | 
			
		||||
      "unicode": "e617",
 | 
			
		||||
      "unicode_decimal": 58903
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "12353050",
 | 
			
		||||
      "name": "科目维护图标",
 | 
			
		||||
      "font_class": "kemuweihutubiao",
 | 
			
		||||
      "unicode": "e60b",
 | 
			
		||||
      "unicode_decimal": 58891
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "2152435",
 | 
			
		||||
      "name": "会计科目维护",
 | 
			
		||||
      "font_class": "accounting-subjects",
 | 
			
		||||
      "unicode": "e677",
 | 
			
		||||
      "unicode_decimal": 58999
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7553622",
 | 
			
		||||
      "name": "成本查询",
 | 
			
		||||
      "font_class": "RectangleCopy",
 | 
			
		||||
      "unicode": "e6dd",
 | 
			
		||||
      "unicode_decimal": 59101
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "12453907",
 | 
			
		||||
      "name": "成本数据管理",
 | 
			
		||||
      "font_class": "chengbenshujuguanli",
 | 
			
		||||
      "unicode": "e6c7",
 | 
			
		||||
      "unicode_decimal": 59079
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13745309",
 | 
			
		||||
      "name": "基本数据",
 | 
			
		||||
      "font_class": "jibenshuju",
 | 
			
		||||
      "unicode": "e71d",
 | 
			
		||||
      "unicode_decimal": 59165
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7193675",
 | 
			
		||||
      "name": "B-省市区",
 | 
			
		||||
      "font_class": "B-shengshiqu",
 | 
			
		||||
      "unicode": "e72d",
 | 
			
		||||
      "unicode_decimal": 59181
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "16065650",
 | 
			
		||||
      "name": "组织机构",
 | 
			
		||||
      "font_class": "zuzhijigou",
 | 
			
		||||
      "unicode": "e66e",
 | 
			
		||||
      "unicode_decimal": 58990
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "10885920",
 | 
			
		||||
      "name": "按钮",
 | 
			
		||||
      "font_class": "anniu",
 | 
			
		||||
      "unicode": "e8c5",
 | 
			
		||||
      "unicode_decimal": 59589
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "7588087",
 | 
			
		||||
      "name": "菜单",
 | 
			
		||||
      "font_class": "caidan2",
 | 
			
		||||
      "unicode": "e61b",
 | 
			
		||||
      "unicode_decimal": 58907
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "343234",
 | 
			
		||||
      "name": "问号",
 | 
			
		||||
      "font_class": "wenhao",
 | 
			
		||||
      "unicode": "e67f",
 | 
			
		||||
      "unicode_decimal": 59007
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "485800",
 | 
			
		||||
      "name": "垃圾桶",
 | 
			
		||||
      "font_class": "lajitong",
 | 
			
		||||
      "unicode": "e636",
 | 
			
		||||
      "unicode_decimal": 58934
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "524416",
 | 
			
		||||
      "name": "重置密码",
 | 
			
		||||
      "font_class": "zhongzhimima",
 | 
			
		||||
      "unicode": "e620",
 | 
			
		||||
      "unicode_decimal": 58912
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "666885",
 | 
			
		||||
      "name": "设置",
 | 
			
		||||
      "font_class": "shezhi",
 | 
			
		||||
      "unicode": "e68f",
 | 
			
		||||
      "unicode_decimal": 59023
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "666902",
 | 
			
		||||
      "name": "中转",
 | 
			
		||||
      "font_class": "zhongzhuan",
 | 
			
		||||
      "unicode": "e69b",
 | 
			
		||||
      "unicode_decimal": 59035
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1226780",
 | 
			
		||||
      "name": "add",
 | 
			
		||||
      "font_class": "add",
 | 
			
		||||
      "unicode": "e6b9",
 | 
			
		||||
      "unicode_decimal": 59065
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1226781",
 | 
			
		||||
      "name": "minus",
 | 
			
		||||
      "font_class": "minus",
 | 
			
		||||
      "unicode": "e6ba",
 | 
			
		||||
      "unicode_decimal": 59066
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1388130",
 | 
			
		||||
      "name": "password",
 | 
			
		||||
      "font_class": "password",
 | 
			
		||||
      "unicode": "e622",
 | 
			
		||||
      "unicode_decimal": 58914
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "1824319",
 | 
			
		||||
      "name": "用户",
 | 
			
		||||
      "font_class": "yonghu",
 | 
			
		||||
      "unicode": "e604",
 | 
			
		||||
      "unicode_decimal": 58884
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "2881221",
 | 
			
		||||
      "name": "权限",
 | 
			
		||||
      "font_class": "quanxian",
 | 
			
		||||
      "unicode": "e633",
 | 
			
		||||
      "unicode_decimal": 58931
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3280236",
 | 
			
		||||
      "name": "角色",
 | 
			
		||||
      "font_class": "jiaose1",
 | 
			
		||||
      "unicode": "e64c",
 | 
			
		||||
      "unicode_decimal": 58956
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "3299246",
 | 
			
		||||
      "name": "字典",
 | 
			
		||||
      "font_class": "zidian",
 | 
			
		||||
      "unicode": "e716",
 | 
			
		||||
      "unicode_decimal": 59158
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4374688",
 | 
			
		||||
      "name": "参数设置",
 | 
			
		||||
      "font_class": "cssz",
 | 
			
		||||
      "unicode": "e672",
 | 
			
		||||
      "unicode_decimal": 58994
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "4880425",
 | 
			
		||||
      "name": "编辑",
 | 
			
		||||
      "font_class": "bianji1",
 | 
			
		||||
      "unicode": "e642",
 | 
			
		||||
      "unicode_decimal": 58946
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "5472800",
 | 
			
		||||
      "name": "用户权限",
 | 
			
		||||
      "font_class": "dfzq-",
 | 
			
		||||
      "unicode": "e609",
 | 
			
		||||
      "unicode_decimal": 58889
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "6693043",
 | 
			
		||||
      "name": "分享",
 | 
			
		||||
      "font_class": "fenxiang",
 | 
			
		||||
      "unicode": "e641",
 | 
			
		||||
      "unicode_decimal": 58945
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "10213484",
 | 
			
		||||
      "name": "授权",
 | 
			
		||||
      "font_class": "shouquan1",
 | 
			
		||||
      "unicode": "e634",
 | 
			
		||||
      "unicode_decimal": 58932
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13416544",
 | 
			
		||||
      "name": "左箭头",
 | 
			
		||||
      "font_class": "jiantou",
 | 
			
		||||
      "unicode": "e653",
 | 
			
		||||
      "unicode_decimal": 58963
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "icon_id": "13416596",
 | 
			
		||||
      "name": "左箭头",
 | 
			
		||||
      "font_class": "jiantou-copy-copy",
 | 
			
		||||
      "unicode": "e654",
 | 
			
		||||
      "unicode_decimal": 58964
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/iconfont/iconfont.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src/assets/iconfont/iconfont.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src/assets/iconfont/iconfont.woff2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/404/404.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 96 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/404/404_cloud.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/apache.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/banner1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 181 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/bianzu.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 859 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/charts.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 221 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/close.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 297 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/editor.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 727 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/home-logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/login.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 163 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/login.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/qrcode.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/rightIcon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 821 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/tiaoxingma.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 940 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/user/appro.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 778 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/user/appro2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 300 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/user/avatar.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.2 KiB  | 
							
								
								
									
										103310
									
								
								src/assets/map/china.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										14357
									
								
								src/assets/map/上海市.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										21493
									
								
								src/assets/map/云南省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										13685
									
								
								src/assets/map/内蒙古自治区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										17469
									
								
								src/assets/map/北京市.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										761
									
								
								src/assets/map/台湾省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,761 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "FeatureCollection",
 | 
			
		||||
  "features": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "Feature",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "adcode": 710000,
 | 
			
		||||
        "name": "台湾省",
 | 
			
		||||
        "center": [
 | 
			
		||||
          121.509062,
 | 
			
		||||
          25.044332
 | 
			
		||||
        ],
 | 
			
		||||
        "centroid": [
 | 
			
		||||
          120.971485,
 | 
			
		||||
          23.749452
 | 
			
		||||
        ],
 | 
			
		||||
        "childrenNum": 0,
 | 
			
		||||
        "level": "province",
 | 
			
		||||
        "acroutes": [
 | 
			
		||||
          100000
 | 
			
		||||
        ],
 | 
			
		||||
        "parent": {
 | 
			
		||||
          "adcode": 100000
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "geometry": {
 | 
			
		||||
        "type": "MultiPolygon",
 | 
			
		||||
        "coordinates": [
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                120.443558,
 | 
			
		||||
                22.441245
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.517584,
 | 
			
		||||
                22.408536
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.569903,
 | 
			
		||||
                22.361728
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.640505,
 | 
			
		||||
                22.241347
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.659209,
 | 
			
		||||
                22.15432
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.662001,
 | 
			
		||||
                22.066983
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.651464,
 | 
			
		||||
                22.033165
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.667691,
 | 
			
		||||
                21.983168
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.70157,
 | 
			
		||||
                21.927065
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.743246,
 | 
			
		||||
                21.915569
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.78155,
 | 
			
		||||
                21.923957
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.85468,
 | 
			
		||||
                21.883333
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.87291,
 | 
			
		||||
                21.897387
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.866482,
 | 
			
		||||
                21.98436
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.907315,
 | 
			
		||||
                22.033208
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.904154,
 | 
			
		||||
                22.119757
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.914955,
 | 
			
		||||
                22.302718
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.981658,
 | 
			
		||||
                22.528305
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.015009,
 | 
			
		||||
                22.584168
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.033292,
 | 
			
		||||
                22.650725
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.078498,
 | 
			
		||||
                22.669656
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.170544,
 | 
			
		||||
                22.723133
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.210481,
 | 
			
		||||
                22.770665
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.237931,
 | 
			
		||||
                22.836327
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.324708,
 | 
			
		||||
                22.945666
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.354687,
 | 
			
		||||
                23.01006
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.370388,
 | 
			
		||||
                23.084347
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.409535,
 | 
			
		||||
                23.102669
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.430294,
 | 
			
		||||
                23.137196
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.415015,
 | 
			
		||||
                23.195973
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.440358,
 | 
			
		||||
                23.272096
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.479558,
 | 
			
		||||
                23.3223
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.497788,
 | 
			
		||||
                23.419789
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.521497,
 | 
			
		||||
                23.483198
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.523078,
 | 
			
		||||
                23.538708
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.587778,
 | 
			
		||||
                23.76102
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.621604,
 | 
			
		||||
                23.92075
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.659381,
 | 
			
		||||
                24.006893
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.639992,
 | 
			
		||||
                24.064276
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.643838,
 | 
			
		||||
                24.097713
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.678085,
 | 
			
		||||
                24.133906
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.689044,
 | 
			
		||||
                24.174401
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.809172,
 | 
			
		||||
                24.339055
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.826717,
 | 
			
		||||
                24.423579
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.867498,
 | 
			
		||||
                24.478978
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.885464,
 | 
			
		||||
                24.529677
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.892524,
 | 
			
		||||
                24.617912
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.862598,
 | 
			
		||||
                24.671515
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.837993,
 | 
			
		||||
                24.76015
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.845053,
 | 
			
		||||
                24.836269
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.932883,
 | 
			
		||||
                24.938645
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                122.012178,
 | 
			
		||||
                25.001469
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.980776,
 | 
			
		||||
                25.03079
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.947425,
 | 
			
		||||
                25.031955
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.917077,
 | 
			
		||||
                25.137908
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.842155,
 | 
			
		||||
                25.135332
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.782407,
 | 
			
		||||
                25.160425
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.750531,
 | 
			
		||||
                25.160716
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.707327,
 | 
			
		||||
                25.191493
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.700319,
 | 
			
		||||
                25.226913
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.655324,
 | 
			
		||||
                25.241859
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.623026,
 | 
			
		||||
                25.294694
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.584986,
 | 
			
		||||
                25.308926
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.535038,
 | 
			
		||||
                25.307515
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.444415,
 | 
			
		||||
                25.270624
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.413487,
 | 
			
		||||
                25.238912
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.371864,
 | 
			
		||||
                25.159885
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.319281,
 | 
			
		||||
                25.140691
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.209322,
 | 
			
		||||
                25.127104
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.133135,
 | 
			
		||||
                25.078728
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.102102,
 | 
			
		||||
                25.075153
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.024704,
 | 
			
		||||
                25.040479
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.009688,
 | 
			
		||||
                24.993649
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.960899,
 | 
			
		||||
                24.940227
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.908475,
 | 
			
		||||
                24.852012
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.892299,
 | 
			
		||||
                24.767526
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.823753,
 | 
			
		||||
                24.688321
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.762371,
 | 
			
		||||
                24.658335
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.688661,
 | 
			
		||||
                24.600678
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.64277,
 | 
			
		||||
                24.490172
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.589187,
 | 
			
		||||
                24.432354
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.546299,
 | 
			
		||||
                24.370413
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.521009,
 | 
			
		||||
                24.312038
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.470534,
 | 
			
		||||
                24.24259
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.451461,
 | 
			
		||||
                24.182691
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.392029,
 | 
			
		||||
                24.11824
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.316158,
 | 
			
		||||
                23.984881
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.278276,
 | 
			
		||||
                23.927798
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.245768,
 | 
			
		||||
                23.840553
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.175377,
 | 
			
		||||
                23.807385
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.102773,
 | 
			
		||||
                23.700981
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.094817,
 | 
			
		||||
                23.587466
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.121741,
 | 
			
		||||
                23.504664
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.107831,
 | 
			
		||||
                23.341264
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.081434,
 | 
			
		||||
                23.29191
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.018947,
 | 
			
		||||
                23.073115
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.029537,
 | 
			
		||||
                23.048623
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.131382,
 | 
			
		||||
                23.002118
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.149138,
 | 
			
		||||
                22.896715
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.200403,
 | 
			
		||||
                22.721101
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.274272,
 | 
			
		||||
                22.560181
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.297191,
 | 
			
		||||
                22.531315
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.443558,
 | 
			
		||||
                22.441245
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                124.542984,
 | 
			
		||||
                25.903911
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                124.586346,
 | 
			
		||||
                25.913777
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                124.572805,
 | 
			
		||||
                25.93974
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                124.541825,
 | 
			
		||||
                25.931031
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                124.542984,
 | 
			
		||||
                25.903911
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                123.445286,
 | 
			
		||||
                25.725966
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.472104,
 | 
			
		||||
                25.713024
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.508933,
 | 
			
		||||
                25.723237
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.514834,
 | 
			
		||||
                25.751226
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.483063,
 | 
			
		||||
                25.768587
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.444496,
 | 
			
		||||
                25.746514
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.445286,
 | 
			
		||||
                25.725966
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                119.64597,
 | 
			
		||||
                23.55091
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.701081,
 | 
			
		||||
                23.550657
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.678057,
 | 
			
		||||
                23.600041
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.610089,
 | 
			
		||||
                23.603953
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.594388,
 | 
			
		||||
                23.577245
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.566306,
 | 
			
		||||
                23.584732
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.562565,
 | 
			
		||||
                23.530377
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.573788,
 | 
			
		||||
                23.505885
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.609141,
 | 
			
		||||
                23.503864
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.64597,
 | 
			
		||||
                23.55091
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                123.667207,
 | 
			
		||||
                25.914066
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.707092,
 | 
			
		||||
                25.916873
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.678008,
 | 
			
		||||
                25.938667
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                123.667207,
 | 
			
		||||
                25.914066
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                119.506031,
 | 
			
		||||
                23.625567
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.505241,
 | 
			
		||||
                23.575814
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.472416,
 | 
			
		||||
                23.557136
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.523207,
 | 
			
		||||
                23.563699
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.525578,
 | 
			
		||||
                23.624895
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.506031,
 | 
			
		||||
                23.625567
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                119.49739,
 | 
			
		||||
                23.386683
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.495125,
 | 
			
		||||
                23.350156
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.516885,
 | 
			
		||||
                23.349903
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.49739,
 | 
			
		||||
                23.386683
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                119.557454,
 | 
			
		||||
                23.666474
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.604083,
 | 
			
		||||
                23.616989
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.615516,
 | 
			
		||||
                23.660925
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.586485,
 | 
			
		||||
                23.675974
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.557454,
 | 
			
		||||
                23.666474
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                121.46823,
 | 
			
		||||
                22.676644
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.476502,
 | 
			
		||||
                22.64166
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.513541,
 | 
			
		||||
                22.631833
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.5147,
 | 
			
		||||
                22.67639
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.46823,
 | 
			
		||||
                22.676644
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                121.510538,
 | 
			
		||||
                22.087185
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.507693,
 | 
			
		||||
                22.048523
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.534089,
 | 
			
		||||
                22.022146
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.594522,
 | 
			
		||||
                21.995382
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.604586,
 | 
			
		||||
                22.022699
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.575028,
 | 
			
		||||
                22.037122
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.575607,
 | 
			
		||||
                22.084421
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                121.510538,
 | 
			
		||||
                22.087185
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                122.097533,
 | 
			
		||||
                25.500168
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                122.093581,
 | 
			
		||||
                25.47183
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                122.124825,
 | 
			
		||||
                25.475932
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                122.097533,
 | 
			
		||||
                25.500168
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                119.421467,
 | 
			
		||||
                23.216684
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.421309,
 | 
			
		||||
                23.18935
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.453396,
 | 
			
		||||
                23.217697
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                119.421467,
 | 
			
		||||
                23.216684
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ],
 | 
			
		||||
          [
 | 
			
		||||
            [
 | 
			
		||||
              [
 | 
			
		||||
                120.355042,
 | 
			
		||||
                22.327259
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.395454,
 | 
			
		||||
                22.342287
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.383072,
 | 
			
		||||
                22.355573
 | 
			
		||||
              ],
 | 
			
		||||
              [
 | 
			
		||||
                120.355042,
 | 
			
		||||
                22.327259
 | 
			
		||||
              ]
 | 
			
		||||
            ]
 | 
			
		||||
          ]
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25715
									
								
								src/assets/map/吉林省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										28807
									
								
								src/assets/map/四川省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										12138
									
								
								src/assets/map/天津市.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										8611
									
								
								src/assets/map/宁夏回族自治区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										22053
									
								
								src/assets/map/安徽省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										29293
									
								
								src/assets/map/山东省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										10503
									
								
								src/assets/map/山西省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										33743
									
								
								src/assets/map/广东省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										29257
									
								
								src/assets/map/广西壮族自治区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										21513
									
								
								src/assets/map/新疆维吾尔自治区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										16899
									
								
								src/assets/map/江苏省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										21187
									
								
								src/assets/map/江西省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										12711
									
								
								src/assets/map/河北省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										26701
									
								
								src/assets/map/河南省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										6063
									
								
								src/assets/map/海南省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										27151
									
								
								src/assets/map/湖北省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										30605
									
								
								src/assets/map/湖南省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										2197
									
								
								src/assets/map/澳门特别行政区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										18429
									
								
								src/assets/map/甘肃省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										20143
									
								
								src/assets/map/福建省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										24575
									
								
								src/assets/map/西藏自治区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										22711
									
								
								src/assets/map/贵州省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										28197
									
								
								src/assets/map/辽宁省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										27761
									
								
								src/assets/map/重庆市.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										12429
									
								
								src/assets/map/陕西省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										17541
									
								
								src/assets/map/青海省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										23417
									
								
								src/assets/map/香港特别行政区.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										25543
									
								
								src/assets/map/黑龙江省.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										97
									
								
								src/assets/styles/anji.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,97 @@
 | 
			
		||||
.anji-card {
 | 
			
		||||
  margin-bottom: 5px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  color: rgba(0, 0, 0, 0.65);
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-variant: tabular-nums;
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
  list-style: none;
 | 
			
		||||
  font-feature-settings: "tnum";
 | 
			
		||||
  position: relative;
 | 
			
		||||
  background: #fff;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  transition: all 0.3s;
 | 
			
		||||
 | 
			
		||||
  .card-head {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    min-height: 35px;
 | 
			
		||||
    padding: 0 24px;
 | 
			
		||||
    color: rgba(0, 0, 0, 0.85);
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    font-size: 16px;
 | 
			
		||||
    background: transparent;
 | 
			
		||||
    border-bottom: 1px solid #e8e8e8;
 | 
			
		||||
    border-radius: 2px 2px 0 0;
 | 
			
		||||
    zoom: 1;
 | 
			
		||||
 | 
			
		||||
    .main-card-header-button {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      right: 20px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .card-body {
 | 
			
		||||
    padding: 24px;
 | 
			
		||||
    zoom: 1;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-form-item .el-form-item__label {
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
}
 | 
			
		||||
.el-form-item__content {
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
}
 | 
			
		||||
.el-input__icon {
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-input--suffix .el-input__inner {
 | 
			
		||||
  height: 28px;
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
}
 | 
			
		||||
.el-input .el-input__inner {
 | 
			
		||||
  height: 28px;
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
}
 | 
			
		||||
.el-button {
 | 
			
		||||
  padding: 7px 15px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
}
 | 
			
		||||
.el-dropdown-menu__item {
 | 
			
		||||
  min-width: 80px;
 | 
			
		||||
  max-width: 110px;
 | 
			
		||||
  .el-button--text {
 | 
			
		||||
    margin-left: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.el-dropdown-menu__item:focus,
 | 
			
		||||
.el-dropdown-menu__item:not(.is-disabled):hover {
 | 
			
		||||
  background: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-table td {
 | 
			
		||||
  padding: 6px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes turn {
 | 
			
		||||
  0% {
 | 
			
		||||
    -webkit-transform: rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  25% {
 | 
			
		||||
    -webkit-transform: rotate(90deg);
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    -webkit-transform: rotate(180deg);
 | 
			
		||||
  }
 | 
			
		||||
  75% {
 | 
			
		||||
    -webkit-transform: rotate(270deg);
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: rotate(360deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||