提交
This commit is contained in:
		
							
								
								
									
										12
									
								
								.babelrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.babelrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "presets": [
 | 
			
		||||
    ["env", {
 | 
			
		||||
      "modules": false,
 | 
			
		||||
      "targets": {
 | 
			
		||||
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
 | 
			
		||||
      }
 | 
			
		||||
    }],
 | 
			
		||||
    "stage-2"
 | 
			
		||||
  ],
 | 
			
		||||
  "plugins": ["transform-vue-jsx", "transform-runtime"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										10
									
								
								.postcssrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.postcssrc.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
// https://github.com/michael-ciniawsky/postcss-load-config
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  "plugins": {
 | 
			
		||||
    "postcss-import": {},
 | 
			
		||||
    "postcss-url": {},
 | 
			
		||||
    // to edit target browsers: use "browserslist" field in package.json
 | 
			
		||||
    "autoprefixer": {}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
# mt-yj-wms-ui
 | 
			
		||||
 | 
			
		||||
> 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).
 | 
			
		||||
							
								
								
									
										41
									
								
								build/build.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								build/build.js
									
									
									
									
									
										Normal file
									
								
							@@ -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'
 | 
			
		||||
    ))
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										54
									
								
								build/check-versions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								build/check-versions.js
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								build/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 6.7 KiB  | 
							
								
								
									
										101
									
								
								build/utils.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								build/utils.js
									
									
									
									
									
										Normal file
									
								
							@@ -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')
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								build/vue-loader.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								build/vue-loader.conf.js
									
									
									
									
									
										Normal file
									
								
							@@ -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'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								build/webpack.base.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								build/webpack.base.conf.js
									
									
									
									
									
										Normal file
									
								
							@@ -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'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										103
									
								
								build/webpack.dev.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								build/webpack.dev.conf.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 16:38:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 09:11:29
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
'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',
 | 
			
		||||
      favicon: path.resolve('./src/assets/logo.png'),
 | 
			
		||||
      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)
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										146
									
								
								build/webpack.prod.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								build/webpack.prod.conf.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
			
		||||
'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',
 | 
			
		||||
      favicon: path.resolve('./src/assets/logo.png'),
 | 
			
		||||
      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
 | 
			
		||||
							
								
								
									
										7
									
								
								config/dev.env.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								config/dev.env.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const merge = require('webpack-merge')
 | 
			
		||||
const prodEnv = require('./prod.env')
 | 
			
		||||
 | 
			
		||||
