代码迁移
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
}
|
||||
}],
|
||||
"stage-2"
|
||||
],
|
||||
"plugins": ["transform-vue-jsx", "transform-runtime"],
|
||||
"env": {
|
||||
"test": {
|
||||
"presets": ["env", "stage-2"],
|
||||
"plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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,2 @@
|
|||
node_modules/
|
||||
dist/
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"semi": false,
|
||||
"singleQuote": true
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
## 开发
|
||||
|
||||
```bash
|
||||
# 克隆项目
|
||||
git clone http://192.168.0.56:3000/bonus/cqscreen-ui.git
|
||||
|
||||
# 进入项目目录
|
||||
cd cqscreen-ui
|
||||
|
||||
# 安装依赖
|
||||
npm install
|
||||
|
||||
# 项目较老,node版本不要超过16.0 可以通过如下操作解决 npm 下载速度慢的问题
|
||||
npm install --registry=https://registry.npmmirror.com
|
||||
|
||||
# 启动服务
|
||||
npm run dev
|
||||
```
|
||||
|
||||
浏览器访问 http://localhost:80
|
||||
|
||||
## 发布
|
||||
|
||||
```bash
|
||||
|
||||
# 构建生产环境
|
||||
npm run build
|
||||
```
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
'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)
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
|
|
@ -0,0 +1,93 @@
|
|||
'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
|
||||
}
|
||||
}
|
||||
// generate loader string to be used with extract text plugin
|
||||
function generateLoaders (loader, loaderOptions) {
|
||||
const loaders = [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,100 @@
|
|||
'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', '.css','.png'],
|
||||
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: /\.svg$/,
|
||||
loader: 'svg-sprite-loader',
|
||||
include: [resolve('src/icons')],
|
||||
options: {
|
||||
symbolId: 'icon-[name]'
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
exclude:[resolve('src/icons')],
|
||||
options: {
|
||||
// limit: 10000,
|
||||
// name: utils.assetsPath('img/[name].[hash:7].[ext]')
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
options: {
|
||||
limit: 10000,
|
||||
name: utils.assetsPath('media/[name].[hash:7].[ext]')
|
||||
}
|
||||
},
|
||||
{
|
||||
// 加载图标
|
||||
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
options: {
|
||||
limit: 10000,
|
||||
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
|
||||
}
|
||||
},
|
||||
// {
|
||||
// test: /\.less$/,
|
||||
// loader: "style-loader!css-loader!less-loader"
|
||||
// },
|
||||
{
|
||||
test: / .scss$ / ,
|
||||
loaders: [ 'style', 'css', 'sass']
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
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,106 @@
|
|||
'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: true,
|
||||
// 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,
|
||||
// proxy:{
|
||||
// '/mobilePortal': {
|
||||
// target: 'http://22.0.63.74:30102/',
|
||||
// // target: 'http://bjvideo.cn1.utools.club',
|
||||
// changeOrigin: true,
|
||||
// pathRewrite: {
|
||||
// '^/mobilePortal': '/mobilePortal'
|
||||
// },
|
||||
// logLevel: 'debug',
|
||||
// }
|
||||
// },
|
||||
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,151 @@
|
|||
'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 version = new Date().getTime()
|
||||
|
||||
const env = process.env.NODE_ENV === 'testing'
|
||||
? require('../config/test.env')
|
||||
: require('../config/prod.env')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
module: {
|
||||
rules: utils.styleLoaders({
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
extract: true,
|
||||
})
|
||||
},
|
||||
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: utils.assetsPath(`js/[name].[chunkhash].${version}.js`),
|
||||
chunkFilename: utils.assetsPath(`js/[id].[chunkhash].${version}.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: process.env.NODE_ENV === 'testing'
|
||||
? 'index.html'
|
||||
: config.build.index,
|
||||
template: 'index.html',
|
||||
hash: version,
|
||||
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,19 @@
|
|||
var merge = require('webpack-merge')
|
||||
var prodEnv = require('./prod.env')
|
||||
// var testUrl = '14.29.196.32:8480'
|
||||
// var testUrl = '172.16.1.211:8802'
|
||||
// var testUrl = '172.16.2.82:8802'
|
||||
// var testUrl = '14.29.196.32:8802'
|
||||
// var testUrl = '10.14.16.165:8802'
|
||||
// var testUrl = '112.29.103.165:21624' //线上
|
||||
// var testUrl = '192.168.0.14:21626' //线上
|
||||
var testUrl = '10.40.92.8:8080'
|
||||
// var testUrl = '223.243.184.53:8480'
|
||||
// var testUrl = 'www.lingyangplat.com'
|
||||
// var testUrl = ''
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"development"',
|
||||
//API调用地址
|
||||
// API_ROOT: '"http://' + testUrl + '"',
|
||||
// BASE_URL: '/cockpit-screen/'
|
||||
})
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
|
||||
var proxyUrl =
|
||||
|
||||
module.exports = {
|
||||
dev: {
|
||||
// Paths
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: '/',
|
||||
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-
|
||||
devtool: 'cheap-module-eval-source-map',
|
||||
cacheBusting: true,
|
||||
cssSourceMap: true,
|
||||
proxyTable: {
|
||||
'/screen': {
|
||||
// target: 'http://112.29.103.165:21626',//重庆
|
||||
target: 'http://192.168.0.14:21624',//测试
|
||||
// target: 'http://10.40.92.74:8080',
|
||||
changeOrigin: true,
|
||||
// secure: true, //如果是https接口,需要配置这个参数
|
||||
pathRewrite: {
|
||||
'^/screen': '/'
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
build: {
|
||||
index: path.resolve(__dirname, '../dist/index01.html'),
|
||||
// Paths
|
||||
assetsRoot: path.resolve(__dirname, '../dist'),
|
||||
assetsSubDirectory: 'static01',
|
||||
assetsPublicPath: '/',
|
||||
productionSourceMap: false,
|
||||
devtool: '#source-map',
|
||||
productionGzip: false,
|
||||
productionGzipExtensions: ['js', 'css'],
|
||||
bundleAnalyzerReport: process.env.npm_config_report
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// var testUrl = '223.243.184.53:8480'
|
||||
var testUrl = '112.29.103.165:21624/'
|
||||
// var testUrl = '192.168.0.14:21624/'
|
||||
// var testUrl = '192.168.0.166:8080'
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"',
|
||||
//post用当前域名
|
||||
// API_ROOT: '"http://' + testUrl + '/iot"'
|
||||
// API_ROOT: '/',
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const devEnv = require('./dev.env')
|
||||
|
||||
module.exports = merge(devEnv, {
|
||||
NODE_ENV: '"testing"'
|
||||
})
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, user-scalable=0"
|
||||
/>
|
||||
<link rel="shortcut icon" href="./static/favicon.ico" type="image/x-icon" />
|
||||
<title>智慧仓储管理平台</title>
|
||||
</head>
|
||||
<body style="margin: 0;">
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"name": "hailuo",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"author": "",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "webpack-dev-server --history-api-fallback --inline --progress --config build/webpack.dev.conf.js",
|
||||
"start": "npm run dev",
|
||||
"unit": "jest --config test/unit/jest.conf.js --coverage",
|
||||
"e2e": "node test/e2e/runner.js",
|
||||
"test": "npm run unit && npm run e2e",
|
||||
"build": "node build/build.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"echarts": "^5.4.1",
|
||||
"echarts-gl": "^2.0.9",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"element-ui": "^2.15.8",
|
||||
"i": "^0.3.7",
|
||||
"jquery": "^3.6.1",
|
||||
"js-base64": "^3.6.0",
|
||||
"js-md5": "^0.7.3",
|
||||
"less-loader": "^4.1.0",
|
||||
"moment": "^2.29.1",
|
||||
"scss": "^0.2.4",
|
||||
"svg-sprite-loader": "^6.0.11",
|
||||
"swiper": "^3.4.2",
|
||||
"vant": "^2.12.21",
|
||||
"vue": "^2.5.2",
|
||||
"vue-router": "^3.0.1",
|
||||
"vuex": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^7.1.2",
|
||||
"babel-core": "^6.22.1",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3",
|
||||
"babel-jest": "^21.0.2",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-dynamic-import-node": "^1.2.0",
|
||||
"babel-plugin-import": "^1.13.3",
|
||||
"babel-plugin-syntax-jsx": "^6.18.0",
|
||||
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.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",
|
||||
"babel-register": "^6.22.0",
|
||||
"chalk": "^2.0.1",
|
||||
"chromedriver": "^2.27.2",
|
||||
"copy-webpack-plugin": "^4.0.1",
|
||||
"cross-spawn": "^5.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",
|
||||
"jest": "^22.0.4",
|
||||
"jest-serializer-vue": "^0.3.0",
|
||||
"less": "3.0.0",
|
||||
"nightwatch": "^0.9.12",
|
||||
"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": "^8.3.5",
|
||||
"postcss-import": "^11.0.0",
|
||||
"postcss-loader": "^2.0.8",
|
||||
"postcss-url": "^7.2.1",
|
||||
"rimraf": "^2.6.0",
|
||||
"sass-loader": "^7.3.1",
|
||||
"selenium-server": "^3.0.1",
|
||||
"semver": "^5.3.0",
|
||||
"shelljs": "^0.7.6",
|
||||
"uglifyjs-webpack-plugin": "^1.1.1",
|
||||
"url-loader": "^0.5.8",
|
||||
"vue-jest": "^1.0.2",
|
||||
"vue-loader": "^13.3.0",
|
||||
"vue-style-loader": "^3.0.1",
|
||||
"vue-template-compiler": "^2.5.2",
|
||||
"webpack": "^3.12.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"
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
|
@ -0,0 +1,119 @@
|
|||
<template>
|
||||
<div id="app">
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'app',
|
||||
created() {
|
||||
// console.log(this.$route)
|
||||
// localStorage.setItem('token', this.$route.query.token)
|
||||
var link = document.querySelector("link[rel*='icon']") || document.createElement("link");
|
||||
link.type = "image/x-icon";
|
||||
link.rel = "shortcut icon";
|
||||
link.href = require('./assets/img/myImage/logo.png');
|
||||
document.getElementsByTagName("head")[0].appendChild(link);
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
.el-dialog {
|
||||
// 背景色透明
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
// background-color: transparent;
|
||||
// background-color: #000;
|
||||
background-image: url('./assets/img/dialog/window.png');
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
.el-dialog__headerbtn {
|
||||
width: 83px;
|
||||
height: 44px;
|
||||
background-image: url('./assets/img/dialog/icon_close.png');
|
||||
background-size: cover;
|
||||
// 去除原来的 x 按钮
|
||||
.el-dialog__close {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.el-form-item__label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.el-table th {
|
||||
// #253855 #30619B 背景色从上到下渐变
|
||||
background: linear-gradient(to bottom, #2B313D, #3267A7);
|
||||
color: #fff;
|
||||
border-bottom: 1px solid #84FCFD !important;
|
||||
}
|
||||
.el-table tr {
|
||||
background-color: #335684;
|
||||
color: #fff;
|
||||
}
|
||||
.el-table--striped .el-table__body tr.el-table__row--striped td {
|
||||
background-color: #25447D;
|
||||
color: #fff;
|
||||
}
|
||||
.el-table td,.building-top .el-table th.is-leaf {
|
||||
border-bottom: 1px solid #6983A5;
|
||||
}
|
||||
.el-table::before{
|
||||
border-bottom: 1px solid #6983A5;
|
||||
background-color: #6983A5;
|
||||
height: 1px;
|
||||
}
|
||||
.el-table--enable-row-hover .el-table__body tr:hover>td {
|
||||
background-color: #6983A5;
|
||||
}
|
||||
.el-pagination__total {
|
||||
color: #E1E3E6;
|
||||
}
|
||||
.el-pagination__jump {
|
||||
color: #E1E3E6;
|
||||
}
|
||||
.el-input__inner {
|
||||
background-color: transparent;
|
||||
border: 1px solid #77E2E7;
|
||||
color: #E1E3E6;
|
||||
}
|
||||
.el-pagination__sizes .el-input .el-input__inner {
|
||||
color: #E3E4E7;
|
||||
border: 1px solid #E3E4E7;
|
||||
}
|
||||
.el-pagination__editor.el-input .el-input__inner {
|
||||
color: #E3E4E7;
|
||||
border: 1px solid #E3E4E7;
|
||||
}
|
||||
.el-pagination.is-background .btn-prev, .el-pagination.is-background .el-pager li {
|
||||
color: #E3E4E7;
|
||||
border: 1px solid #E3E4E7;
|
||||
background-color: transparent;
|
||||
}
|
||||
.el-pagination.is-background .btn-next {
|
||||
color: #E3E4E7;
|
||||
border: 1px solid #E3E4E7;
|
||||
background-color: transparent;
|
||||
}
|
||||
.el-pagination.is-background .el-pager li:not(.disabled).active {
|
||||
background-color: #98F4FB;
|
||||
color: #000;
|
||||
}
|
||||
.el-button--primary {
|
||||
background-color: #84FCFD;
|
||||
border: #84FCFD;
|
||||
color: #285050;
|
||||
}
|
||||
.el-button--default {
|
||||
background-color: transparent;
|
||||
border: 1px solid #84FCFD;
|
||||
color: #D5D6DA;
|
||||
}
|
||||
.el-table__empty-block {
|
||||
background-color: #335684;
|
||||
.el-table__empty-text {
|
||||
color: #D5D6DA;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// 5-1 算法订阅
|
||||
getScreenAiSubscribeSevenAiVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiSubscribe/getSevenAiVo'),
|
||||
params
|
||||
)
|
||||
},
|
||||
//5-2 获取算法收藏信息
|
||||
getScreenAiCollectSevenAiVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiCollect/getSevenAiVo'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 5-3 获取算法调用信息
|
||||
getScreenAiInvokeSevenAiVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiInvoke/getSevenAiVo'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenAiResource/getAiResourceByScreen 获取算法资源信息
|
||||
getAiResourceByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiResource/getAiResourceByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenAiLibrary/getAiLibraryByScreen 算法库
|
||||
// getAiLibraryByScreen: params => {
|
||||
// return API.GET(
|
||||
// URL_PREFIXRightUrl.concat('gywlw/screenAiLibrary/getAiLibraryByScreen'),
|
||||
// params
|
||||
// )
|
||||
// },
|
||||
// gywlw/screenAiLibrary/getAiLibraryByScreen 算法定义
|
||||
getAiDefineVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiDefine/getAiDefineVoByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// screenAiManager/getAiManagerVoByScreen 算法管理
|
||||
getAiManagerVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiManager/getAiManagerVoByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenAiCompanyService/getAiCompanyByScreen 算法服务排名
|
||||
getAiCompanyByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAiCompanyService/getAiCompanyByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取算法库类型
|
||||
getAiLibraryType: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAiLibrary/getAiLibraryType'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//根据类型获取算法库
|
||||
getAiLibraryByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAiLibrary/getAiLibraryByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 模拟训练
|
||||
getSevenAiVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAiSubscribe/getSevenAiVo'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 算法调用
|
||||
getSuanfaSevenAiVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAiInvoke/getSevenAiVo'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// screenAppProjectManager/getAppProjectManagerByScreen 获取项目管理信息
|
||||
getAppProjectManagerByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppProjectManager/getAppProjectManagerByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取工作项组信息
|
||||
getDictListByCode: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('dict/getDictListByCode'), params)
|
||||
},
|
||||
// gywlw/screenAppWorkItems/getAppWorkItemsByGroupId 根据组id获取项目管理信息
|
||||
getAppWorkItemsByGroupId: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppWorkItems/getAppWorkItemsByGroupId'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取微服务信息
|
||||
getAppMicroserviceVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppMicroservice/getAppMicroserviceVoByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenAppWorkItems/getAppWorkItemsByGroupId 根据组id获取注册与发现信息
|
||||
getAppDiscoveryByGroupId: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppDiscovery/getAppDiscoveryByGroupId'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取通用组件订阅相关信息
|
||||
getComponentSubscribeList: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenIndexComponentSubscribe/getComponentSubscribeList'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取通用组件订阅相关信息
|
||||
getAppCicdVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAppCicd/getAppCicdVoByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取流水线执行结果记录 gywlw/screenAppPipelineExecute/getAppPipelineExecuteByScreen
|
||||
getAppPipelineExecuteByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppPipelineExecute/getAppPipelineExecuteByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取流水线执行结果记录 gywlw/screenAppPipelineExecute/getAppPipelineExecuteByScreen
|
||||
getAppCodeResultByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppCodeResult/getAppCodeResultByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取代码commit信息
|
||||
getSevenCodeCommitVo: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppCodeCommit/getSevenCodeCommitVo'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 获取代代码行数
|
||||
getSevenCodeLine: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppCodeLine/getSevenCodeVo'
|
||||
),
|
||||
params
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
|
||||
export default {
|
||||
// 容器管理汇总接口
|
||||
getScreenItContainerData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItContainer/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 弹性负载均衡elb汇总接口
|
||||
getScreenItELBData: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('gywlw/screenItELB/data'), params)
|
||||
},
|
||||
// 基础服务汇总接口
|
||||
getScreenItBaseServiceData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItBaseService/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// gywlw/screenItUserVisit/data // 用户访问信息汇总接口
|
||||
getScreenItUserVisitData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItUserVisit/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenItUserVisit/data // 物联设备信息汇总接口
|
||||
getScreenItInternetDeviceData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItInternetDevice/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 接入视频
|
||||
getScreenItIotDataServiceData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItIotDataService/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// 查询业务服务准备列表接口
|
||||
getDictListByCode: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('dict/getDictListByCode'), params)
|
||||
},
|
||||
// gywlw/screenBusinessPrepare/findListById 根据id查询服务准备详情接口
|
||||
|
||||
getFindListById: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessPrepare/findListById'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenBusinessFile/data 文档管理接口
|
||||
getScreenBusinessFile: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessFile/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenBusinessModelingCycle/data 模型生命周期接口
|
||||
getScreenBusinessModelingCycle: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessModelingCycle/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 服务模型调用-服务准备层接口
|
||||
getScreenBusinessModelingPrepare: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessModelingPrepare/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
//服务模型调用-服务执行层接口
|
||||
getScreenBusinessModelingExecute: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessModelingExecute/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
//服务模型API接口
|
||||
getScreenBusinessModelingApi: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessModelingApi/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// gywlw/screenBusinessApiItem/findListById 服务模型API子项详情接口
|
||||
getScreenBusinessApiItemFindListById: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessApiItem/findListById'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 业务中间模块接口数据
|
||||
screenBusinessSummary: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessSummary/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// /gywlw/screenTuPuGroup/getTuPuGroupVoNoIndexList 首页
|
||||
getTuPuGroupVoNoIndexList: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenTuPuGroup/getTuPuGroupVoNoIndexList'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 应用开发层 111
|
||||
getAppCenterTopVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenAppCenterTop/getAppCenterTopVoByScreen'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 应用开发层 222
|
||||
getAppCenterByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAppCenter/getAppCenterByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// AI服务层:/gywlw/screenAiSummary/getAiSummaryVoByScreen
|
||||
getAiSummaryVoByScreen: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenAiSummary/getAiSummaryVoByScreen'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 基础it大屏中间接口 gywlw/screenItBaseHardware/data
|
||||
getScreenItBaseHardwareData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenItBaseHardware/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据服务平台大屏中间接口:
|
||||
getScreenDataTableDetailData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataTableDetail/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 业务服务平台大屏列表接口:dict/getDictListByCode
|
||||
getDictListByCode: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('/dict/getDictListByCode'), params)
|
||||
},
|
||||
// http://localhost:8803/cockpit/gywlw/screenBusinessSummary/findListById?groupId=1592768383093727233
|
||||
getFindListById: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenBusinessSummary/findListById'),
|
||||
params
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// 数据资产 11111
|
||||
getScreenDataPropertyData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataProperty/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据存储贴源层接口 2-1
|
||||
getScreenDataOdsData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataOds/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据存储-数据明细层接口 2-2
|
||||
getScreenDataDwdData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataDwd/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据存储-数据主题层接口 2-3
|
||||
getScreenDataDwtData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataDwt/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据服务接口
|
||||
getScreenDataServiceData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataService/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据检查
|
||||
getScreenDataCheckData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataCheck/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// dict/getDictListByCode?code=appWorkItems 数据检查子项列表接口
|
||||
getDictListByCode: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('dict/getDictListByCode'), params)
|
||||
},
|
||||
|
||||
// gywlw/screenDataQuality/findListById 根据id查询检查子项详情接口
|
||||
getFindListById: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataQuality/findListById'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据服务api调用排名
|
||||
getScreenDataApiInvokeData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataApiInvoke/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取贴源层 http://14.29.196.32:8803/cockpit/gywlw/screenDataOds/data
|
||||
screenDataOds: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataOds/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取整合层 http://14.29.196.32:8803/cockpit/gywlw/screenDataDwd/data
|
||||
screenDataDwd: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataDwd/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取报告层 http://14.29.196.32:8803/cockpit/gywlw/screenDataDwt/data
|
||||
screenDataDwt: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataDwt/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取集市层 http://14.29.196.32:8803/cockpit/gywlw/screenDataMart/data
|
||||
screenDataMart: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataMart/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 数据服务平台大屏中间接口:
|
||||
getScreenDataTableDetailData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataTableDetail/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 中间大屏顶部数据
|
||||
screenTopDataDetail: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenDataDetail/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
import { POST, GET } from './index.js'
|
||||
|
||||
const URL_TYPE_LIST = '/screen/material/returnOfMaterialsInfo/getTypeList'
|
||||
const URL_DETAILS = '/screen/base/largeScreen/home/getMaterialReqData/details'
|
||||
const URL_RETURN_DETAILS = '/screen/base/largeScreen/home/getMaterialReturnData/details'
|
||||
const URL_UNIT_LIST = '/screen/material/agreementInfo/getUnitList'
|
||||
const URL_PROJECT_LIST = '/screen/material/agreementInfo/getProjectList'
|
||||
const URL_SCRAP_ANALYSIS = '/screen/base/largeScreen/home/getScrapAnalysisByMonth/details'
|
||||
const URL_TOTAL_OWNERSHIP = '/screen/base/largeScreen/home/getTotalOwnership/details'
|
||||
const URL_ACCEPTANCE_STORAGE = '/screen/base/largeScreen/home/getAcceptanceStorage/details'
|
||||
const URL_PICKING_ANALYSIS = '/screen/base/largeScreen/home/getPickingAnalysisByMonth/details'
|
||||
const URL_MATERIAL_RETURN_BY_MONTH = '/screen/base/largeScreen/home/getMaterialReturnByMonth/details'
|
||||
const URL_MAINTENANCE_BY_CHART = '/screen/base/largeScreen/home/getMaintenanceByMonth/chart'
|
||||
const URL_MAINTENANCE_BY_MONTH_DETAILS = '/screen/base/largeScreen/home/getMaintenanceByMonth/details'
|
||||
|
||||
// 设备类型
|
||||
export const getTypeList = params => GET(URL_TYPE_LIST, params)
|
||||
|
||||
// 领料数据
|
||||
export const getDetails = data => POST(URL_DETAILS, data)
|
||||
|
||||
// 退料数据
|
||||
export const getReturnDetails = data => POST(URL_RETURN_DETAILS, data)
|
||||
|
||||
// 往来单位-下拉
|
||||
export const getUnitList = params => GET(URL_UNIT_LIST, params)
|
||||
|
||||
// 工程名称-下拉
|
||||
export const getProjectList = params => GET(URL_PROJECT_LIST, params)
|
||||
|
||||
// 废料分析
|
||||
export const getScrapAnalysis = data => POST(URL_SCRAP_ANALYSIS, data)
|
||||
|
||||
// 总保有量
|
||||
export const getTotalOwnership = data => POST(URL_TOTAL_OWNERSHIP, data)
|
||||
|
||||
// 入库分析
|
||||
export const getAcceptanceStorage = data => POST(URL_ACCEPTANCE_STORAGE, data)
|
||||
|
||||
// 领料分析
|
||||
export const getPickingAnalysis = data => POST(URL_PICKING_ANALYSIS, data)
|
||||
|
||||
// 退料分析
|
||||
export const getMaterialReturnByMonth = data => POST(URL_MATERIAL_RETURN_BY_MONTH, data)
|
||||
|
||||
// 维修分析-pie+bar
|
||||
export const getMaintenanceByMonthChart = data => POST(URL_MAINTENANCE_BY_CHART, data)
|
||||
|
||||
// 维修分析
|
||||
export const getMaintenanceByMonthDetails = data => POST(URL_MAINTENANCE_BY_MONTH_DETAILS, data)
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// 财务信息接口
|
||||
screenSaleFinance: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleFinance/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//生产信息接口
|
||||
screenSaleProduction: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleProduction/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//利润信息接口
|
||||
screenSaleProfit: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleProfit/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 大宗原材料接口
|
||||
screenSaleMaterial: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleMaterial/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 原煤接口
|
||||
screenSaleCoal: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleCoal/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 汇总信息接口
|
||||
screenSaleSummary: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleSummary/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 收入接口
|
||||
screenSaleIncome: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleIncome/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 资产信息接口
|
||||
screenSaleAsset: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleAsset/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//获取出厂水泥强度类型列表
|
||||
getSaleCementStrengthType: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'/dict/getDictListByCode?code=saleCementStrengthType'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 根据名称获取水泥强度柱状图
|
||||
screenSaleCementStrength: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleCementStrength/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 获取销售趋势数据
|
||||
screenSaleProductionSummary: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenSaleProductionSummary/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 获取大宗原材料类型列表
|
||||
getSaleMaterialType: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'/dict/getDictListByCode?code=saleMaterialType'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
|
||||
export default {
|
||||
// 首页轮播图
|
||||
// 通用组件订阅接口 666
|
||||
getComponentSubscribeList: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenIndexComponentSubscribe/getComponentSubscribeList'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 服务平台能力接口 222
|
||||
getModuleTwoData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenIndexServiceCompetence/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 服务企业平台接口 444
|
||||
getModuleFourData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenIndexCompanyPlatform/getCompanyPlatformList'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 获取平台服务调用组信息 5555
|
||||
getModuleFiveData: params => {
|
||||
return API.GET(URL_PREFIXRightUrl.concat('dict/getDictListByCode'), params)
|
||||
},
|
||||
// gywlw/screenIndexServerInvoke/getServerInvokeByGroupId 获取平台服务调用组信息 5555
|
||||
getModuleFiveDataItem: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenIndexServerInvoke/getServerInvokeByGroupId'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
// 数据服务能力接口 333
|
||||
getDataList: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenIndexServiceDataCompetence/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// gywlw/screenIndexBaseCompetence/data 平台基础能力 1111
|
||||
getModuleOneData: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenIndexBaseCompetence/data'),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 大屏中间文字修改
|
||||
screenIndexConfig: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat('gywlw/screenIndexConfig/data'),
|
||||
params
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
/**
|
||||
* axios全局配置
|
||||
*/
|
||||
import axios from 'axios';
|
||||
axios.defaults.timeout = 30000
|
||||
|
||||
// 默认配置
|
||||
axios.defaults.baseURL = process.env.API_ROOT;
|
||||
|
||||
axios.interceptors.request.use(
|
||||
config => {
|
||||
let token = localStorage.getItem('token')
|
||||
if (token) {
|
||||
config.headers.accessToken = `${token}`;
|
||||
config.headers.Authorization = `${token}`;
|
||||
}
|
||||
return config;
|
||||
},
|
||||
error => {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
|
||||
// 添加一个请求拦截器
|
||||
axios.interceptors.response.use(
|
||||
response => {
|
||||
if (response.data) {
|
||||
if (response.data.code === 401) {
|
||||
} else if (response.data.code === 200) {
|
||||
return Promise.resolve(response.data)
|
||||
} else {
|
||||
return response.data
|
||||
}
|
||||
} else {
|
||||
return Promise.reject(response.data)
|
||||
}
|
||||
|
||||
},
|
||||
error => {
|
||||
if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1)
|
||||
console.log('请求超时!')
|
||||
return Promise.reject(error)
|
||||
}
|
||||
);
|
||||
|
||||
// 通用POST方法
|
||||
export const POST = (url, params) => {
|
||||
return axios.post(`${url}`, params).then(response => response);
|
||||
};
|
||||
|
||||
// 通用POST_JSON方法
|
||||
export const POST_JSON = (url, json, params) => {
|
||||
return axios.post(`${url}`, json, {
|
||||
params: params
|
||||
}).then(response => response);
|
||||
};
|
||||
|
||||
// 通用GET方法
|
||||
export const GET = (url, params) => {
|
||||
return axios.get(`${url}`, {
|
||||
params: params
|
||||
}).then(response => response);
|
||||
};
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import { axios } from './index.js';
|
||||
import md5 from 'js-md5';
|
||||
const URL_PREFIXRightUrl = ''
|
||||
|
||||
export default {
|
||||
getLogin(data) {
|
||||
return axios({
|
||||
url: '/oauth/token',
|
||||
method: 'post',
|
||||
headers: {
|
||||
key: data.key,
|
||||
code: data.code,
|
||||
},
|
||||
params: {
|
||||
username: data.account,
|
||||
password: md5(data.password),
|
||||
grant_type: 'captcha',
|
||||
scope: 'all',
|
||||
id_token: data.id_token ? data.id_token : '',
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/'
|
||||
const URL_PREFIXRightUrl = ''
|
||||
export default {
|
||||
// 销售收入接口
|
||||
screenFinanceSale: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceSale/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//中上汇总数据接口
|
||||
screenFinanceSummary: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceSummary/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
//中间销售完成率接口
|
||||
screenFinanceIncome: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceIncome/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 资产信息接口
|
||||
screenFinanceAsset: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceAsset/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 月利润收入接口
|
||||
screenFinanceProfit: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceProfit/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 大宗原材料PVC价格接口
|
||||
screenFinancePvc: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinancePvc/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 大宗原材料铝锭价格接口
|
||||
screenFinanceAluminium: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'gywlw/screenFinanceAluminium/data'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
import * as API from './index.js'
|
||||
const URL_PREFIX = '/gywlw/';
|
||||
const URL_PREFIXRightUrl = "";
|
||||
|
||||
export default {
|
||||
getCodeImg: params => {
|
||||
return API.GET(
|
||||
URL_PREFIXRightUrl.concat(
|
||||
'auth/code'
|
||||
),
|
||||
params
|
||||
)
|
||||
},
|
||||
|
||||
// 大屏列表
|
||||
getScreenList: params => {
|
||||
return API.GET(URL_PREFIX.concat('screenTuPuGroup/getTuPuGroupVoList'),params)
|
||||
},
|
||||
|
||||
// 大屏详情信息
|
||||
getTuPuManagerVoById: params => {
|
||||
return API.GET(URL_PREFIX.concat('screenTuPuGroup/getTuPuManagerVoById'),params)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
import { POST, GET } from './index'
|
||||
|
||||
// 领料数据
|
||||
export const getMaterialReqDataApi = params => POST(`/screen/base/largeScreen/home/getMaterialReqData`,)
|
||||
// 退料数据
|
||||
export const getMaterialReturnDataApi = params => POST(`/screen/base/largeScreen/home/getMaterialReturnData`)
|
||||
//当月报废分析
|
||||
export const getScrapAnalysisByMonthApi = params => POST(`/screen/base/largeScreen/home/getScrapAnalysisByMonth?maType=${params.maType}`)
|
||||
//新购验收入库分析
|
||||
export const getAcceptanceStorageApi = params => POST(`/screen/base/largeScreen/home/getAcceptanceStorage?maType=${params.maType}`,)
|
||||
//当月领料分析
|
||||
export const getPickingAnalysisByMonthApi = params => POST(`/screen/base/largeScreen/home/getPickingAnalysisByMonth?maType=${params.maType}`,)
|
||||
//当月退料分析
|
||||
export const getMaterialReturnByMonthApi = params => POST(`/screen/base/largeScreen/home/getMaterialReturnByMonth?maType=${params.maType}`,)
|
||||
//当月维修分析
|
||||
export const getMaintenanceByMonthApi = params => POST(`/screen/base/largeScreen/home/getMaintenanceByMonth?maType=${params.maType}`,)
|
||||
//设备分布图
|
||||
export const getEquipmentDisByMapApi = params => POST(`/screen/base/largeScreen/home/getEquipmentDisByMap`,)
|
||||
//施工机具/
|
||||
export const getTotalOwnershipApi = params => POST(`/screen/base/largeScreen/home/getTotalOwnership`,)
|
||||
// 当月使用车辆
|
||||
export const getCarUseByMonthApi = params => POST(`/screen/base/largeScreen/home/getCarUseByMonth?maType=${params.maType}`,)
|
||||
// 当月使用车辆
|
||||
export const getMaintenanceWarningApi = params => POST(`/screen/base/largeScreen/home/getMaintenanceWarning`,)
|
||||
//各公司机具保有量
|
||||
export const getTotalOwnershipByCompany = params => POST(`/screen/base/largeScreen/home/getTotalOwnershipByCompany`)
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import { POST, GET } from './index'
|
||||
|
||||
// 领料数据
|
||||
export const getMaterialReqDataApi = params => POST(`/sgzb-base/largeScreen/home/getMaterialReqData`,)
|
||||
// 退料数据
|
||||
export const getMaterialReturnDataApi = params => POST(`/sgzb-base/largeScreen/home/getMaterialReturnData`)
|
||||
//当月报废分析
|
||||
export const getScrapAnalysisByMonthApi = params => POST(`/sgzb-base/largeScreen/home/getScrapAnalysisByMonth?maType=${params.maType}`)
|
||||
//新购验收入库分析
|
||||
export const getAcceptanceStorageApi = params => POST(`/sgzb-base/largeScreen/home/getAcceptanceStorage?maType=${params.maType}`,)
|
||||
//当月领料分析
|
||||
export const getPickingAnalysisByMonthApi = params => POST(`/sgzb-base/largeScreen/home/getPickingAnalysisByMonth?maType=${params.maType}`,)
|
||||
//当月退料分析
|
||||
export const getMaterialReturnByMonthApi = params => POST(`/sgzb-base/largeScreen/home/getMaterialReturnByMonth?maType=${params.maType}`,)
|
||||
//当月维修分析
|
||||
export const getMaintenanceByMonthApi = params => POST(`/sgzb-base/largeScreen/home/getMaintenanceByMonth?maType=${params.maType}`,)
|
||||
//设备分布图
|
||||
export const getEquipmentDisByMapApi = params => POST(`/sgzb-base/largeScreen/home/getEquipmentDisByMap`,)
|
||||
//施工机具/
|
||||
export const getTotalOwnershipApi = params => POST(`/sgzb-base/largeScreen/home/getTotalOwnership`,)
|
||||
// 当月使用车辆
|
||||
export const getCarUseByMonthApi = params => POST(`/sgzb-base/largeScreen/home/getCarUseByMonth?maType=${params.maType}`,)
|
||||
// 当月使用车辆
|
||||
export const getMaintenanceWarningApi = params => POST(`/sgzb-base/largeScreen/home/getMaintenanceWarning`,)
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import { POST, GET } from './index'
|
||||
// 获取短信验证码
|
||||
export const getSendIphoneCodeApi = params => POST(`/system/sms/codeLogin?phone=${params.phone}`,)
|
||||
// 账号密码登录
|
||||
export const authLoginApi = params => POST(`/screen/auth/loginApp`, params)
|
||||
// 手机号登录
|
||||
export const loginCodeApi = params => POST(`/auth/loginCode`, params)
|
||||
// export const getImageCode = params => GET(`/iot/gywlw/publishVersion/page`, params)
|
||||
// export const getImageCode = params => GET(`/antelope-common/common/get/gray/screen/time`, params)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import { POST, GET } from './index'
|
||||
// 获取短信验证码
|
||||
export const getSendIphoneCodeApi = params => POST(`/system/sms/codeLogin?phone=${params.phone}`,)
|
||||
// 账号密码登录
|
||||
export const authLoginApi = params => POST(`/sgzb-auth/login`, params)
|
||||
// 手机号登录
|
||||
export const loginCodeApi = params => POST(`/sgzb-auth/loginCode`, params)
|
||||
// export const getImageCode = params => GET(`/iot/gywlw/publishVersion/page`, params)
|
||||
// export const getImageCode = params => GET(`/antelope-common/common/get/gray/screen/time`, params)
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
html,
|
||||
body,
|
||||
#app {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
ul, li {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
/* h标题 */
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
}
|
||||
.footerBox{
|
||||
position: absolute;
|
||||
bottom: 0;
left: 50%;
|
||||
width: 760px;
|
||||
margin-left: -380px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.publicName{
|
||||
background: url(../../assets/img/components/nameBg.png) no-repeat center;
|
||||
background-size: 420px 48px;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 3667287 */
|
||||
src: url('iconfont.woff2?t=1676943999043') format('woff2'),
|
||||
url('iconfont.woff?t=1676943999043') format('woff'),
|
||||
url('iconfont.ttf?t=1676943999043') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-family: "iconfont" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-anquanzhongxin:before {
|
||||
content: "\e895";
|
||||
}
|
||||
|
||||
.icon-icon_shezhi:before {
|
||||
content: "\eb8d";
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
window._iconfont_svg_string_3667287='<svg><symbol id="icon-anquanzhongxin" viewBox="0 0 1024 1024"><path d="M526.848 886.784c202.666667-81.066667 371.221333-327.530667 373.397333-545.92l0.853334-85.333333c0-1.408-2.090667-3.733333-3.52-3.861334l-6.656-0.64c-100.074667-9.770667-247.658667-58.517333-333.952-110.293333l-30.250667-18.133333c-5.418667-3.264-18.282667-2.602667-23.253333 1.130666-81.792 61.354667-226.581333 116.586667-328.362667 125.226667l-38.144 3.264c-1.664 0.149333-3.861333 2.517333-3.882667 4.138667l-0.853333 85.333333c-2.154667 218.197333 162.538667 464.128 364.928 545.066667l14.848 5.952 14.848-5.930667zM90.410667 255.936c0.234667-23.530667 19.264-44.202667 42.922666-46.229333l38.144-3.242667C265.28 198.485333 402.474667 146.154667 477.866667 89.6c18.858667-14.144 50.517333-15.786667 70.826666-3.605333l30.229334 18.154666c80.853333 48.512 222.336 95.253333 316.138666 104.405334l6.656 0.64c23.466667 2.282667 42.261333 23.232 42.026667 46.741333l-0.853333 85.333333c-2.346667 235.690667-181.461333 497.621333-400.213334 585.130667L512 938.666667l-30.677333-12.266667C262.613333 838.933333 87.232 577.109333 89.578667 341.290667l0.853333-85.354667z" fill="#3D3D3D" ></path><path d="M356.416 496.917333a21.333333 21.333333 0 0 0-30.165333 30.165334l149.333333 149.333333a21.333333 21.333333 0 0 0 31.850667-1.92l234.666666-298.666667a21.333333 21.333333 0 1 0-33.536-26.346666L488.746667 629.248l-132.330667-132.330667z" fill="#3D3D3D" ></path></symbol><symbol id="icon-icon_shezhi" viewBox="0 0 1024 1024"><path d="M482.88 112l-17.28 90.688-20.64 4.512a309.696 309.696 0 0 0-99.776 41.088l-18.688 11.84-73.28-55.04-44.64 44.64 51.904 76.416-11.392 17.76a310.016 310.016 0 0 0-41.568 99.584l-4.8 21.6-90.72 12.896v63.104l90.688 17.312 4.512 20.64a309.984 309.984 0 0 0 41.088 99.776l11.84 18.688-55.04 73.28 44.64 44.64 76.416-51.904 17.76 11.392a310.016 310.016 0 0 0 99.584 41.568l21.6 4.8 12.896 90.72h63.104l17.312-90.688 20.64-4.512a309.984 309.984 0 0 0 99.776-41.088l18.688-11.84 73.28 55.04 44.64-44.64-51.904-76.416 11.392-17.76a310.016 310.016 0 0 0 41.568-99.584l4.8-21.6 90.72-12.896V482.88l-90.688-17.312-4.512-20.64a309.984 309.984 0 0 0-41.088-99.776l-11.84-18.688 55.04-73.28-44.64-44.64-76.416 51.904-17.76-11.392a310.144 310.144 0 0 0-99.584-41.568l-21.6-4.8-12.896-90.72H482.88zM410.56 149.856l19.424-101.856h171.584l14.624 102.624c28 8.064 54.848 19.328 80.128 33.568l85.792-58.304 121.344 121.344-62.272 82.88c14.08 25.408 25.152 52.352 32.96 80.416l101.888 19.424v171.584l-102.624 14.624a373.92 373.92 0 0 1-33.568 80.128l58.304 85.792-121.344 121.344-82.88-62.272c-25.408 14.08-52.352 25.152-80.416 32.96l-19.424 101.888h-171.584l-14.624-102.624a373.92 373.92 0 0 1-80.128-33.568L241.92 898.112l-121.344-121.344 62.272-82.88a373.824 373.824 0 0 1-32.96-80.416L48 594.048v-171.584l102.624-14.624c8.064-27.968 19.328-54.848 33.568-80.128L125.888 241.92l121.344-121.344 82.88 62.272a373.856 373.856 0 0 1 80.416-32.96z" ></path><path d="M512 704a192 192 0 1 1 0-384 192 192 0 0 1 0 384z m0-64a128 128 0 1 0 0-256 128 128 0 0 0 0 256z" ></path></symbol></svg>',function(n){var t=(t=document.getElementsByTagName("script"))[t.length-1],e=t.getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var l,i,o,a,c,d=function(t,e){e.parentNode.insertBefore(t,e)};if(e&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(t){console&&console.log(t)}}l=function(){var t,e=document.createElement("div");e.innerHTML=n._iconfont_svg_string_3667287,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?d(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),l()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(o=l,a=n.document,c=!1,r(),a.onreadystatechange=function(){"complete"==a.readyState&&(a.onreadystatechange=null,s())})}function s(){c||(c=!0,o())}function r(){try{a.documentElement.doScroll("left")}catch(t){return void setTimeout(r,50)}s()}}(window);
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"id": "3667287",
|
||||
"name": "门户网站",
|
||||
"font_family": "iconfont",
|
||||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "2076279",
|
||||
"name": " 安全中心",
|
||||
"font_class": "anquanzhongxin",
|
||||
"unicode": "e895",
|
||||
"unicode_decimal": 59541
|
||||
},
|
||||
{
|
||||
"icon_id": "4347549",
|
||||
"name": "icon_设置",
|
||||
"font_class": "icon_shezhi",
|
||||
"unicode": "eb8d",
|
||||
"unicode_decimal": 60301
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 674 B |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 895 B |
|
After Width: | Height: | Size: 973 B |
|
After Width: | Height: | Size: 947 B |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 610 B |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 961 B |
|
After Width: | Height: | Size: 366 B |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 568 B |
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 501 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 888 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 447 B |
|
After Width: | Height: | Size: 430 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 444 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 343 B |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 390 B |