test
This commit is contained in:
commit
4daac4d9b0
|
@ -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"]
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
|
@ -0,0 +1,14 @@
|
|||
.DS_Store
|
||||
node_modules/
|
||||
/dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
|
@ -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": {}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
# esg-wireframes
|
||||
|
||||
> A Vue.js project
|
||||
|
||||
## Build Setup
|
||||
|
||||
``` bash
|
||||
# install dependencies
|
||||
npm install
|
||||
|
||||
# serve with hot reload at localhost:8080
|
||||
npm run dev
|
||||
|
||||
# build for production with minification
|
||||
npm run build
|
||||
|
||||
# build for production and view the bundle analyzer report
|
||||
npm run build --report
|
||||
```
|
||||
|
||||
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
|
|
@ -0,0 +1,41 @@
|
|||
'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 production...')
|
||||
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, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
|
||||
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'
|
||||
))
|
||||
})
|
||||
})
|
|
@ -0,0 +1,54 @@
|
|||
'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)
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,101 @@
|
|||
'use strict'
|
||||
const path = require('path')
|
||||
const config = require('../config')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-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 = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
|
||||
|
||||
if (loader) {
|
||||
loaders.push({
|
||||
loader: loader + '-loader',
|
||||
options: Object.assign({}, loaderOptions, {
|
||||
sourceMap: options.sourceMap
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// Extract CSS when that option is specified
|
||||
// (which is the case during production build)
|
||||
if (options.extract) {
|
||||
return ExtractTextPlugin.extract({
|
||||
use: loaders,
|
||||
fallback: 'vue-style-loader'
|
||||
})
|
||||
} else {
|
||||
return ['vue-style-loader'].concat(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')
|
||||
})
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
'use strict'
|
||||
const utils = require('./utils')
|
||||
const config = require('../config')
|
||||
const isProduction = process.env.NODE_ENV === 'production'
|
||||
const sourceMapEnabled = isProduction
|
||||
? config.build.productionSourceMap
|
||||
: config.dev.cssSourceMap
|
||||
|
||||
module.exports = {
|
||||
loaders: utils.cssLoaders({
|
||||
sourceMap: sourceMapEnabled,
|
||||
extract: isProduction
|
||||
}),
|
||||
cssSourceMap: sourceMapEnabled,
|
||||
cacheBusting: config.dev.cacheBusting,
|
||||
transformToRequire: {
|
||||
video: ['src', 'poster'],
|
||||
source: 'src',
|
||||
img: 'src',
|
||||
image: 'xlink:href'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
'use strict'
|
||||
const path = require('path')
|
||||
const utils = require('./utils')
|
||||
const config = require('../config')
|
||||
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: process.env.NODE_ENV === 'production'
|
||||
? config.build.assetsPublicPath
|
||||
: config.dev.assetsPublicPath
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.vue', '.json'],
|
||||
alias: {
|
||||
'vue$': 'vue/dist/vue.esm.js',
|
||||
'@': 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: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
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]')
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
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'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
'use strict'
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const path = require('path')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
||||
const portfinder = require('portfinder')
|
||||
|
||||
const HOST = process.env.HOST
|
||||
const PORT = process.env.PORT && Number(process.env.PORT)
|
||||
|
||||
const devWebpackConfig = merge(baseWebpackConfig, {
|
||||
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: {
|
||||
rewrites: [
|
||||
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
|
||||
],
|
||||
},
|
||||
hot: true,
|
||||
contentBase: false, // since we use CopyWebpackPlugin.
|
||||
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(),
|
||||
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
|
||||
new webpack.NoEmitOnErrorsPlugin(),
|
||||
// https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({
|
||||
filename: 'index.html',
|
||||
template: 'index.html',
|
||||
inject: true
|
||||
}),
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.dev.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
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)
|
||||
}
|
||||
})
|
||||
})
|
|
@ -0,0 +1,145 @@
|
|||
'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 ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
||||
|
||||
const env = require('../config/prod.env')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
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].js'),
|
||||
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
|
||||
},
|
||||
plugins: [
|
||||
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': env
|
||||
}),
|
||||
new UglifyJsPlugin({
|
||||
uglifyOptions: {
|
||||
compress: {
|
||||
warnings: false
|
||||
}
|
||||
},
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
parallel: true
|
||||
}),
|
||||
// extract css into its own file
|
||||
new ExtractTextPlugin({
|
||||
filename: utils.assetsPath('css/[name].[contenthash].css'),
|
||||
// Setting the following option to `false` will not extract CSS from codesplit chunks.
|
||||
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
|
||||
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
|
||||
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
|
||||
allChunks: true,
|
||||
}),
|
||||
// Compress extracted CSS. We are using this plugin so that possible
|
||||
// duplicated CSS from different components can be deduped.
|
||||
new OptimizeCSSPlugin({
|
||||
cssProcessorOptions: config.build.productionSourceMap
|
||||
? { safe: true, map: { inline: false } }
|
||||
: { safe: true }
|
||||
}),
|
||||
// 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,
|
||||
minify: {
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true
|
||||
// more options:
|
||||
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||
},
|
||||
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||
chunksSortMode: 'dependency'
|
||||
}),
|
||||
// keep module.id stable when vendor modules does not change
|
||||
new webpack.HashedModuleIdsPlugin(),
|
||||
// enable scope hoisting
|
||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||
// split vendor js into its own file
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'vendor',
|
||||
minChunks (module) {
|
||||
// any required modules inside node_modules are extracted to vendor
|
||||
return (
|
||||
module.resource &&
|
||||
/\.js$/.test(module.resource) &&
|
||||
module.resource.indexOf(
|
||||
path.join(__dirname, '../node_modules')
|
||||
) === 0
|
||||
)
|
||||
}
|
||||
}),
|
||||
// extract webpack runtime and module manifest to its own file in order to
|
||||
// prevent vendor hash from being updated whenever app bundle is updated
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'manifest',
|
||||
minChunks: Infinity
|
||||
}),
|
||||
// This instance extracts shared chunks from code splitted chunks and bundles them
|
||||
// in a separate chunk, similar to the vendor chunk
|
||||
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'app',
|
||||
async: 'vendor-async',
|
||||
children: true,
|
||||
minChunks: 3
|
||||
}),
|
||||
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.build.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
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.bundleAnalyzerReport) {
|
||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
|
||||
}
|
||||
|
||||
module.exports = webpackConfig
|
|
@ -0,0 +1,7 @@
|
|||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const prodEnv = require('./prod.env')
|
||||
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"development"'
|
||||
})
|
|
@ -0,0 +1,69 @@
|
|||
'use strict'
|
||||
// Template version: 1.3.1
|
||||
// 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: 'localhost', // can be overwritten by process.env.HOST
|
||||
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||
autoOpenBrowser: false,
|
||||
errorOverlay: true,
|
||||
notifyOnErrors: true,
|
||||
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
// https://webpack.js.org/configuration/devtool/#development
|
||||
devtool: 'cheap-module-eval-source-map',
|
||||
|
||||
// If you have problems debugging vue-files in devtools,
|
||||
// set this to false - it *may* help
|
||||
// https://vue-loader.vuejs.org/en/options.html#cachebusting
|
||||
cacheBusting: true,
|
||||
|
||||
cssSourceMap: true
|
||||
},
|
||||
|
||||
build: {
|
||||
// Template for index.html
|
||||
index: path.resolve(__dirname, '../dist/index.html'),
|
||||
|
||||
// Paths
|
||||
assetsRoot: path.resolve(__dirname, '../dist'),
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: '/',
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
productionSourceMap: true,
|
||||
// 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
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
'use strict'
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"'
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>esg-wireframes</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"name": "esg-wireframes",
|
||||
"version": "1.0.0",
|
||||
"description": "A Vue.js project",
|
||||
"author": "徐聿成 <xuyucheng@fecr.com.cn>",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
|
||||
"start": "npm run dev",
|
||||
"build": "node build/build.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.24.0",
|
||||
"element-ui": "^2.15.6",
|
||||
"vue": "^2.5.2",
|
||||
"vue-router": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^7.1.2",
|
||||
"babel-core": "^6.22.1",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-syntax-jsx": "^6.18.0",
|
||||
"babel-plugin-transform-runtime": "^6.22.0",
|
||||
"babel-plugin-transform-vue-jsx": "^3.5.0",
|
||||
"babel-preset-env": "^1.3.2",
|
||||
"babel-preset-stage-2": "^6.22.0",
|
||||
"chalk": "^2.0.1",
|
||||
"copy-webpack-plugin": "^4.0.1",
|
||||
"css-loader": "^0.28.0",
|
||||
"extract-text-webpack-plugin": "^3.0.0",
|
||||
"file-loader": "^1.1.4",
|
||||
"friendly-errors-webpack-plugin": "^1.6.1",
|
||||
"html-webpack-plugin": "^2.30.1",
|
||||
"node-notifier": "^5.1.2",
|
||||
"node-sass": "^4.14.1",
|
||||
"optimize-css-assets-webpack-plugin": "^3.2.0",
|
||||
"ora": "^1.2.0",
|
||||
"portfinder": "^1.0.13",
|
||||
"postcss-import": "^11.0.0",
|
||||
"postcss-loader": "^2.0.8",
|
||||
"postcss-url": "^7.2.1",
|
||||
"rimraf": "^2.6.0",
|
||||
"sass-loader": "^7.3.1",
|
||||
"semver": "^5.3.0",
|
||||
"shelljs": "^0.7.6",
|
||||
"style-loader": "^3.3.1",
|
||||
"uglifyjs-webpack-plugin": "^1.1.1",
|
||||
"url-loader": "^0.5.8",
|
||||
"vue-loader": "^13.3.0",
|
||||
"vue-style-loader": "^3.0.1",
|
||||
"vue-template-compiler": "^2.5.2",
|
||||
"webpack": "^3.6.0",
|
||||
"webpack-bundle-analyzer": "^2.9.0",
|
||||
"webpack-dev-server": "^2.9.1",
|
||||
"webpack-merge": "^4.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not ie <= 8"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
<template>
|
||||
<div id="app">
|
||||
<router-view/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'App'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,64 @@
|
|||
import request from './request'
|
||||
|
||||
var auth = "/tfse_user"
|
||||
var user = "/server_tfse"
|
||||
|
||||
export function login(url, data) {
|
||||
return request.UserPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function register(url, data) {
|
||||
return request.UserPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function change_password(url, data) {
|
||||
return request.UserPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function mail(url, data) {
|
||||
return request.UserPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function get(url, data) {
|
||||
return request.get(user + url, data)
|
||||
}
|
||||
|
||||
export function JsonPost(url, data) {
|
||||
return request.JsonPost(user + url, data)
|
||||
}
|
||||
|
||||
export function post(url, data) {
|
||||
return request.post(user + url, data)
|
||||
}
|
||||
|
||||
export function BlobPost(url, data) {
|
||||
return request.BlobPost(user + url, data)
|
||||
}
|
||||
|
||||
export function BlobGet(url, data) {
|
||||
return request.BlobGet(user + url, data)
|
||||
}
|
||||
|
||||
export function VerifyPost(url, data) {
|
||||
return request.VerifyPost(user + url, data)
|
||||
}
|
||||
|
||||
export function user_get(url, data) {
|
||||
return request.get(auth + url, data)
|
||||
}
|
||||
|
||||
export function user_JsonPost(url, data) {
|
||||
return request.JsonPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function user_post(url, data) {
|
||||
return request.post(auth + url, data)
|
||||
}
|
||||
|
||||
export function user_BlobPost(url, data) {
|
||||
return request.BlobPost(auth + url, data)
|
||||
}
|
||||
|
||||
export function user_BlobGet(url, data) {
|
||||
return request.BlobGet(auth + url, data)
|
||||
}
|
|
@ -0,0 +1,159 @@
|
|||
import axios from 'axios'
|
||||
import store from "store/index"
|
||||
import router from 'router/index'
|
||||
import { Message } from 'element-ui';
|
||||
import { message } from 'utils/message.js'
|
||||
// import { Loading } from 'element-ui'
|
||||
|
||||
//创建axios实例
|
||||
axios.defaults.timeout = 10000
|
||||
axios.defaults.baseURL = 'https://service.fecribd.com'
|
||||
// axios.defaults.baseURL = 'http://192.168.99.108:5000/'
|
||||
|
||||
|
||||
//请求拦截器
|
||||
axios.interceptors.request.use(config => {
|
||||
const token = store.state.token
|
||||
if (token) {
|
||||
config.headers.token = token
|
||||
}
|
||||
return config
|
||||
}, error => {
|
||||
Promise.reject(error)
|
||||
})
|
||||
|
||||
//响应拦截器
|
||||
axios.interceptors.response.use(response => {
|
||||
if (response.status === 200) {
|
||||
return response;
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
}, error => {
|
||||
const { status } = error.response;
|
||||
switch (status) {
|
||||
case 300:
|
||||
Message({
|
||||
message: "重定向",
|
||||
type: "info",
|
||||
});
|
||||
break;
|
||||
case 400:
|
||||
Message({
|
||||
message: "请求错误,请重试",
|
||||
type: "warning",
|
||||
});
|
||||
break;
|
||||
case 401:
|
||||
message.warning("请登录");
|
||||
break;
|
||||
case 500:
|
||||
message.warning("服务器错误");
|
||||
break
|
||||
}
|
||||
return Promise.reject(error);
|
||||
});
|
||||
|
||||
export default {
|
||||
get: function (path = '', data = {}) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.get(path, {
|
||||
params: data
|
||||
})
|
||||
.then(function (response) {
|
||||
resolve(response.data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
post: function (path = '', data = {}) {
|
||||
let formData = new FormData()
|
||||
for (let key in data) {
|
||||
formData.append(key, data[key])
|
||||
}
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.post(path, formData, {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
resolve(response.data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
JsonPost: function (path = '', data = {}) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.post(path, data)
|
||||
.then(function (response) {
|
||||
resolve(response.data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
BlobGet: function (path = '') {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.get(
|
||||
path, { responseType: 'blob' })
|
||||
.then(function (response) {
|
||||
const blob = new Blob([response.data]);
|
||||
resolve(URL.createObjectURL(blob));
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
},
|
||||
BlobPost: function (path = '', data = {}) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.post(
|
||||
path, data, { responseType: 'blob' })
|
||||
.then(function (response) {
|
||||
const blob = new Blob([response.data]);
|
||||
resolve(URL.createObjectURL(blob));
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
},
|
||||
VerifyPost: function (path = '', data = {}) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.post(
|
||||
path, data, {
|
||||
headers: {
|
||||
verify: rsaKey(Date.now().toString())
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
resolve(response.data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
},
|
||||
UserPost: function (path = '', data = {}) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
axios.post(
|
||||
path, data, {
|
||||
headers: {
|
||||
block: rsaKey(Date.now().toString())
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
resolve(response.data);
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
},
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,83 @@
|
|||
html,
|
||||
body,
|
||||
#app{
|
||||
height: 100%;
|
||||
font-family: 'SR';
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'SR';
|
||||
src: url('./SourceHanSansK-Normal.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.el-container{
|
||||
height: 100%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #fff;
|
||||
font-size: 100px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
h2{
|
||||
color:#ADADAD;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
h3{
|
||||
color:#ADADAD;
|
||||
}
|
||||
|
||||
.strip{
|
||||
background-color: #EAEAEA;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.strip-image{
|
||||
background-color: #F8F8F8;
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
text-align: center;
|
||||
line-height: 300px;
|
||||
|
||||
i{
|
||||
font-size: 30px;
|
||||
color: #ADADAD;
|
||||
}
|
||||
}
|
||||
|
||||
// flex盒 --- space-between
|
||||
.flex-sb{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
// 一级标题
|
||||
.pri-title{
|
||||
font-weight: 800;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
// 二级标题
|
||||
.sub-title{
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.badge{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background-color: #26CEB9;
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
.el-main {
|
||||
height: calc(100% - 80px);
|
||||
background-color: #00102b;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.form-box {
|
||||
position: relative;
|
||||
bottom: 80px;
|
||||
|
||||
/deep/ .el-radio__inner {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.el-button{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.el-form {
|
||||
width: 600px;
|
||||
padding: 50px;
|
||||
background-color: #fff;
|
||||
|
||||
.el-form-item {
|
||||
padding:10px 0;
|
||||
|
||||
/deep/ .el-input__inner {
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
border-bottom: 1px solid #707070;
|
||||
font-family: "SR";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
<template>
|
||||
<el-aside width="200px">
|
||||
<el-menu
|
||||
:default-active="activeIndex"
|
||||
background-color="transparent"
|
||||
text-color="#fff"
|
||||
active-text-color="#fff"
|
||||
@open="handleOpen"
|
||||
unique-opened
|
||||
>
|
||||
<el-submenu index="1">
|
||||
<template slot="title">
|
||||
<span>结论</span>
|
||||
</template>
|
||||
<el-menu-item index="1-1">结论</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-submenu index="2">
|
||||
<template slot="title">
|
||||
<span>环境</span>
|
||||
</template>
|
||||
<el-menu-item index="2-1">数据安全与隐私保护</el-menu-item>
|
||||
<el-menu-item index="2-2">产品质量</el-menu-item>
|
||||
<el-menu-item index="2-3">员工</el-menu-item>
|
||||
<el-menu-item index="2-4">社区</el-menu-item>
|
||||
<el-menu-item index="2-5">扶贫与慈善</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-submenu index="3">
|
||||
<template slot="title">
|
||||
<span>社会</span>
|
||||
</template>
|
||||
<el-menu-item index="3-1">数据安全与隐私保护</el-menu-item>
|
||||
<el-menu-item index="3-2">产品质量</el-menu-item>
|
||||
<el-menu-item index="3-3">员工</el-menu-item>
|
||||
<el-menu-item index="3-4">社区</el-menu-item>
|
||||
<el-menu-item index="3-5">扶贫与慈善</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-submenu index="4">
|
||||
<template slot="title">
|
||||
<span>治理</span>
|
||||
</template>
|
||||
<el-menu-item index="4-1">数据安全与隐私保护</el-menu-item>
|
||||
<el-menu-item index="4-2">产品质量</el-menu-item>
|
||||
<el-menu-item index="4-3">员工</el-menu-item>
|
||||
<el-menu-item index="4-4">社区</el-menu-item>
|
||||
<el-menu-item index="4-5">扶贫与慈善</el-menu-item>
|
||||
</el-submenu>
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
activeIndex: "1",
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
handleOpen(key) {
|
||||
this.$emit('getActiveIndex',key)
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.el-aside {
|
||||
background-color: #31364a;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.el-menu {
|
||||
width: 90%;
|
||||
padding: 50px 0 0 20px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/deep/ .el-submenu__title:hover {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.el-menu--horizontal {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.el-menu-item.is-active {
|
||||
background-color: #fff !important;
|
||||
color: #000 !important;
|
||||
border-top-left-radius: 50px;
|
||||
border-bottom-left-radius: 50px;
|
||||
}
|
||||
|
||||
.el-menu-item:hover {
|
||||
background-color: #fff !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,34 @@
|
|||
<template>
|
||||
<div class="foot">
|
||||
<h1>Footer</h1>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
};
|
||||
},
|
||||
|
||||
components: {},
|
||||
|
||||
computed: {},
|
||||
|
||||
mounted: {},
|
||||
|
||||
methods: {}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.foot{
|
||||
width: 100%;
|
||||
height: 400px;
|
||||
margin-top: 40px;
|
||||
background-color: #D8DEE5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,271 @@
|
|||
<template>
|
||||
<el-header :style="{ background: bgcolor, height: '80px' }">
|
||||
<el-row type="flex" justify="space-around" align="center">
|
||||
<el-col :span="6">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="149.184"
|
||||
height="39.413"
|
||||
viewBox="0 0 149.184 39.413"
|
||||
>
|
||||
<g
|
||||
id="组_485"
|
||||
data-name="组 485"
|
||||
transform="translate(893.665 -119.214)"
|
||||
>
|
||||
<g
|
||||
id="组_483"
|
||||
data-name="组 483"
|
||||
transform="translate(-833.367 124.492)"
|
||||
>
|
||||
<path
|
||||
id="路径_2152"
|
||||
data-name="路径 2152"
|
||||
d="M-659.633,157.679v-1.2q2.283-.8,2.109-2.813v-7.254h-2.2v-1.449h4.48v8.549q.087,2.732,3.25,2.732h12.562v1.446h-12.649c-1.875,0-3.52-.51-4.281-1.527C-657.062,157.123-657.935,157.358-659.633,157.679Zm2.256-14.105a35.1,35.1,0,0,0-1.493-3.814h2.02a15.473,15.473,0,0,1,1.581,3.814Zm3.366,2.835v-1.446h14.586v1.446h-4.359V152.2c0,.673.284.964.966.964h.544c.78,0,1.054-.25,1.054-.884v-.717h1.792v.884q.086,2.251-2.284,2.17h-1.721q-2.636.081-2.548-2.411v-5.8h-2.584a7.926,7.926,0,0,1-5.359,8.218V153.18c2.227-1.271,3.22-3.718,3.162-6.771Zm1.054-4.987v-1.447h11.947v1.447Z"
|
||||
transform="translate(659.721 -139.742)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2153"
|
||||
data-name="路径 2153"
|
||||
d="M-552.561,147.76h-7.5v-3.536h-2.547v3.536h-5.479a32.037,32.037,0,0,0,3.863-5.325H-551.5v-1.447h-11.974c.2-.428.383-.862.539-1.3h-2.678s-.161.485-.534,1.3h-5.636v1.447h4.908a30.27,30.27,0,0,1-3.711,5.325v1.527h7.982V155.2c.057.643-.352.964-1.23.964h-1.669v1.474h2.635q2.9.079,2.811-2.571v-5.785h7.5Zm-14.878,2.733a9.611,9.611,0,0,1-4.347,5.8v1.359a9.366,9.366,0,0,0,6.72-7.159Zm11.6,0h-2.372a9.365,9.365,0,0,0,6.719,7.159v-1.359A9.611,9.611,0,0,1-555.836,150.492Z"
|
||||
transform="translate(594.451 -139.69)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2154"
|
||||
data-name="路径 2154"
|
||||
d="M-393.106,157.651V145.8a7.355,7.355,0,0,1-1.944.993v-1.366a7.931,7.931,0,0,0,3.458-5.723h2.431a10.488,10.488,0,0,1-1.75,4.343v13.6Zm4.118-15.273v-1.366h5.9v-1.3h2.662v1.3h5.9v1.366Zm14.209,1.84v1.366h-13.958v-1.366Zm0,3.233v1.366h-13.958v-1.366Zm-13.972,10.206V150.8h13.971v4.449q.085,2.49-2.635,2.411Zm2.2-1.366h8.437q1.318,0,1.23-.964v-3.163h-9.666Z"
|
||||
transform="translate(463.268 -139.703)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2155"
|
||||
data-name="路径 2155"
|
||||
d="M-463.331,148.321V147.2c-4.447-.856-6.61-2.141-6.61-3.908V142.25h-2.31v1.039c0,1.768-2.133,3.052-6.48,3.908v1.125c3.458-.321,5.976-1.178,7.635-2.571C-469.556,147.09-467.008,147.947-463.331,148.321Zm-11.275-6.715h8.692a5.8,5.8,0,0,1-.947,2.371h1.624a6.4,6.4,0,0,0,1.35-3.582h-2v0h-7.864a2.609,2.609,0,0,0,.393-.7H-475.6c-.3,1.554-2.14,2.825-2.787,3.086v1.193A6.958,6.958,0,0,0-474.607,141.607Zm-6.624,6.715a9.914,9.914,0,0,0,1.955-5.075,7.451,7.451,0,0,0-1.794-3.541h-2.487c1.191,1.141,2.327,2.54,2.327,3.559a10.263,10.263,0,0,1-2.489,5.056Zm8.888,3.255h-2.491c0,2.461-3.092,3.919-9.015,4.621v1.458c4.52-.374,8.384-1.3,10.26-3.1,1.876,1.794,5.74,2.722,10.26,3.1V156.2C-469.251,155.5-472.343,154.038-472.343,151.576Zm7.22,2.734v-5.017H-482.1v5.017h2.287v-3.638h12.406v3.638Z"
|
||||
transform="translate(529.179 -139.696)"
|
||||
fill="#fff"
|
||||
/>
|
||||
</g>
|
||||
<g
|
||||
id="组_484"
|
||||
data-name="组 484"
|
||||
transform="translate(-893.665 119.214)"
|
||||
>
|
||||
<path
|
||||
id="路径_2156"
|
||||
data-name="路径 2156"
|
||||
d="M-892.008,134.326a1.633,1.633,0,0,0,1.325-.681l0,0A27.594,27.594,0,0,1-868.5,122.5a27.561,27.561,0,0,1,20.394,8.988l0,0a1.633,1.633,0,0,0,1.213.543,1.644,1.644,0,0,0,1.644-1.644,1.635,1.635,0,0,0-.523-1.2,30.83,30.83,0,0,0-22.731-9.968,30.87,30.87,0,0,0-24.855,12.531h0a1.629,1.629,0,0,0-.3.94A1.64,1.64,0,0,0-892.008,134.326Z"
|
||||
transform="translate(893.652 -119.214)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2157"
|
||||
data-name="路径 2157"
|
||||
d="M-832.945,152.6a1.642,1.642,0,0,0-.327-.986h0a25.5,25.5,0,0,0-19.907-9.54,25.489,25.489,0,0,0-19.44,8.978l.006,0a1.627,1.627,0,0,0-.4,1.062,1.622,1.622,0,0,0,.084.493h0l.008.019a1.618,1.618,0,0,0,.151.331,18.388,18.388,0,0,0,16.859,11.065,18.329,18.329,0,0,0,12.893-5.286,1.681,1.681,0,0,0,.178-.172l.018-.018,0,0a1.631,1.631,0,0,0,.4-1.066,1.645,1.645,0,0,0-1.645-1.645,1.638,1.638,0,0,0-1.119.442h0l-.024.023-.032.031a15.066,15.066,0,0,1-10.668,4.411,15.106,15.106,0,0,1-13.5-8.325,22.172,22.172,0,0,1,16.23-7.052,22.206,22.206,0,0,1,17.321,8.295h0a1.647,1.647,0,0,0,1.262.587A1.65,1.65,0,0,0-832.945,152.6Z"
|
||||
transform="translate(878.335 -136.183)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2158"
|
||||
data-name="路径 2158"
|
||||
d="M-842.005,175.508h0l-.008-.019a1.612,1.612,0,0,0-.151-.331,18.388,18.388,0,0,0-16.86-11.065,18.328,18.328,0,0,0-12.892,5.286,1.684,1.684,0,0,0-.179.172l-.018.018,0,0a1.631,1.631,0,0,0-.4,1.066,1.646,1.646,0,0,0,1.645,1.646,1.635,1.635,0,0,0,1.117-.444l0,0,.024-.023.032-.03a15.064,15.064,0,0,1,10.668-4.412,15.106,15.106,0,0,1,13.5,8.325,22.172,22.172,0,0,1-16.23,7.052,22.207,22.207,0,0,1-17.322-8.295h0a1.65,1.65,0,0,0-1.278-.6A1.65,1.65,0,0,0-882,175.5a1.635,1.635,0,0,0,.345,1l0,0c.045.056.094.108.139.164l0,0a25.491,25.491,0,0,0,19.766,9.374,25.49,25.49,0,0,0,19.44-8.978l-.006,0a1.626,1.626,0,0,0,.4-1.061A1.617,1.617,0,0,0-842.005,175.508Z"
|
||||
transform="translate(885.01 -152.525)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2159"
|
||||
data-name="路径 2159"
|
||||
d="M-846.9,213.5a1.637,1.637,0,0,0-1.325.679l0,0a27.6,27.6,0,0,1-22.182,11.153,27.561,27.561,0,0,1-20.394-8.989h0a1.641,1.641,0,0,0-1.218-.537,1.643,1.643,0,0,0-1.643,1.643,1.634,1.634,0,0,0,.529,1.2,30.83,30.83,0,0,0,22.726,9.962A30.865,30.865,0,0,0-845.65,216.2a1.629,1.629,0,0,0,.394-1.057A1.644,1.644,0,0,0-846.9,213.5Z"
|
||||
transform="translate(893.665 -189.199)"
|
||||
fill="#fff"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
id="路径_2160"
|
||||
data-name="路径 2160"
|
||||
d="M-607.421,231.034h3.033a3.766,3.766,0,0,1,1.365.212,2.34,2.34,0,0,1,.847.537,1.792,1.792,0,0,1,.433.733,2.713,2.713,0,0,1,.122.783,1.967,1.967,0,0,1-.146.749,2.1,2.1,0,0,1-.42.652,2.382,2.382,0,0,1-.67.493,2.463,2.463,0,0,1-.884.245l2.449,3.694h-1.462l-2.193-3.568h-1.3v3.568h-1.17Zm1.17,3.568h1.535a4.342,4.342,0,0,0,.676-.051,1.888,1.888,0,0,0,.6-.188,1.069,1.069,0,0,0,.42-.395,1.257,1.257,0,0,0,.159-.669,1.26,1.26,0,0,0-.159-.669,1.059,1.059,0,0,0-.42-.394,1.922,1.922,0,0,0-.6-.19,4.5,4.5,0,0,0-.676-.051h-1.535Z"
|
||||
transform="translate(-212.465 -82.999)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2161"
|
||||
data-name="路径 2161"
|
||||
d="M-431.477,231.034h3.033a3.766,3.766,0,0,1,1.365.212,2.341,2.341,0,0,1,.847.537,1.792,1.792,0,0,1,.433.733,2.715,2.715,0,0,1,.122.783,1.968,1.968,0,0,1-.146.749,2.1,2.1,0,0,1-.42.652,2.383,2.383,0,0,1-.67.493,2.463,2.463,0,0,1-.884.245l2.449,3.694h-1.462L-429,235.563h-1.3v3.568h-1.17Zm1.17,3.568h1.535a4.342,4.342,0,0,0,.676-.051,1.888,1.888,0,0,0,.6-.188,1.067,1.067,0,0,0,.42-.395,1.258,1.258,0,0,0,.159-.669,1.26,1.26,0,0,0-.159-.669,1.058,1.058,0,0,0-.42-.394,1.922,1.922,0,0,0-.6-.19,4.5,4.5,0,0,0-.676-.051h-1.535Z"
|
||||
transform="translate(-343.06 -82.999)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2162"
|
||||
data-name="路径 2162"
|
||||
d="M-652.694,232.168v.875h-4.088v2.481h3.585v.875h-3.585v3.574h-1.038v-7.8Z"
|
||||
transform="translate(-175.056 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2163"
|
||||
data-name="路径 2163"
|
||||
d="M-635.187,232.168l3.05,7.8h-1.148l-.853-2.35h-3.3l-.875,2.35h-1.06l3.039-7.8Zm.721,4.58-1.3-3.64h-.022l-1.323,3.64Z"
|
||||
transform="translate(-188.749 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2164"
|
||||
data-name="路径 2164"
|
||||
d="M-573.892,232.168v.875h-4.351v2.481h4.055v.875h-4.055v2.7h4.383v.875h-5.422v-7.8Z"
|
||||
transform="translate(-233.352 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2165"
|
||||
data-name="路径 2165"
|
||||
d="M-552.745,232.168l3.05,7.8h-1.148l-.853-2.35H-555l-.875,2.35h-1.06l3.039-7.8Zm.721,4.58-1.3-3.64h-.022l-1.323,3.64Z"
|
||||
transform="translate(-249.942 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2166"
|
||||
data-name="路径 2166"
|
||||
d="M-523.271,232.7a2.2,2.2,0,0,0-1.328-.377,3.186,3.186,0,0,0-.645.065,1.712,1.712,0,0,0-.563.219,1.15,1.15,0,0,0-.394.41,1.266,1.266,0,0,0-.148.639.814.814,0,0,0,.213.585,1.579,1.579,0,0,0,.569.366,4.751,4.751,0,0,0,.8.235q.448.093.913.2t.913.257a3.015,3.015,0,0,1,.8.4,1.9,1.9,0,0,1,.569.634,1.958,1.958,0,0,1,.213.962,1.959,1.959,0,0,1-.279,1.066,2.294,2.294,0,0,1-.716.721,3.109,3.109,0,0,1-.978.4,4.75,4.75,0,0,1-1.077.126,4.575,4.575,0,0,1-1.241-.164,3.062,3.062,0,0,1-1.028-.5,2.355,2.355,0,0,1-.7-.852,2.746,2.746,0,0,1-.257-1.23h.984a1.761,1.761,0,0,0,.192.847,1.737,1.737,0,0,0,.5.585,2.119,2.119,0,0,0,.727.339,3.33,3.33,0,0,0,.853.109,3.891,3.891,0,0,0,.7-.065,2.084,2.084,0,0,0,.64-.224,1.271,1.271,0,0,0,.459-.432,1.277,1.277,0,0,0,.175-.7.981.981,0,0,0-.213-.656,1.57,1.57,0,0,0-.569-.41,4.154,4.154,0,0,0-.8-.257l-.913-.2q-.465-.1-.913-.24a3.288,3.288,0,0,1-.8-.361,1.722,1.722,0,0,1-.568-.579,1.7,1.7,0,0,1-.213-.891,2.065,2.065,0,0,1,.24-1.022,2.094,2.094,0,0,1,.639-.71,2.866,2.866,0,0,1,.907-.415,4.009,4.009,0,0,1,1.044-.137,4.176,4.176,0,0,1,1.115.142,2.531,2.531,0,0,1,.9.448,2.165,2.165,0,0,1,.612.771,2.755,2.755,0,0,1,.246,1.109h-.984A1.627,1.627,0,0,0-523.271,232.7Z"
|
||||
transform="translate(-271.693 -83.305)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2167"
|
||||
data-name="路径 2167"
|
||||
d="M-501.631,233.043v-.875h6.242v.875h-2.6v6.93h-1.038v-6.93Z"
|
||||
transform="translate(-290.988 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2168"
|
||||
data-name="路径 2168"
|
||||
d="M-458.661,232.737a2.413,2.413,0,0,0-1.416-.415,2.533,2.533,0,0,0-1.2.262,2.359,2.359,0,0,0-.82.7,3.049,3.049,0,0,0-.476,1.011,4.522,4.522,0,0,0-.153,1.181,5.055,5.055,0,0,0,.153,1.262,3.02,3.02,0,0,0,.476,1.038,2.346,2.346,0,0,0,.825.7,2.567,2.567,0,0,0,1.2.262,2.318,2.318,0,0,0,.913-.169,2.066,2.066,0,0,0,.689-.47,2.166,2.166,0,0,0,.454-.716,2.979,2.979,0,0,0,.2-.9h1.038a3.546,3.546,0,0,1-1.017,2.3,3.289,3.289,0,0,1-2.361.82,3.757,3.757,0,0,1-1.585-.312,3.109,3.109,0,0,1-1.126-.858,3.682,3.682,0,0,1-.672-1.29,5.5,5.5,0,0,1-.224-1.6,5.2,5.2,0,0,1,.24-1.6,3.853,3.853,0,0,1,.7-1.306,3.286,3.286,0,0,1,1.159-.88,3.736,3.736,0,0,1,1.591-.322,4.013,4.013,0,0,1,1.159.164,3.117,3.117,0,0,1,.973.481,2.71,2.71,0,0,1,.71.792,2.908,2.908,0,0,1,.372,1.1h-1.038A1.931,1.931,0,0,0-458.661,232.737Z"
|
||||
transform="translate(-319.098 -83.305)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2169"
|
||||
data-name="路径 2169"
|
||||
d="M-397.218,232.168v.875h-4.351v2.481h4.055v.875h-4.055v2.7h4.383v.875h-5.421v-7.8Z"
|
||||
transform="translate(-364.489 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2170"
|
||||
data-name="路径 2170"
|
||||
d="M-374.018,232.168a3.891,3.891,0,0,1,2.776.918,3.677,3.677,0,0,1,.973,2.8,6.321,6.321,0,0,1-.219,1.743,3.26,3.26,0,0,1-.678,1.279,2.94,2.94,0,0,1-1.17.793,4.69,4.69,0,0,1-1.683.273H-376.7v-7.8Zm.087,6.93a4.339,4.339,0,0,0,.437-.027,2.441,2.441,0,0,0,.557-.131,2.55,2.55,0,0,0,.585-.3,1.974,1.974,0,0,0,.519-.536,2.994,2.994,0,0,0,.377-.847,4.454,4.454,0,0,0,.147-1.23,5.219,5.219,0,0,0-.137-1.252,2.406,2.406,0,0,0-.448-.94,1.972,1.972,0,0,0-.8-.59,3.2,3.2,0,0,0-1.213-.2h-1.749V239.1Z"
|
||||
transform="translate(-383.721 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2171"
|
||||
data-name="路径 2171"
|
||||
d="M-345.633,232.168v7.8h-1.038v-7.8Z"
|
||||
transform="translate(-406.008 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
id="路径_2172"
|
||||
data-name="路径 2172"
|
||||
d="M-339.08,233.043v-.875h6.241v.875h-2.6v6.93h-1.038v-6.93Z"
|
||||
transform="translate(-411.642 -83.84)"
|
||||
fill="#fff"
|
||||
/>
|
||||
</g></svg
|
||||
></el-col>
|
||||
<el-col :span="12">
|
||||
<el-menu
|
||||
mode="horizontal"
|
||||
:default-active="'0'"
|
||||
background-color="transparent"
|
||||
text-color="#fff"
|
||||
active-text-color="#fff"
|
||||
>
|
||||
<el-menu-item
|
||||
v-for="item in menuItem"
|
||||
:key="item.index"
|
||||
:index="item.index.toString()"
|
||||
>
|
||||
{{ item.title }}
|
||||
</el-menu-item>
|
||||
</el-menu>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-link :underline="false">登陆/注册</el-link>
|
||||
<el-avatar
|
||||
src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
|
||||
></el-avatar>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-header>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
bgcolor: {
|
||||
type: String,
|
||||
default: "#00102B",
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menuItem: [
|
||||
{ index: 1, title: "首页", path: "" },
|
||||
{ index: 2, title: "指标图谱", path: "" },
|
||||
{ index: 3, title: "评价模型", path: "" },
|
||||
{ index: 4, title: "解决方案", path: "" },
|
||||
{ index: 5, title: "研究与新闻", path: "" },
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-header {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-row {
|
||||
width: 100%;
|
||||
|
||||
.el-col {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-menu {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.el-menu--horizontal {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.el-menu-item.is-active {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.el-menu-item:hover {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-col:last-child {
|
||||
justify-content: flex-end;
|
||||
|
||||
.el-link {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.el-avatar {
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,54 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-table
|
||||
:data="data"
|
||||
border
|
||||
:header-cell-style="{
|
||||
'background-color': '#26ceb9 !important',
|
||||
color: '#fff',
|
||||
}"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
v-for="(item, index) in column"
|
||||
:key="index"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
>
|
||||
<template v-if="item.prop === templateProp">
|
||||
<el-row class="flex-sb"><div class="badge"></div>
|
||||
<span>正面/低风险</span><el-button size="small">点击查看相关新闻</el-button></el-row>
|
||||
</template>
|
||||
<template v-else>
|
||||
<span>{{ data[index][item.prop] }}</span>
|
||||
</template></el-table-column
|
||||
>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
layout="prev, pager, next"
|
||||
:total="50"
|
||||
style="margin-top: 10px"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
data: [Array],
|
||||
column: [Array],
|
||||
templateProp: [String],
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/deep/ .el-table__cell {
|
||||
border: none;
|
||||
border-bottom: 1px dashed #ebeef5 !important;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,26 @@
|
|||
// The Vue build version to load with the `import` command
|
||||
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
|
||||
import Vue from 'vue'
|
||||
import App from './App'
|
||||
import axios from 'axios'
|
||||
import router from './router'
|
||||
import "@/assets/css/general.scss"
|
||||
import ElementUI from 'element-ui';
|
||||
import { message } from '@/utils/message.js'
|
||||
import 'element-ui/lib/theme-chalk/index.css';
|
||||
|
||||
Vue.use(ElementUI);
|
||||
|
||||
Vue.prototype.$http = axios
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
Vue.prototype.$message = message;
|
||||
|
||||
/* eslint-disable no-new */
|
||||
new Vue({
|
||||
el: '#app',
|
||||
router,
|
||||
components: { App },
|
||||
template: '<App/>'
|
||||
})
|
|
@ -0,0 +1,370 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header />
|
||||
<el-main>
|
||||
<el-carousel :interval="10000" height="400px">
|
||||
<el-carousel-item v-for="item in 4" :key="item">
|
||||
<h1>BANNER</h1>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
<el-row style="margin-top: 80px">
|
||||
<el-col :span="6" class="col-card">
|
||||
<el-card shadow="never">
|
||||
<div slot="header">
|
||||
<div class="strip" style="width: 100%; height: 310px">
|
||||
<h1>ESG</h1>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="16" :offset="2" class="col-card">
|
||||
<el-card shadow="never" :body-style="{ padding: '20px 0' }">
|
||||
<div slot="header" class="flex-sb">
|
||||
<div class="strip" style="width: 300px; height: 46px"></div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="230"
|
||||
height="46"
|
||||
viewBox="0 0 230 46"
|
||||
>
|
||||
<g id="组_4" data-name="组 4" transform="translate(-1553 -721)">
|
||||
<rect
|
||||
id="矩形_225"
|
||||
data-name="矩形 225"
|
||||
width="230"
|
||||
height="46"
|
||||
transform="translate(1553 721)"
|
||||
fill="#eaeaea"
|
||||
/>
|
||||
<text
|
||||
id="了解更多"
|
||||
transform="translate(1668 752)"
|
||||
fill="#adadad"
|
||||
font-size="24"
|
||||
font-family="YuGothicUI-Bold, Yu Gothic UI"
|
||||
font-weight="700"
|
||||
>
|
||||
<tspan x="-48" y="0">了解更多</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
<div
|
||||
class="strip"
|
||||
v-for="o in 5"
|
||||
:key="o"
|
||||
style="width: 100%; height: 25px; margin: 22px 0"
|
||||
></div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="6" style="justify-content: flex-start">
|
||||
<div class="strip" style="width: 250px; height: 40px">
|
||||
<h2>每周新闻速递</h2>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col
|
||||
:span="8"
|
||||
v-for="o in 3"
|
||||
:key="o"
|
||||
:style="{
|
||||
padding: o === 1 ? '0 20px 0 0' : o === 2 ? '0 10px' : '0 0 0 20px',
|
||||
}"
|
||||
>
|
||||
<el-card :body-style="{ padding: '0px' }" shadow="never">
|
||||
<el-image class="strip-image">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
<div style="padding: 20px">
|
||||
<div class="bottom clearfix">
|
||||
<div class="strip" style="width: 150px; height: 30px"></div>
|
||||
<div class="strip" style="width: 250px; height: 20px"></div>
|
||||
<div class="strip" style="width: 200px; height: 20px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="6" style="justify-content: flex-start">
|
||||
<div class="strip" style="width: 250px; height: 40px">
|
||||
<h2>CONCEPT</h2>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col
|
||||
:span="8"
|
||||
v-for="o in 3"
|
||||
:key="o"
|
||||
:style="{
|
||||
padding: o === 1 ? '0 20px 0 0' : o === 2 ? '0 10px' : '0 0 0 20px',
|
||||
}"
|
||||
>
|
||||
<div class="strip" style="width: 100%; height: 300px">
|
||||
<h3>WHAT IS ESG</h3>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">ESG评级查询</p>
|
||||
<el-input placeholder="搜索" class="table-search"></el-input>
|
||||
<esg-table
|
||||
:data="data"
|
||||
:column="column"
|
||||
style="margin-top: 20px"
|
||||
:templateProp="'risk'"
|
||||
></esg-table>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">ESG评价指标查询</p>
|
||||
<el-col :span="4"
|
||||
><el-select placeholder="行业" class="table-search"></el-select
|
||||
></el-col>
|
||||
<el-col :span="6" :offset="1"
|
||||
><el-select placeholder="子行业" class="table-search"></el-select
|
||||
></el-col>
|
||||
<el-col :span="12" :offset="1"
|
||||
><el-input placeholder="搜索" class="table-search"></el-input
|
||||
></el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col
|
||||
:span="8"
|
||||
v-for="(item, index) in indicatorsData"
|
||||
:key="index"
|
||||
:style="{
|
||||
padding:
|
||||
index === 0
|
||||
? '0 20px 0 0'
|
||||
: index === 1
|
||||
? '0 10px'
|
||||
: '0 0 0 20px',
|
||||
}"
|
||||
>
|
||||
<div class="indicators">
|
||||
<div class="indicators-header">
|
||||
<h3 style="color: #fff">{{ item.title }}</h3>
|
||||
</div>
|
||||
<div class="indicators-item" style="font-weight: 800">
|
||||
<span>指标</span>
|
||||
<span>权重</span>
|
||||
</div>
|
||||
<div
|
||||
v-for="(child, key) in item.children"
|
||||
:key="key"
|
||||
class="indicators-item"
|
||||
>
|
||||
<span>{{ child.indicators }}</span>
|
||||
<span>{{ child.weight }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">ESG评价特点</p>
|
||||
<el-row
|
||||
v-for="(item, index) in trait"
|
||||
:key="index"
|
||||
style="width: 100%; margin: 20px 0 0 0"
|
||||
>
|
||||
<el-col span="24">
|
||||
<p class="sub-title">{{ item.title }}</p>
|
||||
</el-col>
|
||||
<el-col span="24">
|
||||
<span>{{ item.des }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-main>
|
||||
<esg-footer></esg-footer>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgTable from "@/components/esgTable";
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
import esgFooter from "@/components/esgFooter";
|
||||
export default {
|
||||
components: {
|
||||
esgFooter,
|
||||
esgHeader,
|
||||
esgTable,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
data: [
|
||||
{
|
||||
code: "SH601186",
|
||||
name: "中国铁建",
|
||||
level: "A+",
|
||||
institutions: "S&P",
|
||||
risk: 1,
|
||||
},
|
||||
{
|
||||
code: "SH601186",
|
||||
name: "中国铁建",
|
||||
level: "A+",
|
||||
institutions: "S&P",
|
||||
risk: 1,
|
||||
},
|
||||
{
|
||||
code: "SH601186",
|
||||
name: "中国铁建",
|
||||
level: "A+",
|
||||
institutions: "S&P",
|
||||
risk: 1,
|
||||
},
|
||||
{
|
||||
code: "SH601186",
|
||||
name: "中国铁建",
|
||||
level: "A+",
|
||||
institutions: "S&P",
|
||||
risk: 1,
|
||||
},
|
||||
{
|
||||
code: "SH601186",
|
||||
name: "中国铁建",
|
||||
level: "A+",
|
||||
institutions: "S&P",
|
||||
risk: 1,
|
||||
},
|
||||
],
|
||||
column: [
|
||||
{ prop: "code", label: "代码" },
|
||||
{ prop: "name", label: "名称" },
|
||||
{ prop: "level", label: "级别" },
|
||||
{ prop: "institutions", label: "评级机构" },
|
||||
{ prop: "risk", label: "风险舆情" },
|
||||
],
|
||||
indicatorsData: [
|
||||
{
|
||||
title: "环境/Environmental",
|
||||
children: [
|
||||
{ indicators: "绿色理念", weight: 3 },
|
||||
{ indicators: "绿色组织架构", weight: 3 },
|
||||
{ indicators: "绿色环境", weight: 26 },
|
||||
{ indicators: "绿色生产和办公", weight: 16 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "社会/Social",
|
||||
children: [
|
||||
{ indicators: "数据安全与隐私", weight: 12 },
|
||||
{ indicators: "产品质量", weight: 10 },
|
||||
{ indicators: "员工", weight: 28 },
|
||||
{ indicators: "社区", weight: 9 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "治理/Governance",
|
||||
children: [
|
||||
{ indicators: "组织架构", weight: 10 },
|
||||
{ indicators: "发展战略", weight: 6 },
|
||||
{ indicators: "商业模式", weight: 6 },
|
||||
{ indicators: "技术研发", weight: 10 },
|
||||
],
|
||||
},
|
||||
],
|
||||
trait: [
|
||||
{
|
||||
title: "动态的",
|
||||
des: "ESG 评级旨在评估公司对环境、社会和治理问题的长期弹性。随着这些问题的发展,我们相应地更新了 ESG 评级方法。我们每年都会根据最新数据和研究以及定期客户咨询的意见重新校准模型,包括确定行业关键问题和设置权重。因此,随着时间的推移,您应该会看到此 ESG 行业重要性地图的变化。",
|
||||
},
|
||||
{
|
||||
title: "行业特定",
|
||||
des: "关键发行权重是ESG评级模型的重要组成部分。对权重设定方案的评估发现,ESG 行业重要性图中显示的权重代表行业内公司的平均关键问题权重。关键问题权重通过两个因素的组合确定:1) 与其他行业相比,每个行业对与问题相关的主要外部性的贡献有多大(例如,该行业相对于其他行业的碳密集程度如何)和 2 ) 外部性可能实现的时间范围。",
|
||||
},
|
||||
{
|
||||
title: "公司特定",
|
||||
des: "ESG 行业重要性地图的基础是对关键 ESG 风险和机遇的行业特定评估。然而,ESG 行业重要性地图还反映了行业分类可能无法捕捉到的特定于公司的细微差别。业务线、使用的生产流程和公司经营的地区是 ESG 风险的决定因素。基于规则的模型变体考虑了这些细微差别,这意味着并非给定行业中的所有公司都必须在所有相同突出显示的关键问题上进行评级。由于 ESG 行业重要性地图包括公司特定的关键问题,因此仅适用于行业一小部分的问题似乎具有较低的“平均”权重。",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.el-main {
|
||||
padding: 0;
|
||||
|
||||
.el-carousel__item:nth-child(2n) {
|
||||
background-color: #99a9bf;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-carousel__item:nth-child(2n + 1) {
|
||||
background-color: #d3dce6;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-row {
|
||||
width: 80%;
|
||||
margin: 40px 10% 40px 10%;
|
||||
|
||||
.el-col {
|
||||
.el-card {
|
||||
width: 100%;
|
||||
|
||||
/deep/ .el-card__header {
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators {
|
||||
width: 100%;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
|
||||
&-header {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
background: #26ceb9;
|
||||
padding: 0 30px;
|
||||
}
|
||||
|
||||
&-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 15px 40px;
|
||||
border-bottom: 1px dashed #0a4fad;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators-item:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.col-card {
|
||||
.el-card {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.table-search {
|
||||
border-bottom: 1px solid #707070;
|
||||
width: 100%;
|
||||
|
||||
/deep/ .el-input__inner {
|
||||
border: none;
|
||||
font-family: "SR";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,388 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header />
|
||||
<el-main>
|
||||
<el-carousel :interval="10000" height="400px">
|
||||
<el-carousel-item v-for="item in 4" :key="item">
|
||||
<h1>BANNER</h1>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
|
||||
<el-row style="margin-top: 80px">
|
||||
<el-col :span="6" style="justify-content: flex-start">
|
||||
<div class="strip" style="width: 250px; height: 40px">
|
||||
<h2>INTRODUCTION</h2>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div
|
||||
class="strip"
|
||||
v-for="o in 5"
|
||||
:key="o"
|
||||
style="width: 100%; height: 20px; margin: 22px 0"
|
||||
></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="6" style="justify-content: flex-start">
|
||||
<div class="strip" style="width: 250px; height: 40px">
|
||||
<h2>每周新闻速递</h2>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col
|
||||
:span="8"
|
||||
v-for="o in 3"
|
||||
:key="o"
|
||||
:style="{
|
||||
padding: o === 1 ? '0 20px 0 0' : o === 2 ? '0 10px' : '0 0 0 20px',
|
||||
}"
|
||||
>
|
||||
<el-card :body-style="{ padding: '0px' }" shadow="never">
|
||||
<el-image class="strip-image">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
<div style="padding: 20px">
|
||||
<div class="bottom clearfix">
|
||||
<div class="strip" style="width: 150px; height: 30px"></div>
|
||||
<div class="strip" style="width: 250px; height: 20px"></div>
|
||||
<div class="strip" style="width: 200px; height: 20px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">级别分类</p>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{
|
||||
background: item.color,
|
||||
width: item.width,
|
||||
}"
|
||||
>
|
||||
{{ item.level }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div class="kpi-level">落后</div>
|
||||
<div class="kpi-level">平均</div>
|
||||
<div class="kpi-level">领先</div>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">ESG评价关键问题框架</p>
|
||||
<div class="frame-header">ESG分值</div>
|
||||
<div class="frame-level">
|
||||
<div
|
||||
v-for="(item, index) in indicatorsData"
|
||||
:key="index"
|
||||
:style="{
|
||||
width: index === 0 ? '40%' : index === 1 ? '38%' : '20%',
|
||||
}"
|
||||
>
|
||||
<div class="frame-level-1">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
<div class="frame-level">
|
||||
<div v-for="(child, key) in item.children" :key="key" :style="{
|
||||
width: 100/item.children.length-2+'%',
|
||||
}">
|
||||
<div class="frame-level-2">
|
||||
{{ child.title }}
|
||||
</div>
|
||||
<div
|
||||
v-for="(lc, k) in child.children"
|
||||
:key="k"
|
||||
class="frame-level-3"
|
||||
|
||||
>
|
||||
{{ lc }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row><el-divider></el-divider></el-row>
|
||||
<el-row><el-button round>开始您的ESG评价</el-button></el-row>
|
||||
</el-main>
|
||||
<esg-footer></esg-footer>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
import esgFooter from "@/components/esgFooter";
|
||||
export default {
|
||||
components: {
|
||||
esgFooter,
|
||||
esgHeader,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
kpi: [
|
||||
{ level: "CCC", color: "#EAEAEA", width: "16%" },
|
||||
{ level: "B", color: "#D6D6D6", width: "16%" },
|
||||
{ level: "BB", color: "rgb(224,214,72,0.6)", width: "10.4%" },
|
||||
{ level: "BBB", color: "rgb(224,214,72,0.8)", width: "10.4%" },
|
||||
{ level: "A", color: "#E2D648", width: "10.4%" },
|
||||
{ level: "AA", color: "#7AE4CC", width: "16%" },
|
||||
{ level: "AAA", color: "#22D3AA", width: "16%" },
|
||||
],
|
||||
indicatorsData: [
|
||||
{
|
||||
title: "环境/Environmental",
|
||||
children: [
|
||||
{
|
||||
title: "气候变化",
|
||||
children: ["碳排放", "产品碳足迹", "融资环境影响", "气候变化"],
|
||||
},
|
||||
{
|
||||
title: "自然资源",
|
||||
children: ["水资源", "生物多样性及土地使用", "原材料采购"],
|
||||
},
|
||||
{
|
||||
title: "污染与浪费",
|
||||
children: ["废气排放与污染物", "包装材料与污染", "电子污染"],
|
||||
},
|
||||
{
|
||||
title: "环境机会",
|
||||
children: ["清洁技术", "绿色建筑", "可再生能力"],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "社会/Social",
|
||||
children: [
|
||||
{
|
||||
title: "人力资源",
|
||||
children: [
|
||||
"劳动管理",
|
||||
"健康安全",
|
||||
"人力资本发展",
|
||||
"供应链劳动标准 ",
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "产品责任",
|
||||
children: [
|
||||
"产品安全与质量",
|
||||
"化学安全",
|
||||
"消费者财力保护",
|
||||
"隐私&数据安全",
|
||||
"责任投资",
|
||||
"健康和人口风险保险",
|
||||
],
|
||||
},
|
||||
{ title: "利益相关", children: ["采购争议", "社区关系"] },
|
||||
{
|
||||
title: "社会机会",
|
||||
children: ["沟通渠道", "融资渠道", "健康关怀渠道"],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "治理/Governance",
|
||||
children: [
|
||||
{
|
||||
title: "企业治理",
|
||||
children: ["董事会", "支付", "所有权", "财会"],
|
||||
},
|
||||
{ title: "商业行为", children: ["商业道德", "税收透明度"] },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.el-main {
|
||||
padding: 0;
|
||||
|
||||
.el-carousel__item:nth-child(2n) {
|
||||
background-color: #99a9bf;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-carousel__item:nth-child(2n + 1) {
|
||||
background-color: #d3dce6;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-row {
|
||||
width: 80%;
|
||||
margin: 40px 10% 40px 10%;
|
||||
|
||||
.el-button{
|
||||
width:100%;background:#26CCB7;color:#fff
|
||||
}
|
||||
|
||||
.kpi {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&-item {
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&-level {
|
||||
width: 32.4%;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
border: 1px dashed #707070;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
&-line {
|
||||
width: 1px;
|
||||
height: 30px;
|
||||
background-color: #707070;
|
||||
}
|
||||
}
|
||||
|
||||
.frame {
|
||||
&-header {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
align-items: center;
|
||||
background-color: #081e41;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&-level {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin: 10px 0;
|
||||
|
||||
&-1 {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
background-color: #4c8aed;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&-2 {
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
background-color: #26ccb7;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
&-3 {
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
background-color: #f4f4f4;
|
||||
color: #000;
|
||||
font-size: 12px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.el-col {
|
||||
.el-card {
|
||||
width: 100%;
|
||||
|
||||
/deep/ .el-card__header {
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators-strip {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #c2e3f2;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 30px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.el-collapse-item {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
/deep/ .el-collapse-item__header {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
background: #5cc7ef;
|
||||
padding: 0 30px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.second {
|
||||
/deep/ .el-collapse-item__header {
|
||||
background: #26ceb9;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators {
|
||||
width: 100%;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
|
||||
&-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 15px 40px;
|
||||
border-bottom: 1px dashed #0a4fad;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators-item:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.col-card {
|
||||
.el-card {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.table-search {
|
||||
border-bottom: 1px solid #707070;
|
||||
|
||||
/deep/ .el-input__inner {
|
||||
border: none;
|
||||
font-family: "SR";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,424 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header />
|
||||
<el-main>
|
||||
<el-carousel :interval="10000" height="400px">
|
||||
<el-carousel-item v-for="item in 4" :key="item">
|
||||
<h1>BANNER</h1>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
|
||||
<el-row style="margin-top: 80px">
|
||||
<el-col :span="6" style="justify-content: flex-start">
|
||||
<div class="strip" style="width: 250px; height: 40px">
|
||||
<h2>CONCLUSION</h2>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div
|
||||
class="strip"
|
||||
v-for="o in 5"
|
||||
:key="o"
|
||||
style="width: 100%; height: 20px; margin: 22px 0"
|
||||
></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">设计您的企业ESG【KPI】</p>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{ width: item.width }"
|
||||
>
|
||||
<span v-if="index === 3" style="color: #000">您的企业</span>
|
||||
<span v-if="index === 5" style="color: #000">行业平均</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{ width: item.width }"
|
||||
>
|
||||
<div v-if="index === 3" class="kpi-line"></div>
|
||||
<div v-if="index === 5" class="kpi-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{
|
||||
background: item.color,
|
||||
width: item.width,
|
||||
border: index === 3 || index === 5 ? '1px dashed #707070' : none,
|
||||
}"
|
||||
>
|
||||
{{ item.level }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div class="kpi-level">落后</div>
|
||||
<div class="kpi-level">平均</div>
|
||||
<div class="kpi-level">领先</div>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">目标/模拟计算器</p>
|
||||
<el-col :span="4"
|
||||
><el-select placeholder="您的级别" class="table-search"></el-select
|
||||
></el-col>
|
||||
<el-col :span="12" :offset="1"
|
||||
><el-select
|
||||
placeholder="目标级别"
|
||||
class="table-search"
|
||||
style="width: 100%"
|
||||
></el-select
|
||||
></el-col>
|
||||
<el-col :span="6" :offset="1"
|
||||
><el-button style="background: #26ceb9; width: 100%; color: #fff"
|
||||
>开始</el-button
|
||||
></el-col
|
||||
>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12" style="padding: 0 20px 0 0">
|
||||
<div class="indicators-strip">
|
||||
<span>目前ESG分值</span>
|
||||
<span>32/C</span>
|
||||
</div>
|
||||
<el-collapse>
|
||||
<el-collapse-item
|
||||
class="indicators"
|
||||
v-for="(item, index) in indicatorsData"
|
||||
:key="index"
|
||||
:title="item.title"
|
||||
>
|
||||
<div
|
||||
class="indicators-item"
|
||||
style="font-weight: 800; border-bottom: 1px solid #707070"
|
||||
>
|
||||
<span>总分</span>
|
||||
<span>23</span>
|
||||
</div>
|
||||
<div class="indicators-item" style="font-weight: 800">
|
||||
<span>指标</span>
|
||||
<span>权重</span>
|
||||
</div>
|
||||
<div
|
||||
v-for="(child, key) in item.children"
|
||||
:key="key"
|
||||
class="indicators-item"
|
||||
>
|
||||
<span>{{ child.indicators }}</span>
|
||||
<span>{{ child.weight }}</span>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-col>
|
||||
<el-col :span="12" style="padding: 0 0 0 20px">
|
||||
<div class="indicators-strip">
|
||||
<span>ESG目标分值</span>
|
||||
<span>65/A</span>
|
||||
</div>
|
||||
<el-collapse class="second">
|
||||
<el-collapse-item
|
||||
class="indicators"
|
||||
v-for="(item, index) in indicatorsTargetData"
|
||||
:key="index"
|
||||
:title="item.title"
|
||||
>
|
||||
<div
|
||||
class="indicators-item"
|
||||
style="font-weight: 800; border-bottom: 1px solid #707070"
|
||||
>
|
||||
<span>总分</span>
|
||||
<span>45</span>
|
||||
</div>
|
||||
<div class="indicators-item" style="font-weight: 800">
|
||||
<span>指标</span>
|
||||
<span>权重</span>
|
||||
</div>
|
||||
<div
|
||||
v-for="(child, key) in item.children"
|
||||
:key="key"
|
||||
class="indicators-item"
|
||||
>
|
||||
<span>{{ child.indicators }}</span>
|
||||
<span>{{ child.weight }}</span>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">模拟达标时间</p>
|
||||
<div class="flex-sb">
|
||||
<span style="color:#5CC7EF">现在</span
|
||||
><el-progress
|
||||
:percentage="50"
|
||||
:color="'#5CC7EF'"
|
||||
style="width: 95%"
|
||||
:show-text="false"
|
||||
></el-progress>
|
||||
</div>
|
||||
<div class="flex-sb">
|
||||
<span style="color:#26CEB9">目标</span
|
||||
><el-progress
|
||||
:percentage="100"
|
||||
:color="'#26CEB9'"
|
||||
style="width: 95%"
|
||||
:show-text="false"
|
||||
></el-progress>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<p class="pri-title">提升建议</p>
|
||||
<el-row
|
||||
v-for="(item, index) in trait"
|
||||
:key="index"
|
||||
style="width: 100%; margin: 20px 0 0 0"
|
||||
>
|
||||
<el-col span="24">
|
||||
<p class="sub-title">{{ item.title }}</p>
|
||||
</el-col>
|
||||
<el-col span="24">
|
||||
<span>{{ item.des }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-main>
|
||||
<esg-footer></esg-footer>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
import esgFooter from "@/components/esgFooter";
|
||||
export default {
|
||||
components: {
|
||||
esgFooter,
|
||||
esgHeader,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
kpi: [
|
||||
{ level: "CCC", color: "#EAEAEA", width: "16%" },
|
||||
{ level: "B", color: "#D6D6D6", width: "16%" },
|
||||
{ level: "BB", color: "rgb(224,214,72,0.6)", width: "10.4%" },
|
||||
{ level: "BBB", color: "rgb(224,214,72,0.8)", width: "10.4%" },
|
||||
{ level: "A", color: "#E2D648", width: "10.4%" },
|
||||
{ level: "AA", color: "#7AE4CC", width: "16%" },
|
||||
{ level: "AAA", color: "#22D3AA", width: "16%" },
|
||||
],
|
||||
indicatorsData: [
|
||||
{
|
||||
title: "环境/Environmental",
|
||||
children: [
|
||||
{ indicators: "绿色理念", weight: 0.5 },
|
||||
{ indicators: "绿色组织架构", weight: 1 },
|
||||
{ indicators: "绿色环境", weight: 18 },
|
||||
{ indicators: "绿色生产和办公", weight: 9 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "社会/Social",
|
||||
children: [
|
||||
{ indicators: "数据安全与隐私", weight: 12 },
|
||||
{ indicators: "产品质量", weight: 10 },
|
||||
{ indicators: "员工", weight: 28 },
|
||||
{ indicators: "社区", weight: 9 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "治理/Governance",
|
||||
children: [
|
||||
{ indicators: "组织架构", weight: 10 },
|
||||
{ indicators: "发展战略", weight: 6 },
|
||||
{ indicators: "商业模式", weight: 6 },
|
||||
{ indicators: "技术研发", weight: 10 },
|
||||
],
|
||||
},
|
||||
],
|
||||
indicatorsTargetData: [
|
||||
{
|
||||
title: "环境/Environmental",
|
||||
children: [
|
||||
{ indicators: "绿色理念", weight: 2 },
|
||||
{ indicators: "绿色组织架构", weight: 1.5 },
|
||||
{ indicators: "绿色环境", weight: 21 },
|
||||
{ indicators: "绿色生产和办公", weight: 14 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "社会/Social",
|
||||
children: [
|
||||
{ indicators: "数据安全与隐私", weight: 12 },
|
||||
{ indicators: "产品质量", weight: 10 },
|
||||
{ indicators: "员工", weight: 28 },
|
||||
{ indicators: "社区", weight: 9 },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "治理/Governance",
|
||||
children: [
|
||||
{ indicators: "组织架构", weight: 10 },
|
||||
{ indicators: "发展战略", weight: 6 },
|
||||
{ indicators: "商业模式", weight: 6 },
|
||||
{ indicators: "技术研发", weight: 10 },
|
||||
],
|
||||
},
|
||||
],
|
||||
trait: [
|
||||
{
|
||||
title: "环境",
|
||||
des: "减少环境污染,增加环保行为,加强绿色环保理念,打造企业绿色办公环境、绿色产品,建立绿色供应链等。",
|
||||
},
|
||||
{
|
||||
title: "社会",
|
||||
des: "注重数据安全与隐私保护,多支持社会公益活动,加强产品质量及员工培训及福利,增加扶贫与慈善行为等。",
|
||||
},
|
||||
{
|
||||
title: "治理",
|
||||
des: "提升组织架构、绿色发展战略,绿色商业模式及绿色技术研发,加强公司风险管理,信息披露的透明度及企业合规管理等。",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.el-main {
|
||||
padding: 0;
|
||||
|
||||
.el-carousel__item:nth-child(2n) {
|
||||
background-color: #99a9bf;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-carousel__item:nth-child(2n + 1) {
|
||||
background-color: #d3dce6;
|
||||
text-align: center;
|
||||
line-height: 200px;
|
||||
}
|
||||
|
||||
.el-row {
|
||||
width: 80%;
|
||||
margin: 40px 10% 40px 10%;
|
||||
|
||||
.kpi {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&-item {
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&-level {
|
||||
width: 32.4%;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
border: 1px dashed #707070;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
&-line {
|
||||
width: 1px;
|
||||
height: 30px;
|
||||
background-color: #707070;
|
||||
}
|
||||
}
|
||||
|
||||
.el-col {
|
||||
.el-card {
|
||||
width: 100%;
|
||||
|
||||
/deep/ .el-card__header {
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators-strip {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #c2e3f2;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 30px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.el-collapse-item {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
/deep/ .el-collapse-item__header {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
background: #5cc7ef;
|
||||
padding: 0 30px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.second {
|
||||
/deep/ .el-collapse-item__header {
|
||||
background: #26ceb9;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators {
|
||||
width: 100%;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
|
||||
&-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 15px 40px;
|
||||
border-bottom: 1px dashed #0a4fad;
|
||||
}
|
||||
}
|
||||
|
||||
.indicators-item:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.col-card {
|
||||
.el-card {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.table-search {
|
||||
border-bottom: 1px solid #707070;
|
||||
|
||||
/deep/ .el-input__inner {
|
||||
border: none;
|
||||
font-family: "SR";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,182 @@
|
|||
<!-- 结论 -->
|
||||
<template>
|
||||
<div>
|
||||
<el-row>
|
||||
<p class="pri-title">企业ESG管理 COMPANY ESG DASHBOARD</p>
|
||||
<div
|
||||
class="strip"
|
||||
v-for="o in 5"
|
||||
:key="o"
|
||||
style="width: 100%; height: 25px; margin: 22px 0"
|
||||
></div>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="5">
|
||||
<el-card
|
||||
style="
|
||||
color: #fff;
|
||||
background: #e2d648;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
>
|
||||
<p class="sub-title">级别/分数</p>
|
||||
<p class="pri-title">45.6/BBB</p>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="18" :offset="1">
|
||||
<el-card ref="card" class="card">
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{ width: item.width }"
|
||||
>
|
||||
<span v-if="index === 3" style="color: #000">您的企业</span>
|
||||
<span v-if="index === 5" style="color: #000">行业平均</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{ width: item.width }"
|
||||
>
|
||||
<div v-if="index === 3" class="kpi-line"></div>
|
||||
<div v-if="index === 5" class="kpi-line"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div
|
||||
class="kpi-item"
|
||||
v-for="(item, index) in kpi"
|
||||
:key="index"
|
||||
:style="{
|
||||
background: item.color,
|
||||
width: item.width,
|
||||
border:
|
||||
index === 3 || index === 5 ? '1px dashed #707070' : 'none',
|
||||
}"
|
||||
>
|
||||
{{ item.level }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="kpi">
|
||||
<div class="kpi-level">落后</div>
|
||||
<div class="kpi-level">平均</div>
|
||||
<div class="kpi-level">领先</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<p class="pri-title">您的分项得分</p>
|
||||
<el-col :span="8" v-for="(item, index) in score" :key="index" :style="{
|
||||
padding: index === 0 ? '0 20px 0 0' : index === 1 ? '0 10px' : '0 0 0 20px',
|
||||
}">
|
||||
<el-card class="score">
|
||||
<div class="score-item">
|
||||
<span>{{ item.title }}</span>
|
||||
<span>{{ item.scores }}</span>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
kpi: [
|
||||
{ level: "CCC", color: "#EAEAEA", width: "16%" },
|
||||
{ level: "B", color: "#D6D6D6", width: "16%" },
|
||||
{ level: "BB", color: "rgb(224,214,72,0.6)", width: "10.4%" },
|
||||
{ level: "BBB", color: "rgb(224,214,72,0.8)", width: "10.4%" },
|
||||
{ level: "A", color: "#E2D648", width: "10.4%" },
|
||||
{ level: "AA", color: "#7AE4CC", width: "16%" },
|
||||
{ level: "AAA", color: "#22D3AA", width: "16%" },
|
||||
],
|
||||
score: [
|
||||
{ title: "环境/Environmental", scores: "32/65" },
|
||||
{ title: "社会/Social", scores: "23/65" },
|
||||
{ title: "治理/Governance", scores: "35.5/55" },
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.el-row {
|
||||
margin: 80px 0;
|
||||
}
|
||||
|
||||
.el-row:first-child {
|
||||
margin: 0 0 40px 0;
|
||||
}
|
||||
|
||||
.kpi{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&-item {
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&-level {
|
||||
width: 32.4%;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
line-height: 50px;
|
||||
border: 1px dashed #707070;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
&-line {
|
||||
width: 1px;
|
||||
height: 30px;
|
||||
background-color: #707070;
|
||||
}
|
||||
}
|
||||
.el-card {
|
||||
border-radius: 20px;
|
||||
height: 232px;
|
||||
|
||||
.sub-title {
|
||||
font-size: 1.8vh;
|
||||
}
|
||||
|
||||
.pri-title {
|
||||
font-size: 2.7vh;
|
||||
}
|
||||
}
|
||||
|
||||
.score {
|
||||
background-color: #22d3aa;
|
||||
height: auto;
|
||||
padding: 20px 0;
|
||||
|
||||
&-item{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
span{
|
||||
color: #fff;
|
||||
font-size: 1.5vh;
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,444 @@
|
|||
<!-- 环境 -->
|
||||
<template>
|
||||
<div>
|
||||
<el-row>
|
||||
<div class="strip" style="width: 100%; height: 40px">
|
||||
<h2>环境/Environmental</h2>
|
||||
<h2>32/65</h2>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-select v-model="companyValue" style="margin-right:20px"></el-select>
|
||||
<el-select v-model="chartsValue"></el-select>
|
||||
<div class="svg-box">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="50vh" viewBox="0 0 584.044 556.038">
|
||||
<defs>
|
||||
<linearGradient id="linear-gradient" x1="0.499" y1="0.361" x2="0.51" y2="-0.222" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0.15" stop-color="#1be2a0"/>
|
||||
<stop offset="1" stop-color="#1be2a0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="0.499" y1="0.361" x2="0.51" y2="-0.222" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-3" x1="0.498" y1="0.769" x2="0.505" y2="-0.148" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0" stop-color="#059bfd"/>
|
||||
<stop offset="0.24" stop-color="#4292fd"/>
|
||||
<stop offset="0.503" stop-color="#7f8afd"/>
|
||||
<stop offset="0.726" stop-color="#ac84fd"/>
|
||||
<stop offset="0.899" stop-color="#c781fd"/>
|
||||
<stop offset="1" stop-color="#d280fd"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-4" x1="0.791" y1="0.261" x2="-0.163" y2="1.046" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-5" y1="0.5" x2="1" y2="0.5" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0" stop-color="#d3daed"/>
|
||||
<stop offset="1" stop-color="#99a7d8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-6" x1="0.498" y1="0.772" x2="0.505" y2="-0.154" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-7" x1="0.5" y1="1.091" x2="0.5" y2="0.14" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0" stop-color="#00067d"/>
|
||||
<stop offset="0.672" stop-color="#365bd6"/>
|
||||
<stop offset="1" stop-color="#4e80fd"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-9" x1="1.153" y1="-0.59" x2="0.283" y2="0.862" xlink:href="#linear-gradient-5"/>
|
||||
<linearGradient id="linear-gradient-10" x1="1.1" y1="0.5" x2="-0.067" y2="0.5" xlink:href="#linear-gradient-5"/>
|
||||
<linearGradient id="linear-gradient-11" x1="0.178" y1="0.397" x2="0.791" y2="0.593" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#c8cfe4"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-16" x1="-33.287" y1="194.373" x2="-32.739" y2="194.373" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-17" x1="0.445" y1="0.833" x2="0.578" y2="-0.264" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-18" x1="-32.685" y1="59.792" x2="-34.4" y2="59.001" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-19" x1="-42.635" y1="92.233" x2="-44.881" y2="91.004" xlink:href="#linear-gradient-7"/>
|
||||
<linearGradient id="linear-gradient-20" x1="1.63" y1="1.184" x2="-0.616" y2="-0.046" xlink:href="#linear-gradient-7"/>
|
||||
<linearGradient id="linear-gradient-21" x1="0" y1="0.5" x2="1" y2="0.5" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-22" x1="-22.792" y1="-91.442" x2="-22.366" y2="-91.442" xlink:href="#linear-gradient-3"/>
|
||||
<linearGradient id="linear-gradient-25" x1="-532.403" y1="1.238" x2="-534.453" y2="-0.261" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0" stop-color="#059bfd"/>
|
||||
<stop offset="0.47" stop-color="#1775e3"/>
|
||||
<stop offset="1" stop-color="#2a4fca"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-27" x1="-0.263" y1="1.072" x2="0.763" y2="0.303" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-28" x1="0.507" y1="-1.537" x2="0.491" y2="2.977" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-29" x1="0.511" y1="-2.618" x2="0.495" y2="1.896" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-30" x1="0" y1="0.5" x2="1" y2="0.5" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-31" x1="0" y1="0.5" x2="1" y2="0.5" xlink:href="#linear-gradient"/>
|
||||
<linearGradient id="linear-gradient-32" x1="0" y1="0.5" x2="1" y2="0.5" xlink:href="#linear-gradient"/>
|
||||
</defs>
|
||||
<g id="组_903" data-name="组 903" transform="translate(-418.713 -421.557)">
|
||||
<g id="组_852" data-name="组 852" transform="translate(542.897 505.909)">
|
||||
<path id="路径_4036" data-name="路径 4036" d="M507.778,458.725H482.446c-4.668-.055-9.014,4.292-9.014,9.652V493.71a9.7,9.7,0,0,0,9.7,9.7l6.529.057a4.87,4.87,0,0,1,4.87,4.87V529.62a1.425,1.425,0,0,0,1.425,1.425h0a1.425,1.425,0,0,0,1.425-1.425V508.341a4.868,4.868,0,0,1,4.87-4.87l6.212-.057a9.705,9.705,0,0,0,9.707-9.7V468.377C518.175,463.017,513.829,458.671,507.778,458.725Z" transform="translate(-473.432 -458.725)" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
<g id="组_853" data-name="组 853" transform="translate(461.218 724.838)">
|
||||
<path id="路径_4037" data-name="路径 4037" d="M471.788,555.191H446.454c-4.668-.054-9.012,4.292-9.012,9.652v25.332a9.7,9.7,0,0,0,9.7,9.7l6.529.054a4.871,4.871,0,0,1,4.87,4.87v21.281a1.425,1.425,0,0,0,1.425,1.425h0a1.424,1.424,0,0,0,1.423-1.425V604.8a4.871,4.871,0,0,1,4.87-4.87l6.214-.054a9.707,9.707,0,0,0,9.707-9.7V564.843C482.185,559.483,477.839,555.137,471.788,555.191Z" transform="translate(-437.442 -555.191)" fill="url(#linear-gradient-2)"/>
|
||||
</g>
|
||||
<g id="组_854" data-name="组 854" transform="translate(731.813 447.58)">
|
||||
<path id="路径_4038" data-name="路径 4038" d="M607.664,716.035l43.68-25.218V462.462l-43.68,25.218Z" transform="translate(-491.941 -395.65)" fill="#14b285"/>
|
||||
<path id="路径_4039" data-name="路径 4039" d="M672.4,525.054l43.68-25.218-2.621-1.513-113.1-65.3-43.679,25.218Z" transform="translate(-556.673 -433.023)" fill="url(#linear-gradient-3)"/>
|
||||
<path id="路径_4040" data-name="路径 4040" d="M672.4,525.054l43.68-25.218L600.353,433.023l-43.679,25.218Z" transform="translate(-556.673 -433.023)" fill="#1be2a0"/>
|
||||
</g>
|
||||
<path id="路径_4041" data-name="路径 4041" d="M619.627,545.077l27.638-15.956-47.609-27.487L572.018,517.59Z" transform="translate(194.62 101.657)" fill="#d6dcef"/>
|
||||
<g id="组_855" data-name="组 855" transform="translate(731.812 472.798)">
|
||||
<path id="路径_4042" data-name="路径 4042" d="M556.673,444.135V672.489L672.4,739.3V510.947Zm82.435,173.936L591.5,590.586V500.779l47.609,27.488Z" transform="translate(-556.673 -444.135)" fill="#0c9"/>
|
||||
</g>
|
||||
<path id="路径_4043" data-name="路径 4043" d="M572.018,558.9v-89.8l27.637,15.957v57.891Z" transform="translate(194.62 60.349)" fill="#c2cae8"/>
|
||||
<path id="路径_4044" data-name="路径 4044" d="M596.306,694.906l80.366-46.4-80.366-46.4-80.366,46.4Z" transform="translate(123.428 229.208)" fill="#c2cae8"/>
|
||||
<path id="路径_4045" data-name="路径 4045" d="M565.486,699.166l69.361-40.046L501.039,581.867l-69.361,40.046Z" transform="translate(16.458 203.512)" fill="url(#linear-gradient-4)"/>
|
||||
<path id="路径_4046" data-name="路径 4046" d="M561.061,685.44l-87.732-50.652v-89.8l87.732,50.652Z" transform="translate(69.334 156.7)" fill="url(#linear-gradient-5)"/>
|
||||
<path id="路径_4047" data-name="路径 4047" d="M511.986,677.592l63.432-36.623v-89.8L511.986,587.8Z" transform="translate(118.409 164.548)" fill="#c2cae8"/>
|
||||
<g id="组_858" data-name="组 858" transform="translate(614.321 490.979)">
|
||||
<path id="路径_4048" data-name="路径 4048" d="M558.323,601.815,504.9,570.973V465.736l53.42,30.842Z" transform="translate(-504.903 -434.894)" fill="#0c9"/>
|
||||
<path id="路径_4049" data-name="路径 4049" d="M528.442,601.815l53.42-30.842V465.736l-53.42,30.842Z" transform="translate(-475.022 -434.894)" fill="#14b285"/>
|
||||
<g id="组_856" data-name="组 856" transform="translate(4.485 41.667)">
|
||||
<path id="路径_4050" data-name="路径 4050" d="M533.446,499.986l-13.472-7.778V478.066l13.472,7.778Z" transform="translate(-490.256 -460.908)" fill="#1be2a0"/>
|
||||
<path id="路径_4051" data-name="路径 4051" d="M526.9,496.206l-13.472-7.778V474.286l13.472,7.778Z" transform="translate(-498.568 -465.707)" fill="#1be2a0"/>
|
||||
<path id="路径_4052" data-name="路径 4052" d="M520.352,492.426l-13.472-7.778V470.506l13.472,7.778Z" transform="translate(-506.879 -470.506)" fill="#1be2a0"/>
|
||||
<path id="路径_4053" data-name="路径 4053" d="M533.446,508.361l-13.472-7.778V486.44l13.472,7.778Z" transform="translate(-490.256 -450.277)" fill="#1be2a0"/>
|
||||
<path id="路径_4054" data-name="路径 4054" d="M526.9,504.581,513.427,496.8V482.66l13.472,7.778Z" transform="translate(-498.568 -455.076)" fill="#1be2a0"/>
|
||||
<path id="路径_4055" data-name="路径 4055" d="M533.446,516.735l-13.472-7.778V494.815l13.472,7.778Z" transform="translate(-490.256 -439.646)" fill="#1be2a0"/>
|
||||
<path id="路径_4056" data-name="路径 4056" d="M526.9,529.7l-13.472-7.778V507.783l13.472,7.778Z" transform="translate(-498.568 -423.182)" fill="#1be2a0"/>
|
||||
</g>
|
||||
<g id="组_857" data-name="组 857" transform="translate(59.165 41.667)">
|
||||
<path id="路径_4057" data-name="路径 4057" d="M530.973,499.986l13.472-7.778V478.066l-13.472,7.778Z" transform="translate(-530.973 -460.908)" fill="#0c9"/>
|
||||
<path id="路径_4058" data-name="路径 4058" d="M537.52,496.206l13.472-7.778V474.286l-13.472,7.778Z" transform="translate(-522.661 -465.707)" fill="#0c9"/>
|
||||
<path id="路径_4059" data-name="路径 4059" d="M544.067,492.426l13.472-7.778V470.506l-13.472,7.778Z" transform="translate(-514.35 -470.506)" fill="#0c9"/>
|
||||
<path id="路径_4060" data-name="路径 4060" d="M530.973,508.361l13.472-7.778V486.44l-13.472,7.778Z" transform="translate(-530.973 -450.277)" fill="#0c9"/>
|
||||
<path id="路径_4061" data-name="路径 4061" d="M537.52,504.581l13.472-7.778V482.66l-13.472,7.778Z" transform="translate(-522.661 -455.076)" fill="#0c9"/>
|
||||
<path id="路径_4062" data-name="路径 4062" d="M544.067,500.8l13.472-7.778V478.88l-13.472,7.778Z" transform="translate(-514.35 -459.875)" fill="#0c9"/>
|
||||
<path id="路径_4063" data-name="路径 4063" d="M530.973,516.735l13.472-7.778V494.815l-13.472,7.778Z" transform="translate(-530.973 -439.646)" fill="#0c9"/>
|
||||
<path id="路径_4064" data-name="路径 4064" d="M537.52,512.955l13.472-7.778V491.035l-13.472,7.778Z" transform="translate(-522.661 -444.445)" fill="#0c9"/>
|
||||
<path id="路径_4065" data-name="路径 4065" d="M537.52,521.33l13.472-7.778V499.409l-13.472,7.778Z" transform="translate(-522.661 -433.813)" fill="#0c9"/>
|
||||
<path id="路径_4066" data-name="路径 4066" d="M537.52,529.7l13.472-7.778V507.783l-13.472,7.778Z" transform="translate(-522.661 -423.182)" fill="#0c9"/>
|
||||
<path id="路径_4067" data-name="路径 4067" d="M544.067,525.924l13.472-7.778V504l-13.472,7.778Z" transform="translate(-514.35 -427.981)" fill="#0c9"/>
|
||||
</g>
|
||||
<path id="路径_4068" data-name="路径 4068" d="M558.323,513.83l53.42-30.842-53.42-30.842L504.9,482.988Z" transform="translate(-504.903 -452.146)" fill="url(#linear-gradient-6)"/>
|
||||
<path id="路径_4069" data-name="路径 4069" d="M558.323,513.83l53.42-30.842-53.42-30.842L504.9,482.988Z" transform="translate(-504.903 -452.146)" fill="#1be2a0"/>
|
||||
</g>
|
||||
<path id="路径_4070" data-name="路径 4070" d="M573.3,685.55,465.839,623.506V513.515L573.3,575.558Z" transform="translate(59.826 116.74)" fill="#c2cae8"/>
|
||||
<path id="路径_4071" data-name="路径 4071" d="M513.19,675.938l77.7-44.859V521.087l-77.7,44.859Z" transform="translate(119.937 126.353)" fill="#d6dcef"/>
|
||||
<path id="路径_4072" data-name="路径 4072" d="M573.3,600.652,651,555.792,543.537,493.749l-77.7,44.859Z" transform="translate(59.826 91.647)" fill="url(#linear-gradient-7)"/>
|
||||
<path id="路径_4073" data-name="路径 4073" d="M573.3,600.652,651,555.792,543.537,493.749l-77.7,44.859Z" transform="translate(59.826 91.647)" fill="#eff1f9"/>
|
||||
<path id="路径_4074" data-name="路径 4074" d="M504.384,548.55l-31.238-18.035V498.542l31.238,18.035Z" transform="translate(69.102 97.733)" fill="#c2cae8"/>
|
||||
<path id="路径_4075" data-name="路径 4075" d="M486.911,545.756l22.586-13.04V500.743l-22.586,13.04Z" transform="translate(86.576 100.527)" fill="#d6dcef"/>
|
||||
<path id="路径_4076" data-name="路径 4076" d="M504.384,523.872l22.586-13.04L495.732,492.8l-22.586,13.04Z" transform="translate(69.102 90.438)" fill="#eff1f9"/>
|
||||
<path id="路径_4077" data-name="路径 4077" d="M638.4,634.516l-31.238-18.035V584.508L638.4,602.543Z" transform="translate(239.237 206.865)" fill="#c2cae8"/>
|
||||
<path id="路径_4078" data-name="路径 4078" d="M620.928,641.419l52.611-30.375V579.071l-52.611,30.375Z" transform="translate(256.711 199.963)" fill="#d6dcef"/>
|
||||
<path id="路径_4079" data-name="路径 4079" d="M638.4,619.534l52.611-30.375-31.238-18.035L607.164,601.5Z" transform="translate(239.237 189.874)" fill="#eff1f9"/>
|
||||
<g id="组_868" data-name="组 868" transform="translate(640.301 661.72)">
|
||||
<g id="组_859" data-name="组 859" transform="translate(0 31.769)">
|
||||
<path id="路径_4080" data-name="路径 4080" d="M516.351,586.945l7.943-4.586V541.377l-7.943,4.586Z" transform="translate(-516.351 -541.377)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_860" data-name="组 860" transform="translate(11.005 25.415)">
|
||||
<path id="路径_4081" data-name="路径 4081" d="M521.2,584.145l7.943-4.586V538.578l-7.943,4.586Z" transform="translate(-521.2 -538.578)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_861" data-name="组 861" transform="translate(33.015 12.707)">
|
||||
<path id="路径_4082" data-name="路径 4082" d="M530.9,578.546l7.944-4.586V532.979l-7.944,4.586Z" transform="translate(-530.898 -532.979)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_862" data-name="组 862" transform="translate(44.02 6.354)">
|
||||
<path id="路径_4083" data-name="路径 4083" d="M535.747,575.746l7.944-4.586V530.179l-7.944,4.586Z" transform="translate(-535.747 -530.179)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_863" data-name="组 863" transform="translate(55.025)">
|
||||
<path id="路径_4084" data-name="路径 4084" d="M540.6,572.946l7.944-4.586V527.379l-7.944,4.586Z" transform="translate(-540.596 -527.379)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_864" data-name="组 864" transform="translate(0 83.69)">
|
||||
<path id="路径_4085" data-name="路径 4085" d="M516.351,609.822l7.943-4.586V564.255l-7.943,4.586Z" transform="translate(-516.351 -564.255)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_865" data-name="组 865" transform="translate(22.01 70.982)">
|
||||
<path id="路径_4086" data-name="路径 4086" d="M526.049,604.223l7.943-4.586V558.656l-7.943,4.586Z" transform="translate(-526.049 -558.656)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_866" data-name="组 866" transform="translate(33.015 64.628)">
|
||||
<path id="路径_4087" data-name="路径 4087" d="M530.9,601.424l7.944-4.586V555.856l-7.944,4.586Z" transform="translate(-530.898 -555.856)" fill="#c2cae8"/>
|
||||
</g>
|
||||
<g id="组_867" data-name="组 867" transform="translate(44.02 58.275)">
|
||||
<path id="路径_4088" data-name="路径 4088" d="M535.747,598.624l7.944-4.586V553.057l-7.944,4.586Z" transform="translate(-535.747 -553.057)" fill="#c2cae8"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="组_878" data-name="组 878" transform="translate(562.986 661.72)">
|
||||
<g id="组_869" data-name="组 869" transform="translate(55.025 31.769)">
|
||||
<path id="路径_4089" data-name="路径 4089" d="M514.473,586.945l-7.943-4.586V541.377l7.943,4.586Z" transform="translate(-506.529 -541.377)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_870" data-name="组 870" transform="translate(44.02 25.415)">
|
||||
<path id="路径_4090" data-name="路径 4090" d="M509.623,584.145l-7.943-4.586V538.578l7.943,4.586Z" transform="translate(-501.68 -538.578)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_871" data-name="组 871" transform="translate(22.01 12.707)">
|
||||
<path id="路径_4091" data-name="路径 4091" d="M499.925,578.546l-7.943-4.586V532.979l7.943,4.586Z" transform="translate(-491.982 -532.979)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_872" data-name="组 872" transform="translate(11.005 6.354)">
|
||||
<path id="路径_4092" data-name="路径 4092" d="M495.076,575.746l-7.943-4.586V530.179l7.943,4.586Z" transform="translate(-487.133 -530.179)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_873" data-name="组 873">
|
||||
<path id="路径_4093" data-name="路径 4093" d="M490.227,572.946l-7.943-4.586V527.379l7.943,4.586Z" transform="translate(-482.284 -527.379)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_874" data-name="组 874" transform="translate(55.025 83.69)">
|
||||
<path id="路径_4094" data-name="路径 4094" d="M514.473,609.822l-7.943-4.586V564.255l7.943,4.586Z" transform="translate(-506.529 -564.255)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_875" data-name="组 875" transform="translate(33.015 70.982)">
|
||||
<path id="路径_4095" data-name="路径 4095" d="M504.774,604.223l-7.944-4.586V558.656l7.944,4.586Z" transform="translate(-496.831 -558.656)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_876" data-name="组 876" transform="translate(22.01 64.628)">
|
||||
<path id="路径_4096" data-name="路径 4096" d="M499.925,601.424l-7.943-4.586V555.856l7.943,4.586Z" transform="translate(-491.982 -555.856)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<g id="组_877" data-name="组 877" transform="translate(11.005 58.275)">
|
||||
<path id="路径_4097" data-name="路径 4097" d="M495.076,598.624l-7.943-4.586V553.057l7.943,4.586Z" transform="translate(-487.133 -553.057)" fill="#eff1f9"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="组_879" data-name="组 879" transform="translate(639.368 684.9)">
|
||||
<path id="路径_4098" data-name="路径 4098" d="M611,731.6l-80.366-46.4V558.038L611,604.437Z" transform="translate(-497.285 -511.638)" fill="#c2cae8"/>
|
||||
<path id="路径_4099" data-name="路径 4099" d="M584.7,604.437v89.711L551.351,713.4v37.449L584.7,731.6l80.366-46.4V558.038Z" transform="translate(-470.985 -511.638)" fill="#d6dcef"/>
|
||||
<path id="路径_4100" data-name="路径 4100" d="M611,630.391l80.366-46.4L611,537.593l-80.366,46.4Z" transform="translate(-497.285 -537.593)" fill="url(#linear-gradient-6)"/>
|
||||
<path id="路径_4101" data-name="路径 4101" d="M611,630.391l80.366-46.4L611,537.593l-80.366,46.4Z" transform="translate(-497.285 -537.593)" fill="#eff1f9"/>
|
||||
<path id="路径_4102" data-name="路径 4102" d="M596.306,663.221l33.35-19.254-80.366-46.4-33.35,19.254Z" transform="translate(-515.94 -461.456)" fill="#eff1f9"/>
|
||||
<path id="路径_4103" data-name="路径 4103" d="M515.94,606.051v6.7l74.617,43.08V686.58l5.749,3.319V652.45Z" transform="translate(-515.94 -450.686)" fill="url(#linear-gradient-9)"/>
|
||||
</g>
|
||||
<g id="组_880" data-name="组 880" transform="translate(681.071 744.286)">
|
||||
<path id="路径_4104" data-name="路径 4104" d="M601.576,616.735,534.315,577.9V563.76l67.261,38.833Z" transform="translate(-534.315 -563.76)" fill="#eff1f9"/>
|
||||
<path id="路径_4105" data-name="路径 4105" d="M571.488,607.739l-13.472-7.778V585.818l13.472,7.778Z" transform="translate(-504.228 -535.757)" fill="#eff1f9"/>
|
||||
<path id="路径_4106" data-name="路径 4106" d="M571.488,616.113l-13.472-7.778V594.192l13.472,7.778Z" transform="translate(-504.228 -525.126)" fill="#eff1f9"/>
|
||||
<path id="路径_4107" data-name="路径 4107" d="M571.488,624.487l-13.472-7.778V602.567l13.472,7.778Z" transform="translate(-504.228 -514.495)" fill="#eff1f9"/>
|
||||
<path id="路径_4108" data-name="路径 4108" d="M586.717,616.531l-52.4-30.254V572.134l52.4,30.254Z" transform="translate(-534.315 -553.129)" fill="#eff1f9"/>
|
||||
<path id="路径_4109" data-name="路径 4109" d="M586.92,625.091l-41.06-23.828V587.12l41.06,23.828Z" transform="translate(-519.659 -534.104)" fill="#eff1f9"/>
|
||||
</g>
|
||||
<path id="路径_4110" data-name="路径 4110" d="M577.78,639.74l18.372-10.607V606.2L577.78,616.81Z" transform="translate(201.934 234.407)" fill="url(#linear-gradient-10)"/>
|
||||
<path id="路径_4111" data-name="路径 4111" d="M579.626,627.816l9.994-5.77V609.572l-9.994,5.77Z" transform="translate(204.277 238.684)" fill="url(#linear-gradient-11)"/>
|
||||
<image id="矩形_436" data-name="矩形 436" width="28.323" height="28.323" transform="translate(783.663 847.775)" xlink:href="data:image/png;base64,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" style="mix-blend-mode: soft-light;isolation: isolate"/>
|
||||
<path id="路径_4112" data-name="路径 4112" d="M590.528,629.839,608.9,619.232V596.3l-18.372,10.607Z" transform="translate(218.117 221.837)" fill="url(#linear-gradient-10)"/>
|
||||
<path id="路径_4113" data-name="路径 4113" d="M592.373,617.915l9.994-5.77V599.67l-9.994,5.77Z" transform="translate(220.46 226.114)" fill="url(#linear-gradient-11)"/>
|
||||
<image id="矩形_437" data-name="矩形 437" width="28.323" height="28.323" transform="translate(812.531 825.443)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAANKADAAQAAAABAAAANAAAAAB+d885AAAGWUlEQVRoBe2ZTYscVRSGK0Nc+omfGUMCfhNJRHD8B+7d+Df8DW5cuBMhW1eCuBPcijsXQQwSAiEi6mJ0NHFM4iST7p7u8rzve86t29XdRX9UTfdiCoaqunXr3vOe55xz71SfKsuyaOPY3fvvo1FZ9s6+8NjHbYy37BinVhX0598Hn0BIOSr75pu+Xdu57J1/8YnLyxq1yntLC/rr9v3PaPzIxFRC+qNRYfcURYEvnXvyi1UMXPTdrUVfQH8Tc9mMPuJfUQztPCxKnIujoiiHFsT6sz43f91/f5k5ln1nIUK39h98bsYbBVHBtdMhFaODcGPIKfR07+29N15++rtlDZ33vbkE/XPn8EvkCHPFwouiXIy198aMZz5FH54lFu8xz8r+m689++O8Bi7ar1HQv3cffu0eNzHKDaNDKtY+LiTLnSRwmlh3yMXXn7uxqLHz9J8p6M69h9+QhBuajETIjVGgQKdg1xZ2fB4E2Z90KlIxhol7+8Lze/MYOm+fCUH3DnrfzqZQ5Y4LZLmeEOvhFX10zshWlEGeIfzOxTOH8xrd1O90PDy43/8+DLO2o7JAFSu8elnlYgVD9eI1740gq5n1R6VDf74T7VbtUAk5hqqgxqyqIJ9rnjBkxfPpB4eDqxRSFP3MMAlRCT4yY2hYEmhi0deNlDiWajOe4mQon6sdRtPwEEgHYIyiGKHU27mVYysZ6R62URehYCQlVuJESmPwGqIlREYHWTgJVHE/3Lm03aKgikKagN6cj4KTdCFhfCy0Cl0nWRMLOhIF2q0dW/LgeC5oIvcgjRqjgPBjyDEXZDxIkaxZVqPAdvSvhxz7v/vWtoVce8cWDAlPicyEYXUKDBMPl+aQA/2cGkWbMNAnHeZQe2psJMsh0LHqQ89We7IaBRUGGlQlflGFlsbIjde1kUn9EdIhxKp1OWybDjyDosBQoMckKiaFATRimliFGMKropAZj7C0Zwy/GKMKS7W3mjuB2XbbIETDTIiTqrxKcUksSEaoVGJJwdshxA1HOGVirX+EGSLC6Ni07R9etiPkIp9YBBDrSSwNNTGVA+xfhUSA7R62GCMJkViGqpyWHNK+Fo6YhZwbTwo0qCoWZpD1jhBykuovCiJHITI+pwaBIAvBXES7ogNFWcg5FVIw4xVeTsEFok1hVIk1QylWgiU2wlKEGaZODYso+nd2MOQi7m2WlOTKG6fAwhEUKBahOCZWY0xQg0CFrY1tNDsVAy8x5JQLpIAJJynQGBeiqojkp6Hs7+U4yynlk6ipyhm1Nrc4MH7aYQurGyYKzBOnA6NqFCTWBspDzgnIISoeqmhOB05qdQM6TUi0YesjD05SUPjBy9y2pEUx+otCVY5JFmKtv/pkTjoOOhCFrU9OwauRVvcQK2IwlJ5nkiPkvB1CfAwKQbvEykn230n3uZMIRS44BQ8l9zDzKRlpXq9CLihItIslSesTYpFnJqaLLU4IqJ9jty0PM1xmUPDE18JIIk7BSXl42QSRU4lafdIu77nbdm8rVGZRcLGkpLwLmgo5PPd8ZMiVRWcb0CaHWNnOciGuo1BELqid+YWdQaJg1CRCYcmwrSgzRJsm7+KZb308qWsUUHazxHcCNJ7iQDYJNPGpv+h0tgFtckRah1gc5HFbN7Q20eMZBW8nFa4xJMkikKoaKl6EZdPEXT3jOhQUbJJEwQw2w3zRhcAQ621Oh+IQdi4Q951vQJuckUJOhBRC7uVI+sgFXzBpfEaBonmfUUOereVIIWezZxTsWmGHvDBjQcgpcMftwj3kKIT5RzpryZ3wXvoU/Pvu3Q/NcHyXnv59OvsJxT/fVh/r/VcFtO9cOoMPlms70g9e57Yf/1QUuBvAhtJDjnTSIorcUT6pAjodPveKtzYxmDgRyq34+bf9D0DLBIrC2Mf1/CdI/arg38QH66YDDeljfS7olfNPfYX7G7/cfs8rIHIqFQLklHYD1gaSx/jvQW7ntOuphOodr9+8tSMK+klEP0n6NUmWljvbg/p767hPOdQ0+YVXn7lCUtqAMr+YSynPSKlpiGN7Nheh3Jqr1/fOZvk1wPWm0IGdCwsKcT9c++NR+/lxgFA8zv93Yv5Z56UFYcArP+0+skl0YNNKgjDAph1zFYVNM7rJnhNBTd7ZhGcnhDaBQpMNJ4SavLMJz/4H8q3w7/H1178AAAAASUVORK5CYII=" style="mix-blend-mode: soft-light;isolation: isolate"/>
|
||||
<path id="路径_4114" data-name="路径 4114" d="M584.014,614.93l13.5-7.793V590.29l-13.5,7.793Z" transform="translate(209.848 214.206)" fill="url(#linear-gradient-10)"/>
|
||||
<path id="路径_4115" data-name="路径 4115" d="M584.786,609.943l9.994-5.77V591.7l-9.994,5.77Z" transform="translate(210.828 215.994)" fill="url(#linear-gradient-11)"/>
|
||||
<image id="矩形_438" data-name="矩形 438" width="19.608" height="22.876" transform="translate(795.101 807.469)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAqCAYAAADbCvnoAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAJKADAAQAAAABAAAAKgAAAAC29n+nAAAD2klEQVRYCe1YTYrUQBjNNAPiVgXFWSgyIIOLERd6E2/gDVx4A2/gDUTwAuLKreJmcKGIC8XBdgZ0nHHsbibpTvze91OpVLpjfntlQ5FUdSXv1XvvS6V7I8uyqI/Ppy9H99M0m1Kb7GxfetX2nhtdCX3eP34AEos0BRnXFjS2u3P5Y1NirQl9HZ88FCI5CSVE5HQsy6Z3bl05aEJq1GSyzd3//vsROR2nWZSQwtZiOkfL+2kWv303Pm/X1Tlu1plkc8aHp4+hAoGiAZgIRNaoHyVEMicWCTm7vs6xFqHDH5MnQiSaUgkkaQp1CmoQkcwbg3JELI2Su7tb8zpEbE4loZ+/pk+Rh4IiZEPGK2dQARaVWCFRTcnSPAOqe1yZoaPj2XPJiK5WQTU3tHoG5cyQOkTG+o7onNRZ1CVi80oKnZyevfRykueBQNUmtgLWlTKjxMw+A2lydIT+TOPXSmQiN+Swqg3lzEAhJejmaMDRn9+7vZU2IWJzN2dn8w8a2InKTjf0SlfCGoJqyUMls0quIZI8ZgBNjyM/C2oBwAulHIIqYc2RywxI4rqE1Gm9H41wA2nOAg4qQC0L+Rx5zjir5DnD1qkyc1zXVBV/PhEiyTkPRoyPXj7yCnJEZBEINyuihLGQuIs6IAZCUAK+J6F9BARAH5TzwYvAfFJISYIMyryTOkpIQbFaV8rFoCppVsDsQ17wxLY+5vjStz0fOXVUIVmxs4+DqiqIikFVmVp9qGMKIdRYKXKzxDqMSa50HtlkfVaSr2mrSHidhNqIgFjBOgAX7VO1YJ8RRXYabaAhCb/PZQ+Q0JYcuGifqMVKaqay2L9h13NkyAumWkevDaJADkzzbIztVRtbbaBVpLnsQ1v49UIqyCNbtA6EsZiqm7f5DpZ5oLqJyqsFKwLQpSpSsNtuoFVEnUIKbEHF0XvO5NapMky26sZtv/MUKoCSatTHXsVqFVRk0kOog0WwQmqJb51sCSAjGygUYeto7mDqMCEhIyAWVCXISmjGiIwr/06vF/+yEpYBGOpYYwWgiDaoZWP0K+Jq75Xlk4RlAGZABfaIhWT72UB9AuG5KSSZ8ciBKKyj11tTp5fXi5BA2GeFKjPDryRiX3jxEH3aOtw24TKjFkpfyr7XDbRqIZqhwnMGFeVypWU/aJB9giBkGSk8Z1z1ye/zxr9AfZAm56PtaxeeackTMauqvOShUJMbdp3Lv+1v3rj4QoJtjwAmRpXH/16sTR0spvQP2t77g+tU6vYv2GyoPWulkpShaFl7s/ft3LLxocdKCq1kvqYvVv4/tCb8Esx/QiVJgoG/9frSm/sV22oAAAAASUVORK5CYII=" style="mix-blend-mode: soft-light;isolation: isolate"/>
|
||||
<g id="组_881" data-name="组 881" transform="translate(713.658 702.498)">
|
||||
<path id="路径_4116" data-name="路径 4116" d="M602.22,550.869l-16.91,9.761,15.762,9.119,16.908-9.761,9.546,5.522-44,25.4-9.546-5.522,18.41-10.63-15.762-9.119-18.41,10.63-9.543-5.522,44-25.4Z" transform="translate(-548.674 -545.347)" fill="#d6dcef"/>
|
||||
</g>
|
||||
<g id="组_884" data-name="组 884" transform="translate(776.037 623.912)">
|
||||
<path id="路径_4117" data-name="路径 4117" d="M591.774,553.852a9.6,9.6,0,0,1-4.133-.935A1.615,1.615,0,1,1,589.031,550a6.377,6.377,0,0,0,5.93-.234l21.181-12.23a1.617,1.617,0,0,1,1.616,2.8l-21.181,12.228A9.6,9.6,0,0,1,591.774,553.852Z" transform="translate(-562.754 -476.951)" fill="#2a4fca"/>
|
||||
<path id="路径_4118" data-name="路径 4118" d="M611.195,558.5a.607.607,0,0,1-.6-.542c-.011-.132-1.437-13.109-9.541-17.643-1.938-1.085-3.5-1.287-4.63-.6-2.717,1.65-2.565,7.737-2.565,7.8a.605.605,0,1,1-1.21.039c-.009-.279-.175-6.856,3.143-8.872,1.534-.933,3.5-.74,5.853.574,8.658,4.845,10.1,18.017,10.156,18.576a.607.607,0,0,1-.543.665Z" transform="translate(-555.236 -475.957)" fill="#2a4fca"/>
|
||||
<path id="路径_4119" data-name="路径 4119" d="M617.365,555.088a.6.6,0,0,1-.6-.545c-.013-.129-1.437-13.106-9.541-17.641-1.938-1.085-3.5-1.284-4.632-.6-2.258,1.373-2.614,6.1-2.562,7.8a.6.6,0,0,1-.586.624.626.626,0,0,1-.624-.585c-.009-.279-.175-6.856,3.143-8.871,1.534-.935,3.5-.74,5.851.574,8.658,4.845,10.1,18.018,10.156,18.576a.606.606,0,0,1-.54.665Z" transform="translate(-547.399 -480.29)" fill="#2a4fca"/>
|
||||
<path id="路径_4120" data-name="路径 4120" d="M621.044,527.568l1.9-3.919-6.547-3.69a1,1,0,0,0-.949-.018h0a1.449,1.449,0,0,0-.3,2.369Z" transform="translate(-527.275 -499.156)" fill="url(#linear-gradient-16)"/>
|
||||
<path id="路径_4121" data-name="路径 4121" d="M606.692,548.6l42.138-27.5a1.533,1.533,0,0,0-.073-2.61h0a1.531,1.531,0,0,0-1.448-.043L604.8,539.614Z" transform="translate(-539.808 -501.116)" fill="url(#linear-gradient-17)"/>
|
||||
<g id="组_882" data-name="组 882" transform="translate(26.825 31.893)">
|
||||
<path id="路径_4122" data-name="路径 4122" d="M634.124,529.786c-5.588-9-29.6-4.212-38.6,1.375a19.161,19.161,0,0,0-5.32,4.909c-4,23.358,25.268,6,30.625,8.179,3.583,1.462-4.237,16.063-15.108,18.344a17.139,17.139,0,0,1-16.545-5.3c.054.093.1.188.163.282a19.183,19.183,0,0,0,26.415,6.184C624.758,558.176,639.71,538.79,634.124,529.786Z" transform="translate(-586.46 -524.773)" fill="url(#linear-gradient-18)"/>
|
||||
<path id="路径_4123" data-name="路径 4123" d="M607.242,556.275c10.871-2.281,18.692-16.883,15.108-18.344-5.356-2.183-34.626,15.179-30.625-8.179a19.184,19.184,0,0,0-1.028,21.227A17.139,17.139,0,0,0,607.242,556.275Z" transform="translate(-587.98 -518.453)" fill="url(#linear-gradient-19)"/>
|
||||
<path id="路径_4124" data-name="路径 4124" d="M607.242,556.275c10.871-2.281,18.692-16.883,15.108-18.344-5.356-2.183-34.626,15.179-30.625-8.179a19.184,19.184,0,0,0-1.028,21.227A17.139,17.139,0,0,0,607.242,556.275Z" transform="translate(-587.98 -518.453)" fill="url(#linear-gradient-20)"/>
|
||||
</g>
|
||||
<path id="路径_4125" data-name="路径 4125" d="M599.68,558.417a9.611,9.611,0,0,1-4.133-.935,1.616,1.616,0,0,1,1.391-2.916,6.38,6.38,0,0,0,5.928-.234l21.183-12.23a1.616,1.616,0,0,1,1.616,2.8l-21.183,12.23A9.6,9.6,0,0,1,599.68,558.417Z" transform="translate(-552.717 -471.155)" fill="#2a4fca"/>
|
||||
<path id="路径_4126" data-name="路径 4126" d="M620.788,532.14l5.624-3.245,2.227-16.5a.606.606,0,0,0-.9-.606h0a5.334,5.334,0,0,0-2.492,3.268Z" transform="translate(-519.505 -509.473)" fill="url(#linear-gradient-21)"/>
|
||||
<path id="路径_4127" data-name="路径 4127" d="M617.477,524.592l4.251-2.456,6.316,3.209a.579.579,0,0,1,.027,1.019h0a3.689,3.689,0,0,1-2.828.363Z" transform="translate(-523.708 -496.226)" fill="url(#linear-gradient-22)"/>
|
||||
<g id="组_883" data-name="组 883">
|
||||
<image id="矩形_439" data-name="矩形 439" width="70.264" height="28.323" transform="translate(14.162)" xlink:href="data:image/png;base64,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"/>
|
||||
<image id="矩形_440" data-name="矩形 440" width="47.932" height="38.672" transform="translate(49.021 9.26)" xlink:href="data:image/png;base64,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"/>
|
||||
<image id="矩形_441" data-name="矩形 441" width="49.566" height="39.217" transform="translate(0 8.17)" xlink:href="data:image/png;base64,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"/>
|
||||
<image id="矩形_442" data-name="矩形 442" width="70.808" height="28.868" transform="translate(12.528 27.779)" xlink:href="data:image/png;base64,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"/>
|
||||
</g>
|
||||
</g>
|
||||
<path id="路径_4128" data-name="路径 4128" d="M470.426,568.313h-3.373a2.4,2.4,0,0,1-2.154-1.337l-2.719-5.49a2.4,2.4,0,0,0-2.154-1.337H448.911A2.4,2.4,0,0,0,446.6,561.9l-1.328,4.668a2.4,2.4,0,0,1-2.313,1.747h-.47a2.4,2.4,0,0,0-2.4,2.406v3.638a2.4,2.4,0,0,0,2.4,2.406h2.653a3.792,3.792,0,0,0,6.863,0h8.846a3.792,3.792,0,0,0,6.863,0h2.712a2.4,2.4,0,0,0,2.4-2.406v-3.638A2.4,2.4,0,0,0,470.426,568.313Zm-23.067-.068,1.382-5.76h11.608l2.5,5.76Z" transform="translate(27.131 175.943)" fill="#fff"/>
|
||||
<g id="组_885" data-name="组 885" transform="translate(472.373 796.702)">
|
||||
<path id="路径_4129" data-name="路径 4129" d="M557.3,654.349l-.363-.209L452.444,593.81a.727.727,0,1,1,.728-1.257L557.3,652.671l21.646-12.5a.726.726,0,1,1,.729,1.257Z" transform="translate(-430.013 -579.748)" fill="#fff"/>
|
||||
<path id="路径_4130" data-name="路径 4130" d="M491.177,623.168a.726.726,0,0,1-.363-1.355L512.823,609.1a.727.727,0,0,1,.726,1.26L491.54,623.07A.734.734,0,0,1,491.177,623.168Z" transform="translate(-381.304 -558.734)" fill="#fff"/>
|
||||
<path id="路径_4131" data-name="路径 4131" d="M483.5,618.736a.726.726,0,0,1-.363-1.355l22.009-12.707a.727.727,0,1,1,.726,1.26l-22.01,12.707A.719.719,0,0,1,483.5,618.736Z" transform="translate(-391.046 -564.359)" fill="#fff"/>
|
||||
<path id="路径_4132" data-name="路径 4132" d="M475.83,614.306a.726.726,0,0,1-.365-1.355l22.01-12.707a.727.727,0,1,1,.729,1.257l-22.01,12.709A.755.755,0,0,1,475.83,614.306Z" transform="translate(-400.788 -569.983)" fill="#fff"/>
|
||||
<path id="路径_4133" data-name="路径 4133" d="M468.156,609.877a.726.726,0,0,1-.363-1.355l22.01-12.709a.727.727,0,0,1,.726,1.26l-22.01,12.707A.722.722,0,0,1,468.156,609.877Z" transform="translate(-410.529 -575.608)" fill="#fff"/>
|
||||
<path id="路径_4134" data-name="路径 4134" d="M460.483,605.445a.726.726,0,0,1-.365-1.355l22.01-12.707a.726.726,0,1,1,.726,1.257L460.846,605.35A.729.729,0,0,1,460.483,605.445Z" transform="translate(-420.271 -581.232)" fill="#fff"/>
|
||||
<path id="路径_4135" data-name="路径 4135" d="M452.809,601.015a.726.726,0,0,1-.365-1.355l22.012-12.707a.726.726,0,1,1,.726,1.257l-22.01,12.707A.733.733,0,0,1,452.809,601.015Z" transform="translate(-430.013 -586.856)" fill="#fff"/>
|
||||
<path id="路径_4136" data-name="路径 4136" d="M489.127,633.166a.726.726,0,0,1-.365-1.355l22.01-12.707a.727.727,0,1,1,.729,1.257l-22.01,12.707A.734.734,0,0,1,489.127,633.166Z" transform="translate(-383.907 -546.04)" fill="#fff"/>
|
||||
<path id="路径_4137" data-name="路径 4137" d="M481.453,628.737a.727.727,0,0,1-.363-1.357l22.01-12.707a.727.727,0,0,1,.726,1.259L481.816,628.64A.732.732,0,0,1,481.453,628.737Z" transform="translate(-393.649 -551.665)" fill="#fff"/>
|
||||
<path id="路径_4138" data-name="路径 4138" d="M473.78,624.305a.726.726,0,0,1-.365-1.355l22.009-12.707a.727.727,0,0,1,.726,1.26L474.141,624.21A.717.717,0,0,1,473.78,624.305Z" transform="translate(-403.391 -557.289)" fill="#fff"/>
|
||||
<path id="路径_4139" data-name="路径 4139" d="M466.106,619.875a.726.726,0,0,1-.365-1.355l22.012-12.707a.726.726,0,0,1,.726,1.257l-22.01,12.707A.734.734,0,0,1,466.106,619.875Z" transform="translate(-413.132 -562.913)" fill="#fff"/>
|
||||
<path id="路径_4140" data-name="路径 4140" d="M458.432,615.446a.727.727,0,0,1-.363-1.357l22.01-12.707a.727.727,0,0,1,.726,1.26L458.8,615.348A.733.733,0,0,1,458.432,615.446Z" transform="translate(-422.874 -568.538)" fill="#fff"/>
|
||||
<path id="路径_4141" data-name="路径 4141" d="M450.759,611.015a.726.726,0,0,1-.365-1.355l22.01-12.707a.727.727,0,1,1,.728,1.257L451.12,610.92A.716.716,0,0,1,450.759,611.015Z" transform="translate(-432.616 -574.163)" fill="#fff"/>
|
||||
<path id="路径_4142" data-name="路径 4142" d="M443.085,606.584a.726.726,0,0,1-.365-1.355l22.012-12.707a.726.726,0,0,1,.726,1.257l-22.01,12.707A.733.733,0,0,1,443.085,606.584Z" transform="translate(-442.357 -579.786)" fill="#fff"/>
|
||||
</g>
|
||||
<g id="组_889" data-name="组 889" transform="translate(552.833 515.596)">
|
||||
<g id="组_886" data-name="组 886">
|
||||
<path id="路径_4143" data-name="路径 4143" d="M479.367,482.431a1.559,1.559,0,0,1-1.557-1.559,17.9,17.9,0,0,1,17.879-17.879,1.558,1.558,0,0,1,0,3.116,14.779,14.779,0,0,0-14.763,14.763A1.559,1.559,0,0,1,479.367,482.431Z" transform="translate(-477.81 -462.993)" fill="#fff"/>
|
||||
</g>
|
||||
<g id="组_887" data-name="组 887" transform="translate(5.524 5.524)">
|
||||
<path id="路径_4144" data-name="路径 4144" d="M481.8,479.341a1.559,1.559,0,0,1-1.559-1.559A12.369,12.369,0,0,1,492.6,465.427a1.559,1.559,0,0,1,0,3.118,9.248,9.248,0,0,0-9.239,9.237A1.558,1.558,0,0,1,481.8,479.341Z" transform="translate(-480.244 -465.427)" fill="#fff"/>
|
||||
</g>
|
||||
<g id="组_888" data-name="组 888" transform="translate(10.975 10.975)">
|
||||
<path id="路径_4145" data-name="路径 4145" d="M484.2,476.292a1.558,1.558,0,0,1-1.557-1.559,6.911,6.911,0,0,1,6.9-6.9,1.559,1.559,0,0,1,0,3.118,3.791,3.791,0,0,0-3.788,3.785A1.559,1.559,0,0,1,484.2,476.292Z" transform="translate(-482.646 -467.829)" fill="#fff"/>
|
||||
</g>
|
||||
<circle id="椭圆_72" data-name="椭圆 72" cx="2.083" cy="2.083" r="2.083" transform="translate(16.142 16.064)" fill="#fff"/>
|
||||
</g>
|
||||
<g id="组_890" data-name="组 890" transform="translate(611.293 451.873)">
|
||||
<path id="路径_4146" data-name="路径 4146" d="M537.915,434.915H512.583c-4.668-.055-9.014,4.289-9.014,9.65V469.9a9.707,9.707,0,0,0,9.707,9.707l6.527.054a4.871,4.871,0,0,1,4.87,4.87V505.81a1.426,1.426,0,0,0,1.425,1.425h0a1.426,1.426,0,0,0,1.425-1.425V484.529a4.871,4.871,0,0,1,4.87-4.87l6.214-.054a9.705,9.705,0,0,0,9.7-9.707V444.565C548.312,439.2,543.968,434.861,537.915,434.915Z" transform="translate(-503.569 -434.915)" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
<g id="组_891" data-name="组 891" transform="translate(857.147 421.557)">
|
||||
<path id="路径_4147" data-name="路径 4147" d="M646.245,421.557H620.913c-4.668-.055-9.014,4.292-9.014,9.652v25.332a9.705,9.705,0,0,0,9.707,9.7l6.527.055a4.871,4.871,0,0,1,4.87,4.87v21.281a1.425,1.425,0,0,0,1.425,1.425h0a1.425,1.425,0,0,0,1.425-1.425V471.171a4.871,4.871,0,0,1,4.87-4.87l6.214-.055a9.7,9.7,0,0,0,9.7-9.7V431.209C656.642,425.849,652.3,421.5,646.245,421.557Z" transform="translate(-611.899 -421.557)" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
<g id="组_892" data-name="组 892" transform="translate(725.927 882.848)">
|
||||
<path id="路径_4148" data-name="路径 4148" d="M558.528,677.027a1.476,1.476,0,0,1-1.475-1.477v-41.13a9.535,9.535,0,0,1,14.3-8.259,1.476,1.476,0,1,1-1.475,2.558,6.585,6.585,0,0,0-9.877,5.7v41.13A1.476,1.476,0,0,1,558.528,677.027Z" transform="translate(-550.306 -624.747)" fill="#059bfd"/>
|
||||
<image id="矩形_443" data-name="矩形 443" width="44.664" height="66.995" transform="translate(0 1.421)" xlink:href="data:image/png;base64,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" style="mix-blend-mode: soft-light;isolation: isolate"/>
|
||||
<path id="路径_4149" data-name="路径 4149" d="M561.709,625.7c1.475-1.589,7.816-.744,10.192.243a4.819,4.819,0,0,1,1.4.865,2.5,2.5,0,0,1,.272,3.747l-.043.05c-1.475,1.589-4.6,2.077-6.976,1.092S560.234,627.288,561.709,625.7Z" transform="translate(-544.803 -624.814)" fill="url(#linear-gradient-25)"/>
|
||||
</g>
|
||||
<path id="路径_4150" data-name="路径 4150" d="M520.648,448.8a4.775,4.775,0,1,0-5.426-.014l-3.431.949a2.7,2.7,0,0,0-1.977,2.6v4.559a1.873,1.873,0,0,0,1.872,1.872h12.444A1.871,1.871,0,0,0,526,456.889v-4.559a2.7,2.7,0,0,0-1.974-2.6Z" transform="translate(115.65 23.526)" fill="#fff"/>
|
||||
<path id="路径_4151" data-name="路径 4151" d="M515.159,448.069l.833-.232-1.911-.529a3.44,3.44,0,1,0-3.908-.011l-1.92.531a2.7,2.7,0,0,0-1.974,2.6v2.185a1.871,1.871,0,0,0,1.872,1.872h5.032v-3.82A2.694,2.694,0,0,1,515.159,448.069Z" transform="translate(111.164 24.729)" fill="#fff"/>
|
||||
<path id="路径_4152" data-name="路径 4152" d="M524.139,447.828l-1.879-.52a3.44,3.44,0,1,0-3.908-.011l-2.058.57.726.2a2.692,2.692,0,0,1,1.977,2.6v3.82h5.245a1.871,1.871,0,0,0,1.872-1.872v-2.185A2.7,2.7,0,0,0,524.139,447.828Z" transform="translate(123.877 24.729)" fill="#fff"/>
|
||||
<g id="组_893" data-name="组 893" transform="translate(898.17 690.707)">
|
||||
<path id="路径_4153" data-name="路径 4153" d="M664.322,540.152H638.99c-4.668-.054-9.015,4.289-9.015,9.65v25.332a9.707,9.707,0,0,0,9.707,9.707l6.527.054a4.869,4.869,0,0,1,4.87,4.87v21.279a1.426,1.426,0,0,0,1.425,1.425h0a1.425,1.425,0,0,0,1.425-1.425V589.766a4.871,4.871,0,0,1,4.87-4.87l6.214-.054a9.705,9.705,0,0,0,9.7-9.707V549.8C674.718,544.442,670.374,540.1,664.322,540.152Z" transform="translate(-629.975 -540.152)" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
<path id="路径_4154" data-name="路径 4154" d="M633.891,546.637v14.7h27.288v-14.7Zm14.057,11.731v1.487h-.9v-1.443a4.2,4.2,0,0,1-2.188-.629l.343-.958a3.821,3.821,0,0,0,2.059.615c1.014,0,1.7-.588,1.7-1.4,0-.785-.558-1.271-1.616-1.7-1.457-.572-2.358-1.228-2.358-2.472a2.344,2.344,0,0,1,2.158-2.3v-1.443h.885v1.387a3.806,3.806,0,0,1,1.859.5l-.359.944a3.438,3.438,0,0,0-1.8-.486c-1.1,0-1.514.658-1.514,1.228,0,.744.529,1.114,1.77,1.629,1.473.6,2.215,1.344,2.215,2.615A2.485,2.485,0,0,1,647.948,558.368Z" transform="translate(273.167 158.789)" fill="#fff"/>
|
||||
<path id="路径_4155" data-name="路径 4155" d="M615.828,427.732V445.74h26.909V427.732Zm16.892,1h3.3v2.188h-3.3Zm-5.088,0h3.3v2.188h-3.3Zm-10.181,0h3.3v2.188h-3.3Zm3.422,15.939h-3.3v-2.322h3.3Zm1.668-15.939h3.3v2.188h-3.3Zm3.422,15.939h-3.3v-2.322h3.3Zm5.09,0h-3.3v-2.322h3.3Zm-3.9-4.487a.627.627,0,0,1-.942-.542v-6.25a.627.627,0,0,1,.942-.542l5.413,3.123a.628.628,0,0,1,0,1.087Zm8.987,4.487h-3.3v-2.322h3.3Zm1.666-15.939h3.3v2.188h-3.3Zm3.422,15.939h-3.3v-2.322h3.3Z" transform="translate(250.236 7.839)" fill="#fff"/>
|
||||
<path id="路径_4156" data-name="路径 4156" d="M603.022,685.754a.726.726,0,0,1-.372-1.35l130.857-77.531a.727.727,0,0,1,.74,1.251L603.392,685.651A.741.741,0,0,1,603.022,685.754Z" transform="translate(233.055 235.129)" fill="#fff"/>
|
||||
<g id="组_894" data-name="组 894" transform="translate(865.668 855.058)">
|
||||
<path id="路径_4157" data-name="路径 4157" d="M680.66,694.137l-3.328,1.922-58.35-37.532-3.328-44.036,3.328-1.922,61.678,35.61Z" transform="translate(-615.654 -612.569)" fill="#14b285"/>
|
||||
<path id="路径_4158" data-name="路径 4158" d="M636.113,685.265l-5.227,3.018V634.4l5.227-3.018Z" transform="translate(-596.316 -588.681)" fill="#14b285"/>
|
||||
<path id="路径_4159" data-name="路径 4159" d="M637.653,690.5l-12.1-6.985V629.638l12.1,6.985Z" transform="translate(-603.084 -590.9)" fill="#0c9"/>
|
||||
<path id="路径_4160" data-name="路径 4160" d="M677.332,694.983l-61.678-35.61V613.416l61.678,35.61Z" transform="translate(-615.654 -611.494)" fill="url(#linear-gradient-27)"/>
|
||||
</g>
|
||||
<path id="路径_4161" data-name="路径 4161" d="M693.471,629.966l-35.019-20.653,4.493-2.675,35.466,20.477Z" transform="translate(304.347 234.958)" fill="#fff"/>
|
||||
<g id="组_895" data-name="组 895" transform="translate(418.713 873.017)">
|
||||
<path id="路径_4162" data-name="路径 4162" d="M435.223,628.023a1.266,1.266,0,0,1-1.11-1.87l2.378-4.371a1.266,1.266,0,0,1,2.224,1.21l-2.381,4.371A1.266,1.266,0,0,1,435.223,628.023Z" transform="translate(-399.359 -619.671)" fill="#fda388"/>
|
||||
<path id="路径_4163" data-name="路径 4163" d="M435.237,621.208a2.716,2.716,0,1,1-.145,3.838A2.716,2.716,0,0,1,435.237,621.208Z" transform="translate(-398.84 -620.483)" fill="#fdbf8d"/>
|
||||
<ellipse id="椭圆_73" data-name="椭圆 73" cx="15.185" cy="8.546" rx="15.185" ry="8.546" transform="translate(0 68.911)" opacity="0.15" fill="url(#linear-gradient-28)"/>
|
||||
<path id="路径_4164" data-name="路径 4164" d="M428.794,659.922l-2-5.072a2.1,2.1,0,0,0-2.866-1.121h0a2.1,2.1,0,0,0-.847,3.044l2.982,4.564A1.547,1.547,0,0,0,428.794,659.922Z" transform="translate(-413.61 -578.541)" fill="#2a4fca"/>
|
||||
<path id="路径_4165" data-name="路径 4165" d="M433.334,656.019l-3.77-3.942a2.1,2.1,0,0,0-3.075.041h0a2.1,2.1,0,0,0,.361,3.139l4.482,3.1A1.549,1.549,0,0,0,433.334,656.019Z" transform="translate(-409.534 -581.198)" fill="#2a4fca"/>
|
||||
<path id="路径_4166" data-name="路径 4166" d="M427.942,641.693a1.924,1.924,0,0,1-.3-3.824c9.382-1.475,11.336-3.881,16.324-14.443a1.922,1.922,0,0,1,3.477,1.641c-5.131,10.866-7.932,14.827-19.2,16.6A1.943,1.943,0,0,1,427.942,641.693Z" transform="translate(-409.437 -618.146)" fill="#4e80fd"/>
|
||||
<path id="路径_4167" data-name="路径 4167" d="M424.743,659.818a1.922,1.922,0,0,1-1.922-1.922v-4.875a1.922,1.922,0,0,1,3.845,0V657.9A1.922,1.922,0,0,1,424.743,659.818Z" transform="translate(-413.499 -581.615)" fill="#1f3b97"/>
|
||||
<path id="路径_4168" data-name="路径 4168" d="M427.94,657.9a1.922,1.922,0,0,1-1.922-1.922V651.1a1.922,1.922,0,1,1,3.845,0v4.875A1.922,1.922,0,0,1,427.94,657.9Z" transform="translate(-409.44 -584.059)" fill="#1f3b97"/>
|
||||
<path id="路径_4169" data-name="路径 4169" d="M424.8,671.984l-.1,0a2.024,2.024,0,0,1-1.925-2.12l1.393-28.845a2.024,2.024,0,0,1,4.044.2l-1.393,28.845A2.026,2.026,0,0,1,424.8,671.984Z" transform="translate(-413.556 -596.858)" fill="#059bfd"/>
|
||||
<path id="路径_4170" data-name="路径 4170" d="M428.466,669.814a2.022,2.022,0,0,1-2.022-1.963l-.84-28.266a2.024,2.024,0,1,1,4.046-.12l.84,28.267a2.025,2.025,0,0,1-1.963,2.083Z" transform="translate(-409.966 -598.88)" fill="#059bfd"/>
|
||||
<path id="路径_4171" data-name="路径 4171" d="M425.414,647.335a2.023,2.023,0,0,1-2.024-2.024v-6.5a2.025,2.025,0,0,1,1.616-1.984l4.834-.994a2.027,2.027,0,0,1,2.431,1.884l.188,3.885a2.018,2.018,0,0,1-.84,1.743l-5.022,3.613A2.016,2.016,0,0,1,425.414,647.335Zm2.024-6.879v.905l.924-.665-.02-.427Z" transform="translate(-412.777 -601.054)" fill="#059bfd"/>
|
||||
<path id="路径_4172" data-name="路径 4172" d="M422.992,651.781c0-8.815-.03-11.186-.03-17.373,0-8.111,10.238-7,11.03-2.392.713,4.133.427,15.9.427,18.322,0,.676-.894,1.369-2.183,1.934-.365.161-1.257-5.572-1.257-5.572s-.765,6.277-1.2,6.382C426.612,653.846,422.992,653.789,422.992,651.781Z" transform="translate(-413.319 -610.395)" fill="#4e80fd"/>
|
||||
<rect id="矩形_444" data-name="矩形 444" width="9.717" height="13.717" transform="translate(10.316 26.673) rotate(36.956)" fill="#2a4fca"/>
|
||||
<path id="路径_4173" data-name="路径 4173" d="M426.328,649.178a1.919,1.919,0,0,1-1.06-.32c-3.554-2.351-5.361-5.1-5.367-8.175-.009-3.792,2.742-7.56,8.177-11.2a1.922,1.922,0,1,1,2.138,3.2c-4.178,2.8-6.475,5.633-6.47,7.989,0,1.707,1.232,3.382,3.645,4.977a1.924,1.924,0,0,1-1.062,3.529Z" transform="translate(-417.206 -609.463)" fill="#4e80fd"/>
|
||||
<path id="路径_4174" data-name="路径 4174" d="M421.766,638.653a2.717,2.717,0,1,0,2.717-2.716A2.717,2.717,0,0,0,421.766,638.653Z" transform="translate(-414.838 -600.863)" fill="#fd9d6e"/>
|
||||
<path id="路径_4175" data-name="路径 4175" d="M428.133,629.465c1.046,2.469.586,10.71.586,10.71s-4.11-7.621-3.994-10.4a1.626,1.626,0,0,1,1.63-1.344A1.872,1.872,0,0,1,428.133,629.465Z" transform="translate(-411.086 -610.396)" fill="#fff"/>
|
||||
<path id="路径_4176" data-name="路径 4176" d="M426.208,633.426a1.33,1.33,0,0,1-.336-.046,1.267,1.267,0,0,1-.885-1.555l1.25-4.575a1.264,1.264,0,0,1,2.44.665l-1.251,4.578A1.266,1.266,0,0,1,426.208,633.426Z" transform="translate(-410.806 -613.075)" fill="#fda388"/>
|
||||
<path id="路径_4177" data-name="路径 4177" d="M432.906,628.209a4.312,4.312,0,1,0-4.312,4.312A4.313,4.313,0,0,0,432.906,628.209Z" transform="translate(-411.644 -616.148)" fill="#fdbf8d"/>
|
||||
<path id="路径_4178" data-name="路径 4178" d="M433.631,629.418s-1.464,1.793-5.386.59c0,0-2.027-.284-2.156,2.458,0,0-4.525-4.269.079-8.027C431.032,620.469,436.917,626.855,433.631,629.418Z" transform="translate(-411.874 -617.07)" fill="#2a4fca"/>
|
||||
<circle id="椭圆_74" data-name="椭圆 74" cx="0.984" cy="0.984" r="0.984" transform="translate(13.651 12.876)" fill="#fdbf8d"/>
|
||||
</g>
|
||||
<g id="组_902" data-name="组 902" transform="translate(434.563 905.349)">
|
||||
<ellipse id="椭圆_75" data-name="椭圆 75" cx="15.185" cy="8.546" rx="15.185" ry="8.546" transform="translate(0 55.153)" opacity="0.15" fill="url(#linear-gradient-29)"/>
|
||||
<g id="组_901" data-name="组 901" transform="translate(7.663 2.498)">
|
||||
<g id="组_900" data-name="组 900">
|
||||
<g id="组_896" data-name="组 896" transform="translate(0.712 10.188)">
|
||||
<path id="路径_4179" data-name="路径 4179" d="M436.259,657.629a2.044,2.044,0,0,1-1.216-.4c-2.719-2-5.283-4.319-5.619-7.651-.27-2.683.955-5.492,3.749-8.583a2.051,2.051,0,1,1,3.043,2.75c-1.945,2.152-2.855,3.976-2.71,5.422.166,1.643,1.707,3.091,3.972,4.759a2.051,2.051,0,0,1-1.219,3.7Z" transform="translate(-429.387 -640.319)" fill="#1f3b97"/>
|
||||
</g>
|
||||
<path id="路径_4180" data-name="路径 4180" d="M431.063,667.553a1.991,1.991,0,0,1-1.214-3.568l4.047-3.121a1.472,1.472,0,0,1,2.013,2.127l-3.338,3.87a1.992,1.992,0,0,1-1.489.692Zm4.435-4.607Zm-.8-1.039h0Z" transform="translate(-429.073 -604.437)" fill="#2a4fca"/>
|
||||
<path id="路径_4181" data-name="路径 4181" d="M439.791,648.108a2.474,2.474,0,1,0-2.785,2.115A2.473,2.473,0,0,0,439.791,648.108Z" transform="translate(-421.72 -623.81)" fill="#ff8d80"/>
|
||||
<path id="路径_4182" data-name="路径 4182" d="M430.981,680.057a1.644,1.644,0,0,1-1.555-2.17c3.706-10.919,3.549-26.1,3.547-26.251a1.642,1.642,0,0,1,1.62-1.661l.023,0a1.643,1.643,0,0,1,1.641,1.62c.007.645.163,15.9-3.724,27.35A1.641,1.641,0,0,1,430.981,680.057Z" transform="translate(-428.737 -617.876)" fill="#059bfd"/>
|
||||
<path id="路径_4183" data-name="路径 4183" d="M435.354,668.08a1.991,1.991,0,0,1-.86-3.785l4.607-2.206a1.471,1.471,0,0,1,1.525,2.5l-4.069,3.089A2,2,0,0,1,435.354,668.08Zm4.314-4.809h0Z" transform="translate(-423.626 -602.679)" fill="#2a4fca"/>
|
||||
<path id="路径_4184" data-name="路径 4184" d="M435.788,683.93a1.639,1.639,0,0,1-1.639-1.6l-.93-32.313a1.642,1.642,0,1,1,3.282-.093l.928,32.313a1.639,1.639,0,0,1-1.593,1.686Z" transform="translate(-423.811 -619.957)" fill="#059bfd"/>
|
||||
<path id="路径_4185" data-name="路径 4185" d="M434.234,644.167a1.317,1.317,0,0,1-1.3-1.5l.556-3.942a1.313,1.313,0,0,1,2.6.368l-.556,3.942A1.313,1.313,0,0,1,434.234,644.167Z" transform="translate(-424.192 -633.585)" fill="#ff585d"/>
|
||||
<g id="组_897" data-name="组 897" transform="translate(13.368 8.351)">
|
||||
<path id="路径_4186" data-name="路径 4186" d="M440.057,652.3l5.542-8.488a2.79,2.79,0,0,0-.844-3.856h0a2.8,2.8,0,0,0-3.86.844l-5.544,8.49C433.712,651.6,437.663,655.336,440.057,652.3Z" transform="translate(-434.964 -639.509)" fill="url(#linear-gradient-30)"/>
|
||||
</g>
|
||||
<path id="路径_4187" data-name="路径 4187" d="M442.415,673.838c0-9.107.025-21.749.025-28.142,0-8.381-10.571-7.14-11.391-2.376-.735,4.271-.44,26.519-.44,29.025,0,.7.924,1.416,2.256,2,.379.168,2.09.729,2.542.837C438.677,675.973,442.415,675.912,442.415,673.838Z" transform="translate(-427.198 -631.082)" fill="#1f3b97"/>
|
||||
<g id="组_898" data-name="组 898" transform="translate(10.053 9.599)">
|
||||
<path id="路径_4188" data-name="路径 4188" d="M440.366,656.061a2.052,2.052,0,0,1-.837-3.926c1.947-.867,2.653-1.664,2.669-2.081.007-.213-.147-2.188-7.6-6.13a2.052,2.052,0,0,1,1.92-3.627c6.872,3.636,9.89,6.686,9.784,9.9-.079,2.3-1.793,4.219-5.1,5.692A2.042,2.042,0,0,1,440.366,656.061Z" transform="translate(-433.503 -640.059)" fill="#1f3b97"/>
|
||||
</g>
|
||||
<path id="路径_4189" data-name="路径 4189" d="M439.779,640.912a3.928,3.928,0,1,0-4.907,2.6A3.93,3.93,0,0,0,439.779,640.912Z" transform="translate(-425.237 -635.83)" fill="#ff8d80"/>
|
||||
<g id="组_899" data-name="组 899" transform="translate(9.548 15.776)">
|
||||
<path id="路径_4190" data-name="路径 4190" d="M438.374,654.1l3.82-5.955a2.788,2.788,0,0,0-.847-3.856l-2.351-1.5-5.329,8.306C432.029,653.4,435.978,657.138,438.374,654.1Z" transform="translate(-433.281 -642.781)" fill="url(#linear-gradient-31)"/>
|
||||
<path id="路径_4191" data-name="路径 4191" d="M433.619,648.234a2.137,2.137,0,1,0,2.138-2.131A2.136,2.136,0,0,0,433.619,648.234Z" transform="translate(-432.851 -638.564)" fill="url(#linear-gradient-32)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path id="路径_4192" data-name="路径 4192" d="M442.37,642c-1.384,1.194,1.891,5.054-.157,6.3-1.393.847-2.746,1.255-3.406,2.036-1.087,1.28,1.282,2.821-.542,5.5-4.675,6.87-13.651.849-10.156-4.205,1.273-1.841,3.461-1.718,4.943-4.028,1.212-1.891.758-2.751.905-5.787.148-3.089,3.829-7.249,7.335-7.081,5.569.263,5.848,3.913,5.549,4.988C446.618,640.512,443.539,641,442.37,642Z" transform="translate(-423.637 -634.729)" fill="#2a4fca"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<p style="color: #22cece">绿色供应链</p>
|
||||
<el-card
|
||||
shadow="never"
|
||||
v-for="(item, index) in evaluation"
|
||||
:key="index"
|
||||
>
|
||||
<span>{{ item.title }}</span>
|
||||
<span class="score">{{ item.score }}</span>
|
||||
</el-card>
|
||||
<div
|
||||
class="con-evaluation"
|
||||
v-for="(item, index) in con_evaluation"
|
||||
:key="index"
|
||||
>
|
||||
<div class="badge"></div><span>{{ item }}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
companyValue: "我的公司",
|
||||
chartsValue: "全观图",
|
||||
evaluation: [
|
||||
{ title: "客户评价", score: 3 },
|
||||
{ title: "供应商评价", score: 1 },
|
||||
{ title: "外包业务", score: 2 },
|
||||
],
|
||||
con_evaluation: [
|
||||
"客户评价及公司对外宣传及评价较好;",
|
||||
"供应商评价一般;",
|
||||
"外包业务评价较好;",
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.el-row {
|
||||
margin: 0 0 40px 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.strip {
|
||||
justify-content: space-between;
|
||||
padding:30px 40px;
|
||||
border-radius: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
/deep/ .el-input__inner {
|
||||
color: #22d3aa;
|
||||
}
|
||||
}
|
||||
|
||||
.el-card {
|
||||
margin: 20px 0;
|
||||
font-size: 14px;
|
||||
|
||||
/deep/ .el-card__body {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.score {
|
||||
color: #22cece;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.con-evaluation{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20px 0;
|
||||
|
||||
.badge{
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
span{
|
||||
font-size: 14px;
|
||||
color: #767676;
|
||||
}
|
||||
}
|
||||
|
||||
.svg-box{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
margin-top: 80px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,142 @@
|
|||
<!-- 环境 -->
|
||||
<template>
|
||||
<div>
|
||||
<el-row>
|
||||
<div class="strip" style="width: 100%; height: 40px; background: #22d3aa">
|
||||
<h2 style="color: #fff">环境/Environmental</h2>
|
||||
<h2 style="color: #fff">32/65</h2>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-select
|
||||
v-model="companyValue"
|
||||
style="margin-right: 20px"
|
||||
></el-select>
|
||||
<el-select v-model="chartsValue"></el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12" v-for="(item, index) in data" :key="index">
|
||||
<div class="flex-sb" style="flex-wrap: wrap; margin: 20px 0">
|
||||
<div style="color: #26C7C7; width: 100%;margin:10px 0">{{ item.title }}</div>
|
||||
<div class="flex-sb" style="width: 90%">
|
||||
<p>您的公司</p>
|
||||
<el-progress
|
||||
:percentage="item.company"
|
||||
:color="'#D2D6D9'"
|
||||
:show-text="false"
|
||||
></el-progress>
|
||||
</div>
|
||||
<div class="flex-sb" style="width: 90%">
|
||||
<p>行业平均</p>
|
||||
<el-progress
|
||||
:percentage="item.industry"
|
||||
:color="'#26C7C7'"
|
||||
:show-text="false"
|
||||
></el-progress>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
companyValue: "行业筛选",
|
||||
chartsValue: "全观",
|
||||
data: [
|
||||
{ title: "绿色理念/green concept", company: 80, industry: 85 },
|
||||
{ title: "绿色产品/green product", company: 70, industry: 80 },
|
||||
{
|
||||
title: "绿色组织架构/Green Organization Structure",
|
||||
company: 76,
|
||||
industry: 75,
|
||||
},
|
||||
{ title: "绿色供应链/green supply chain", company: 60, industry: 87 },
|
||||
{ title: "绿色环境/green environment", company: 90, industry: 85 },
|
||||
{ title: "绿色评价/green evaluation", company: 60, industry: 55 },
|
||||
{
|
||||
title: "绿色生产与办公/Green production and office",
|
||||
company: 70,
|
||||
industry: 63,
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.el-row {
|
||||
margin: 0 0 40px 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.strip {
|
||||
justify-content: space-between;
|
||||
padding: 30px 40px;
|
||||
border-radius: 30px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
/deep/ .el-input__inner {
|
||||
color: #22d3aa;
|
||||
}
|
||||
}
|
||||
|
||||
.el-card {
|
||||
margin: 20px 0;
|
||||
font-size: 14px;
|
||||
|
||||
/deep/ .el-card__body {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.score {
|
||||
color: #22cece;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.con-evaluation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20px 0;
|
||||
|
||||
.badge {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: 14px;
|
||||
color: #767676;
|
||||
}
|
||||
}
|
||||
|
||||
.svg-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
.flex-sb {
|
||||
p {
|
||||
font-size: 12px;
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
.el-progress {
|
||||
width: calc(95% - 50px);
|
||||
margin: 10px 0;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,52 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header></esg-header>
|
||||
<el-container class="container">
|
||||
<esg-aside @getActiveIndex="getActiveIndex"></esg-aside>
|
||||
<el-main>
|
||||
<conclusion v-if="activeIndex === '1'"/>
|
||||
<env v-else-if="activeIndex === '2'"/>
|
||||
<esg-progress v-else/>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
import esgAside from "@/components/esgAside"
|
||||
import conclusion from "./children/conclusion"
|
||||
import env from './children/environmental'
|
||||
import esgProgress from './children/progress.vue'
|
||||
export default {
|
||||
components: {
|
||||
esgHeader,
|
||||
esgAside,
|
||||
conclusion,
|
||||
env,
|
||||
esgProgress
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
activeIndex:'1'
|
||||
};
|
||||
},
|
||||
methods:{
|
||||
getActiveIndex(key){
|
||||
this.activeIndex = key
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.container {
|
||||
height: calc(100% - 80px);
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.el-main{
|
||||
padding: 40px 100px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,47 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header :bgcolor="'#A3AAB1'"></esg-header>
|
||||
<el-main style="background:#A3AAB1">
|
||||
<div class="form-box">
|
||||
<h2 style="color: #fff">LOGIN</h2>
|
||||
<el-form ref="form" :model="form" style="width:500px">
|
||||
<el-form-item>
|
||||
<el-input placeholder="NAME"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input placeholder="PASSWORD"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio label="1">同意上述条例和协议</el-radio>
|
||||
</el-form-item>
|
||||
<el-row style="margin-top: 20px">
|
||||
<el-col :span="11"
|
||||
><el-button size="large" type="info">SIGN IN</el-button></el-col
|
||||
>
|
||||
<el-col :span="11" :offset="2"
|
||||
><el-button size="large" type="info">LOGIN</el-button></el-col
|
||||
>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
export default {
|
||||
components: {
|
||||
esgHeader,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
@import "@/assets/css/user.scss"
|
||||
</style>
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<esg-header></esg-header>
|
||||
<el-main>
|
||||
<div class="form-box">
|
||||
<h2 style="color: #fff">REGISTER</h2>
|
||||
<el-form ref="form" :model="form">
|
||||
<el-form-item>
|
||||
<el-input placeholder="NAME"></el-input>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item>
|
||||
<el-input placeholder="PASSWORD"></el-input> </el-form-item
|
||||
></el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
placeholder="CONFIRM PASSWORD"
|
||||
></el-input> </el-form-item
|
||||
></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item>
|
||||
<el-input placeholder="COMPANY"></el-input> </el-form-item
|
||||
></el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-form-item>
|
||||
<el-input placeholder="JOB TITLE"></el-input> </el-form-item
|
||||
></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item>
|
||||
<el-input placeholder="EMAIL"></el-input> </el-form-item
|
||||
></el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-form-item>
|
||||
<el-input placeholder="PHONE"></el-input> </el-form-item
|
||||
></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-radio label="1">同意上述条例和协议</el-radio>
|
||||
</el-row>
|
||||
<el-row style="margin-top:20px">
|
||||
<el-col :span="11"
|
||||
><el-button size="large" type="info">SIGN IN</el-button></el-col
|
||||
>
|
||||
<el-col :span="11" :offset="2"
|
||||
><el-button size="large" type="info">LOGIN</el-button></el-col
|
||||
>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import esgHeader from "@/components/esgHeader";
|
||||
export default {
|
||||
components: {
|
||||
esgHeader,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
@import "@/assets/css/user.scss"
|
||||
</style>
|
|
@ -0,0 +1,40 @@
|
|||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import home from '@/pages/home'
|
||||
|
||||
Vue.use(Router)
|
||||
|
||||
export default new Router({
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
component: home
|
||||
},
|
||||
{
|
||||
path:'/login',
|
||||
name: 'login',
|
||||
component: ()=>import("@/pages/user/login")
|
||||
},
|
||||
{
|
||||
path:'/register',
|
||||
name: 'register',
|
||||
component: ()=>import("@/pages/user/register")
|
||||
},
|
||||
{
|
||||
path: '/home2',
|
||||
name: 'home',
|
||||
component: ()=>import("@/pages/home2")
|
||||
},
|
||||
{
|
||||
path: '/home3',
|
||||
name: 'home',
|
||||
component: ()=>import("@/pages/home3")
|
||||
},
|
||||
{
|
||||
path: '/conclusion',
|
||||
name: 'conclusion',
|
||||
component: ()=>import("@/pages/menu/index")
|
||||
},
|
||||
]
|
||||
})
|
|
@ -0,0 +1,22 @@
|
|||
import { Message } from "element-ui";
|
||||
let messageInstance = null;
|
||||
let mainMessage = function DoneMessage(options) {
|
||||
//如果弹窗已存在先关闭
|
||||
if (messageInstance) {
|
||||
messageInstance.close();
|
||||
}
|
||||
messageInstance = Message(options);
|
||||
}
|
||||
let arr = ['success', 'warning', 'info', 'error'];
|
||||
arr.forEach(function (type) {
|
||||
mainMessage[type] = function (options) {
|
||||
if (typeof options === 'string') {
|
||||
options = {
|
||||
message: options
|
||||
};
|
||||
}
|
||||
options.type = type;
|
||||
return mainMessage(options);
|
||||
};
|
||||
});
|
||||
export const message = mainMessage;
|
Loading…
Reference in New Issue