module.exports = merge(prodEnv, {
 | 
			
		||||
  NODE_ENV: '"development"'
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										84
									
								
								config/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								config/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 16:38:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-11-08 10:12:13
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
'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: {
 | 
			
		||||
      '/api':{
 | 
			
		||||
        target: 'http://192.168.1.188:8009',
 | 
			
		||||
        changeOrigin: true,
 | 
			
		||||
        pathRewrite: {
 | 
			
		||||
          '^/api': '/'
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    // 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
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								config/prod.env.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config/prod.env.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
module.exports = {
 | 
			
		||||
  NODE_ENV: '"production"'
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 16:38:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 15:13:48
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="utf-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
 | 
			
		||||
    <title>云洁科技</title>
 | 
			
		||||
    <link rel="shortcut icon" type="image/x-icon" href="./src/assets/logo.png">
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div id="app"></div>
 | 
			
		||||
    <script type="text/javascript" src="./static/config.js"></script>
 | 
			
		||||
    <!-- built files will be auto injected -->
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										11907
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										11907
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										66
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mt-yj-wms-ui",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "description": "A Vue.js project",
 | 
			
		||||
  "author": "zwq <zwq229436@163.com>",
 | 
			
		||||
  "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.22.0",
 | 
			
		||||
    "element-ui": "^2.15.6",
 | 
			
		||||
    "less": "^4.1.2",
 | 
			
		||||
    "vue": "^2.5.2",
 | 
			
		||||
    "vue-axios": "^3.3.7",
 | 
			
		||||
    "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.11",
 | 
			
		||||
    "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",
 | 
			
		||||
    "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",
 | 
			
		||||
    "semver": "^5.3.0",
 | 
			
		||||
    "shelljs": "^0.7.6",
 | 
			
		||||
    "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"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/App.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 08:46:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-26 14:25:17
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div id="app">
 | 
			
		||||
    <router-view/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'App'
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
#app {
 | 
			
		||||
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
 | 
			
		||||
  -webkit-font-smoothing: antialiased;
 | 
			
		||||
  -moz-osx-font-smoothing: grayscale;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color: #2c3e50;
 | 
			
		||||
  height: calc(100vh - 20px);
 | 
			
		||||
  background-color: #e7eaed;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 44 KiB  | 
							
								
								
									
										1
									
								
								src/assets/yj.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/assets/yj.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2196.8 2196.8"><defs><style>.cls-1{fill:#dc0606;}.cls-2{fill:#fff;}</style></defs><title>资源 15</title><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" width="2196.8" height="2196.8" rx="254.99"/><polygon class="cls-2" points="1291.43 634.33 1065.93 634.33 791.87 1046.39 785.47 1046.39 511.4 634.33 285.9 634.33 664.9 1204.16 664.9 1682.84 914.61 1682.84 914.61 1200.88 1291.43 634.33"/><path class="cls-2" d="M1453.17,1687.63c-2.71,0-5.41,0-8.15-.06-2.12,0-4.26,0-6.36,0-102.32,0-184.27-29-243.7-86.19-30.41-29.27-55.06-66.23-73.27-109.85-17.61-42.18-29.66-91.75-35.82-147.35l-3.57-32.31L1301,1258.59l1.23,45.8c2,73.91,18.1,125.58,47.89,153.57,21.08,19.81,50.12,28.77,88.82,27.4l1.31,0,1.31,0c37.21,1.32,64.84-7.41,84.5-26.68,29.49-28.9,43.83-83.51,42.62-162.31V629.54h221.42v668.4c.87,66.93-6.41,126.06-21.65,175.79-15.92,52-41,95.23-74.38,128.6C1637.35,1659,1556.31,1687.63,1453.17,1687.63Z"/></g></g></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1016 B  | 
							
								
								
									
										229
									
								
								src/components/equipment-monitor.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										229
									
								
								src/components/equipment-monitor.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,229 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-12 14:02:20
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-11-11 10:11:22
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-main
 | 
			
		||||
    style="border:5px solid #00A6AC;padding:0;box-shadow: 1px 1px 15px #888888;"
 | 
			
		||||
  >
 | 
			
		||||
    <canvas id="mycanvas"> </canvas>
 | 
			
		||||
  </el-main>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      ctx: {},
 | 
			
		||||
      top: 0, //获取canvas的左顶点y坐标
 | 
			
		||||
      left: 0, //获取canvas的左顶点x坐标
 | 
			
		||||
      ctxWidth: 0,
 | 
			
		||||
      ctxHeight: 0,
 | 
			
		||||
      kilnStatus: [0, 1, 2, 0, 1, 2, 2, 1],
 | 
			
		||||
      kilnPoint: [{ x: 70, y: 70 }]
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    let canvas = document.getElementById("mycanvas");
 | 
			
		||||
    this.ctx = canvas.getContext("2d");
 | 
			
		||||
 | 
			
		||||
    canvas.width = window.innerWidth - 412;
 | 
			
		||||
    canvas.height = window.innerHeight - 100;
 | 
			
		||||
    this.ctxWidth = window.innerWidth - 412;
 | 
			
		||||
    this.ctxHeight = window.innerHeight - 100;
 | 
			
		||||
    this.top = canvas.getBoundingClientRect().top;
 | 
			
		||||
    this.left = canvas.getBoundingClientRect().left;
 | 
			
		||||
 | 
			
		||||
    this.Rgvcvs(); //RGV 绘图
 | 
			
		||||
    this.Kilncvs(); //窑炉 绘图
 | 
			
		||||
    this.Storage(); //库位 绘图
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.init();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      console.log("aaa");
 | 
			
		||||
    },
 | 
			
		||||
    Rgvcvs() {
 | 
			
		||||
      this.ctx.beginPath(); //轨道
 | 
			
		||||
      this.ctx.lineWidth = 3;
 | 
			
		||||
      this.ctx.strokeStyle = "#FD8829";
 | 
			
		||||
      this.ctx.moveTo(20, window.innerHeight / 2 - 100);
 | 
			
		||||
      this.ctx.lineTo(window.innerWidth - 432, window.innerHeight / 2 - 100);
 | 
			
		||||
      this.ctx.moveTo(20, window.innerHeight / 2 - 50);
 | 
			
		||||
      this.ctx.lineTo(window.innerWidth - 432, window.innerHeight / 2 - 50);
 | 
			
		||||
      this.ctx.stroke();
 | 
			
		||||
      this.ctx.font = "50px Arial";
 | 
			
		||||
      this.ctx.strokeStyle = "rgba(0,0,0,0.1)";
 | 
			
		||||
      this.ctx.strokeText(
 | 
			
		||||
        "轨道",
 | 
			
		||||
        (window.innerWidth - 432) / 2,
 | 
			
		||||
        window.innerHeight / 2 - 60
 | 
			
		||||
      );
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
 | 
			
		||||
      this.ctx.beginPath(); // rgv
 | 
			
		||||
      this.ctx.fillStyle = "#c1d8fc";
 | 
			
		||||
      this.ctx.fillRect(20, window.innerHeight / 2 - 115, 100, 80);
 | 
			
		||||
      this.ctx.strokeStyle = "#dcf4e3";
 | 
			
		||||
      this.ctx.strokeRect(20, window.innerHeight / 2 - 115, 100, 80);
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
    },
 | 
			
		||||
    Kilncvs() {
 | 
			
		||||
      this.ctx.beginPath(); // 窑炉虚线
 | 
			
		||||
      this.ctx.strokeStyle = "#FD8829";
 | 
			
		||||
      this.ctx.setLineDash([20, 5]); // [实线长度, 间隙长度]
 | 
			
		||||
      this.ctx.lineDashOffset = -0;
 | 
			
		||||
      this.ctx.strokeRect(50, 50, (window.innerWidth - 412) / 2 - 100, 300);
 | 
			
		||||
      this.ctx.strokeRect(
 | 
			
		||||
        (window.innerWidth - 412) / 2 + 50,
 | 
			
		||||
        50,
 | 
			
		||||
        (window.innerWidth - 412) / 2 - 100,
 | 
			
		||||
        300
 | 
			
		||||
      );
 | 
			
		||||
      this.ctx.setLineDash([]); //关闭虚线
 | 
			
		||||
      this.ctx.font = "100px Arial";
 | 
			
		||||
      this.ctx.strokeStyle = "rgba(0,0,0,0.1)";
 | 
			
		||||
      this.ctx.strokeText("窑", (window.innerWidth - 412) / 11, 230);
 | 
			
		||||
      this.ctx.strokeText("炉", (window.innerWidth - 412) / 3, 230);
 | 
			
		||||
      this.ctx.strokeText("窑", (3 * (window.innerWidth - 432)) / 5, 230);
 | 
			
		||||
      this.ctx.strokeText("炉", (6 * (window.innerWidth - 412)) / 7, 230);
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
      const kWidth = (this.ctxWidth - 100) / 10;
 | 
			
		||||
 | 
			
		||||
      this.ctx.beginPath(); // 窑炉
 | 
			
		||||
      this.ctx.fillStyle = "#b9bbbd";
 | 
			
		||||
      this.ctx.strokeStyle = "#22366e";
 | 
			
		||||
      for (var i = 0; i < 8; i++) {
 | 
			
		||||
        this.ctx.beginPath();
 | 
			
		||||
        if (i < 4) {
 | 
			
		||||
          this.ctx.arc(
 | 
			
		||||
            (window.innerWidth - 412) / 11 + i * kWidth,
 | 
			
		||||
            120,
 | 
			
		||||
            40,
 | 
			
		||||
            0,
 | 
			
		||||
            Math.PI * 2,
 | 
			
		||||
            false
 | 
			
		||||
          );
 | 
			
		||||
        } else {
 | 
			
		||||
          this.ctx.arc(
 | 
			
		||||
            (window.innerWidth - 412) / 2 + (i - 3) * kWidth + 50,
 | 
			
		||||
            120,
 | 
			
		||||
            40,
 | 
			
		||||
            0,
 | 
			
		||||
            Math.PI * 2,
 | 
			
		||||
            false
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        this.ctx.fill();
 | 
			
		||||
        this.ctx.stroke();
 | 
			
		||||
      }
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
 | 
			
		||||
      this.ctx.beginPath();
 | 
			
		||||
      this.ctx.fillStyle = "#545c64";
 | 
			
		||||
      this.ctx.strokeStyle = "#22366e";
 | 
			
		||||
      this.ctx.globalCompositeOperation = "destination-over"; //全局合成操作
 | 
			
		||||
      for (var i = 0; i < 8; i++) {
 | 
			
		||||
        this.ctx.fillStyle = "#545c64";
 | 
			
		||||
        if (Math.floor(Math.random() * 10 + 1) > 8) {
 | 
			
		||||
          this.ctx.fillStyle = "red";
 | 
			
		||||
        }else if(Math.floor(Math.random() * 10 + 1) > 8){
 | 
			
		||||
          this.ctx.fillStyle = "#43cd43";
 | 
			
		||||
        }
 | 
			
		||||
        this.ctx.beginPath();
 | 
			
		||||
        if (i < 4) {
 | 
			
		||||
          this.ctx.fillRect(
 | 
			
		||||
            (window.innerWidth - 412) / 11 - 40 + i * kWidth,
 | 
			
		||||
            120,
 | 
			
		||||
            80,
 | 
			
		||||
            window.innerHeight / 2 - 400
 | 
			
		||||
          );
 | 
			
		||||
          this.ctx.arc(
 | 
			
		||||
            (window.innerWidth - 412) / 11 + i * kWidth,
 | 
			
		||||
            window.innerHeight / 2 - 280,
 | 
			
		||||
            40,
 | 
			
		||||
            0,
 | 
			
		||||
            Math.PI * 2,
 | 
			
		||||
            false
 | 
			
		||||
          );
 | 
			
		||||
        } else {
 | 
			
		||||
          this.ctx.fillRect(
 | 
			
		||||
            (window.innerWidth - 412) / 2 + (i - 3) * kWidth + 10,
 | 
			
		||||
            120,
 | 
			
		||||
            80,
 | 
			
		||||
            window.innerHeight / 2 - 400
 | 
			
		||||
          );
 | 
			
		||||
          this.ctx.arc(
 | 
			
		||||
            (window.innerWidth - 412) / 2 + (i - 3) * kWidth + 50,
 | 
			
		||||
            window.innerHeight / 2 - 280,
 | 
			
		||||
            40,
 | 
			
		||||
            0,
 | 
			
		||||
            Math.PI * 2,
 | 
			
		||||
            false
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        this.ctx.stroke();
 | 
			
		||||
        this.ctx.fill();
 | 
			
		||||
      }
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
    },
 | 
			
		||||
    Storage() {
 | 
			
		||||
      this.ctx.beginPath(); // 库位虚线
 | 
			
		||||
      this.ctx.strokeStyle = "#FD8829";
 | 
			
		||||
      this.ctx.setLineDash([20, 5]); // [实线长度, 间隙长度]
 | 
			
		||||
      this.ctx.lineDashOffset = -0;
 | 
			
		||||
      this.ctx.strokeRect(
 | 
			
		||||
        100,
 | 
			
		||||
        window.innerHeight / 2 + 50,
 | 
			
		||||
        window.innerWidth - 412 - 200,
 | 
			
		||||
        300
 | 
			
		||||
      );
 | 
			
		||||
      this.ctx.setLineDash([]);
 | 
			
		||||
      this.ctx.font = "100px Arial";
 | 
			
		||||
      this.ctx.strokeStyle = "rgba(0,0,0,0.1)";
 | 
			
		||||
      this.ctx.strokeText(
 | 
			
		||||
        "库",
 | 
			
		||||
        (window.innerWidth - 412) / 6,
 | 
			
		||||
        window.innerHeight / 2 + 250
 | 
			
		||||
      );
 | 
			
		||||
      this.ctx.strokeText(
 | 
			
		||||
        "位",
 | 
			
		||||
        ((window.innerWidth - 412) * 3) / 4,
 | 
			
		||||
        window.innerHeight / 2 + 250
 | 
			
		||||
      );
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
 | 
			
		||||
      this.ctx.beginPath(); // 库位
 | 
			
		||||
      const sWidth = (this.ctxWidth - 200) / 10;
 | 
			
		||||
      for (var i = 0; i < 20; i++) {
 | 
			
		||||
        this.ctx.fillStyle = "#2f8fc6";
 | 
			
		||||
        if (Math.floor(Math.random() * 10 + 1) > 7) {
 | 
			
		||||
          this.ctx.fillStyle = "red";
 | 
			
		||||
        }else if(Math.floor(Math.random() * 10 + 1) > 8){
 | 
			
		||||
          this.ctx.fillStyle = "#43cd43";
 | 
			
		||||
        }
 | 
			
		||||
        if (i < 10) {
 | 
			
		||||
          this.ctx.rect(130 + i * sWidth, window.innerHeight / 2 + 90, 80, 80);
 | 
			
		||||
        } else {
 | 
			
		||||
          this.ctx.rect(
 | 
			
		||||
            130 + (i - 10) * sWidth,
 | 
			
		||||
            window.innerHeight / 2 + 220,
 | 
			
		||||
            80,
 | 
			
		||||
            80
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
      this.ctx.stroke();
 | 
			
		||||
      this.ctx.fill();
 | 
			
		||||
      }
 | 
			
		||||
      this.ctx.closePath();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped></style>
 | 
			
		||||
							
								
								
									
										55
									
								
								src/components/main.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/components/main.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-12 13:49:08
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 09:41:21
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-container style="padding:20px">
 | 
			
		||||
    <el-aside style="width:200px;height:calc(100vh - 60px)">
 | 
			
		||||
      <div style="width:199px;height:70px;margin-bottom:2px;background-color:#545c64">
 | 
			
		||||
        <img src="../assets/logo.png" width="50" height="50" style="margin:10px 0px 10px 10px;float:left"/><div style="color:white;padding-top:10px;font-size:20px">云 洁 科 技<br><span style="font-size:10px">YUN JIE TECHNOLOGY</span></div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <el-menu
 | 
			
		||||
        :default-active="activeIndex"
 | 
			
		||||
        @select="handleSelect"
 | 
			
		||||
        background-color="#545c64"
 | 
			
		||||
        text-color="#fff"
 | 
			
		||||
        style="height:calc(100vh - 132px)"
 | 
			
		||||
        active-text-color="#ffd04b"
 | 
			
		||||
      >
 | 
			
		||||
        <el-menu-item index="1">任务信息</el-menu-item>
 | 
			
		||||
        <el-menu-item index="2">任务日志</el-menu-item>
 | 
			
		||||
        <el-menu-item index="3">设备运行监控</el-menu-item>
 | 
			
		||||
      </el-menu>
 | 
			
		||||
    </el-aside>
 | 
			
		||||
    <el-main style="padding:0;padding-left:20px;">
 | 
			
		||||
      <router-view></router-view>
 | 
			
		||||
    </el-main>
 | 
			
		||||
  </el-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      activeIndex: "1",
 | 
			
		||||
      urlArr: ["/taskInfo", "/taskLog", "/equipmentMonitor"]
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.init();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      this.$router.push({ path: this.urlArr[this.activeIndex - 1] });
 | 
			
		||||
    },
 | 
			
		||||
    handleSelect(key) {
 | 
			
		||||
      this.$router.push({ path: this.urlArr[key - 1] });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped></style>
 | 
			
		||||
							
								
								
									
										141
									
								
								src/components/taskInfo.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								src/components/taskInfo.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,141 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 16:38:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-11-11 09:49:34
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div style="margin:0 0 20px;text-align:left">
 | 
			
		||||
      <el-button type="primary" icon="el-icon-refresh" @click="init"
 | 
			
		||||
        >刷新</el-button
 | 
			
		||||
      >
 | 
			
		||||
    </div>
 | 
			
		||||
    <div>
 | 
			
		||||
      <el-table :data="tableData" stripe border style="width: 100%">
 | 
			
		||||
        <el-table-column type="index" align="center" label="序号" width="80">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="code" align="center" label="任务编码">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="idenCardNumber" align="center" label="标识卡号">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="productName" align="center" label="产品名称">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="materialGrade" align="center" label="材料牌号">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="createTime" align="center" label="任务时间">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="status" align="center" label="状态">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <span>{{
 | 
			
		||||
              scope.row.status === 0
 | 
			
		||||
                ? "等待执行"
 | 
			
		||||
                : scope.row.status === 1
 | 
			
		||||
                ? "执行中"
 | 
			
		||||
                : "执行完成"
 | 
			
		||||
            }}</span>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="startPosition" align="center" label="开始位置">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="endPosition" align="center" label="目标位置">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column label="操作" align="center" width="250">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <el-button
 | 
			
		||||
              size="mini"
 | 
			
		||||
              type="warning"
 | 
			
		||||
              v-show="scope.row.status === 1"
 | 
			
		||||
              @click="handleEdit(scope.row.id)"
 | 
			
		||||
              >停止</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button
 | 
			
		||||
              size="mini"
 | 
			
		||||
              type="danger"
 | 
			
		||||
              @click="handleDelete(scope.row.id)"
 | 
			
		||||
              >删除</el-button
 | 
			
		||||
            >
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      current: 1,
 | 
			
		||||
      size: 500,
 | 
			
		||||
      tableData: []
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.init();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      this.$axios({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: "/api/business/t-wcs-task/findAll",
 | 
			
		||||
        data: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: this.size
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data.code === 0) {
 | 
			
		||||
          this.tableData = res.data.data.records;
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$message.error(res.data.msg);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    handleEdit(id) {
 | 
			
		||||
      this.$axios({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: "/api/business/t-wcs-task/delete",
 | 
			
		||||
        data: {
 | 
			
		||||
          id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.data && res.data.code === 0) {
 | 
			
		||||
          this.$message({
 | 
			
		||||
            type: "success",
 | 
			
		||||
            message: "已停止",
 | 
			
		||||
            onClose: () => {
 | 
			
		||||
              this.init();
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$message.error(res.data.msg);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    handleDelete(id) {
 | 
			
		||||
      this.$axios({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: "/api/business/t-wcs-task/delete",
 | 
			
		||||
        data: {
 | 
			
		||||
          id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.data && res.data.code === 0) {
 | 
			
		||||
          this.$message({
 | 
			
		||||
            type: "success",
 | 
			
		||||
            message: "成功删除",
 | 
			
		||||
            onClose: () => {
 | 
			
		||||
              this.init();
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$message.error(res.data.msg);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style></style>
 | 
			
		||||
							
								
								
									
										120
									
								
								src/components/taskLog.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								src/components/taskLog.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,120 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 16:38:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 15:43:21
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div style="margin:0 0 20px;text-align:left">
 | 
			
		||||
      时间段:
 | 
			
		||||
      <el-date-picker
 | 
			
		||||
        v-model="timeArr"
 | 
			
		||||
        type="daterange"
 | 
			
		||||
        range-separator="至"
 | 
			
		||||
        start-placeholder="开始日期"
 | 
			
		||||
        end-placeholder="结束日期"
 | 
			
		||||
      >
 | 
			
		||||
      </el-date-picker>
 | 
			
		||||
      <el-button type="primary" icon="el-icon-search" @click="search"
 | 
			
		||||
        >查询</el-button
 | 
			
		||||
      >
 | 
			
		||||
    </div>
 | 
			
		||||
    <div>
 | 
			
		||||
      <el-table :data="tableData" stripe border style="width: 100%">
 | 
			
		||||
        <el-table-column type="index" align="center" label="序号" width="80">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="createTime" align="center" label="获取时间">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="source" align="center" label="数据发送源">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="Status" align="center" label="数据类型">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <span>{{
 | 
			
		||||
              scope.row.receiveStatus
 | 
			
		||||
                ? "数据已接收"
 | 
			
		||||
                : "数据未接收"
 | 
			
		||||
            }}</span>
 | 
			
		||||
            <span>{{
 | 
			
		||||
              scope.row.sendStatus
 | 
			
		||||
                ? "数据已发送"
 | 
			
		||||
                : "数据未发送"
 | 
			
		||||
            }}</span>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="content" align="center" label="内容">
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    <el-pagination
 | 
			
		||||
      @size-change="sizeChangeHandle"
 | 
			
		||||
      @current-change="currentChangeHandle"
 | 
			
		||||
      :current-page="current"
 | 
			
		||||
      :page-sizes="[10, 20, 50, 100]"
 | 
			
		||||
      :page-size="size"
 | 
			
		||||
      :total="totalPage"
 | 
			
		||||
      layout="total, sizes, prev, pager, next, jumper"
 | 
			
		||||
    ></el-pagination>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      timeArr: [],
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      current: 1,
 | 
			
		||||
      size: 10,
 | 
			
		||||
      totalPage: 0,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.init(1)
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(val) {
 | 
			
		||||
      this.current = val
 | 
			
		||||
      this.$axios({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: "/api/business/t-wcs-task-log/findAll",
 | 
			
		||||
        data: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: this.size
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data.code === 0) {
 | 
			
		||||
          this.tableData = res.data.data.records;
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$message.error(res.data.msg);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    search() {
 | 
			
		||||
      this.$axios({
 | 
			
		||||
        method: "post",
 | 
			
		||||
        url: "/api/business/t-wcs-task-log/findAll",
 | 
			
		||||
        data: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: this.size
 | 
			
		||||
        },
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        console.log(res);
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 每页数
 | 
			
		||||
    sizeChangeHandle (val) {
 | 
			
		||||
      this.size = val
 | 
			
		||||
      this.init(1)
 | 
			
		||||
    },
 | 
			
		||||
    // 当前页
 | 
			
		||||
    currentChangeHandle (val) {
 | 
			
		||||
      this.init(val)
 | 
			
		||||
    },
 | 
			
		||||
    // 多选
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style></style>
 | 
			
		||||
							
								
								
									
										29
									
								
								src/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/main.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 08:46:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 15:50:24
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
// 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 ElementUI from 'element-ui';
 | 
			
		||||
import 'element-ui/lib/theme-chalk/index.css';
 | 
			
		||||
import router from './router'
 | 
			
		||||
import axios from 'axios'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//axios.defaults.baseURL = window.global_config.BASE_URL
 | 
			
		||||
Vue.prototype.$axios = axios
 | 
			
		||||
Vue.config.productionTip = false
 | 
			
		||||
Vue.use(ElementUI);
 | 
			
		||||
 | 
			
		||||
/* eslint-disable no-new */
 | 
			
		||||
new Vue({
 | 
			
		||||
  el: '#app',
 | 
			
		||||
  router,
 | 
			
		||||
  components: { App },
 | 
			
		||||
  template: '<App/>'
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										49
									
								
								src/router/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								src/router/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-11 08:46:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 15:49:19
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
import Vue from 'vue'
 | 
			
		||||
import Router from 'vue-router'
 | 
			
		||||
import taskInfo from '@/components/taskInfo'
 | 
			
		||||
import taskLog from '@/components/taskLog'
 | 
			
		||||
import equipmentMonitor from '@/components/equipment-monitor'
 | 
			
		||||
import main from '@/components/main'
 | 
			
		||||
 | 
			
		||||
Vue.use(Router)
 | 
			
		||||
 | 
			
		||||
const originalPush = Router.prototype.push
 | 
			
		||||
//修改原型对象中的push方法
 | 
			
		||||
Router.prototype.push = function push(location) {
 | 
			
		||||
   return originalPush.call(this, location).catch(err => err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default new Router({
 | 
			
		||||
  routes: [
 | 
			
		||||
    {
 | 
			
		||||
      path: '/',
 | 
			
		||||
      name: 'main',
 | 
			
		||||
      component: main,
 | 
			
		||||
      redirect:'/taskInfo',
 | 
			
		||||
      children:[
 | 
			
		||||
        {
 | 
			
		||||
          path: '/taskInfo',
 | 
			
		||||
          name: 'taskInfo',
 | 
			
		||||
          component: taskInfo
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          path: '/taskLog',
 | 
			
		||||
          name: 'taskLog',
 | 
			
		||||
          component: taskLog
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          path: '/equipmentMonitor',
 | 
			
		||||
          name: 'equipmentMonitor',
 | 
			
		||||
          component: equipmentMonitor
 | 
			
		||||
        },
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
  ]
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										0
									
								
								static/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								static/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										11
									
								
								static/config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								static/config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-10-29 15:09:18
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2021-10-29 15:12:14
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
window.global_config = {
 | 
			
		||||
  BASE_URL: 'http://192.168.1.188:8009'
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user