提交
19
.babelrc
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
"modules": false
|
||||
}],
|
||||
"stage-2"
|
||||
],
|
||||
"plugins": ["transform-runtime", ["component", [
|
||||
{
|
||||
"libraryName": "element-ui"
|
||||
}
|
||||
]]],
|
||||
"env": {
|
||||
"test": {
|
||||
"presets": ["env", "stage-2"],
|
||||
"plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"]
|
||||
}
|
||||
}
|
||||
}
|
6
.dockerignore
Normal file
@ -0,0 +1,6 @@
|
||||
.vscode/
|
||||
.idea/
|
||||
node_modules/
|
||||
**/*.log
|
||||
LICENSE
|
||||
README.md
|
52
.drone.yml
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: docker:dind
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run/docker.sock
|
||||
- name: dockerconfig
|
||||
path: /root/.docker
|
||||
commands:
|
||||
- docker build -t harbor.picaiba.com/kszny/wms-ui:1.0.0-qy ./ && docker push harbor.picaiba.com/kszny/wms-ui:1.0.0-qy
|
||||
|
||||
- name: deploy
|
||||
image: harbor.picaiba.com/tools/kubectl:1.19.8
|
||||
commands:
|
||||
- echo "172.27.0.20 lb.kubesphere.local" >> /etc/hosts
|
||||
#- echo "52.74.223.119 github.com" >> /etc/hosts
|
||||
- sleep 1
|
||||
- kubectl scale --replicas=0 deployment/wms-ui -n wms-qy
|
||||
- sleep 3
|
||||
- kubectl scale --replicas=1 deployment/wms-ui -n wms-qy
|
||||
depends_on:
|
||||
- build
|
||||
|
||||
- name: notification
|
||||
image: lddsb/drone-dingtalk-message
|
||||
settings:
|
||||
token: 37a6483274f6de648a26d6710e4d8160eb7d471752abb2d70f8b7958af58fe11
|
||||
type: markdown
|
||||
secret: SEC83b10f5fefd6127e4073360d4447bb7276a90386aeee1275b2797dd377a903e7
|
||||
tpl: http://res.picaiba.com/msg/msg.md
|
||||
tips_title: 你有新消息
|
||||
success_color: 008800
|
||||
failure_color: FF0000
|
||||
|
||||
volumes:
|
||||
- name: dockersock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
- name: dockerconfig
|
||||
host:
|
||||
path: /root/.docker
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- push
|
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
|
6
.eslintignore
Normal file
@ -0,0 +1,6 @@
|
||||
/build/
|
||||
/config/
|
||||
/dist/
|
||||
/*.js
|
||||
/test/unit/coverage/
|
||||
/src/icons/iconfont.js
|
25
.eslintrc.js
Normal file
@ -0,0 +1,25 @@
|
||||
// https://eslint.org/docs/user-guide/configuring
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
parser: 'babel-eslint',
|
||||
parserOptions: {
|
||||
sourceType: 'module'
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
},
|
||||
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
|
||||
extends: 'standard',
|
||||
// required to lint *.vue files
|
||||
plugins: [
|
||||
'html'
|
||||
],
|
||||
// add your custom rules here
|
||||
rules: {
|
||||
// allow async-await
|
||||
'generator-star-spacing': 'off',
|
||||
// allow debugger during development
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||
}
|
||||
}
|
17
.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
.DS_Store
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
/test/unit/coverage/
|
||||
/test/e2e/reports/
|
||||
selenium-debug.log
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
|
9
.postcssrc.js
Normal file
@ -0,0 +1,9 @@
|
||||
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
|
||||
module.exports = {
|
||||
"plugins": {
|
||||
// to edit target browsers: use "browserslist" field in package.json
|
||||
"postcss-import": {},
|
||||
"autoprefixer": {}
|
||||
}
|
||||
}
|
59
CHANGELOG.md
Normal file
@ -0,0 +1,59 @@
|
||||
## 更新日志
|
||||
|
||||
### 1.2.2
|
||||
|
||||
*2018-10-16*
|
||||
|
||||
- 修复判断当前路由类型 bug
|
||||
- 默认开放element-ui所有组件
|
||||
- 修复子菜单同级出现子菜单项会同时选中bug
|
||||
- 捕获首次请求菜单列表和权限异常,自动跳转至登录页
|
||||
- 修复菜单按钮权限错误bug [#41](https://github.com/renrenio/renren-fast-vue/issues/41)
|
||||
- 提供重置登录信息状态方法。修复登出或替换账号还保留之前账号操作信息和痕迹bug
|
||||
- 优化token失效、退出后,为了强制清空整站临时存储数据而刷新页面问题。注意: 此次vux数据并未做重置处理!
|
||||
|
||||
### 1.2.1
|
||||
|
||||
*2018-06-08*
|
||||
|
||||
- 修复tabs关闭最后一个tab后,再次打开会保留最后一个tab bug
|
||||
- 优化完善mock模拟数据
|
||||
- 修复linux系统,引入主题色文件名大小写编译错误bug [#22](https://github.com/daxiongYang/renren-fast-vue/issues/22)
|
||||
- 新增echarts图表、ueditor富文本编辑器demo
|
||||
- 移除登录成功token前端设置的失效时间
|
||||
- 修复退出/token失效后,返回登录页面未清空整站临时存储数据bug
|
||||
- 修复手机号码验证正则bug
|
||||
- 同步后台 修改config模块key vulue子段为paramKey paramValue
|
||||
- 修复角色管理 新增修改授权接口请求错误bug
|
||||
- 修复1.2 新版本的导航栏Tab错位bug [#14](https://github.com/daxiongYang/renren-fast-vue/issues/14)
|
||||
- 修复动态菜单路由 最前面带/bug
|
||||
- 修复其它已知bug
|
||||
|
||||
### 1.2.0
|
||||
|
||||
*2018-05-03*
|
||||
|
||||
- 支持菜单管理操作动态(菜单)路由
|
||||
- 移除api文件夹目录,简化api请求方式
|
||||
- 新增element-ui组件主题12套,可同步修改配置设置成整站主题
|
||||
- 调整store状态目录结构,改变设置/获取方式
|
||||
- 调整views视图层结构,更友好的支持动态(菜单)路由
|
||||
- 修复其它已知bug
|
||||
|
||||
### 1.1.0
|
||||
|
||||
*2018-04-15*
|
||||
|
||||
- 使用SVG Sprite矢量图标,替换fontawesome字体图标
|
||||
- 新增内容tabs标签页,关闭当前/其它/全部、刷新当前功能
|
||||
- 新增scss变量皮肤定制
|
||||
- 优化路由机制,通过meta isTab属性,设定是否通过tab标签页展示内容
|
||||
- 更新element-ui 2.3.2 用于修复左侧菜单收缩卡顿问题
|
||||
- 新增mock本地开发模拟数据功能
|
||||
- 修复本地开发找不到baseUrl问题
|
||||
- 更新element-ui 2.2.1 用于修复tree半选中状态项不能传给后台接口问题
|
||||
- 修复其它已知bug
|
||||
|
||||
### 1.0.0
|
||||
|
||||
*2018-02-11*
|
3
Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM busybox
|
||||
LABEL maintainer thomas.hairong@gmail.com
|
||||
COPY dist/ /html
|
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
19
README.md
Normal file
@ -0,0 +1,19 @@
|
||||
## renren-fast-vue
|
||||
- renren-fast-vue基于vue、element-ui构建开发,实现[renren-fast](https://gitee.com/renrenio/renren-fast)后台管理前端功能,提供一套更优的前端解决方案
|
||||
- 前后端分离,通过token进行数据交互,可独立部署
|
||||
- 主题定制,通过scss变量统一一站式定制
|
||||
- 动态菜单,通过菜单管理统一管理访问路由
|
||||
- 数据切换,通过mock配置对接口数据/mock模拟数据进行切换
|
||||
- 发布时,可动态配置CDN静态资源/切换新旧版本
|
||||
- 演示地址:[http://demo.open.renren.io/renren-fast](http://demo.open.renren.io/renren-fast) (账号密码:admin/admin)
|
||||
|
||||
![输入图片说明](https://images.gitee.com/uploads/images/2019/0305/133529_ff15f192_63154.png "01.png")
|
||||
![输入图片说明](https://images.gitee.com/uploads/images/2019/0305/133537_7a1b2d85_63154.png "02.png")
|
||||
|
||||
|
||||
## 说明文档
|
||||
项目开发、部署等说明都在[wiki](https://github.com/renrenio/renren-fast-vue/wiki)中。
|
||||
|
||||
|
||||
## 更新日志
|
||||
每个版本的详细更改都记录在[release notes](https://github.com/renrenio/renren-fast-vue/releases)中。
|
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,
|
||||
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
@ -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)
|
||||
}
|
||||
}
|
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
@ -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'
|
||||
}
|
||||
}
|
103
build/webpack.base.conf.js
Normal file
@ -0,0 +1,103 @@
|
||||
'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)
|
||||
}
|
||||
|
||||
const createLintingRule = () => ({
|
||||
test: /\.(js|vue)$/,
|
||||
loader: 'eslint-loader',
|
||||
enforce: 'pre',
|
||||
include: [resolve('src'), resolve('test')],
|
||||
options: {
|
||||
formatter: require('eslint-friendly-formatter'),
|
||||
emitWarning: !config.dev.showEslintErrorsInOverlay
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
context: path.resolve(__dirname, '../'),
|
||||
entry: {
|
||||
app: ['babel-polyfill', './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: [
|
||||
...(config.dev.useEslint ? [createLintingRule()] : []),
|
||||
{
|
||||
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')]
|
||||
},
|
||||
{
|
||||
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]')
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
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'
|
||||
},
|
||||
// 引入外部库, 无需webpack打包处理
|
||||
externals: {
|
||||
mockjs: 'Mock',
|
||||
ueditor: 'UE'
|
||||
}
|
||||
}
|
80
build/webpack.dev.conf.js
Normal file
@ -0,0 +1,80 @@
|
||||
'use strict'
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
||||
const portfinder = require('portfinder')
|
||||
|
||||
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,
|
||||
hot: true,
|
||||
compress: true,
|
||||
host: HOST || config.dev.host,
|
||||
port: PORT || config.dev.port,
|
||||
open: config.dev.autoOpenBrowser,
|
||||
overlay: config.dev.errorOverlay
|
||||
? { warnings: false, errors: true }
|
||||
: false,
|
||||
publicPath: config.dev.assetsPublicPath,
|
||||
proxy: config.dev.proxyTable,
|
||||
quiet: true, // necessary for FriendlyErrorsPlugin
|
||||
watchOptions: {
|
||||
poll: config.dev.poll,
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': require('../config/dev.env')
|
||||
}),
|
||||
new webpack.HotModuleReplacementPlugin(),
|
||||
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
|
||||
}),
|
||||
]
|
||||
})
|
||||
|
||||
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)
|
||||
}
|
||||
})
|
||||
})
|
148
build/webpack.prod.conf.js
Normal file
@ -0,0 +1,148 @@
|
||||
'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 = 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,
|
||||
usePostCSS: true
|
||||
})
|
||||
},
|
||||
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: utils.assetsPath('js/[name].js'),
|
||||
chunkFilename: utils.assetsPath('js/[id].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].css'),
|
||||
// set the following option to `true` if you want to extract CSS from
|
||||
// codesplit chunks into this main css file as well.
|
||||
// This will result in *all* of your app's CSS being loaded upfront.
|
||||
allChunks: false,
|
||||
}),
|
||||
// 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',
|
||||
inject: false,
|
||||
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 vender 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({ analyzerMode: 'static' }))
|
||||
}
|
||||
|
||||
module.exports = webpackConfig
|
32
build/webpack.test.conf.js
Normal file
@ -0,0 +1,32 @@
|
||||
'use strict'
|
||||
// This is the webpack config used for unit tests.
|
||||
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const merge = require('webpack-merge')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
// use inline sourcemap for karma-sourcemap-loader
|
||||
module: {
|
||||
rules: utils.styleLoaders()
|
||||
},
|
||||
devtool: '#inline-source-map',
|
||||
resolveLoader: {
|
||||
alias: {
|
||||
// necessary to to make lang="scss" work in test when using vue-loader's ?inject option
|
||||
// see discussion at https://github.com/vuejs/vue-loader/issues/724
|
||||
'scss-loader': 'sass-loader'
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': require('../config/test.env')
|
||||
})
|
||||
]
|
||||
})
|
||||
|
||||
// no need for app entry during tests
|
||||
delete webpackConfig.entry
|
||||
|
||||
module.exports = webpackConfig
|
16
config/dev.env.js
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* @Author: gtz
|
||||
* @Date: 2021-11-19 10:10:51
|
||||
* @LastEditors: gtz
|
||||
* @LastEditTime: 2021-12-08 16:04:49
|
||||
* @Description: file content
|
||||
* @FilePath: \mt-qj-wms-ui\config\dev.env.js
|
||||
*/
|
||||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const prodEnv = require('./prod.env')
|
||||
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"development"',
|
||||
OPEN_PROXY: true // 是否开启代理, 重置后需重启vue-cli
|
||||
})
|
100
config/index.js
Normal file
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* @Author: gtz
|
||||
* @Date: 2021-11-19 10:10:51
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2023-12-13 16:26:31
|
||||
* @Description: file content
|
||||
* @FilePath: \mt-qj-wms-ui\config\index.js
|
||||
*/
|
||||
'use strict'
|
||||
// Template version: 1.2.5
|
||||
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||
|
||||
const path = require('path')
|
||||
const devEnv = require('./dev.env')
|
||||
|
||||
module.exports = {
|
||||
dev: {
|
||||
|
||||
// Paths
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: '/',
|
||||
// 代理列表, 是否开启代理通过[./dev.env.js]配置
|
||||
proxyTable: devEnv.OPEN_PROXY === false ? {} : {
|
||||
'/proxyApi': {
|
||||
target: 'http://192.168.1.43:8090/',
|
||||
// target: 'http://qy.wms.picaiba.com/wms-qy/',
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/proxyApi': '/'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Various Dev Server settings
|
||||
host: 'localhost', // can be overwritten by process.env.HOST
|
||||
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||
autoOpenBrowser: true,
|
||||
errorOverlay: true,
|
||||
notifyOnErrors: true,
|
||||
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||
|
||||
// Use Eslint Loader?
|
||||
// If true, your code will be linted during bundling and
|
||||
// linting errors and warnings will be shown in the console.
|
||||
useEslint: true,
|
||||
// If true, eslint errors and warnings will also be shown in the error overlay
|
||||
// in the browser.
|
||||
showEslintErrorsInOverlay: false,
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
// https://webpack.js.org/configuration/devtool/#development
|
||||
devtool: '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,
|
||||
|
||||
// CSS Sourcemaps off by default because relative paths are "buggy"
|
||||
// with this option, according to the CSS-Loader README
|
||||
// (https://github.com/webpack/css-loader#sourcemaps)
|
||||
// In our experience, they generally work as expected,
|
||||
// just be aware of this issue when enabling this option.
|
||||
cssSourceMap: false,
|
||||
},
|
||||
|
||||
build: {
|
||||
// Template for index.html
|
||||
index: path.resolve(__dirname, '../dist/index.html'),
|
||||
|
||||
// Paths
|
||||
assetsRoot: path.resolve(__dirname, '../dist'),
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: './',
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
productionSourceMap: false,
|
||||
// https://webpack.js.org/configuration/devtool/#production
|
||||
devtool: '#source-map',
|
||||
|
||||
// Gzip off by default as many popular static hosts such as
|
||||
// Surge or Netlify already gzip all static assets for you.
|
||||
// Before setting to `true`, make sure to:
|
||||
// npm install --save-dev compression-webpack-plugin
|
||||
productionGzip: false,
|
||||
productionGzipExtensions: ['js', 'css'],
|
||||
|
||||
// Run the build command with an extra argument to
|
||||
// View the bundle analyzer report after build finishes:
|
||||
// `npm run build --report`
|
||||
// Set to `true` or `false` to always turn it on or off
|
||||
bundleAnalyzerReport: process.env.npm_config_report
|
||||
}
|
||||
}
|
4
config/prod.env.js
Normal file
@ -0,0 +1,4 @@
|
||||
'use strict'
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"'
|
||||
}
|
7
config/test.env.js
Normal file
@ -0,0 +1,7 @@
|
||||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const devEnv = require('./dev.env')
|
||||
|
||||
module.exports = merge(devEnv, {
|
||||
NODE_ENV: '"testing"'
|
||||
})
|
BIN
demo-screenshot/01.png
Normal file
After Width: | Height: | Size: 462 KiB |
BIN
demo-screenshot/02.png
Normal file
After Width: | Height: | Size: 112 KiB |
2
dist/20490957/static/css/app.css
vendored
Normal file
BIN
dist/20490957/static/fonts/element-icons.6f0a763.ttf
vendored
Normal file
BIN
dist/20490957/static/img/12.07c5158.png
vendored
Normal file
After Width: | Height: | Size: 386 KiB |
BIN
dist/20490957/static/img/13.5ec8b82.jpg
vendored
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
dist/20490957/static/img/favicon.ico
vendored
Normal file
After Width: | Height: | Size: 4.2 KiB |
18
dist/20490957/static/img/icon-维护开始.svg
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="15px" height="14px" viewBox="0 0 15 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 60 (88103) - https://sketch.com -->
|
||||
<title>编组 33</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="icon/界面内/维护开始" transform="translate(-1.000000, -1.000000)">
|
||||
<g id="编组-33">
|
||||
<rect id="矩形" fill="#D8D8D8" opacity="0" x="0" y="0" width="16" height="16"></rect>
|
||||
<g id="编组-31" transform="translate(0.500000, 1.000000)" fill="#0B58FF" fill-rule="nonzero">
|
||||
<g id="编组-29备份">
|
||||
<path d="M9.9533767,0.402734375 L9.9940017,0.416796875 C10.7830642,0.699609375 11.5080642,1.11835938 12.1486892,1.66210938 L12.1815017,1.69023438 C12.3393142,1.82460938 12.3986892,2.04179688 12.3299392,2.23867188 L11.8783767,3.50898438 C12.2627517,3.97773438 12.5658767,4.50117188 12.7783767,5.06679688 L14.1065017,5.31210938 C14.3111892,5.34960938 14.4705642,5.51054688 14.5080642,5.71523438 L14.5158767,5.75742188 C14.6627517,6.57148438 14.6627517,7.42773438 14.5158767,8.24179688 L14.5080642,8.28398438 C14.4705642,8.48867188 14.3111892,8.64960938 14.1065017,8.68710938 L12.7721267,8.93398438 C12.5596267,9.49492188 12.2580642,10.0152344 11.8752517,10.4808594 L12.3299392,11.7605469 C12.3986892,11.9558594 12.3408767,12.1746094 12.1815017,12.3089844 L12.1486892,12.3371094 C11.5065017,12.8808594 10.7815017,13.2996094 9.9940017,13.5824219 L9.9533767,13.5964844 C9.7580642,13.6667969 9.5393142,13.6089844 9.4033767,13.4511719 L8.5190017,12.4152344 C8.2252517,12.4636719 7.9252517,12.4871094 7.6268142,12.4871094 C7.3268142,12.4871094 7.0268142,12.4636719 6.7346267,12.4152344 L5.8502517,13.4511719 C5.7158767,13.6089844 5.4971267,13.6667969 5.3002517,13.5964844 L5.2596267,13.5824219 C4.4721267,13.2996094 3.7455642,12.8808594 3.1049392,12.3371094 L3.0721267,12.3089844 C2.9143142,12.1746094 2.8549392,11.9574219 2.9236892,11.7605469 L3.3783767,10.4808594 C2.9955642,10.0152344 2.6924392,9.49492188 2.4815017,8.93398438 L1.1471267,8.68710938 C0.9424392,8.64960938 0.7830642,8.48867188 0.7455642,8.28398438 L0.7377517,8.24179688 C0.6643142,7.83398438 0.6268142,7.41679688 0.6268142,6.99960938 C0.6268142,6.58242188 0.6643142,6.16367188 0.7377517,5.75742188 L0.7455642,5.71523438 C0.7830642,5.51054688 0.9424392,5.34960938 1.1471267,5.31210938 L2.4752517,5.06679688 C2.6877517,4.50117188 2.9893142,3.97773438 3.3752517,3.50898438 L2.9236892,2.23867188 C2.8549392,2.04335938 2.9127517,1.82460938 3.0721267,1.69023438 L3.1049392,1.66210938 C3.7471267,1.11835938 4.4721267,0.699609375 5.2596267,0.416796875 L5.3002517,0.402734375 C5.4924392,0.332421875 5.7111892,0.390234375 5.8471267,0.548046875 L6.7221267,1.57148438 C7.0190017,1.52304688 7.3221267,1.49804688 7.6252517,1.49804688 C7.9283767,1.49804688 8.2315017,1.52304688 8.5283767,1.57148438 L9.4033767,0.548046875 C9.5377517,0.390234375 9.7565017,0.332421875 9.9533767,0.402734375 Z M9.9658767,1.61523438 L8.9674392,2.78242188 L8.3440017,2.68085938 C8.1080642,2.64179688 7.8658767,2.62148438 7.6236892,2.62148438 C7.3815017,2.62148438 7.1393142,2.64179688 6.9033767,2.68085938 L6.2768142,2.78398438 L5.2783767,1.61679688 C4.8705642,1.79335938 4.4861892,2.01679688 4.1283767,2.28242188 L4.6424392,3.73242188 L4.2393142,4.22304688 C3.9330642,4.59648438 3.6924392,5.01210938 3.5236892,5.46210938 L3.3002517,6.05742188 L1.7846267,6.33710938 C1.7346267,6.77617188 1.7346267,7.22460938 1.7846267,7.66523438 L3.3033767,7.94492188 L3.5299392,8.53554688 C3.6986892,8.98085938 3.9393142,9.39492188 4.2440017,9.76523438 L4.6486892,10.2558594 L4.1299392,11.7152344 C4.4877517,11.9808594 4.8736892,12.2027344 5.2799392,12.3808594 L6.2877517,11.2011719 L6.9127517,11.3027344 C7.1455642,11.3402344 7.3861892,11.3605469 7.6236892,11.3605469 C7.8627517,11.3605469 8.1018142,11.3417969 8.3346267,11.3027344 L8.9596267,11.2011719 L9.9674392,12.3808594 C10.3752517,12.2042969 10.7596267,11.9808594 11.1174392,11.7152344 L10.5986892,10.2558594 L11.0033767,9.76523438 C11.3080642,9.39492188 11.5486892,8.98085938 11.7174392,8.53554688 L11.9408767,7.94335938 L13.4596267,7.66367188 C13.5096267,7.22460938 13.5096267,6.77617188 13.4596267,6.33554688 L11.9440017,6.05585938 L11.7205642,5.46054688 C11.5518142,5.01210938 11.3111892,4.59492188 11.0049392,4.22148438 L10.6018142,3.73085938 L11.1158767,2.28085938 C10.7580642,2.01523438 10.3721267,1.79335938 9.9658767,1.61523438 Z M6.07014098,4.62654496 C6.21251373,4.38993428 6.5197405,4.31353935 6.75635117,4.4559121 L6.75635117,4.4559121 L10.2300442,6.5460935 C10.2987727,6.58744863 10.356543,6.64473184 10.3984787,6.71310766 C10.54285,6.94850422 10.4690594,7.2563669 10.2336629,7.4007382 L10.2336629,7.4007382 L6.75996986,9.53119236 C6.68131109,9.57943465 6.59083666,9.60496919 6.4985625,9.60496919 C6.22242013,9.60496919 5.9985625,9.38111156 5.9985625,9.10496919 L5.9985625,9.10496919 L5.9985625,4.88433363 C5.9985625,4.79349746 6.02330791,4.7043773 6.07014098,4.62654496 Z" id="形状结合"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
BIN
dist/20490957/static/img/quanyou.webp
vendored
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
dist/20490957/static/img/touxiang.2ca0afc.jpeg
vendored
Normal file
After Width: | Height: | Size: 19 KiB |
1
dist/20490957/static/js/0.js
vendored
Normal file
1
dist/20490957/static/js/1.js
vendored
Normal file
1
dist/20490957/static/js/10.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([10],{"5atb":function(t,e,s){var o=s("vIK7");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);s("rjj0")("45f76159",o,!0)},uZtf:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=s("mvHQ"),n=s.n(o),i={data:function(){return{websock:"",wbData:[],url:""}},created:function(){this.url=window.SITE_CONFIG.wbURL,JSON.parse(sessionStorage.getItem("msgDiv"))?this.wbData=JSON.parse(sessionStorage.getItem("msgDiv")):this.wbData=[],this.initWebSocket()},methods:{initWebSocket:function(){var t="ws://"+this.url+"/log";this.websock=new WebSocket(t),this.websock.onmessage=this.websocketonmessage,this.websock.onopen=this.websocketonopen,this.websock.onerror=this.websocketonerror,this.websock.onclose=this.websocketclose},websocketonopen:function(){this.websocketsend()},websocketonerror:function(){this.initWebSocket()},websocketonmessage:function(t){this.wbData.length>=1e3?(this.wbData.shift(),this.wbData.push(t.data)):this.wbData.push(t.data),sessionStorage.setItem("msgDiv",n()(this.wbData))},websocketsend:function(t){this.websock.send(t)},websocketclose:function(t){console.log("断开连接",t)}}},a={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"bg mod-config msgDiv"},t._l(t.wbData,function(e,o){return s("div",{key:o,staticClass:"msg-div"},[t._v("\n "+t._s(e)+"\n ")])}))},staticRenderFns:[]};var c=s("VU/8")(i,a,!1,function(t){s("5atb")},"data-v-68248a3c",null);e.default=c.exports},vIK7:function(t,e,s){(t.exports=s("FZ+f")(!1)).push([t.i,"\n.bg[data-v-68248a3c] {\n /* background-image: url(~@/assets/img/13.jpg);\n background-size: cover;\n position: relative; */\n}\n.msgDiv[data-v-68248a3c]{\n color: black;\n height: calc(100vh - 109px);\n overflow-y: auto;\n}\n.msg-div[data-v-68248a3c] {\n}\n",""])}});
|
1
dist/20490957/static/js/11.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([11],{"7FDS":function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{staticClass:"site-wrapper site-page--not-found"},[e("div",{staticClass:"site-content__wrapper"},[e("div",{staticClass:"site-content"},[e("h2",{staticClass:"not-found-title"},[n._v("400")]),n._v(" "),n._m(0),n._v(" "),e("el-button",{on:{click:function(t){n.$router.go(-1)}}},[n._v("返回上一页")]),n._v(" "),e("el-button",{staticClass:"not-found-btn-gohome",attrs:{type:"primary"},on:{click:function(t){n.$router.push({name:"home"})}}},[n._v("进入首页")])],1)])])},staticRenderFns:[function(){var n=this.$createElement,t=this._self._c||n;return t("p",{staticClass:"not-found-desc"},[this._v("抱歉!您访问的页面"),t("em",[this._v("失联")]),this._v("啦 ...")])}]};var s=e("VU/8")({},o,!1,function(n){e("Txlp")},null,null);t.default=s.exports},"9N5H":function(n,t,e){(n.exports=e("FZ+f")(!1)).push([n.i,"\n.site-wrapper.site-page--not-found {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n.site-wrapper.site-page--not-found .site-content__wrapper {\n padding: 0;\n margin: 0;\n background-color: #fff;\n}\n.site-wrapper.site-page--not-found .site-content {\n position: fixed;\n top: 15%;\n left: 50%;\n z-index: 2;\n padding: 30px;\n text-align: center;\n -webkit-transform: translate(-50%, 0);\n transform: translate(-50%, 0);\n}\n.site-wrapper.site-page--not-found .not-found-title {\n margin: 20px 0 15px;\n font-size: 10em;\n font-weight: 400;\n color: #37474f;\n}\n.site-wrapper.site-page--not-found .not-found-desc {\n margin: 0 0 30px;\n font-size: 26px;\n text-transform: uppercase;\n color: #76838f;\n}\n.site-wrapper.site-page--not-found .not-found-desc > em {\n font-style: normal;\n color: #ee8145;\n}\n.site-wrapper.site-page--not-found .not-found-btn-gohome {\n margin-left: 30px;\n}\n",""])},Txlp:function(n,t,e){var o=e("9N5H");"string"==typeof o&&(o=[[n.i,o,""]]),o.locals&&(n.exports=o.locals);e("rjj0")("d244dcfe",o,!0)}});
|
1
dist/20490957/static/js/12.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([12],{"5nv+":function(e,t,a){var r=a("nYeb");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);a("rjj0")("a204b102",r,!0)},Ev5x:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg mod-config"},[a("el-card",{staticClass:"box-card"},[a("el-form",{ref:"dataForm",attrs:{model:e.dataForm,rules:e.dataRule,"label-width":"80px"},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.dataFormSubmit()}}},[a("el-form-item",{attrs:{label:"设备名称",prop:"plcName"}},[a("el-input",{attrs:{placeholder:"设备名称",clearable:""},model:{value:e.dataForm.plcName,callback:function(t){e.$set(e.dataForm,"plcName",t)},expression:"dataForm.plcName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"设备型号",prop:"plcType"}},[a("el-select",{staticStyle:{width:"100%"},attrs:{placeholder:"请选择设备型号"},model:{value:e.dataForm.plcType,callback:function(t){e.$set(e.dataForm,"plcType",t)},expression:"dataForm.plcType"}},e._l(e.options,function(e){return a("el-option",{key:e,attrs:{label:e,value:e}})}))],1),e._v(" "),a("el-form-item",{attrs:{label:"IP",prop:"address"}},[a("el-input",{attrs:{placeholder:"IP",clearable:""},model:{value:e.dataForm.address,callback:function(t){e.$set(e.dataForm,"address",t)},expression:"dataForm.address"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"端口号",prop:"port"}},[a("el-input",{attrs:{placeholder:"端口号",clearable:""},model:{value:e.dataForm.port,callback:function(t){e.$set(e.dataForm,"port",t)},expression:"dataForm.port"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"读取频率",prop:"frequence"}},[a("el-select",{attrs:{placeholder:"请选择读取频率"},model:{value:e.dataForm.frequence,callback:function(t){e.$set(e.dataForm,"frequence",t)},expression:"dataForm.frequence"}},e._l(e.options1,function(e){return a("el-option",{key:e,attrs:{label:e,value:e}})}))],1),e._v(" "),a("el-form-item",{attrs:{label:"自动连接",prop:"autoConnect"}},[a("el-switch",{model:{value:e.dataForm.autoConnect,callback:function(t){e.$set(e.dataForm,"autoConnect",t)},expression:"dataForm.autoConnect"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"自动读取",prop:"autoRead"}},[a("el-switch",{model:{value:e.dataForm.autoRead,callback:function(t){e.$set(e.dataForm,"autoRead",t)},expression:"dataForm.autoRead"}})],1)],1),e._v(" "),a("span",{staticStyle:{float:"right"}},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dataFormSubmit()}}},[e._v("确定")])],1)],1)],1)},staticRenderFns:[]};var o=a("VU/8")({data:function(){return{dataForm:{plcName:"",port:"",address:"",frequence:"",autoConnect:!0,autoRead:!0,plcType:""},options:[],options1:[],dataRule:{plcName:[{required:!0,message:"设备名称不能为空",trigger:"blur"}],port:[{required:!0,message:"端口号不能为空",trigger:"blur"}],address:[{required:!0,message:"IP不能为空",trigger:"blur"}],frequence:[{required:!0,message:"读取频率不能为空",trigger:"blur"}],plcType:[{required:!0,message:"设备型号不能为空",trigger:"change"}]}}},created:function(){this.init()},methods:{init:function(){var e=this;this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-frequence"),method:"post"}).then(function(t){var a=t.data;a&&0===a.code&&(e.options1=a.data)}),this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-siemensType"),method:"post"}).then(function(t){var a=t.data;a&&0===a.code&&(e.options=a.data)}),this.$nextTick(function(){e.$refs.dataForm.resetFields()})},dataFormSubmit:function(){var e=this;this.$refs.dataForm.validate(function(t){t&&e.$http({url:e.$http.adornUrl("api/server/plcCreate/create-siemensPlc"),method:"post",data:e.$http.adornData(e.dataForm)}).then(function(t){var a=t.data;a&&0===a.code?e.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){e.init()}}):e.$message.error(a.msg)})})}}},r,!1,function(e){a("5nv+")},"data-v-ca2eef96",null);t.default=o.exports},nYeb:function(e,t,a){(e.exports=a("FZ+f")(!1)).push([e.i,"\n.box-card[data-v-ca2eef96] {\n width: 480px;\n height: 480px;\n position: absolute;\n /* 水平垂直居中 */\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n}\n.bg[data-v-ca2eef96] {\n background-image: url("+a("1JAX")+");\n background-size: cover;\n position: relative;\n}\n",""])}});
|
1
dist/20490957/static/js/13.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([13],{JHyu:function(e,t,a){(e.exports=a("FZ+f")(!1)).push([e.i,"\n.box-card[data-v-a0f7cd08] {\n width: 480px;\n height: 450px;\n position: absolute;\n /* 水平垂直居中 */\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n}\n.bg[data-v-a0f7cd08] {\n background-image: url("+a("1JAX")+");\n background-size: cover;\n position: relative;\n}\n",""])},KNwn:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg mod-config"},[a("el-card",{staticClass:"box-card"},[a("el-form",{ref:"dataForm",attrs:{model:e.dataForm,rules:e.dataRule,"label-width":"80px"},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.dataFormSubmit()}}},[a("el-form-item",{attrs:{label:"设备名称",prop:"plcName"}},[a("el-input",{attrs:{placeholder:"设备名称",clearable:""},model:{value:e.dataForm.plcName,callback:function(t){e.$set(e.dataForm,"plcName",t)},expression:"dataForm.plcName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"IP",prop:"address"}},[a("el-input",{attrs:{placeholder:"IP",clearable:""},model:{value:e.dataForm.address,callback:function(t){e.$set(e.dataForm,"address",t)},expression:"dataForm.address"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"端口号",prop:"port"}},[a("el-input",{attrs:{placeholder:"端口号",clearable:""},model:{value:e.dataForm.port,callback:function(t){e.$set(e.dataForm,"port",t)},expression:"dataForm.port"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"读取频率",prop:"frequence"}},[a("el-select",{attrs:{placeholder:"请选择读取频率"},model:{value:e.dataForm.frequence,callback:function(t){e.$set(e.dataForm,"frequence",t)},expression:"dataForm.frequence"}},e._l(e.options1,function(e){return a("el-option",{key:e,attrs:{label:e,value:e}})}))],1),e._v(" "),a("el-form-item",{attrs:{label:"自动连接",prop:"autoConnect"}},[a("el-switch",{model:{value:e.dataForm.autoConnect,callback:function(t){e.$set(e.dataForm,"autoConnect",t)},expression:"dataForm.autoConnect"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"自动读取",prop:"autoRead"}},[a("el-switch",{model:{value:e.dataForm.autoRead,callback:function(t){e.$set(e.dataForm,"autoRead",t)},expression:"dataForm.autoRead"}})],1)],1),e._v(" "),a("span",{staticStyle:{float:"right"}},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dataFormSubmit()}}},[e._v("确定")])],1)],1)],1)},staticRenderFns:[]};var o=a("VU/8")({data:function(){return{dataForm:{plcName:"",port:"",address:"",frequence:"",autoConnect:!0,autoRead:!0},options1:[],dataRule:{plcName:[{required:!0,message:"设备名称不能为空",trigger:"blur"}],port:[{required:!0,message:"端口号不能为空",trigger:"blur"}],address:[{required:!0,message:"IP不能为空",trigger:"blur"}],frequence:[{required:!0,message:"读取频率不能为空",trigger:"blur"}]}}},created:function(){this.init()},methods:{init:function(){var e=this;this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-frequence"),method:"post"}).then(function(t){var a=t.data;a&&0===a.code&&(e.options1=a.data)}),this.$nextTick(function(){e.$refs.dataForm.resetFields()})},dataFormSubmit:function(){var e=this;this.$refs.dataForm.validate(function(t){t&&e.$http({url:e.$http.adornUrl("api/server/plcCreate/create-OmronPlc"),method:"post",data:e.$http.adornData(e.dataForm)}).then(function(t){var a=t.data;a&&0===a.code?e.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){e.init()}}):e.$message.error(a.msg)})})}}},r,!1,function(e){a("ydPE")},"data-v-a0f7cd08",null);t.default=o.exports},ydPE:function(e,t,a){var r=a("JHyu");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);a("rjj0")("382253be",r,!0)}});
|
1
dist/20490957/static/js/14.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([14],{"4p2+":function(t,a,e){var r=e("gV7b");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);e("rjj0")("51a234aa",r,!0)},gV7b:function(t,a,e){(t.exports=e("FZ+f")(!1)).push([t.i,"\n.box-card[data-v-329128c5] {\n width: 480px;\n height: 540px;\n position: absolute;\n /* 水平垂直居中 */\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n}\n.bg[data-v-329128c5] {\n background-image: url("+e("1JAX")+");\n background-size: cover;\n position: relative;\n}\n",""])},ibYb:function(t,a,e){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={render:function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"bg mod-config"},[e("el-card",{staticClass:"box-card"},[e("el-form",{ref:"dataForm",attrs:{model:t.dataForm,rules:t.dataRule,"label-width":"80px"},nativeOn:{keyup:function(a){if(!("button"in a)&&t._k(a.keyCode,"enter",13,a.key,"Enter"))return null;t.dataFormSubmit()}}},[e("el-form-item",{attrs:{label:"设备名称",prop:"plcName"}},[e("el-input",{attrs:{placeholder:"设备名称",clearable:""},model:{value:t.dataForm.plcName,callback:function(a){t.$set(t.dataForm,"plcName",a)},expression:"dataForm.plcName"}})],1),t._v(" "),e("el-form-item",{attrs:{label:"IP",prop:"address"}},[e("el-input",{attrs:{placeholder:"IP",clearable:""},model:{value:t.dataForm.address,callback:function(a){t.$set(t.dataForm,"address",a)},expression:"dataForm.address"}})],1),t._v(" "),e("el-form-item",{attrs:{label:"端口号",prop:"port"}},[e("el-input",{attrs:{placeholder:"端口号",clearable:""},model:{value:t.dataForm.port,callback:function(a){t.$set(t.dataForm,"port",a)},expression:"dataForm.port"}})],1),t._v(" "),e("el-form-item",{attrs:{label:"站号",prop:"station"}},[e("el-input",{attrs:{placeholder:"站号",clearable:""},model:{value:t.dataForm.station,callback:function(a){t.$set(t.dataForm,"station",a)},expression:"dataForm.station"}})],1),t._v(" "),e("el-form-item",{attrs:{label:"读取格式",prop:"dataFormat"}},[e("el-select",{attrs:{placeholder:"请选择读取格式"},model:{value:t.dataForm.dataFormat,callback:function(a){t.$set(t.dataForm,"dataFormat",a)},expression:"dataForm.dataFormat"}},t._l(t.options2,function(t){return e("el-option",{key:t,attrs:{label:t,value:t}})}))],1),t._v(" "),e("el-form-item",{attrs:{label:"读取频率",prop:"frequence"}},[e("el-select",{attrs:{placeholder:"请选择读取频率"},model:{value:t.dataForm.frequence,callback:function(a){t.$set(t.dataForm,"frequence",a)},expression:"dataForm.frequence"}},t._l(t.options1,function(t){return e("el-option",{key:t,attrs:{label:t,value:t}})}))],1),t._v(" "),e("el-form-item",{attrs:{label:"自动连接",prop:"autoConnect"}},[e("el-switch",{model:{value:t.dataForm.autoConnect,callback:function(a){t.$set(t.dataForm,"autoConnect",a)},expression:"dataForm.autoConnect"}})],1),t._v(" "),e("el-form-item",{attrs:{label:"自动读取",prop:"autoRead"}},[e("el-switch",{model:{value:t.dataForm.autoRead,callback:function(a){t.$set(t.dataForm,"autoRead",a)},expression:"dataForm.autoRead"}})],1)],1),t._v(" "),e("span",{staticStyle:{float:"right"}},[e("el-button",{attrs:{type:"primary"},on:{click:function(a){t.dataFormSubmit()}}},[t._v("确定")])],1)],1)],1)},staticRenderFns:[]};var o=e("VU/8")({data:function(){return{dataForm:{plcName:"",port:"",address:"",frequence:"",dataFormat:"",autoConnect:!0,autoRead:!0,station:""},options1:[],options2:[],dataRule:{plcName:[{required:!0,message:"设备名称不能为空",trigger:"blur"}],port:[{required:!0,message:"端口号不能为空",trigger:"blur"}],address:[{required:!0,message:"IP不能为空",trigger:"blur"}],frequence:[{required:!0,message:"读取频率不能为空",trigger:"blur"}],station:[{required:!0,message:"站号不能为空",trigger:"blur"}]}}},created:function(){this.init()},methods:{init:function(){var t=this;this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-frequence"),method:"post"}).then(function(a){var e=a.data;e&&0===e.code&&(t.options1=e.data)}),this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-DataFormat"),method:"post"}).then(function(a){var e=a.data;e&&0===e.code&&(t.options2=e.data)}),this.$nextTick(function(){t.$refs.dataForm.resetFields()})},dataFormSubmit:function(){var t=this;this.$refs.dataForm.validate(function(a){a&&t.$http({url:t.$http.adornUrl("api/server/plcCreate/create-Modbus"),method:"post",data:t.$http.adornData(t.dataForm)}).then(function(a){var e=a.data;e&&0===e.code?t.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){t.init()}}):t.$message.error(e.msg)})})}}},r,!1,function(t){e("4p2+")},"data-v-329128c5",null);a.default=o.exports}});
|
1
dist/20490957/static/js/15.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([15],{"0ct2":function(e,t,a){(e.exports=a("FZ+f")(!1)).push([e.i,"\n.box-card[data-v-0e092704] {\n width: 480px;\n height: 450px;\n position: absolute;\n /* 水平垂直居中 */\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n}\n.bg[data-v-0e092704] {\n background-image: url("+a("1JAX")+");\n background-size: cover;\n position: relative;\n}\n",""])},G5Uz:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg mod-config"},[a("el-card",{staticClass:"box-card"},[a("el-form",{ref:"dataForm",attrs:{model:e.dataForm,rules:e.dataRule,"label-width":"80px"},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.dataFormSubmit()}}},[a("el-form-item",{attrs:{label:"设备名称",prop:"plcName"}},[a("el-input",{attrs:{placeholder:"设备名称",clearable:""},model:{value:e.dataForm.plcName,callback:function(t){e.$set(e.dataForm,"plcName",t)},expression:"dataForm.plcName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"IP",prop:"address"}},[a("el-input",{attrs:{placeholder:"IP",clearable:""},model:{value:e.dataForm.address,callback:function(t){e.$set(e.dataForm,"address",t)},expression:"dataForm.address"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"端口号",prop:"port"}},[a("el-input",{attrs:{placeholder:"端口号",clearable:""},model:{value:e.dataForm.port,callback:function(t){e.$set(e.dataForm,"port",t)},expression:"dataForm.port"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"读取频率",prop:"frequence"}},[a("el-select",{attrs:{placeholder:"请选择读取频率"},model:{value:e.dataForm.frequence,callback:function(t){e.$set(e.dataForm,"frequence",t)},expression:"dataForm.frequence"}},e._l(e.options1,function(e){return a("el-option",{key:e,attrs:{label:e,value:e}})}))],1),e._v(" "),a("el-form-item",{attrs:{label:"自动连接",prop:"autoConnect"}},[a("el-switch",{model:{value:e.dataForm.autoConnect,callback:function(t){e.$set(e.dataForm,"autoConnect",t)},expression:"dataForm.autoConnect"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"自动读取",prop:"autoRead"}},[a("el-switch",{model:{value:e.dataForm.autoRead,callback:function(t){e.$set(e.dataForm,"autoRead",t)},expression:"dataForm.autoRead"}})],1)],1),e._v(" "),a("span",{staticStyle:{float:"right"}},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dataFormSubmit()}}},[e._v("确定")])],1)],1)],1)},staticRenderFns:[]};var o=a("VU/8")({data:function(){return{dataForm:{plcName:"",port:"",address:"",frequence:"",autoConnect:!0,autoRead:!0},options1:[],dataRule:{plcName:[{required:!0,message:"设备名称不能为空",trigger:"blur"}],port:[{required:!0,message:"端口号不能为空",trigger:"blur"}],address:[{required:!0,message:"IP不能为空",trigger:"blur"}],frequence:[{required:!0,message:"读取频率不能为空",trigger:"blur"}]}}},created:function(){this.init()},methods:{init:function(){var e=this;this.$http({url:this.$http.adornUrl("api/server/plcCreate/list-frequence"),method:"post"}).then(function(t){var a=t.data;a&&0===a.code&&(e.options1=a.data)}),this.$nextTick(function(){e.$refs.dataForm.resetFields()})},dataFormSubmit:function(){var e=this;this.$refs.dataForm.validate(function(t){t&&e.$http({url:e.$http.adornUrl("api/server/plcCreate/create-MelsecPlc"),method:"post",data:e.$http.adornData(e.dataForm)}).then(function(t){var a=t.data;a&&0===a.code?e.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){e.init()}}):e.$message.error(a.msg)})})}}},r,!1,function(e){a("nxB/")},"data-v-0e092704",null);t.default=o.exports},"nxB/":function(e,t,a){var r=a("0ct2");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);a("rjj0")("731ee9b8",r,!0)}});
|
1
dist/20490957/static/js/16.js
vendored
Normal file
1
dist/20490957/static/js/17.js
vendored
Normal file
1
dist/20490957/static/js/18.js
vendored
Normal file
1
dist/20490957/static/js/19.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([19],{"+oRl":function(t,a,e){t.exports=e.p+"static/img/touxiang.2ca0afc.jpeg"},TdIe:function(t,a,e){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s=e("cdA+"),n=e("0xDb"),i={data:function(){return{updatePassowrdVisible:!1}},components:{UpdatePassword:s.default},computed:{navbarLayoutType:{get:function(){return this.$store.state.common.navbarLayoutType}},sidebarFold:{get:function(){return this.$store.state.common.sidebarFold},set:function(t){this.$store.commit("common/updateSidebarFold",t)}},mainTabs:{get:function(){return this.$store.state.common.mainTabs},set:function(t){this.$store.commit("common/updateMainTabs",t)}},userName:{get:function(){return this.$store.state.user.name}}},methods:{updatePasswordHandle:function(){var t=this;this.updatePassowrdVisible=!0,this.$nextTick(function(){t.$refs.updatePassowrd.init()})},logoutHandle:function(){var t=this;this.$confirm("确定进行[退出]操作?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(n.a)(),t.$router.push({name:"login"})}).catch(function(){})}}},o={render:function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("nav",{staticClass:"site-navbar",class:"site-navbar--"+t.navbarLayoutType},[s("div",{staticClass:"site-navbar__header"},[s("h1",{staticClass:"site-navbar__brand",on:{click:function(a){t.$router.push({name:"home"})}}},[s("p",{staticClass:"site-navbar__brand-lg"},[t._v("智能网关")]),t._v(" "),s("a",{staticClass:"site-navbar__brand-mini",attrs:{href:"javascript:;"}},[t._v("智能网关")])])]),t._v(" "),s("div",{staticClass:"site-navbar__body clearfix"},[s("el-menu",{staticClass:"site-navbar__menu",attrs:{mode:"horizontal"}},[s("el-menu-item",{staticClass:"site-navbar__switch",attrs:{index:"0"},on:{click:function(a){t.sidebarFold=!t.sidebarFold}}},[s("icon-svg",{staticClass:"site-navbar-icon",attrs:{name:"侧边收纳"}})],1)],1),t._v(" "),s("el-menu",{staticClass:"site-navbar__menu site-navbar__menu--right",attrs:{mode:"horizontal"}},[s("el-menu-item",{staticClass:"site-navbar__avatar",attrs:{index:"3"}},[s("el-dropdown",{attrs:{"show-timeout":0,placement:"bottom"}},[s("span",{staticClass:"el-dropdown-link"},[s("img",{attrs:{src:e("+oRl"),alt:t.userName}}),t._v(t._s(t.userName)+"\n ")]),t._v(" "),s("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[s("el-dropdown-item",{nativeOn:{click:function(a){t.logoutHandle()}}},[t._v("退出")])],1)],1)],1)],1)],1),t._v(" "),t.updatePassowrdVisible?s("update-password",{ref:"updatePassowrd"}):t._e()],1)},staticRenderFns:[]},r=e("VU/8")(i,o,!1,null,null,null);a.default=r.exports}});
|
1
dist/20490957/static/js/2.js
vendored
Normal file
1
dist/20490957/static/js/20.js
vendored
Normal file
1
dist/20490957/static/js/21.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([21],{"2OCm":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a("0xDb"),o={data:function(){return{visible:!1,menuList:[],menuListTreeProps:{label:"name",children:"children"},dataForm:{id:0,roleName:"",remark:""},dataRule:{roleName:[{required:!0,message:"角色名称不能为空",trigger:"blur"}]},tempKey:-666666}},methods:{init:function(e){var t=this;this.dataForm.id=e||0,this.$http({url:this.$http.adornUrl("/sys/menu/list"),method:"get",params:this.$http.adornParams()}).then(function(e){var a=e.data;t.menuList=Object(r.c)(a,"menuId")}).then(function(){t.visible=!0,t.$nextTick(function(){t.$refs.dataForm.resetFields(),t.$refs.menuListTree.setCheckedKeys([])})}).then(function(){t.dataForm.id&&t.$http({url:t.$http.adornUrl("/sys/role/info/"+t.dataForm.id),method:"get",params:t.$http.adornParams()}).then(function(e){var a=e.data;if(a&&0===a.code){t.dataForm.roleName=a.role.roleName,t.dataForm.remark=a.role.remark;var r=a.role.menuIdList.indexOf(t.tempKey);-1!==r&&a.role.menuIdList.splice(r,a.role.menuIdList.length-r),t.$refs.menuListTree.setCheckedKeys(a.role.menuIdList)}})})},dataFormSubmit:function(){var e=this;this.$refs.dataForm.validate(function(t){t&&e.$http({url:e.$http.adornUrl("/sys/role/"+(e.dataForm.id?"update":"save")),method:"post",data:e.$http.adornData({roleId:e.dataForm.id||void 0,roleName:e.dataForm.roleName,remark:e.dataForm.remark,menuIdList:[].concat(e.$refs.menuListTree.getCheckedKeys(),[e.tempKey],e.$refs.menuListTree.getHalfCheckedKeys())})}).then(function(t){var a=t.data;a&&0===a.code?e.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){e.visible=!1,e.$emit("refreshDataList")}}):e.$message.error(a.msg)})})}}},s={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dialog",{attrs:{title:e.dataForm.id?"修改":"新增","close-on-click-modal":!1,visible:e.visible},on:{"update:visible":function(t){e.visible=t}}},[a("el-form",{ref:"dataForm",attrs:{model:e.dataForm,rules:e.dataRule,"label-width":"80px"},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.dataFormSubmit()}}},[a("el-form-item",{attrs:{label:"角色名称",prop:"roleName"}},[a("el-input",{attrs:{placeholder:"角色名称"},model:{value:e.dataForm.roleName,callback:function(t){e.$set(e.dataForm,"roleName",t)},expression:"dataForm.roleName"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"备注",prop:"remark"}},[a("el-input",{attrs:{placeholder:"备注"},model:{value:e.dataForm.remark,callback:function(t){e.$set(e.dataForm,"remark",t)},expression:"dataForm.remark"}})],1),e._v(" "),a("el-form-item",{attrs:{size:"mini",label:"授权"}},[a("el-tree",{ref:"menuListTree",attrs:{data:e.menuList,props:e.menuListTreeProps,"node-key":"menuId","default-expand-all":!0,"show-checkbox":""}})],1)],1),e._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.visible=!1}}},[e._v("取消")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dataFormSubmit()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]},i=a("VU/8")(o,s,!1,null,null,null);t.default=i.exports}});
|
1
dist/20490957/static/js/22.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([22],{jbja:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"mod-log"},[a("el-form",{attrs:{inline:!0,model:e.dataForm},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.getDataList()}}},[a("el-form-item",[a("el-input",{attrs:{placeholder:"用户名/用户操作",clearable:""},model:{value:e.dataForm.key,callback:function(t){e.$set(e.dataForm,"key",t)},expression:"dataForm.key"}})],1),e._v(" "),a("el-form-item",[a("el-button",{on:{click:function(t){e.getDataList()}}},[e._v("查询")])],1)],1),e._v(" "),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.dataListLoading,expression:"dataListLoading"}],staticStyle:{width:"100%"},attrs:{data:e.dataList,border:""}},[a("el-table-column",{attrs:{prop:"id","header-align":"center",align:"center",width:"80",label:"ID"}}),e._v(" "),a("el-table-column",{attrs:{prop:"username","header-align":"center",align:"center",label:"用户名"}}),e._v(" "),a("el-table-column",{attrs:{prop:"operation","header-align":"center",align:"center",label:"用户操作"}}),e._v(" "),a("el-table-column",{attrs:{prop:"method","header-align":"center",align:"center",width:"150","show-overflow-tooltip":!0,label:"请求方法"}}),e._v(" "),a("el-table-column",{attrs:{prop:"params","header-align":"center",align:"center",width:"150","show-overflow-tooltip":!0,label:"请求参数"}}),e._v(" "),a("el-table-column",{attrs:{prop:"time","header-align":"center",align:"center",label:"执行时长(毫秒)"}}),e._v(" "),a("el-table-column",{attrs:{prop:"ip","header-align":"center",align:"center",width:"150",label:"IP地址"}}),e._v(" "),a("el-table-column",{attrs:{prop:"createDate","header-align":"center",align:"center",width:"180",label:"创建时间"}})],1),e._v(" "),a("el-pagination",{attrs:{"current-page":e.pageIndex,"page-sizes":[10,20,50,100],"page-size":e.pageSize,total:e.totalPage,layout:"total, sizes, prev, pager, next, jumper"},on:{"size-change":e.sizeChangeHandle,"current-change":e.currentChangeHandle}})],1)},staticRenderFns:[]},l=a("VU/8")({data:function(){return{dataForm:{key:""},dataList:[],pageIndex:1,pageSize:10,totalPage:0,dataListLoading:!1,selectionDataList:[]}},created:function(){this.getDataList()},methods:{getDataList:function(){var e=this;this.dataListLoading=!0,this.$http({url:this.$http.adornUrl("/sys/log/list"),method:"get",params:this.$http.adornParams({page:this.pageIndex,limit:this.pageSize,key:this.dataForm.key})}).then(function(t){var a=t.data;a&&0===a.code?(e.dataList=a.page.list,e.totalPage=a.page.totalCount):(e.dataList=[],e.totalPage=0),e.dataListLoading=!1})},sizeChangeHandle:function(e){this.pageSize=e,this.pageIndex=1,this.getDataList()},currentChangeHandle:function(e){this.pageIndex=e,this.getDataList()}}},n,!1,null,null,null);t.default=l.exports}});
|
1
dist/20490957/static/js/23.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([23],{"/caQ":function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={data:function(){return{visible:!1,dataForm:{id:0,paramKey:"",paramValue:"",remark:""},dataRule:{paramKey:[{required:!0,message:"参数名不能为空",trigger:"blur"}],paramValue:[{required:!0,message:"参数值不能为空",trigger:"blur"}]}}},methods:{init:function(a){var e=this;this.dataForm.id=a||0,this.visible=!0,this.$nextTick(function(){e.$refs.dataForm.resetFields(),e.dataForm.id&&e.$http({url:e.$http.adornUrl("/sys/config/info/"+e.dataForm.id),method:"get",params:e.$http.adornParams()}).then(function(a){var t=a.data;t&&0===t.code&&(e.dataForm.paramKey=t.config.paramKey,e.dataForm.paramValue=t.config.paramValue,e.dataForm.remark=t.config.remark)})})},dataFormSubmit:function(){var a=this;this.$refs.dataForm.validate(function(e){e&&a.$http({url:a.$http.adornUrl("/sys/config/"+(a.dataForm.id?"update":"save")),method:"post",data:a.$http.adornData({id:a.dataForm.id||void 0,paramKey:a.dataForm.paramKey,paramValue:a.dataForm.paramValue,remark:a.dataForm.remark})}).then(function(e){var t=e.data;t&&0===t.code?a.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){a.visible=!1,a.$emit("refreshDataList")}}):a.$message.error(t.msg)})})}}},o={render:function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("el-dialog",{attrs:{title:a.dataForm.id?"修改":"新增","close-on-click-modal":!1,visible:a.visible},on:{"update:visible":function(e){a.visible=e}}},[t("el-form",{ref:"dataForm",attrs:{model:a.dataForm,rules:a.dataRule,"label-width":"80px"},nativeOn:{keyup:function(e){if(!("button"in e)&&a._k(e.keyCode,"enter",13,e.key,"Enter"))return null;a.dataFormSubmit()}}},[t("el-form-item",{attrs:{label:"参数名",prop:"paramKey"}},[t("el-input",{attrs:{placeholder:"参数名"},model:{value:a.dataForm.paramKey,callback:function(e){a.$set(a.dataForm,"paramKey",e)},expression:"dataForm.paramKey"}})],1),a._v(" "),t("el-form-item",{attrs:{label:"参数值",prop:"paramValue"}},[t("el-input",{attrs:{placeholder:"参数值"},model:{value:a.dataForm.paramValue,callback:function(e){a.$set(a.dataForm,"paramValue",e)},expression:"dataForm.paramValue"}})],1),a._v(" "),t("el-form-item",{attrs:{label:"备注",prop:"remark"}},[t("el-input",{attrs:{placeholder:"备注"},model:{value:a.dataForm.remark,callback:function(e){a.$set(a.dataForm,"remark",e)},expression:"dataForm.remark"}})],1)],1),a._v(" "),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(e){a.visible=!1}}},[a._v("取消")]),a._v(" "),t("el-button",{attrs:{type:"primary"},on:{click:function(e){a.dataFormSubmit()}}},[a._v("确定")])],1)],1)},staticRenderFns:[]},i=t("VU/8")(r,o,!1,null,null,null);e.default=i.exports}});
|
1
dist/20490957/static/js/24.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([24],{AytH:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-dialog",{attrs:{title:"上传文件","close-on-click-modal":!1,visible:e.visible},on:{close:e.closeHandle,"update:visible":function(t){e.visible=t}}},[i("el-upload",{staticStyle:{"text-align":"center"},attrs:{drag:"",action:e.url,"before-upload":e.beforeUploadHandle,"on-success":e.successHandle,multiple:"","file-list":e.fileList}},[i("i",{staticClass:"el-icon-upload"}),e._v(" "),i("div",{staticClass:"el-upload__text"},[e._v("将文件拖到此处,或"),i("em",[e._v("点击上传")])]),e._v(" "),i("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v("只支持jpg、png、gif格式的图片!")])])],1)},staticRenderFns:[]},l=i("VU/8")({data:function(){return{visible:!1,url:"",num:0,successNum:0,fileList:[]}},methods:{init:function(e){this.url=this.$http.adornUrl("/sys/oss/upload?token="+this.$cookie.get("token")),this.visible=!0},beforeUploadHandle:function(e){if("image/jpg"!==e.type&&"image/jpeg"!==e.type&&"image/png"!==e.type&&"image/gif"!==e.type)return this.$message.error("只支持jpg、png、gif格式的图片!"),!1;this.num++},successHandle:function(e,t,i){var s=this;this.fileList=i,this.successNum++,e&&0===e.code?this.num===this.successNum&&this.$confirm("操作成功, 是否继续操作?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(function(){s.visible=!1}):this.$message.error(e.msg)},closeHandle:function(){this.fileList=[],this.$emit("refreshDataList")}}},s,!1,null,null,null);t.default=l.exports}});
|
1
dist/20490957/static/js/25.js
vendored
Normal file
1
dist/20490957/static/js/26.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([26],{Nnw2:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{title:"日志列表","close-on-click-modal":!1,visible:t.visible,width:"75%"},on:{"update:visible":function(e){t.visible=e}}},[a("el-form",{attrs:{inline:!0,model:t.dataForm},nativeOn:{keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"enter",13,e.key,"Enter"))return null;t.getDataList()}}},[a("el-form-item",[a("el-input",{attrs:{placeholder:"任务ID",clearable:""},model:{value:t.dataForm.id,callback:function(e){t.$set(t.dataForm,"id",e)},expression:"dataForm.id"}})],1),t._v(" "),a("el-form-item",[a("el-button",{on:{click:function(e){t.getDataList()}}},[t._v("查询")])],1)],1),t._v(" "),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.dataListLoading,expression:"dataListLoading"}],staticStyle:{width:"100%"},attrs:{data:t.dataList,border:"",height:"460"}},[a("el-table-column",{attrs:{prop:"logId","header-align":"center",align:"center",width:"80",label:"日志ID"}}),t._v(" "),a("el-table-column",{attrs:{prop:"jobId","header-align":"center",align:"center",width:"80",label:"任务ID"}}),t._v(" "),a("el-table-column",{attrs:{prop:"beanName","header-align":"center",align:"center",label:"bean名称"}}),t._v(" "),a("el-table-column",{attrs:{prop:"params","header-align":"center",align:"center",label:"参数"}}),t._v(" "),a("el-table-column",{attrs:{prop:"status","header-align":"center",align:"center",label:"状态"},scopedSlots:t._u([{key:"default",fn:function(e){return[0===e.row.status?a("el-tag",{attrs:{size:"small"}},[t._v("成功")]):a("el-tag",{staticStyle:{cursor:"pointer"},attrs:{size:"small",type:"danger"},nativeOn:{click:function(a){t.showErrorInfo(e.row.logId)}}},[t._v("失败")])]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"times","header-align":"center",align:"center",label:"耗时(单位: 毫秒)"}}),t._v(" "),a("el-table-column",{attrs:{prop:"createTime","header-align":"center",align:"center",width:"180",label:"执行时间"}})],1),t._v(" "),a("el-pagination",{attrs:{"current-page":t.pageIndex,"page-sizes":[10,20,50,100],"page-size":t.pageSize,total:t.totalPage,layout:"total, sizes, prev, pager, next, jumper"},on:{"size-change":t.sizeChangeHandle,"current-change":t.currentChangeHandle}})],1)},staticRenderFns:[]},i=a("VU/8")({data:function(){return{visible:!1,dataForm:{id:""},dataList:[],pageIndex:1,pageSize:10,totalPage:0,dataListLoading:!1}},methods:{init:function(){this.visible=!0,this.getDataList()},getDataList:function(){var t=this;this.dataListLoading=!0,this.$http({url:this.$http.adornUrl("/sys/scheduleLog/list"),method:"get",params:this.$http.adornParams({page:this.pageIndex,limit:this.pageSize,jobId:this.dataForm.id})}).then(function(e){var a=e.data;a&&0===a.code?(t.dataList=a.page.list,t.totalPage=a.page.totalCount):(t.dataList=[],t.totalPage=0),t.dataListLoading=!1})},sizeChangeHandle:function(t){this.pageSize=t,this.pageIndex=1,this.getDataList()},currentChangeHandle:function(t){this.pageIndex=t,this.getDataList()},showErrorInfo:function(t){var e=this;this.$http({url:this.$http.adornUrl("/sys/scheduleLog/info/"+t),method:"get",params:this.$http.adornParams()}).then(function(t){var a=t.data;a&&0===a.code?e.$alert(a.log.error):e.$message.error(a.msg)})}}},n,!1,null,null,null);e.default=i.exports}});
|
1
dist/20490957/static/js/27.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([27],{lJxs:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={data:function(){return{visible:!1,dataForm:{id:0,beanName:"",params:"",cronExpression:"",remark:"",status:0},dataRule:{beanName:[{required:!0,message:"用户名不能为空",trigger:"blur"}],cronExpression:[{required:!0,message:"cron表达式不能为空",trigger:"blur"}]}}},methods:{init:function(a){var e=this;this.dataForm.id=a||0,this.visible=!0,this.$nextTick(function(){e.$refs.dataForm.resetFields(),e.dataForm.id&&e.$http({url:e.$http.adornUrl("/sys/schedule/info/"+e.dataForm.id),method:"get",params:e.$http.adornParams()}).then(function(a){var t=a.data;t&&0===t.code&&(e.dataForm.beanName=t.schedule.beanName,e.dataForm.params=t.schedule.params,e.dataForm.cronExpression=t.schedule.cronExpression,e.dataForm.remark=t.schedule.remark,e.dataForm.status=t.schedule.status)})})},dataFormSubmit:function(){var a=this;this.$refs.dataForm.validate(function(e){e&&a.$http({url:a.$http.adornUrl("/sys/schedule/"+(a.dataForm.id?"update":"save")),method:"post",data:a.$http.adornData({jobId:a.dataForm.id||void 0,beanName:a.dataForm.beanName,params:a.dataForm.params,cronExpression:a.dataForm.cronExpression,remark:a.dataForm.remark,status:a.dataForm.id?a.dataForm.status:void 0})}).then(function(e){var t=e.data;t&&0===t.code?a.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){a.visible=!1,a.$emit("refreshDataList")}}):a.$message.error(t.msg)})})}}},o={render:function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("el-dialog",{attrs:{title:a.dataForm.id?"修改":"新增","close-on-click-modal":!1,visible:a.visible},on:{"update:visible":function(e){a.visible=e}}},[t("el-form",{ref:"dataForm",attrs:{model:a.dataForm,rules:a.dataRule,"label-width":"100px"},nativeOn:{keyup:function(e){if(!("button"in e)&&a._k(e.keyCode,"enter",13,e.key,"Enter"))return null;a.dataFormSubmit()}}},[t("el-form-item",{attrs:{label:"bean名称",prop:"beanName"}},[t("el-input",{attrs:{placeholder:"spring bean名称, 如: testTask"},model:{value:a.dataForm.beanName,callback:function(e){a.$set(a.dataForm,"beanName",e)},expression:"dataForm.beanName"}})],1),a._v(" "),t("el-form-item",{attrs:{label:"参数",prop:"params"}},[t("el-input",{attrs:{placeholder:"参数"},model:{value:a.dataForm.params,callback:function(e){a.$set(a.dataForm,"params",e)},expression:"dataForm.params"}})],1),a._v(" "),t("el-form-item",{attrs:{label:"cron表达式",prop:"cronExpression"}},[t("el-input",{attrs:{placeholder:"如: 0 0 12 * * ?"},model:{value:a.dataForm.cronExpression,callback:function(e){a.$set(a.dataForm,"cronExpression",e)},expression:"dataForm.cronExpression"}})],1),a._v(" "),t("el-form-item",{attrs:{label:"备注",prop:"remark"}},[t("el-input",{attrs:{placeholder:"备注"},model:{value:a.dataForm.remark,callback:function(e){a.$set(a.dataForm,"remark",e)},expression:"dataForm.remark"}})],1)],1),a._v(" "),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(e){a.visible=!1}}},[a._v("取消")]),a._v(" "),t("el-button",{attrs:{type:"primary"},on:{click:function(e){a.dataFormSubmit()}}},[a._v("确定")])],1)],1)},staticRenderFns:[]},s=t("VU/8")(r,o,!1,null,null,null);e.default=s.exports}});
|
1
dist/20490957/static/js/28.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([28],{YbVU:function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=s("E4LH"),i={data:function(){return{dynamicMenuRoutes:[]}},components:{},computed:{sidebarLayoutSkin:{get:function(){return this.$store.state.common.sidebarLayoutSkin}},sidebarFold:{get:function(){return this.$store.state.common.sidebarFold}},menuActiveName:{get:function(){return this.$store.state.common.menuActiveName},set:function(t){this.$store.commit("common/updateMenuActiveName",t)}},mainTabs:{get:function(){return this.$store.state.common.mainTabs},set:function(t){this.$store.commit("common/updateMainTabs",t)}},mainTabsActiveName:{get:function(){return this.$store.state.common.mainTabsActiveName},set:function(t){this.$store.commit("common/updateMainTabsActiveName",t)}}},watch:{$route:"routeHandle"},created:function(){this.dynamicMenuRoutes=JSON.parse(sessionStorage.getItem("dynamicMenuRoutes")||"[]"),this.routeHandle(this.$route)},methods:{routeHandle:function(t){if(t.meta.isTab){var e=this.mainTabs.filter(function(e){return e.name===t.name})[0];if(!e){if(t.meta.isDynamic&&!(t=this.dynamicMenuRoutes.filter(function(e){return e.name===t.name})[0]))return console.error("未能找到可用标签页!");e={menuId:t.meta.menuId||t.name,name:t.name,title:t.meta.title,type:Object(n.c)(t.meta.iframeUrl)?"iframe":"module",iframeUrl:t.meta.iframeUrl||"",params:t.params,query:t.query},this.mainTabs=this.mainTabs.concat(e)}this.menuActiveName=e.menuId+"",this.mainTabsActiveName=e.name}}}},a={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("aside",{staticClass:"site-sidebar",class:"site-sidebar--"+t.sidebarLayoutSkin},[s("div",{staticClass:"site-sidebar__inner"},[s("el-menu",{staticClass:"site-sidebar__menu",attrs:{"default-active":t.menuActiveName||"home",collapse:t.sidebarFold,collapseTransition:!1}},[s("el-menu-item",{attrs:{index:"home"},on:{click:function(e){t.$router.push({name:"home"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"zonghe"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("设备管理")])],1),t._v(" "),s("el-submenu",{attrs:{index:"agreement"}},[s("template",{slot:"title"},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"config"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("协议类型")])],1),t._v(" "),s("el-menu-item",{attrs:{index:"Melsec"},on:{click:function(e){t.$router.push({name:"Melsec"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"bianji"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("三菱Mitsubishi")])],1),t._v(" "),s("el-menu-item",{attrs:{index:"Modbus"},on:{click:function(e){t.$router.push({name:"Modbus"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"bianji"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("MODBUS")])],1),t._v(" "),s("el-menu-item",{attrs:{index:"Omron"},on:{click:function(e){t.$router.push({name:"Omron"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"bianji"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("欧姆龙HostLink")])],1),t._v(" "),s("el-menu-item",{attrs:{index:"Siemens"},on:{click:function(e){t.$router.push({name:"Siemens"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"bianji"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("西门子S7")])],1)],2),t._v(" "),s("el-menu-item",{attrs:{index:"log"},on:{click:function(e){t.$router.push({name:"log"})}}},[s("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:"log"}}),t._v(" "),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("日志")])],1)],1)],1)])},staticRenderFns:[]},o=s("VU/8")(i,a,!1,null,null,null);e.default=o.exports}});
|
1
dist/20490957/static/js/29.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([29],{oZaA:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u={name:"sub-menu",props:{menu:{type:Object,required:!0},dynamicMenuRoutes:{type:Array,required:!0}},components:{SubMenu:a},computed:{sidebarLayoutSkin:{get:function(){return this.$store.state.common.sidebarLayoutSkin}}},methods:{gotoRouteHandle:function(e){var n=this.dynamicMenuRoutes.filter(function(n){return n.meta.menuId===e.menuId});n.length>=1&&this.$router.push({name:n[0].name})}}},s={render:function(){var e=this,n=e.$createElement,t=e._self._c||n;return e.menu.list&&e.menu.list.length>=1?t("el-submenu",{attrs:{index:e.menu.menuId+"","popper-class":"site-sidebar--"+e.sidebarLayoutSkin+"-popper"}},[t("template",{slot:"title"},[t("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:e.menu.icon||""}}),e._v(" "),t("span",[e._v(e._s(e.menu.name))])],1),e._v(" "),e._l(e.menu.list,function(n){return t("sub-menu",{key:n.menuId,attrs:{menu:n,dynamicMenuRoutes:e.dynamicMenuRoutes}})})],2):t("el-menu-item",{attrs:{index:e.menu.menuId+""},on:{click:function(n){e.gotoRouteHandle(e.menu)}}},[t("icon-svg",{staticClass:"site-sidebar__menu-icon",attrs:{name:e.menu.icon||""}}),e._v(" "),t("span",[e._v(e._s(e.menu.name))])],1)},staticRenderFns:[]},i=t("VU/8")(u,s,!1,null,null,null),a=n.default=i.exports}});
|
1
dist/20490957/static/js/3.js
vendored
Normal file
1
dist/20490957/static/js/30.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([30],{xzNW:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=n("E4LH"),i={inject:["refresh"],data:function(){return{}},computed:{documentClientHeight:{get:function(){return this.$store.state.common.documentClientHeight}},menuActiveName:{get:function(){return this.$store.state.common.menuActiveName},set:function(e){this.$store.commit("common/updateMenuActiveName",e)}},mainTabs:{get:function(){return console.log(this.$store.state.common.mainTabs),this.$store.state.common.mainTabs},set:function(e){this.$store.commit("common/updateMainTabs",e)}},mainTabsActiveName:{get:function(){return this.$store.state.common.mainTabsActiveName},set:function(e){this.$store.commit("common/updateMainTabsActiveName",e)}},siteContentViewHeight:function(){var e=this.documentClientHeight-50-30-2;return this.$route.meta.isTab?(e-=40,Object(a.c)(this.$route.meta.iframeUrl)?{height:e+"px"}:{minHeight:e+"px"}):{minHeight:e+"px"}}},methods:{selectedTabHandle:function(e){(e=this.mainTabs.filter(function(t){return t.name===e.name})).length>=1&&this.$router.push({name:e[0].name,query:e[0].query,params:e[0].params})},removeTabHandle:function(e){var t=this;if(this.mainTabs=this.mainTabs.filter(function(t){return t.name!==e}),this.mainTabs.length>=1){if(e===this.mainTabsActiveName){var n=this.mainTabs[this.mainTabs.length-1];this.$router.push({name:n.name,query:n.query,params:n.params},function(){t.mainTabsActiveName=t.$route.name})}}else this.menuActiveName="",this.$router.push({name:"home"})},tabsCloseCurrentHandle:function(){this.removeTabHandle(this.mainTabsActiveName)},tabsCloseOtherHandle:function(){var e=this;this.mainTabs=this.mainTabs.filter(function(t){return t.name===e.mainTabsActiveName})},tabsCloseAllHandle:function(){this.mainTabs=[],this.menuActiveName="",this.$router.push({name:"home"})},tabsRefreshCurrentHandle:function(){var e=this,t=this.$route;this.removeTabHandle(t.name),this.$nextTick(function(){e.$router.push({name:t.name,query:t.query,params:t.params})})}}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("main",{staticClass:"site-content",class:{"site-content--tabs":e.$route.meta.isTab}},[e.$route.meta.isTab?n("el-tabs",{attrs:{closable:!0},on:{"tab-click":e.selectedTabHandle,"tab-remove":e.removeTabHandle},model:{value:e.mainTabsActiveName,callback:function(t){e.mainTabsActiveName=t},expression:"mainTabsActiveName"}},[n("el-dropdown",{staticClass:"site-tabs__tools",attrs:{"show-timeout":0}},[n("i",{staticClass:"el-icon-arrow-down el-icon--right"}),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{nativeOn:{click:function(t){return e.tabsCloseCurrentHandle(t)}}},[e._v("关闭当前标签页")]),e._v(" "),n("el-dropdown-item",{nativeOn:{click:function(t){return e.tabsCloseOtherHandle(t)}}},[e._v("关闭其它标签页")]),e._v(" "),n("el-dropdown-item",{nativeOn:{click:function(t){return e.tabsCloseAllHandle(t)}}},[e._v("关闭全部标签页")]),e._v(" "),n("el-dropdown-item",{nativeOn:{click:function(t){e.refresh()}}},[e._v("刷新当前标签页")])],1)],1),e._v(" "),e._l(e.mainTabs,function(t){return n("el-tab-pane",{key:t.name,attrs:{label:t.title,name:t.name}},[n("el-card",{staticStyle:{background:"transparent",border:"0","box-shadow":"0 0 0 0 rgba(0, 0, 0, 0)"},attrs:{"body-style":e.siteContentViewHeight}},["iframe"===t.type?n("iframe",{attrs:{src:t.iframeUrl,width:"100%",height:"100%",frameborder:"0",scrolling:"yes"}}):n("keep-alive",[t.name===e.mainTabsActiveName?n("router-view"):e._e()],1)],1)],1)})],2):n("el-card",{staticStyle:{background:"transparent",border:"0","box-shadow":"0 0 0 0 rgba(0, 0, 0, 0)"},attrs:{"body-style":e.siteContentViewHeight}},[n("keep-alive",[n("router-view")],1)],1)],1)},staticRenderFns:[]},r=n("VU/8")(i,s,!1,null,null,null);t.default=r.exports}});
|
1
dist/20490957/static/js/31.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([31],{"6i8u":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-form",[a("h2",[e._v("布局设置")]),e._v(" "),a("el-form-item",{attrs:{label:"导航条类型"}},[a("el-radio-group",{model:{value:e.navbarLayoutType,callback:function(t){e.navbarLayoutType=t},expression:"navbarLayoutType"}},[a("el-radio",{attrs:{label:"default",border:""}},[e._v("default")]),e._v(" "),a("el-radio",{attrs:{label:"inverse",border:""}},[e._v("inverse")])],1)],1),e._v(" "),a("el-form-item",{attrs:{label:"侧边栏皮肤"}},[a("el-radio-group",{model:{value:e.sidebarLayoutSkin,callback:function(t){e.sidebarLayoutSkin=t},expression:"sidebarLayoutSkin"}},[a("el-radio",{attrs:{label:"light",border:""}},[e._v("light")]),e._v(" "),a("el-radio",{attrs:{label:"dark",border:""}},[e._v("dark")])],1)],1)],1)},staticRenderFns:[]},o=a("VU/8")({computed:{navbarLayoutType:{get:function(){return this.$store.state.common.navbarLayoutType},set:function(e){this.$store.commit("common/updateNavbarLayoutType",e)}},sidebarLayoutSkin:{get:function(){return this.$store.state.common.sidebarLayoutSkin},set:function(e){this.$store.commit("common/updateSidebarLayoutSkin",e)}}}},r,!1,null,null,null);t.default=o.exports}});
|
1
dist/20490957/static/js/32.js
vendored
Normal file
1
dist/20490957/static/js/33.js
vendored
Normal file
1
dist/20490957/static/js/34.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([34],{Yzs3:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{title:"更新MQ配置","close-on-click-modal":!1,visible:t.visible},on:{"update:visible":function(e){t.visible=e}}},[a("el-form",{ref:"dataForm",attrs:{model:t.dataForm,rules:t.dataRule,"label-width":"80px"},nativeOn:{keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"enter",13,e.key,"Enter"))return null;t.dataFormSubmit()}}},[a("el-form-item",{attrs:{label:"username",prop:"username"}},[a("el-input",{attrs:{placeholder:"username",clearable:""},model:{value:t.dataForm.username,callback:function(e){t.$set(t.dataForm,"username",e)},expression:"dataForm.username"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"port",prop:"port"}},[a("el-input",{attrs:{placeholder:"port",clearable:""},model:{value:t.dataForm.port,callback:function(e){t.$set(t.dataForm,"port",e)},expression:"dataForm.port"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"host",prop:"host"}},[a("el-input",{attrs:{placeholder:"host",clearable:""},model:{value:t.dataForm.host,callback:function(e){t.$set(t.dataForm,"host",e)},expression:"dataForm.host"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"isstart",prop:"isstart"}},[a("el-switch",{model:{value:t.dataForm.isstart,callback:function(e){t.$set(t.dataForm,"isstart",e)},expression:"dataForm.isstart"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"passport",prop:"passport"}},[a("el-input",{attrs:{placeholder:"passport",clearable:""},model:{value:t.dataForm.passport,callback:function(e){t.$set(t.dataForm,"passport",e)},expression:"dataForm.passport"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"virtualhost",prop:"virtualhost"}},[a("el-input",{attrs:{placeholder:"",clearable:""},model:{value:t.dataForm.virtualhost,callback:function(e){t.$set(t.dataForm,"virtualhost",e)},expression:"dataForm.virtualhost"}})],1)],1),t._v(" "),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(e){t.visible=!1}}},[t._v("取消")]),t._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dataFormSubmit()}}},[t._v("确定")])],1)],1)},staticRenderFns:[]},s=a("VU/8")({data:function(){return{visible:!1,dataForm:{id:"",username:"",port:"",host:"",passport:"",isstart:"",virtualhost:""},dataRule:{username:[{required:!0,message:"名称不能为空",trigger:"blur"}],port:[{required:!0,message:"端口不能为空",trigger:"blur"}],host:[{required:!0,message:"IP不能为空",trigger:"blur"}],passport:[{required:!0,message:"passport不能为空",trigger:"blur"}],isstart:[{required:!0,message:"isstart不能为空",trigger:"blur"}],virtualhost:[{required:!0,message:"isstart不能为空",trigger:"blur"}]}}},methods:{init:function(){var t=this;this.visible=!0,this.$nextTick(function(){t.$refs.dataForm.resetFields(),t.$http({url:t.$http.adornUrl("api/server/main-config/getMqConfig"),method:"post"}).then(function(e){var a=e.data;a&&0===a.code&&(t.dataForm=a.data)})})},dataFormSubmit:function(){var t=this;this.$refs.dataForm.validate(function(e){e&&t.$http({url:t.$http.adornUrl("api/server/main-config/updateMqConfig"),method:"post",data:t.$http.adornData(t.dataForm)}).then(function(e){var a=e.data;a&&0===a.code?t.$message({message:"操作成功",type:"success",duration:1500,onClose:function(){t.visible=!1,t.$emit("refreshDataList")}}):t.$message.error(a.msg)})})}}},r,!1,null,null,null);e.default=s.exports}});
|
1
dist/20490957/static/js/4.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([4],{FUCY:function(n,t,e){n.exports=e.p+"static/img/12.07c5158.png"},KEXa:function(n,t,e){var a=e("jJrr");"string"==typeof a&&(a=[[n.i,a,""]]),a.locals&&(n.exports=a.locals);e("rjj0")("7354be3a",a,!0)},jJrr:function(n,t,e){(n.exports=e("FZ+f")(!1)).push([n.i,'\n.site-wrapper.site-page--login {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(38, 50, 56, 0.1);\n overflow: hidden;\n}\n.site-wrapper.site-page--login:before {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n content: "";\n background-image: url('+e("FUCY")+");\n background-size: cover;\n}\n.site-wrapper.site-page--login .site-content__wrapper {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 0;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n background-color: transparent;\n}\n.site-wrapper.site-page--login .site-content {\n min-height: 100%;\n padding: 30px 500px 30px 30px;\n}\n.site-wrapper.site-page--login .brand-info {\n margin: 220px 100px 0 90px;\n color: #fff;\n}\n.site-wrapper.site-page--login .brand-info__text {\n margin: 0 0 22px 0;\n font-size: 48px;\n font-weight: 400;\n text-transform: uppercase;\n}\n.site-wrapper.site-page--login .brand-info__intro {\n margin: 10px 0;\n font-size: 16px;\n line-height: 1.58;\n opacity: 0.6;\n}\n.site-wrapper.site-page--login .login-main {\n position: absolute;\n top: 0;\n right: 0;\n padding: 150px 60px 180px;\n width: 470px;\n min-height: 100%;\n background-color: #fff;\n}\n.site-wrapper.site-page--login .login-title {\n font-size: 16px;\n}\n.site-wrapper.site-page--login .login-captcha {\n overflow: hidden;\n}\n.site-wrapper.site-page--login .login-captcha > img {\n width: 100%;\n cursor: pointer;\n}\n.site-wrapper.site-page--login .login-btn-submit {\n width: 100%;\n margin-top: 38px;\n}\n",""])},wQTO:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a={render:function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{staticClass:"site-wrapper site-page--login"},[e("div",{staticClass:"site-content__wrapper"},[e("div",{staticClass:"site-content"},[n._m(0),n._v(" "),e("div",{staticClass:"login-main"},[e("h3",{staticClass:"login-title"},[n._v("管理员登录")]),n._v(" "),e("el-form",{ref:"dataForm",attrs:{model:n.dataForm,rules:n.dataRule,"status-icon":""},nativeOn:{keyup:function(t){if(!("button"in t)&&n._k(t.keyCode,"enter",13,t.key,"Enter"))return null;n.dataFormSubmit()}}},[e("el-form-item",{attrs:{prop:"username"}},[e("el-input",{attrs:{placeholder:"帐号"},model:{value:n.dataForm.username,callback:function(t){n.$set(n.dataForm,"username",t)},expression:"dataForm.username"}})],1),n._v(" "),e("el-form-item",{attrs:{prop:"password"}},[e("el-input",{attrs:{type:"password",placeholder:"密码"},model:{value:n.dataForm.password,callback:function(t){n.$set(n.dataForm,"password",t)},expression:"dataForm.password"}})],1),n._v(" "),e("el-form-item",[e("el-button",{staticClass:"login-btn-submit",attrs:{type:"primary"},on:{click:function(t){n.dataFormSubmit()}}},[n._v("登录")])],1)],1)],1)])])])},staticRenderFns:[function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"brand-info"},[t("h2",{staticClass:"brand-info__text"},[this._v("MT-IG-B-1.5 "),t("br"),this._v("智能网关")])])}]};var r=e("VU/8")({data:function(){return{dataForm:{username:"admin",password:"admin"},dataRule:{username:[{required:!0,message:"帐号不能为空",trigger:"blur"}],password:[{required:!0,message:"密码不能为空",trigger:"blur"}]}}},created:function(){},methods:{dataFormSubmit:function(){var n=this;this.$refs.dataForm.validate(function(t){if(t){var e={password:n.dataForm.password,userName:n.dataForm.username};n.$http({url:n.$http.adornUrl("api/server/user/login"),method:"post",data:e}).then(function(t){var e=t.data;e&&0===e.code?(n.$cookie.set("token",e.token),n.$router.replace({name:"home"})):n.$message.error(e.msg)})}})}}},a,!1,function(n){e("KEXa")},null,null);t.default=r.exports}});
|
1
dist/20490957/static/js/5.js
vendored
Normal file
1
dist/20490957/static/js/6.js
vendored
Normal file
1
dist/20490957/static/js/7.js
vendored
Normal file
1
dist/20490957/static/js/8.js
vendored
Normal file
1
dist/20490957/static/js/9.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
webpackJsonp([9],{"2WB4":function(t,e,i){(t.exports=i("FZ+f")(!1)).push([t.i,"\n.mod-demo-ueditor {\n position: relative;\n z-index: 510;\n}\n.mod-demo-ueditor > .el-alert {\n margin-bottom: 10px;\n}\n",""])},feox:function(t,e,i){var o=i("2WB4");"string"==typeof o&&(o=[[t.i,o,""]]),o.locals&&(t.exports=o.locals);i("rjj0")("1efd2d6a",o,!0)},t1fE:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=i("fZIC"),n=i.n(o),l={data:function(){return{ue:null,ueId:"J_ueditorBox_"+(new Date).getTime(),ueContent:"",dialogVisible:!1}},mounted:function(){this.ue=n.a.getEditor(this.ueId,{zIndex:3e3})},methods:{getContent:function(){var t=this;this.dialogVisible=!0,this.ue.ready(function(){t.ueContent=t.ue.getContent()})}}},s={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"mod-demo-ueditor"},[i("el-alert",{attrs:{title:"提示:",type:"warning",closable:!1},scopedSlots:t._u([{key:"default",fn:function(e){return i("div",{},[i("p",{staticClass:"el-alert__description"},[t._v("1. 此Demo只提供UEditor官方使用文档,入门部署和体验功能。具体使用请参考:http://fex.baidu.com/ueditor/")]),t._v(" "),i("p",{staticClass:"el-alert__description"},[t._v("2. 浏览器控制台报错“请求后台配置项http错误,上传功能将不能正常使用!”,此错需要后台提供上传接口方法(赋值给serverUrl属性)")])])}}])}),t._v(" "),i("script",{staticClass:"ueditor-box",staticStyle:{width:"100%",height:"260px"},attrs:{id:t.ueId,type:"text/plain"}},[t._v("hello world!")]),t._v(" "),i("p",[i("el-button",{on:{click:function(e){t.getContent()}}},[t._v("获得内容")])],1),t._v(" "),i("el-dialog",{attrs:{title:"内容",visible:t.dialogVisible,"append-to-body":!0},on:{"update:visible":function(e){t.dialogVisible=e}}},[t._v("\n "+t._s(t.ueContent)+"\n "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:function(e){t.dialogVisible=!1}}},[t._v("确 定")])],1)])],1)},staticRenderFns:[]};var a=i("VU/8")(l,s,!1,function(t){i("feox")},null,null);e.default=a.exports}});
|
1
dist/20490957/static/js/app.js
vendored
Normal file
1
dist/20490957/static/js/manifest.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,i){for(var u,a,f,s=0,l=[];s<r.length;s++)a=r[s],t[a]&&l.push(t[a][0]),t[a]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(n&&n(r,c,i);l.length;)l.shift()();if(i)for(s=0;s<i.length;s++)f=o(o.s=i[s]);return f};var r={},t={37:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],i=document.createElement("script");i.type="text/javascript",i.charset="utf-8",i.async=!0,i.timeout=12e4,o.nc&&i.setAttribute("nonce",o.nc),i.src=o.p+"static/js/"+e+".js";var u=setTimeout(a,12e4);function a(){i.onerror=i.onload=null,clearTimeout(u);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return i.onerror=i.onload=a,c.appendChild(i),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p=window.SITE_CONFIG.cdnUrl + "/",o.oe=function(e){throw console.error(e),e}}([]);
|
1
dist/20490957/static/js/vendor.js
vendored
Normal file
10
dist/20490957/static/plugins/mock-1.0.0-beta3/mock-min.js
vendored
Normal file
40
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/anchor/anchor.html
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title></title>
|
||||
<style type="text/css">
|
||||
*{color: #838383;margin: 0;padding: 0}
|
||||
html,body {font-size: 12px;overflow: hidden; }
|
||||
.content{padding:5px 0 0 15px;}
|
||||
input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="content">
|
||||
<span><var id="lang_input_anchorName"></var></span><input id="anchorName" value="" />
|
||||
</div>
|
||||
<script type="text/javascript" src="../internal.js"></script>
|
||||
<script type="text/javascript">
|
||||
var anchorInput = $G('anchorName'),
|
||||
node = editor.selection.getRange().getClosedNode();
|
||||
if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
|
||||
anchorInput.value = node;
|
||||
}
|
||||
anchorInput.onkeydown = function(evt){
|
||||
evt = evt || window.event;
|
||||
if(evt.keyCode == 13){
|
||||
editor.execCommand('anchor', anchorInput.value);
|
||||
dialog.close();
|
||||
domUtils.preventDefault(evt)
|
||||
}
|
||||
};
|
||||
dialog.onok = function (){
|
||||
editor.execCommand('anchor', anchorInput.value);
|
||||
dialog.close();
|
||||
};
|
||||
$focus(anchorInput);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
681
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/attachment.css
vendored
Normal file
@ -0,0 +1,681 @@
|
||||
@charset "utf-8";
|
||||
/* dialog样式 */
|
||||
.wrapper {
|
||||
zoom: 1;
|
||||
width: 630px;
|
||||
*width: 626px;
|
||||
height: 380px;
|
||||
margin: 0 auto;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/*tab样式框大小*/
|
||||
.tabhead {
|
||||
float:left;
|
||||
}
|
||||
.tabbody {
|
||||
width: 100%;
|
||||
height: 346px;
|
||||
position: relative;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.tabbody .panel {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
background: #fff;
|
||||
overflow: hidden;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabbody .panel.focus {
|
||||
width: 100%;
|
||||
height: 346px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* 上传附件 */
|
||||
.tabbody #upload.panel {
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
position: absolute !important;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
background: #fff;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tabbody #upload.panel.focus {
|
||||
width: 100%;
|
||||
height: 346px;
|
||||
display: block;
|
||||
clip: auto;
|
||||
}
|
||||
|
||||
#upload .queueList {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#upload p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.element-invisible {
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
position: absolute !important;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
}
|
||||
|
||||
#upload .placeholder {
|
||||
margin: 10px;
|
||||
border: 2px dashed #e6e6e6;
|
||||
*border: 0px dashed #e6e6e6;
|
||||
height: 172px;
|
||||
padding-top: 150px;
|
||||
text-align: center;
|
||||
background: url(./images/image.png) center 70px no-repeat;
|
||||
color: #cccccc;
|
||||
font-size: 18px;
|
||||
position: relative;
|
||||
top:0;
|
||||
*top: 10px;
|
||||
}
|
||||
|
||||
#upload .placeholder .webuploader-pick {
|
||||
font-size: 18px;
|
||||
background: #00b7ee;
|
||||
border-radius: 3px;
|
||||
line-height: 44px;
|
||||
padding: 0 30px;
|
||||
*width: 120px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
margin: 0 auto 20px auto;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
#upload .placeholder .webuploader-pick-hover {
|
||||
background: #00a2d4;
|
||||
}
|
||||
|
||||
|
||||
#filePickerContainer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#upload .placeholder .flashTip {
|
||||
color: #666666;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
bottom: 20px;
|
||||
}
|
||||
|
||||
#upload .placeholder .flashTip a {
|
||||
color: #0785d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#upload .placeholder .flashTip a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#upload .placeholder.webuploader-dnd-over {
|
||||
border-color: #999999;
|
||||
}
|
||||
|
||||
#upload .filelist {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
#upload .filelist:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#upload .filelist li {
|
||||
width: 113px;
|
||||
height: 113px;
|
||||
background: url(./images/bg.png);
|
||||
text-align: center;
|
||||
margin: 9px 0 0 9px;
|
||||
*margin: 6px 0 0 6px;
|
||||
position: relative;
|
||||
display: block;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#upload .filelist li p.log {
|
||||
position: relative;
|
||||
top: -45px;
|
||||
}
|
||||
|
||||
#upload .filelist li p.title {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
top: 5px;
|
||||
text-indent: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#upload .filelist li p.progress {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 8px;
|
||||
overflow: hidden;
|
||||
z-index: 50;
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
background: none;
|
||||
-webkit-box-shadow: 0 0 0;
|
||||
}
|
||||
|
||||
#upload .filelist li p.progress span {
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
background: #1483d8 url(./images/progress.png) repeat-x;
|
||||
|
||||
-webit-transition: width 200ms linear;
|
||||
-moz-transition: width 200ms linear;
|
||||
-o-transition: width 200ms linear;
|
||||
-ms-transition: width 200ms linear;
|
||||
transition: width 200ms linear;
|
||||
|
||||
-webkit-animation: progressmove 2s linear infinite;
|
||||
-moz-animation: progressmove 2s linear infinite;
|
||||
-o-animation: progressmove 2s linear infinite;
|
||||
-ms-animation: progressmove 2s linear infinite;
|
||||
animation: progressmove 2s linear infinite;
|
||||
|
||||
-webkit-transform: translateZ(0);
|
||||
}
|
||||
|
||||
@-webkit-keyframes progressmove {
|
||||
0% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
100% {
|
||||
background-position: 17px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes progressmove {
|
||||
0% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
100% {
|
||||
background-position: 17px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes progressmove {
|
||||
0% {
|
||||
background-position: 0 0;
|
||||
}
|
||||
100% {
|
||||
background-position: 17px 0;
|
||||
}
|
||||
}
|
||||
|
||||
#upload .filelist li p.imgWrap {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
line-height: 113px;
|
||||
vertical-align: middle;
|
||||
overflow: hidden;
|
||||
width: 113px;
|
||||
height: 113px;
|
||||
|
||||
-webkit-transform-origin: 50% 50%;
|
||||
-moz-transform-origin: 50% 50%;
|
||||
-o-transform-origin: 50% 50%;
|
||||
-ms-transform-origin: 50% 50%;
|
||||
transform-origin: 50% 50%;
|
||||
|
||||
-webit-transition: 200ms ease-out;
|
||||
-moz-transition: 200ms ease-out;
|
||||
-o-transition: 200ms ease-out;
|
||||
-ms-transition: 200ms ease-out;
|
||||
transition: 200ms ease-out;
|
||||
}
|
||||
#upload .filelist li p.imgWrap.notimage {
|
||||
margin-top: 0;
|
||||
width: 111px;
|
||||
height: 111px;
|
||||
border: 1px #eeeeee solid;
|
||||
}
|
||||
#upload .filelist li p.imgWrap.notimage i.file-preview {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
#upload .filelist li img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#upload .filelist li p.error {
|
||||
background: #f43838;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#upload .filelist li .success {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
height: 40px;
|
||||
width: 100%;
|
||||
z-index: 200;
|
||||
background: url(./images/success.png) no-repeat right bottom;
|
||||
background-image: url(./images/success.gif) \9;
|
||||
}
|
||||
|
||||
#upload .filelist li.filePickerBlock {
|
||||
width: 113px;
|
||||
height: 113px;
|
||||
background: url(./images/image.png) no-repeat center 12px;
|
||||
border: 1px solid #eeeeee;
|
||||
border-radius: 0;
|
||||
}
|
||||
#upload .filelist li.filePickerBlock div.webuploader-pick {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0;
|
||||
background: none;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel {
|
||||
position: absolute;
|
||||
height: 0;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
width: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
z-index: 300;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: inline;
|
||||
float: right;
|
||||
text-indent: -9999px;
|
||||
overflow: hidden;
|
||||
background: url(./images/icons.png) no-repeat;
|
||||
background: url(./images/icons.gif) no-repeat \9;
|
||||
margin: 5px 1px 1px;
|
||||
cursor: pointer;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.rotateLeft {
|
||||
display:none;
|
||||
background-position: 0 -24px;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.rotateLeft:hover {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.rotateRight {
|
||||
display:none;
|
||||
background-position: -24px -24px;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.rotateRight:hover {
|
||||
background-position: -24px 0;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.cancel {
|
||||
background-position: -48px -24px;
|
||||
}
|
||||
|
||||
#upload .filelist div.file-panel span.cancel:hover {
|
||||
background-position: -48px 0;
|
||||
}
|
||||
|
||||
#upload .statusBar {
|
||||
height: 45px;
|
||||
border-bottom: 1px solid #dadada;
|
||||
margin: 0 10px;
|
||||
padding: 0;
|
||||
line-height: 45px;
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#upload .statusBar .progress {
|
||||
border: 1px solid #1483d8;
|
||||
width: 198px;
|
||||
background: #fff;
|
||||
height: 18px;
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
display: none;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
color: #6dbfff;
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
#upload .statusBar .progress span.percentage {
|
||||
width: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background: #1483d8;
|
||||
position: absolute;
|
||||
}
|
||||
#upload .statusBar .progress span.text {
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#upload .statusBar .info {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
#upload .statusBar .btns {
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
right: 0;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
#filePickerBtn {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
}
|
||||
#upload .statusBar .btns .webuploader-pick,
|
||||
#upload .statusBar .btns .uploadBtn,
|
||||
#upload .statusBar .btns .uploadBtn.state-uploading,
|
||||
#upload .statusBar .btns .uploadBtn.state-paused {
|
||||
background: #ffffff;
|
||||
border: 1px solid #cfcfcf;
|
||||
color: #565656;
|
||||
padding: 0 18px;
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
float: left;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
#upload .statusBar .btns .webuploader-pick-hover,
|
||||
#upload .statusBar .btns .uploadBtn:hover,
|
||||
#upload .statusBar .btns .uploadBtn.state-uploading:hover,
|
||||
#upload .statusBar .btns .uploadBtn.state-paused:hover {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
|
||||
#upload .statusBar .btns .uploadBtn,
|
||||
#upload .statusBar .btns .uploadBtn.state-paused{
|
||||
background: #00b7ee;
|
||||
color: #fff;
|
||||
border-color: transparent;
|
||||
}
|
||||
#upload .statusBar .btns .uploadBtn:hover,
|
||||
#upload .statusBar .btns .uploadBtn.state-paused:hover{
|
||||
background: #00a2d4;
|
||||
}
|
||||
|
||||
#upload .statusBar .btns .uploadBtn.disabled {
|
||||
pointer-events: none;
|
||||
filter:alpha(opacity=60);
|
||||
-moz-opacity:0.6;
|
||||
-khtml-opacity: 0.6;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 图片管理样式 */
|
||||
#online {
|
||||
width: 100%;
|
||||
height: 336px;
|
||||
padding: 10px 0 0 0;
|
||||
}
|
||||
#online #fileList{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
}
|
||||
#online ul {
|
||||
display: block;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#online li {
|
||||
float: left;
|
||||
display: block;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
width: 113px;
|
||||
height: 113px;
|
||||
margin: 0 0 9px 9px;
|
||||
*margin: 0 0 6px 6px;
|
||||
background-color: #eee;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
#online li.clearFloat {
|
||||
float: none;
|
||||
clear: both;
|
||||
display: block;
|
||||
width:0;
|
||||
height:0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#online li img {
|
||||
cursor: pointer;
|
||||
}
|
||||
#online li div.file-wrapper {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 111px;
|
||||
height: 111px;
|
||||
border: 1px solid #eee;
|
||||
background: url("./images/bg.png") repeat;
|
||||
}
|
||||
#online li div span.file-title{
|
||||
display: block;
|
||||
padding: 0 3px;
|
||||
margin: 3px 0 0 0;
|
||||
font-size: 12px;
|
||||
height: 13px;
|
||||
color: #555555;
|
||||
text-align: center;
|
||||
width: 107px;
|
||||
white-space: nowrap;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
#online li .icon {
|
||||
cursor: pointer;
|
||||
width: 113px;
|
||||
height: 113px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
border: 0;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
#online li .icon:hover {
|
||||
width: 107px;
|
||||
height: 107px;
|
||||
border: 3px solid #1094fa;
|
||||
}
|
||||
#online li.selected .icon {
|
||||
background-image: url(images/success.png);
|
||||
background-image: url(images/success.gif) \9;
|
||||
background-position: 75px 75px;
|
||||
}
|
||||
#online li.selected .icon:hover {
|
||||
width: 107px;
|
||||
height: 107px;
|
||||
border: 3px solid #1094fa;
|
||||
background-position: 72px 72px;
|
||||
}
|
||||
|
||||
|
||||
/* 在线文件的文件预览图标 */
|
||||
i.file-preview {
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
background-image: url("./images/file-icons.png");
|
||||
background-image: url("./images/file-icons.gif") \9;
|
||||
background-position: -140px center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
i.file-preview.file-type-dir{
|
||||
background-position: 0 center;
|
||||
}
|
||||
i.file-preview.file-type-file{
|
||||
background-position: -140px center;
|
||||
}
|
||||
i.file-preview.file-type-filelist{
|
||||
background-position: -210px center;
|
||||
}
|
||||
i.file-preview.file-type-zip,
|
||||
i.file-preview.file-type-rar,
|
||||
i.file-preview.file-type-7z,
|
||||
i.file-preview.file-type-tar,
|
||||
i.file-preview.file-type-gz,
|
||||
i.file-preview.file-type-bz2{
|
||||
background-position: -280px center;
|
||||
}
|
||||
i.file-preview.file-type-xls,
|
||||
i.file-preview.file-type-xlsx{
|
||||
background-position: -350px center;
|
||||
}
|
||||
i.file-preview.file-type-doc,
|
||||
i.file-preview.file-type-docx{
|
||||
background-position: -420px center;
|
||||
}
|
||||
i.file-preview.file-type-ppt,
|
||||
i.file-preview.file-type-pptx{
|
||||
background-position: -490px center;
|
||||
}
|
||||
i.file-preview.file-type-vsd{
|
||||
background-position: -560px center;
|
||||
}
|
||||
i.file-preview.file-type-pdf{
|
||||
background-position: -630px center;
|
||||
}
|
||||
i.file-preview.file-type-txt,
|
||||
i.file-preview.file-type-md,
|
||||
i.file-preview.file-type-json,
|
||||
i.file-preview.file-type-htm,
|
||||
i.file-preview.file-type-xml,
|
||||
i.file-preview.file-type-html,
|
||||
i.file-preview.file-type-js,
|
||||
i.file-preview.file-type-css,
|
||||
i.file-preview.file-type-php,
|
||||
i.file-preview.file-type-jsp,
|
||||
i.file-preview.file-type-asp{
|
||||
background-position: -700px center;
|
||||
}
|
||||
i.file-preview.file-type-apk{
|
||||
background-position: -770px center;
|
||||
}
|
||||
i.file-preview.file-type-exe{
|
||||
background-position: -840px center;
|
||||
}
|
||||
i.file-preview.file-type-ipa{
|
||||
background-position: -910px center;
|
||||
}
|
||||
i.file-preview.file-type-mp4,
|
||||
i.file-preview.file-type-swf,
|
||||
i.file-preview.file-type-mkv,
|
||||
i.file-preview.file-type-avi,
|
||||
i.file-preview.file-type-flv,
|
||||
i.file-preview.file-type-mov,
|
||||
i.file-preview.file-type-mpg,
|
||||
i.file-preview.file-type-mpeg,
|
||||
i.file-preview.file-type-ogv,
|
||||
i.file-preview.file-type-webm,
|
||||
i.file-preview.file-type-rm,
|
||||
i.file-preview.file-type-rmvb{
|
||||
background-position: -980px center;
|
||||
}
|
||||
i.file-preview.file-type-ogg,
|
||||
i.file-preview.file-type-wav,
|
||||
i.file-preview.file-type-wmv,
|
||||
i.file-preview.file-type-mid,
|
||||
i.file-preview.file-type-mp3{
|
||||
background-position: -1050px center;
|
||||
}
|
||||
i.file-preview.file-type-jpg,
|
||||
i.file-preview.file-type-jpeg,
|
||||
i.file-preview.file-type-gif,
|
||||
i.file-preview.file-type-bmp,
|
||||
i.file-preview.file-type-png,
|
||||
i.file-preview.file-type-psd{
|
||||
background-position: -140px center;
|
||||
}
|
60
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/attachment.html
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>ueditor图片对话框</title>
|
||||
<script type="text/javascript" src="../internal.js"></script>
|
||||
|
||||
<!-- jquery -->
|
||||
<script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
|
||||
|
||||
<!-- webuploader -->
|
||||
<script src="../../third-party/webuploader/webuploader.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
|
||||
|
||||
<!-- attachment dialog -->
|
||||
<link rel="stylesheet" href="attachment.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="wrapper">
|
||||
<div id="tabhead" class="tabhead">
|
||||
<span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
|
||||
<span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
|
||||
</div>
|
||||
<div id="tabbody" class="tabbody">
|
||||
<!-- 上传图片 -->
|
||||
<div id="upload" class="panel focus">
|
||||
<div id="queueList" class="queueList">
|
||||
<div class="statusBar element-invisible">
|
||||
<div class="progress">
|
||||
<span class="text">0%</span>
|
||||
<span class="percentage"></span>
|
||||
</div><div class="info"></div>
|
||||
<div class="btns">
|
||||
<div id="filePickerBtn"></div>
|
||||
<div class="uploadBtn"><var id="lang_start_upload"></var></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="dndArea" class="placeholder">
|
||||
<div class="filePickerContainer">
|
||||
<div id="filePickerReady"></div>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="filelist element-invisible">
|
||||
<li id="filePickerBlock" class="filePickerBlock"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 在线图片 -->
|
||||
<div id="online" class="panel">
|
||||
<div id="fileList"><var id="lang_imgLoading"></var></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="attachment.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
754
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/attachment.js
vendored
Normal file
@ -0,0 +1,754 @@
|
||||
/**
|
||||
* User: Jinqn
|
||||
* Date: 14-04-08
|
||||
* Time: 下午16:34
|
||||
* 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var uploadFile,
|
||||
onlineFile;
|
||||
|
||||
window.onload = function () {
|
||||
initTabs();
|
||||
initButtons();
|
||||
};
|
||||
|
||||
/* 初始化tab标签 */
|
||||
function initTabs() {
|
||||
var tabs = $G('tabhead').children;
|
||||
for (var i = 0; i < tabs.length; i++) {
|
||||
domUtils.on(tabs[i], "click", function (e) {
|
||||
var target = e.target || e.srcElement;
|
||||
setTabFocus(target.getAttribute('data-content-id'));
|
||||
});
|
||||
}
|
||||
|
||||
setTabFocus('upload');
|
||||
}
|
||||
|
||||
/* 初始化tabbody */
|
||||
function setTabFocus(id) {
|
||||
if(!id) return;
|
||||
var i, bodyId, tabs = $G('tabhead').children;
|
||||
for (i = 0; i < tabs.length; i++) {
|
||||
bodyId = tabs[i].getAttribute('data-content-id')
|
||||
if (bodyId == id) {
|
||||
domUtils.addClass(tabs[i], 'focus');
|
||||
domUtils.addClass($G(bodyId), 'focus');
|
||||
} else {
|
||||
domUtils.removeClasses(tabs[i], 'focus');
|
||||
domUtils.removeClasses($G(bodyId), 'focus');
|
||||
}
|
||||
}
|
||||
switch (id) {
|
||||
case 'upload':
|
||||
uploadFile = uploadFile || new UploadFile('queueList');
|
||||
break;
|
||||
case 'online':
|
||||
onlineFile = onlineFile || new OnlineFile('fileList');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 初始化onok事件 */
|
||||
function initButtons() {
|
||||
|
||||
dialog.onok = function () {
|
||||
var list = [], id, tabs = $G('tabhead').children;
|
||||
for (var i = 0; i < tabs.length; i++) {
|
||||
if (domUtils.hasClass(tabs[i], 'focus')) {
|
||||
id = tabs[i].getAttribute('data-content-id');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (id) {
|
||||
case 'upload':
|
||||
list = uploadFile.getInsertList();
|
||||
var count = uploadFile.getQueueCount();
|
||||
if (count) {
|
||||
$('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'online':
|
||||
list = onlineFile.getInsertList();
|
||||
break;
|
||||
}
|
||||
|
||||
editor.execCommand('insertfile', list);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/* 上传附件 */
|
||||
function UploadFile(target) {
|
||||
this.$wrap = target.constructor == String ? $('#' + target) : $(target);
|
||||
this.init();
|
||||
}
|
||||
UploadFile.prototype = {
|
||||
init: function () {
|
||||
this.fileList = [];
|
||||
this.initContainer();
|
||||
this.initUploader();
|
||||
},
|
||||
initContainer: function () {
|
||||
this.$queue = this.$wrap.find('.filelist');
|
||||
},
|
||||
/* 初始化容器 */
|
||||
initUploader: function () {
|
||||
var _this = this,
|
||||
$ = jQuery, // just in case. Make sure it's not an other libaray.
|
||||
$wrap = _this.$wrap,
|
||||
// 图片容器
|
||||
$queue = $wrap.find('.filelist'),
|
||||
// 状态栏,包括进度和控制按钮
|
||||
$statusBar = $wrap.find('.statusBar'),
|
||||
// 文件总体选择信息。
|
||||
$info = $statusBar.find('.info'),
|
||||
// 上传按钮
|
||||
$upload = $wrap.find('.uploadBtn'),
|
||||
// 上传按钮
|
||||
$filePickerBtn = $wrap.find('.filePickerBtn'),
|
||||
// 上传按钮
|
||||
$filePickerBlock = $wrap.find('.filePickerBlock'),
|
||||
// 没选择文件之前的内容。
|
||||
$placeHolder = $wrap.find('.placeholder'),
|
||||
// 总体进度条
|
||||
$progress = $statusBar.find('.progress').hide(),
|
||||
// 添加的文件数量
|
||||
fileCount = 0,
|
||||
// 添加的文件总大小
|
||||
fileSize = 0,
|
||||
// 优化retina, 在retina下这个值是2
|
||||
ratio = window.devicePixelRatio || 1,
|
||||
// 缩略图大小
|
||||
thumbnailWidth = 113 * ratio,
|
||||
thumbnailHeight = 113 * ratio,
|
||||
// 可能有pedding, ready, uploading, confirm, done.
|
||||
state = '',
|
||||
// 所有文件的进度信息,key为file id
|
||||
percentages = {},
|
||||
supportTransition = (function () {
|
||||
var s = document.createElement('p').style,
|
||||
r = 'transition' in s ||
|
||||
'WebkitTransition' in s ||
|
||||
'MozTransition' in s ||
|
||||
'msTransition' in s ||
|
||||
'OTransition' in s;
|
||||
s = null;
|
||||
return r;
|
||||
})(),
|
||||
// WebUploader实例
|
||||
uploader,
|
||||
actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
|
||||
fileMaxSize = editor.getOpt('fileMaxSize'),
|
||||
acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
|
||||
|
||||
if (!WebUploader.Uploader.support()) {
|
||||
$('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
|
||||
return;
|
||||
} else if (!editor.getOpt('fileActionName')) {
|
||||
$('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
|
||||
return;
|
||||
}
|
||||
|
||||
uploader = _this.uploader = WebUploader.create({
|
||||
pick: {
|
||||
id: '#filePickerReady',
|
||||
label: lang.uploadSelectFile
|
||||
},
|
||||
swf: '../../third-party/webuploader/Uploader.swf',
|
||||
server: actionUrl,
|
||||
fileVal: editor.getOpt('fileFieldName'),
|
||||
duplicate: true,
|
||||
fileSingleSizeLimit: fileMaxSize,
|
||||
compress: false
|
||||
});
|
||||
uploader.addButton({
|
||||
id: '#filePickerBlock'
|
||||
});
|
||||
uploader.addButton({
|
||||
id: '#filePickerBtn',
|
||||
label: lang.uploadAddFile
|
||||
});
|
||||
|
||||
setState('pedding');
|
||||
|
||||
// 当有文件添加进来时执行,负责view的创建
|
||||
function addFile(file) {
|
||||
var $li = $('<li id="' + file.id + '">' +
|
||||
'<p class="title">' + file.name + '</p>' +
|
||||
'<p class="imgWrap"></p>' +
|
||||
'<p class="progress"><span></span></p>' +
|
||||
'</li>'),
|
||||
|
||||
$btns = $('<div class="file-panel">' +
|
||||
'<span class="cancel">' + lang.uploadDelete + '</span>' +
|
||||
'<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
|
||||
'<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
|
||||
$prgress = $li.find('p.progress span'),
|
||||
$wrap = $li.find('p.imgWrap'),
|
||||
$info = $('<p class="error"></p>').hide().appendTo($li),
|
||||
|
||||
showError = function (code) {
|
||||
switch (code) {
|
||||
case 'exceed_size':
|
||||
text = lang.errorExceedSize;
|
||||
break;
|
||||
case 'interrupt':
|
||||
text = lang.errorInterrupt;
|
||||
break;
|
||||
case 'http':
|
||||
text = lang.errorHttp;
|
||||
break;
|
||||
case 'not_allow_type':
|
||||
text = lang.errorFileType;
|
||||
break;
|
||||
default:
|
||||
text = lang.errorUploadRetry;
|
||||
break;
|
||||
}
|
||||
$info.text(text).show();
|
||||
};
|
||||
|
||||
if (file.getStatus() === 'invalid') {
|
||||
showError(file.statusText);
|
||||
} else {
|
||||
$wrap.text(lang.uploadPreview);
|
||||
if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
|
||||
$wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
|
||||
'<span class="file-title" title="' + file.name + '">' + file.name + '</span>');
|
||||
} else {
|
||||
if (browser.ie && browser.version <= 7) {
|
||||
$wrap.text(lang.uploadNoPreview);
|
||||
} else {
|
||||
uploader.makeThumb(file, function (error, src) {
|
||||
if (error || !src) {
|
||||
$wrap.text(lang.uploadNoPreview);
|
||||
} else {
|
||||
var $img = $('<img src="' + src + '">');
|
||||
$wrap.empty().append($img);
|
||||
$img.on('error', function () {
|
||||
$wrap.text(lang.uploadNoPreview);
|
||||
});
|
||||
}
|
||||
}, thumbnailWidth, thumbnailHeight);
|
||||
}
|
||||
}
|
||||
percentages[ file.id ] = [ file.size, 0 ];
|
||||
file.rotation = 0;
|
||||
|
||||
/* 检查文件格式 */
|
||||
if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
|
||||
showError('not_allow_type');
|
||||
uploader.removeFile(file);
|
||||
}
|
||||
}
|
||||
|
||||
file.on('statuschange', function (cur, prev) {
|
||||
if (prev === 'progress') {
|
||||
$prgress.hide().width(0);
|
||||
} else if (prev === 'queued') {
|
||||
$li.off('mouseenter mouseleave');
|
||||
$btns.remove();
|
||||
}
|
||||
// 成功
|
||||
if (cur === 'error' || cur === 'invalid') {
|
||||
showError(file.statusText);
|
||||
percentages[ file.id ][ 1 ] = 1;
|
||||
} else if (cur === 'interrupt') {
|
||||
showError('interrupt');
|
||||
} else if (cur === 'queued') {
|
||||
percentages[ file.id ][ 1 ] = 0;
|
||||
} else if (cur === 'progress') {
|
||||
$info.hide();
|
||||
$prgress.css('display', 'block');
|
||||
} else if (cur === 'complete') {
|
||||
}
|
||||
|
||||
$li.removeClass('state-' + prev).addClass('state-' + cur);
|
||||
});
|
||||
|
||||
$li.on('mouseenter', function () {
|
||||
$btns.stop().animate({height: 30});
|
||||
});
|
||||
$li.on('mouseleave', function () {
|
||||
$btns.stop().animate({height: 0});
|
||||
});
|
||||
|
||||
$btns.on('click', 'span', function () {
|
||||
var index = $(this).index(),
|
||||
deg;
|
||||
|
||||
switch (index) {
|
||||
case 0:
|
||||
uploader.removeFile(file);
|
||||
return;
|
||||
case 1:
|
||||
file.rotation += 90;
|
||||
break;
|
||||
case 2:
|
||||
file.rotation -= 90;
|
||||
break;
|
||||
}
|
||||
|
||||
if (supportTransition) {
|
||||
deg = 'rotate(' + file.rotation + 'deg)';
|
||||
$wrap.css({
|
||||
'-webkit-transform': deg,
|
||||
'-mos-transform': deg,
|
||||
'-o-transform': deg,
|
||||
'transform': deg
|
||||
});
|
||||
} else {
|
||||
$wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$li.insertBefore($filePickerBlock);
|
||||
}
|
||||
|
||||
// 负责view的销毁
|
||||
function removeFile(file) {
|
||||
var $li = $('#' + file.id);
|
||||
delete percentages[ file.id ];
|
||||
updateTotalProgress();
|
||||
$li.off().find('.file-panel').off().end().remove();
|
||||
}
|
||||
|
||||
function updateTotalProgress() {
|
||||
var loaded = 0,
|
||||
total = 0,
|
||||
spans = $progress.children(),
|
||||
percent;
|
||||
|
||||
$.each(percentages, function (k, v) {
|
||||
total += v[ 0 ];
|
||||
loaded += v[ 0 ] * v[ 1 ];
|
||||
});
|
||||
|
||||
percent = total ? loaded / total : 0;
|
||||
|
||||
spans.eq(0).text(Math.round(percent * 100) + '%');
|
||||
spans.eq(1).css('width', Math.round(percent * 100) + '%');
|
||||
updateStatus();
|
||||
}
|
||||
|
||||
function setState(val, files) {
|
||||
|
||||
if (val != state) {
|
||||
|
||||
var stats = uploader.getStats();
|
||||
|
||||
$upload.removeClass('state-' + state);
|
||||
$upload.addClass('state-' + val);
|
||||
|
||||
switch (val) {
|
||||
|
||||
/* 未选择文件 */
|
||||
case 'pedding':
|
||||
$queue.addClass('element-invisible');
|
||||
$statusBar.addClass('element-invisible');
|
||||
$placeHolder.removeClass('element-invisible');
|
||||
$progress.hide(); $info.hide();
|
||||
uploader.refresh();
|
||||
break;
|
||||
|
||||
/* 可以开始上传 */
|
||||
case 'ready':
|
||||
$placeHolder.addClass('element-invisible');
|
||||
$queue.removeClass('element-invisible');
|
||||
$statusBar.removeClass('element-invisible');
|
||||
$progress.hide(); $info.show();
|
||||
$upload.text(lang.uploadStart);
|
||||
uploader.refresh();
|
||||
break;
|
||||
|
||||
/* 上传中 */
|
||||
case 'uploading':
|
||||
$progress.show(); $info.hide();
|
||||
$upload.text(lang.uploadPause);
|
||||
break;
|
||||
|
||||
/* 暂停上传 */
|
||||
case 'paused':
|
||||
$progress.show(); $info.hide();
|
||||
$upload.text(lang.uploadContinue);
|
||||
break;
|
||||
|
||||
case 'confirm':
|
||||
$progress.show(); $info.hide();
|
||||
$upload.text(lang.uploadStart);
|
||||
|
||||
stats = uploader.getStats();
|
||||
if (stats.successNum && !stats.uploadFailNum) {
|
||||
setState('finish');
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'finish':
|
||||
$progress.hide(); $info.show();
|
||||
if (stats.uploadFailNum) {
|
||||
$upload.text(lang.uploadRetry);
|
||||
} else {
|
||||
$upload.text(lang.uploadStart);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
state = val;
|
||||
updateStatus();
|
||||
|
||||
}
|
||||
|
||||
if (!_this.getQueueCount()) {
|
||||
$upload.addClass('disabled')
|
||||
} else {
|
||||
$upload.removeClass('disabled')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function updateStatus() {
|
||||
var text = '', stats;
|
||||
|
||||
if (state === 'ready') {
|
||||
text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
|
||||
} else if (state === 'confirm') {
|
||||
stats = uploader.getStats();
|
||||
if (stats.uploadFailNum) {
|
||||
text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
|
||||
}
|
||||
} else {
|
||||
stats = uploader.getStats();
|
||||
text = lang.updateStatusFinish.replace('_', fileCount).
|
||||
replace('_KB', WebUploader.formatSize(fileSize)).
|
||||
replace('_', stats.successNum);
|
||||
|
||||
if (stats.uploadFailNum) {
|
||||
text += lang.updateStatusError.replace('_', stats.uploadFailNum);
|
||||
}
|
||||
}
|
||||
|
||||
$info.html(text);
|
||||
}
|
||||
|
||||
uploader.on('fileQueued', function (file) {
|
||||
fileCount++;
|
||||
fileSize += file.size;
|
||||
|
||||
if (fileCount === 1) {
|
||||
$placeHolder.addClass('element-invisible');
|
||||
$statusBar.show();
|
||||
}
|
||||
|
||||
addFile(file);
|
||||
});
|
||||
|
||||
uploader.on('fileDequeued', function (file) {
|
||||
fileCount--;
|
||||
fileSize -= file.size;
|
||||
|
||||
removeFile(file);
|
||||
updateTotalProgress();
|
||||
});
|
||||
|
||||
uploader.on('filesQueued', function (file) {
|
||||
if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
|
||||
setState('ready');
|
||||
}
|
||||
updateTotalProgress();
|
||||
});
|
||||
|
||||
uploader.on('all', function (type, files) {
|
||||
switch (type) {
|
||||
case 'uploadFinished':
|
||||
setState('confirm', files);
|
||||
break;
|
||||
case 'startUpload':
|
||||
/* 添加额外的GET参数 */
|
||||
var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
|
||||
url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
|
||||
uploader.option('server', url);
|
||||
setState('uploading', files);
|
||||
break;
|
||||
case 'stopUpload':
|
||||
setState('paused', files);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
uploader.on('uploadBeforeSend', function (file, data, header) {
|
||||
//这里可以通过data对象添加POST参数
|
||||
header['X_Requested_With'] = 'XMLHttpRequest';
|
||||
});
|
||||
|
||||
uploader.on('uploadProgress', function (file, percentage) {
|
||||
var $li = $('#' + file.id),
|
||||
$percent = $li.find('.progress span');
|
||||
|
||||
$percent.css('width', percentage * 100 + '%');
|
||||
percentages[ file.id ][ 1 ] = percentage;
|
||||
updateTotalProgress();
|
||||
});
|
||||
|
||||
uploader.on('uploadSuccess', function (file, ret) {
|
||||
var $file = $('#' + file.id);
|
||||
try {
|
||||
var responseText = (ret._raw || ret),
|
||||
json = utils.str2json(responseText);
|
||||
if (json.state == 'SUCCESS') {
|
||||
_this.fileList.push(json);
|
||||
$file.append('<span class="success"></span>');
|
||||
} else {
|
||||
$file.find('.error').text(json.state).show();
|
||||
}
|
||||
} catch (e) {
|
||||
$file.find('.error').text(lang.errorServerUpload).show();
|
||||
}
|
||||
});
|
||||
|
||||
uploader.on('uploadError', function (file, code) {
|
||||
});
|
||||
uploader.on('error', function (code, file) {
|
||||
if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
|
||||
addFile(file);
|
||||
}
|
||||
});
|
||||
uploader.on('uploadComplete', function (file, ret) {
|
||||
});
|
||||
|
||||
$upload.on('click', function () {
|
||||
if ($(this).hasClass('disabled')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (state === 'ready') {
|
||||
uploader.upload();
|
||||
} else if (state === 'paused') {
|
||||
uploader.upload();
|
||||
} else if (state === 'uploading') {
|
||||
uploader.stop();
|
||||
}
|
||||
});
|
||||
|
||||
$upload.addClass('state-' + state);
|
||||
updateTotalProgress();
|
||||
},
|
||||
getQueueCount: function () {
|
||||
var file, i, status, readyFile = 0, files = this.uploader.getFiles();
|
||||
for (i = 0; file = files[i++]; ) {
|
||||
status = file.getStatus();
|
||||
if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
|
||||
}
|
||||
return readyFile;
|
||||
},
|
||||
getInsertList: function () {
|
||||
var i, link, data, list = [],
|
||||
prefix = editor.getOpt('fileUrlPrefix');
|
||||
for (i = 0; i < this.fileList.length; i++) {
|
||||
data = this.fileList[i];
|
||||
link = data.url;
|
||||
list.push({
|
||||
title: data.original || link.substr(link.lastIndexOf('/') + 1),
|
||||
url: prefix + link
|
||||
});
|
||||
}
|
||||
return list;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* 在线附件 */
|
||||
function OnlineFile(target) {
|
||||
this.container = utils.isString(target) ? document.getElementById(target) : target;
|
||||
this.init();
|
||||
}
|
||||
OnlineFile.prototype = {
|
||||
init: function () {
|
||||
this.initContainer();
|
||||
this.initEvents();
|
||||
this.initData();
|
||||
},
|
||||
/* 初始化容器 */
|
||||
initContainer: function () {
|
||||
this.container.innerHTML = '';
|
||||
this.list = document.createElement('ul');
|
||||
this.clearFloat = document.createElement('li');
|
||||
|
||||
domUtils.addClass(this.list, 'list');
|
||||
domUtils.addClass(this.clearFloat, 'clearFloat');
|
||||
|
||||
this.list.appendChild(this.clearFloat);
|
||||
this.container.appendChild(this.list);
|
||||
},
|
||||
/* 初始化滚动事件,滚动到地步自动拉取数据 */
|
||||
initEvents: function () {
|
||||
var _this = this;
|
||||
|
||||
/* 滚动拉取图片 */
|
||||
domUtils.on($G('fileList'), 'scroll', function(e){
|
||||
var panel = this;
|
||||
if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
|
||||
_this.getFileData();
|
||||
}
|
||||
});
|
||||
/* 选中图片 */
|
||||
domUtils.on(this.list, 'click', function (e) {
|
||||
var target = e.target || e.srcElement,
|
||||
li = target.parentNode;
|
||||
|
||||
if (li.tagName.toLowerCase() == 'li') {
|
||||
if (domUtils.hasClass(li, 'selected')) {
|
||||
domUtils.removeClasses(li, 'selected');
|
||||
} else {
|
||||
domUtils.addClass(li, 'selected');
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/* 初始化第一次的数据 */
|
||||
initData: function () {
|
||||
|
||||
/* 拉取数据需要使用的值 */
|
||||
this.state = 0;
|
||||
this.listSize = editor.getOpt('fileManagerListSize');
|
||||
this.listIndex = 0;
|
||||
this.listEnd = false;
|
||||
|
||||
/* 第一次拉取数据 */
|
||||
this.getFileData();
|
||||
},
|
||||
/* 向后台拉取图片列表数据 */
|
||||
getFileData: function () {
|
||||
var _this = this;
|
||||
|
||||
if(!_this.listEnd && !this.isLoadingData) {
|
||||
this.isLoadingData = true;
|
||||
ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
|
||||
timeout: 100000,
|
||||
data: utils.extend({
|
||||
start: this.listIndex,
|
||||
size: this.listSize
|
||||
}, editor.queryCommandValue('serverparam')),
|
||||
method: 'get',
|
||||
onsuccess: function (r) {
|
||||
try {
|
||||
var json = eval('(' + r.responseText + ')');
|
||||
if (json.state == 'SUCCESS') {
|
||||
_this.pushData(json.list);
|
||||
_this.listIndex = parseInt(json.start) + parseInt(json.list.length);
|
||||
if(_this.listIndex >= json.total) {
|
||||
_this.listEnd = true;
|
||||
}
|
||||
_this.isLoadingData = false;
|
||||
}
|
||||
} catch (e) {
|
||||
if(r.responseText.indexOf('ue_separate_ue') != -1) {
|
||||
var list = r.responseText.split(r.responseText);
|
||||
_this.pushData(list);
|
||||
_this.listIndex = parseInt(list.length);
|
||||
_this.listEnd = true;
|
||||
_this.isLoadingData = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
onerror: function () {
|
||||
_this.isLoadingData = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
/* 添加图片到列表界面上 */
|
||||
pushData: function (list) {
|
||||
var i, item, img, filetype, preview, icon, _this = this,
|
||||
urlPrefix = editor.getOpt('fileManagerUrlPrefix');
|
||||
for (i = 0; i < list.length; i++) {
|
||||
if(list[i] && list[i].url) {
|
||||
item = document.createElement('li');
|
||||
icon = document.createElement('span');
|
||||
filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
|
||||
|
||||
if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) {
|
||||
preview = document.createElement('img');
|
||||
domUtils.on(preview, 'load', (function(image){
|
||||
return function(){
|
||||
_this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
|
||||
};
|
||||
})(preview));
|
||||
preview.width = 113;
|
||||
preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
|
||||
} else {
|
||||
var ic = document.createElement('i'),
|
||||
textSpan = document.createElement('span');
|
||||
textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
|
||||
preview = document.createElement('div');
|
||||
preview.appendChild(ic);
|
||||
preview.appendChild(textSpan);
|
||||
domUtils.addClass(preview, 'file-wrapper');
|
||||
domUtils.addClass(textSpan, 'file-title');
|
||||
domUtils.addClass(ic, 'file-type-' + filetype);
|
||||
domUtils.addClass(ic, 'file-preview');
|
||||
}
|
||||
domUtils.addClass(icon, 'icon');
|
||||
item.setAttribute('data-url', urlPrefix + list[i].url);
|
||||
if (list[i].original) {
|
||||
item.setAttribute('data-title', list[i].original);
|
||||
}
|
||||
|
||||
item.appendChild(preview);
|
||||
item.appendChild(icon);
|
||||
this.list.insertBefore(item, this.clearFloat);
|
||||
}
|
||||
}
|
||||
},
|
||||
/* 改变图片大小 */
|
||||
scale: function (img, w, h, type) {
|
||||
var ow = img.width,
|
||||
oh = img.height;
|
||||
|
||||
if (type == 'justify') {
|
||||
if (ow >= oh) {
|
||||
img.width = w;
|
||||
img.height = h * oh / ow;
|
||||
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
|
||||
} else {
|
||||
img.width = w * ow / oh;
|
||||
img.height = h;
|
||||
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
|
||||
}
|
||||
} else {
|
||||
if (ow >= oh) {
|
||||
img.width = w * ow / oh;
|
||||
img.height = h;
|
||||
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
|
||||
} else {
|
||||
img.width = w;
|
||||
img.height = h * oh / ow;
|
||||
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
|
||||
}
|
||||
}
|
||||
},
|
||||
getInsertList: function () {
|
||||
var i, lis = this.list.children, list = [];
|
||||
for (i = 0; i < lis.length; i++) {
|
||||
if (domUtils.hasClass(lis[i], 'selected')) {
|
||||
var url = lis[i].getAttribute('data-url');
|
||||
var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
|
||||
list.push({
|
||||
title: title,
|
||||
url: url
|
||||
});
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
})();
|
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_chm.gif
vendored
Normal file
After Width: | Height: | Size: 923 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_default.png
vendored
Normal file
After Width: | Height: | Size: 841 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_doc.gif
vendored
Normal file
After Width: | Height: | Size: 1012 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_exe.gif
vendored
Normal file
After Width: | Height: | Size: 949 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_jpg.gif
vendored
Normal file
After Width: | Height: | Size: 950 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_mp3.gif
vendored
Normal file
After Width: | Height: | Size: 986 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_mv.gif
vendored
Normal file
After Width: | Height: | Size: 1001 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_pdf.gif
vendored
Normal file
After Width: | Height: | Size: 996 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_ppt.gif
vendored
Normal file
After Width: | Height: | Size: 1001 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_psd.gif
vendored
Normal file
After Width: | Height: | Size: 1009 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_rar.gif
vendored
Normal file
After Width: | Height: | Size: 1007 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_txt.gif
vendored
Normal file
After Width: | Height: | Size: 970 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/fileTypeImages/icon_xls.gif
vendored
Normal file
After Width: | Height: | Size: 1005 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/alignicon.gif
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/alignicon.png
vendored
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/bg.png
vendored
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/file-icons.gif
vendored
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/file-icons.png
vendored
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/icons.gif
vendored
Normal file
After Width: | Height: | Size: 453 B |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/icons.png
vendored
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/image.png
vendored
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/progress.png
vendored
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
dist/20490957/static/plugins/ueditor-1.4.3.3/dialogs/attachment/images/success.gif
vendored
Normal file
After Width: | Height: | Size: 445 B |