Commit 1f2d99af by 无尘

add: 添加好办 webview 页面

parent c66d91c5
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-vue-jsx", "transform-runtime"]
}
# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
.DS_Store
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}
# office-mobile
> 好办 APP webview 模板前端代码
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
```
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
})
})
'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)
}
}
'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,
publicPath: '../../', //注意: 此处根据路径, 自动更改
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')
})
}
}
'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'
}
}
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'components': resolve('src/components'),
'views': resolve('src/views')
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.scss$/,
loaders: ["style", "css", "scss", "sass"]
},
{
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'
}
}
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const path = require('path')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder')
const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
favicon: './favicon.ico'
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.dev.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
module.exports = new Promise((resolve, reject) => {
portfinder.basePort = process.env.PORT || config.dev.port
portfinder.getPort((err, port) => {
if (err) {
reject(err)
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
// add port to devServer config
devWebpackConfig.devServer.port = port
// Add FriendlyErrorsPlugin
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
}))
resolve(devWebpackConfig)
}
})
})
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const env = require('../config/prod.env')
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
// Setting the following option to `false` will not extract CSS from codesplit chunks.
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
allChunks: true,
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: config.build.productionSourceMap
? { safe: true, map: { inline: false } }
: { safe: true }
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vendor modules does not change
new webpack.HashedModuleIdsPlugin(),
// enable scope hoisting
new webpack.optimize.ModuleConcatenationPlugin(),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
minChunks: Infinity
}),
// This instance extracts shared chunks from code splitted chunks and bundles them
// in a separate chunk, similar to the vendor chunk
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path');
const proxyConfig = require('./proxyList');
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},//proxyConfig.proxyList,
// Various Dev Server settings
// host: '0.0.0.0', // can be overwritten by process.env.HOST
host: 'localhost',//'192.168.1.20',//
port: 8005, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',
// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
/**
* Source Maps
*/
productionSourceMap: true,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}
'use strict'
module.exports = {
NODE_ENV: '"production"'
}
module.exports = {
proxyList: {
'/api-auth/': {
target: 'http://gicdev.demogic.com/api-auth/',
changeOrigin: true,
pathRewrite: {
'^/api-auth': ''
}
},
'/api-admin/': {
target: 'http://gicdev.demogic.com/api-admin/',
changeOrigin: true,
pathRewrite: {
'^/api-admin': ''
}
},
'/api-plug/': {
target: 'http://gicdev.demogic.com/api-plug/',
changeOrigin: true,
pathRewrite: {
'^/api-plug': ''
}
},
'/api-mall/': {
target: 'http://gicdev.demogic.com/api-mall/',
changeOrigin: true,
pathRewrite: {
'^/api-mall': ''
}
}
}
}
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=0"><meta name=screen-orientation content=portrait><meta name=apple-mobile-web-app-capable content=yes><meta name=format-detection content="telephone=no"><meta name=full-screen content=yes><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=renderer content=webkit><meta http-equiv=Pragma content=no-cache><meta http-equiv=Cache-Control content=no-cache><meta http-equiv=Expires content=0><meta name=x5-fullscreen content=true><meta content=yes name=apple-mobile-web-app-capable><meta content=yes name=apple-touch-fullscreen><meta content="telephone=no,email=no" name=format-detection><link rel="shortcut icon" href=./favicon.ico><title>好办 APP</title><link href=./static/css/app.59f2ef32d42de6556fba15f9bc6c994e.css rel=stylesheet></head><body style="background-color: #f0f2f5;width: 100%;"><div id=app></div><script type=text/javascript src=./static/js/manifest.83297523b1f3ff04d447.js></script><script type=text/javascript src=./static/js/vendor.15ac336a4d2bb2acbf0d.js></script><script type=text/javascript src=./static/js/app.b6992da8a0e11223eff1.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
@import './public.css';
.arrowico{
position: absolute;
transition: all .5s;
.icoposition(0px,25px);
}
.icoposition(@right: right,@top: top){
right: @right;
top: @top;
}
.user-form-dialog {
/deep/ .el-dialog {
min-width: 425px;
}
/*/deep/ .el-dialog__body {
padding: 0 20px;
}*/
/deep/ .el-input {
width: 260px;
}
}
.pass-form-dialog {
/deep/ .el-dialog {
min-width: 425px;
}
/*/deep/ .el-dialog__body {
padding: 0 20px;
}*/
}
/**
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
* http://cssreset.com
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
input {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-weight: normal;
vertical-align: baseline;
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* custom */
a {
color: #7e8c8d;
text-decoration: none;
-webkit-backface-visibility: hidden;
}
.a-href {
color: #409EFF;
cursor: pointer;
}
li {
list-style: none;
}
::-webkit-scrollbar {
width: 5px;
height: 5px;
-webkit-border-radius: 6px;
border-radius: 6px;
/*background: #e4e7ed;*/
/*background-color: rgba(0, 0, 0, 0.1)*/
}
::-webkit-scrollbar-track {
/*background: #f5f7fa;*/
-webkit-border-radius: 6px;
border-radius: 6px;
}
::-webkit-scrollbar-track-piece {
/*background-color: rgba(0, 0, 0, 0.2);
-webkit-border-radius: 6px;*/
}
::-webkit-scrollbar-thumb {
background: #c0c4cc;
-webkit-border-radius: 6px;
border-radius: 6px;
background-color: rgba(0, 0, 0, 0.1)
}
@-moz-document url-prefix(http: //),url-prefix(https://) {
/* 滚动条颜色 */
scrollbar {
-moz-appearance: none !important;
width: 5px;
height: 5px;
-webkit-border-radius: 6px;
border-radius: 6px;
}
/* 滚动条按钮颜色 */
thumb, scrollbarbutton {
-moz-appearance: none !important;
}
/* 鼠标悬停时按钮颜色 */
thumb:hover, scrollbarbutton:hover {
-moz-appearance: none !important;
}
/* 隐藏上下箭头 */
scrollbarbutton {
display: none !important;
}
/* 纵向滚动条宽度 */
scrollbar[orient="vertical"] {
/*min-width: 15px !important;*/
}
}
scrollbar {
/* clear useragent default style*/
-moz-appearance: none !important;
}
/* buttons at two ends */
scrollbarbutton {
-moz-appearance: none !important;
}
/* the sliding part*/
thumb {
-moz-appearance: none !important;
}
scrollcorner {
-moz-appearance: none !important;
resize: both;
}
/* vertical or horizontal */
scrollbar[orient="vertical"] {
color: silver;
}
-moz-scrollbar-track {
width: 5px;
border: none;
background: #ff0000;
}
-moz-scrollbar-face {
width: 5px;
border: none;
background: #ff0000;
}
-moz-scrollbar-arrow {
width: 5px;
border: none;
background: #ff0000;
}
-moz-scrollbar {
-moz-scrollbar-width: 15px;
-moz-scrollbar-border: 1px solid black;
-moz-scrollbar-background-color: white;
-moz-scrollbar-track-background-color: silver;
-moz-scrollbar-arrow-background-color: silver;
-moz-scrollbar-arrow-color: blue;
}
/*::-webkit-scrollbar-button {
color: #c8cbd3;
}*/
html,
body {
width: 100%;
min-height: 100%;
height: 100%;
/*background-color: #ffffff;*/
background-color: #f0f2f5;
}
body {
-webkit-text-size-adjust: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
input:focus {
box-shadow: none;
outline: none;
}
.btn-default {
color: #333;
border: 1px solid #ddd;
background-color: #f7f7f7;
cursor: pointer;
}
.btn {
font-size: 12px;
border-radius: 2px;
padding: 8px 16px;
height: 32px;
line-height: 14px;
}
.btn-new {
color: #333;
border: 1px solid #fede29;
background-color: #fede29;
}
.fl {
float: left;
}
.fr {
float: right;
}
.clearfix:before, .clearfix:after {
display: block;
visibility: hidden;
height: 0;
content: "";
clear: both;
}
.clearfix {
zoom: 1;
}
.inline-block {
display: inline-block;
}
.m-l-16 {
margin-left: 16px;
}
.m-t-10 {
margin-top: 10px;
}
.m-t-30 {
margin-top: 30px;
}
.m-r-10 {
margin-right: 10px;
}
.font-0 .el-form-item__content, .dialog-footer {
font-size: 0;
}
/* 公共 body 内的 left 和 right */
.common-wrap__left {
width: 260px;
height: 690px;
vertical-align: top;
font-size: 14px;
background: rgba(238,241,248,1);
border-radius: 2px;
}
.common-wrap__right {
width: calc(100% - 260px);
min-height: 690px;
padding: 24px;
vertical-align: top;
font-size: 14px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.pagewrap {
margin: 20px 0;
text-align: right;
}
.dialogwrap {
position: relative;
}
.dialogwrap:before {
position: absolute;
left: -20px;
top: -20px;
right: -20px;
content: '';
border-bottom: 1px solid #dedede;
}
.dialogcontent {
padding: 0 10px;
}
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
background-color: rgb(250, 255, 189);
/* #FAFFBD; */
background-image: none;
color: rgb(0, 0, 0);
}
.el-table th {
background: #f1f3f7 !important;
}
.slide-fade-enter-active {
transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-leave-active {
transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to {
opacity: 0;
}
/* 丹 新加*/
#app, #index, #content {
height: 100%;
}
/* table 的表头 -- 背景色 */
.el-table thead tr, .el-table thead th {
background: #f1f3f7;
}
/* 面包屑 */
.breadcrumb {
padding: 24px;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 -1px 10px #dfdfdf;
}
.breadcrumb .breadcrumb-title {
margin: 30px 0 10px 0;
font-size: 20px;
}
/*有侧边栏的 右侧 */
.content-wrap {
height: 100%;
display: flex;
}
.content-wrap .right-wrap {
width: 100%;
box-sizing: border-box;
height: 100%;
overflow-y: auto;
}
.content-wrap .right-wrap .right-content {
padding: 24px;
}
.content-wrap .right-wrap .right-content .right-box {
background: #fff;
padding: 24px;
}
/* 无侧边栏的底部 */
.bottom-wrap {
padding: 24px;
color: #606266;
font-size: 14px;
}
.bottom-content-wrap {
/*background: #fff;
padding: 24px;*/
}
/*提示文字*/
.tip-text {
font-size: 12px;
color: #909399;
position: absolute;
bottom: -30px;
}
.el-form .el-form-item.is-success .el-input__inner, .el-form .el-form-item.is-success .el-input__inner:focus, .el-form .el-form-item.is-success .el-textarea__inner, .el-form .el-form-item.is-success .el-textarea__inner:focus {
border-color: #dcdfe6;
}
/* 开卡模板 */
.template-cell-r .el-input.is-disabled .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255, 255, 255, .1);
}
.el-button--text.m-l-10 {
margin-left: 10px;
}
.task-public .el-tabs .el-tabs__header {
margin: 0;
padding-left: 24px;
border-bottom: 1px solid #e4e7ed;
background: #fff;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/* 头部 */
.user-form-dialog .el-dialog__body {
padding: 30px 20px 0;
}
.user-form-dialog .el-dialog__header {
padding: 0 20px;
height: 54px;
}
.pass-form-dialog .el-dialog__body {
padding: 30px 20px 0;
}
.pass-form-dialog .el-dialog__header {
padding: 0 20px;
height: 54px;
}
/* 左侧菜单 */
.leftBar-wrap .el-menu {
background-color: #020b21;
}
.leftBar-wrap .cardmenu-item .el-submenu__title, .leftBar-wrap .cardmenu-item .el-menu-item, .leftBar-wrap .cardmenu-item .el-submenu .el-menu-item {
height: 40px;
line-height: 40px;
}
.leftBar-wrap .el-submenu__title:hover {
background-color: #020b21;
}
.leftBar-wrap .cardmenu-item li.el-menu-item:hover i {
/*background-color: #1890ff;*/
color: #fff;
}
.leftBar-wrap .cardmenu-item li.el-menu-item:hover span {
/*background-color: #1890ff;*/
color: #fff;
}
.leftBar-wrap .cardmenu-item li.el-submenu:hover i {
/*background-color: #1890ff;*/
color: #fff;
}
.leftBar-wrap .cardmenu-item li.el-submenu:hover span {
/*background-color: #1890ff;*/
color: #fff;
}
.leftBar-wrap .cardmenu-item li.el-submenu .el-menu-item:hover label {
/*background-color: #1890ff;*/
color: #fff;
cursor: pointer;
}
.leftBar-wrap .cardmenu-item .el-submenu.is-active div.el-submenu__title i {
color: #fff;
}
.leftBar-wrap .cardmenu-item .el-submenu.is-active div.el-submenu__title span {
color: #fff;
}
.el-menu.el-menu--popup .el-menu-item.is-active label {
color: #fff;
}
/* 百分号 */
.percent-item .el-input-group__append {
padding: 0 12px;
}
/* table lable*/
.table-label .el-form-item__label {
line-height: 48px;
}
@base-color: #353944;
@hover-color: #3c92eb;
@hoverbg-color: #20242d;
@main-color: #1890ff;
@navbgcolor: #04143a;
@sidebgcolor: #343c4c;
@userinfobgcolor: #ecf5ff;
@contentbgcolor: #f5f7fa;
@bordercolor: #dcdfe6;
@customnavcolor: #04143a;
@btnbgcolor: #f5f7fa;
@iconbgcolor: #e6e9f2;
.flex1(@width,@height) {
flex: 0 0 @width;
width: @width;
height: @height;
}
*{margin: 0;padding: 0;list-style: none;}
/*
KISSY CSS Reset
理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。
2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。
3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。
特色:1. 适应中文;2. 基于最新主流浏览器。
维护:玉伯<lifesinger@gmail.com>, 正淳<ragecarrier@gmail.com>
*/
/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */
th, td /* table elements 表格元素 */ {
margin: 0;
padding: 0;
}
/** 设置默认字体 **/
body,
button, input, select, textarea /* for ie */ {
font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif;
}
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */
code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */
small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置文本格式元素 **/
a { text-decoration: none; }
a:hover { text-decoration: underline; }
/** 重置表单元素 **/
legend { color: #000; } /* for ie6 */
fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */
button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */
/* 注:optgroup 无法扶正 */
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
/* 清除浮动 */
.ks-clear:after, .clear:after {
content: '\20';
display: block;
height: 0;
clear: both;
}
.ks-clear, .clear {
*zoom: 1;
}
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;}
.helps{margin-top:40px;}
.helps pre{
padding:20px;
margin:10px 0;
border:solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists{
width: 100% !important;
}
.icon_lists li{
float:left;
width: 100px;
height:180px;
text-align: center;
list-style: none !important;
}
.icon_lists .icon{
font-size: 42px;
line-height: 100px;
margin: 10px 0;
color:#333;
-webkit-transition: font-size 0.25s ease-out 0s;
-moz-transition: font-size 0.25s ease-out 0s;
transition: font-size 0.25s ease-out 0s;
}
.icon_lists .icon:hover{
font-size: 100px;
}
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p,
.markdown pre {
margin: 1em 0;
}
.markdown > p,
.markdown > blockquote,
.markdown > .highlight,
.markdown > ol,
.markdown > ul {
width: 80%;
}
.markdown ul > li {
list-style: circle;
}
.markdown > ul li,
.markdown blockquote ul > li {
margin-left: 20px;
padding-left: 4px;
}
.markdown > ul li p,
.markdown > ol li p {
margin: 0.6em 0;
}
.markdown ol > li {
list-style: decimal;
}
.markdown > ol li,
.markdown blockquote ol > li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown pre {
border-radius: 6px;
background: #f7f7f7;
padding: 20px;
}
.markdown pre code {
border: none;
background: #f7f7f7;
margin: 0;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown > table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown > table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown > table th,
.markdown > table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown > table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
font-style: italic;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown > br,
.markdown > p > br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
pre{
background: #fff;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([2],{"+7W9":function(M,L){},"6XGN":function(M,L,j){"use strict";Object.defineProperty(L,"__esModule",{value:!0});var N=j("CkW6"),u=j.n(N),w={name:"page403",data:function(){return{img_403:u.a}},computed:{message:function(){return"抱歉,你无权访问该页面"}}},D={render:function(){var M=this.$createElement,L=this._self._c||M;return L("div",{staticStyle:{background:"#f0f2f5","margin-top":"-20px",height:"100%"}},[L("div",{staticClass:"wscn-http404"},[L("div",{staticClass:"pic-404"},[L("img",{staticClass:"pic-404__parent",attrs:{src:this.img_403,alt:"403"}})]),this._v(" "),L("div",{staticClass:"bullshit"},[L("div",{staticClass:"bullshit__headline"},[this._v(this._s(this.message))]),this._v(" "),L("a",{staticClass:"bullshit__return-home",attrs:{href:"#/companyGroup"}},[this._v("返回首页")])])])])},staticRenderFns:[]};var C=j("VU/8")(w,D,!1,function(M){j("+7W9")},"data-v-560f462e",null);L.default=C.exports},CkW6:function(M,L){M.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDAwIDMzNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAwIDMzNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0ZBRkNGRjt9DQoJLnN0MXtmaWxsOiNEQkU1RjE7fQ0KCS5zdDJ7ZmlsbDojREVFN0Y0O30NCgkuc3Qze2ZpbGw6I0I5QzdEQjt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDV7ZmlsbDpub25lO3N0cm9rZTojQjlDN0RCO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q2e2ZpbGw6bm9uZTtzdHJva2U6I0I2QzdEODtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0NSIgZD0iTTI3NC41LDI0MS4zYy01LjMtNS4zLTQuNCw0LjQtNi43LDYuN2MtMy4xLDMuMS02LjMsNi05LjcsOC42SDEyNS4yYy0zLjQtMi43LTYuNi01LjYtOS43LTguNw0KCWMtMjguNC0yOC41LTM4LjYtNzAuNS0yNi42LTEwOWwtMTAuNS0xMC42Yy01LjMtNS4zLTUuMy0xMy44LDAtMTkuMmM1LjItNS4zLDEzLjctNS4zLDE5LTAuMWMwLDAsMCwwLDAuMSwwLjFsNi42LDYuOA0KCWMzLjEsMy4yLDguMiwzLjIsMTEuNCwwbDAsMGMzLjItMy4yLDMuMi04LjMsMC0xMS41TDEwMy4xLDkyYy0zLjItMy4yLTMuMi04LjMsMC0xMS41YzMuMS0zLjIsOC4yLTMuMiwxMS40LDBsMCwwbDE3LjIsMTcuMg0KCWMtMC45LDMuNywwLjksNy42LDQuNCw5LjNjMy41LDEuNyw3LjcsMC42LDkuOS0yLjVjMi4zLTMuMSwyLjEtNy40LTAuNS0xMC4zYy0zLjMtMy44LTYuNS03LjItNi41LTcuMmwtNy4zLTcuNA0KCWMzNC44LTIxLjMsODIuNi0yMS43LDExNy4yLDBjMzQuNSwyMS43LDUzLjksNjEuMiw1MCwxMDEuOWwxNS40LDE1LjZjMy4yLDMuMiwzLjIsOC4zLDAsMTEuNWMtMy4xLDMuMi04LjIsMy4yLTExLjQsMGwwLDANCglsLTE1LjEtMTUuM2MtMy4xLTMuMi04LjItMy4yLTExLjQsMGwwLDBjLTMuMiwzLjItMy4yLDguMywwLDExLjVsMTcuMSwxNy4yYzUuMiw1LjMsNS4yLDEzLjgsMCwxOS4xDQoJQzI4OC40LDI0Ni42LDI3OS45LDI0Ni42LDI3NC41LDI0MS4zQzI3NC42LDI0MS4zLDI3NC42LDI0MS4zLDI3NC41LDI0MS4zTDI3NC41LDI0MS4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTg2LjYsNzEuNGMwLDQuNywzLjgsOC41LDguNSw4LjVjMS41LDAsMy0wLjQsNC4zLTEuMWM0LjEtMi4zLDUuNS03LjUsMy4xLTExLjZjLTEuNS0yLjYtNC4zLTQuMy03LjQtNC4zDQoJQzkwLjQsNjIuOSw4Ni42LDY2LjcsODYuNiw3MS40Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjE2LjQsMTQ1LjRoMjQuM2wtNy40LDE3LjljMi42LDEuOCw0LjUsMy44LDUuOCw2YzEuMiwyLjIsMS45LDQuOCwxLjksNy44YzAsNC42LTEuNiw4LjQtNC44LDExLjINCgljLTMuMiwyLjktNy4zLDQuMy0xMi4zLDQuM2MtMi41LDAtNS4xLTAuNC03LjUtMS4xdi0xMy4xYzIsMC45LDMuOSwxLjQsNS41LDEuNHMyLjktMC41LDMuNy0xLjRjMC45LTEsMS4zLTIuMywxLjMtNC4xDQoJYzAtMS45LTAuOC0zLjQtMi40LTQuNmMtMS42LTEuMi0zLjctMS43LTYuNC0xLjdsMy40LTkuMWgtNS4xVjE0NS40TDIxNi40LDE0NS40eiBNMjA3LjUsMTgxLjZjMCwxLjUtMC4zLDMtMC44LDQuMw0KCXMtMS4zLDIuNS0yLjMsMy41cy0yLjIsMS44LTMuNCwyLjNjLTEuMywwLjYtMi44LDAuOS00LjMsMC45aC05LjZjLTEuNSwwLTIuOS0wLjMtNC4zLTAuOWMtMS4zLTAuNi0yLjUtMS4zLTMuNC0yLjMNCgljLTAuNC0wLjQtMC44LTAuOS0xLjItMS40bDExLjctMTcuM3Y2YzAsMC42LDAuMiwxLjEsMC42LDEuNGMwLjQsMC40LDAuOCwwLjYsMS40LDAuNmMxLjEsMCwyLTAuOCwyLTEuOXYtMC4xdi0xMS45bDEwLjktMTYuMQ0KCWMxLjgsMiwyLjgsNC42LDIuNyw3LjNMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZ6IE0xNzcuMSwxODUuOWMtMC42LTEuNC0wLjktMi44LTAuOC00LjNWMTU2YzAtMS41LDAuMy0zLDAuOC00LjMNCglzMS4zLTIuNSwyLjMtMy41czIuMi0xLjgsMy40LTIuM2MxLjMtMC42LDIuOC0wLjksNC4zLTAuOWg5LjZjMS41LDAsMi45LDAuMyw0LjMsMC45YzEuMywwLjUsMi40LDEuMywzLjQsMi4zbC0xMC41LDE1LjR2LTIuNw0KCWMwLTAuNS0wLjItMS4xLTAuNi0xLjRjLTAuNC0wLjQtMC45LTAuNi0xLjQtMC42Yy0xLjEsMC0yLDAuOC0yLDEuOXYwLjF2OC42bC0xMi4xLDE3LjlDMTc3LjUsMTg2LjksMTc3LjMsMTg2LjQsMTc3LjEsMTg1LjkNCglMMTc3LjEsMTg1Ljl6IE0yNDMuOCwxOTIuN2MzLjUtNy40LDUuMy0xNS41LDUuMy0yMy43YzAtMzAuNS0yNC40LTU1LjItNTQuNi01NS4ycy01NC42LDI0LjctNTQuNiw1NS4yYzAsMC40LDAsMC44LDAsMS4xDQoJbDE5LjYtMjQuNmgxMS40TDE1NCwxNzEuM2g1LjV2LTYuNWwxMS43LTE4LjV2NDYuOGgtMTEuN3YtOS44aC0xNy44YzUuMSwxOS4yLDIwLjEsMzQuMywzOS4yLDM5LjJjLTEuMiwzLjEtNC44LDEwLjctMTAuNywxMg0KCWMtNy4zLDEuNywxOS45LDAuNCwzOS40LTEyLjVjMTQuOS00LjQsMjcuMi0xNSwzMy45LTI4LjlMMjQzLjgsMTkyLjdMMjQzLjgsMTkyLjd6Ii8+DQo8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMjM4LjksMTU0LjNsLTI0LjQsMzUuNGwwLjUsMC4zbDI0LjQtMzUuNEwyMzguOSwxNTQuM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yNjYuMiw2Ni42aDhjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjIsMC4zLTAuNiwwLjQtMC45LDAuNGgtOA0KCWMtMC40LDAtMC43LTAuMS0wLjktMC40Yy0wLjUtMC41LTAuNS0xLjQsMC0xLjlDMjY1LjUsNjYuNywyNjUuOCw2Ni42LDI2Ni4yLDY2LjYgTTExNi41LDIwMS45Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJczgtMy42LDgtOC4xUzEyMC45LDIwMS45LDExNi41LDIwMS45TDExNi41LDIwMS45eiBNMTIxLjQsMjEyLjFjLTAuOCwyLTIuOCwzLjMtNC45LDMuM2MtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4xLDMuMy01DQoJYzItMC44LDQuMy0wLjQsNS44LDEuMkMxMjEuOCwyMDcuNywxMjIuMiwyMTAsMTIxLjQsMjEyLjFMMTIxLjQsMjEyLjF6IE0xOTEuMyw3OC43Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJYzIuMSwwLDQuMi0wLjksNS43LTIuNHMyLjMtMy42LDIuMy01LjdDMTk5LjMsODIuNCwxOTUuNyw3OC43LDE5MS4zLDc4Ljd6IE0xOTYuMyw4OC45Yy0wLjgsMi0yLjgsMy4zLTQuOSwzLjMNCgljLTMsMC01LjMtMi40LTUuMy01LjRjMC0yLjIsMS4zLTQuMiwzLjMtNXM0LjMtMC40LDUuOCwxLjJDMTk2LjYsODQuNiwxOTcuMSw4Ni45LDE5Ni4zLDg4LjlMMTk2LjMsODguOXogTTI3MC4yLDE2Mi42DQoJYy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xczgtMy42LDgtOC4xQzI3OC4yLDE2Ni4zLDI3NC42LDE2Mi42LDI3MC4yLDE2Mi42eiBNMjc1LjEsMTcyLjhjLTAuOCwyLTIuOCwzLjMtNC45LDMuMw0KCWMtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4yLDMuMy01czQuMy0wLjQsNS44LDEuMlMyNzUuOSwxNzAuOCwyNzUuMSwxNzIuOHogTTIzMC4xLDMxLjRjLTQuNCwwLTgsMy42LTgsOC4xczMuNiw4LjEsOCw4LjENCgljMi4xLDAsNC4yLTAuOSw1LjctMi40czIuMy0zLjYsMi4zLTUuN0MyMzguMSwzNSwyMzQuNSwzMS40LDIzMC4xLDMxLjR6IE0yMzUsNDEuNmMtMC44LDItMi44LDMuMy00LjksMy4zYy0zLDAtNS4zLTIuNC01LjMtNS40DQoJYzAtMi4yLDEuMy00LjIsMy4zLTVzNC4zLTAuNCw1LjgsMS4yQzIzNS40LDM3LjIsMjM1LjgsMzkuNSwyMzUsNDEuNnoiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNjMuMiw0NS45aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuNSwwLjUsMC41LDEuMywwLDEuOWwwLDBjLTAuMywwLjMtMC42LDAuNC0xLDAuNGgtOC4yDQoJYy0wLjQsMC0wLjctMC4xLTEtMC40Yy0wLjUtMC41LTAuNS0xLjMsMC0xLjlsMCwwQzE2Mi40LDQ2LjEsMTYyLjgsNDUuOSwxNjMuMiw0NS45IE0yNzEuNyw2My41djhjMCwwLjQtMC4xLDAuNy0wLjQsMC45DQoJYy0wLjMsMC4zLTAuNiwwLjQtMSwwLjRjLTAuNywwLTEuNC0wLjYtMS40LTEuM2wwLDB2LThjMC0wLjQsMC4xLTAuNywwLjQtMC45YzAuNS0wLjUsMS40LTAuNSwxLjksMA0KCUMyNzEuNiw2Mi44LDI3MS43LDYzLjIsMjcxLjcsNjMuNSIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTEwNy40LDE1NC44aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuMywwLjIsMC40LDAuNiwwLjQsMC45YzAsMC43LTAuNiwxLjMtMS40LDEuM2gtOC4yDQoJYy0wLjUsMC0wLjktMC4zLTEuMi0wLjdjLTAuMi0wLjQtMC4yLTAuOSwwLTEuM0MxMDYuNCwxNTUuMSwxMDYuOSwxNTQuOCwxMDcuNCwxNTQuOCBNMTY5LDQyLjd2OGMwLDAuNC0wLjEsMC43LTAuNCwwLjkNCgljLTAuNSwwLjUtMS40LDAuNS0yLDBjLTAuMi0wLjItMC40LTAuNi0wLjQtMC45di04YzAtMC40LDAuMS0wLjcsMC40LTAuOWMwLjUtMC41LDEuNC0wLjUsMS45LDBDMTY4LjgsNDIsMTY5LDQyLjMsMTY5LDQyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMzAuOSwxMTAuM2g4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS40YzAsMC43LTAuNiwxLjMtMS4zLDEuNGgtOC4xYy0wLjgsMC0xLjQtMC42LTEuNC0xLjQNCgljMC0wLjQsMC4xLTAuNywwLjQtMUMyMzAuMiwxMTAuNCwyMzAuNiwxMTAuMywyMzAuOSwxMTAuMyIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTExNC42LDE2My44djguMmMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjUsMC41LTEuNCwwLjUtMS45LDBjLTAuMy0wLjMtMC40LTAuNi0wLjQtMXYtOC4yYzAtMC40LDAuMS0wLjcsMC40LTENCgljMC41LTAuNSwxLjQtMC41LDEuOSwwbDAsMEMxMTQuNCwxNjMuMSwxMTQuNiwxNjMuNCwxMTQuNiwxNjMuOCIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyNiwyNzIuN2g2MC40YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40SDEyNmMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzEyNC43LDI3My4zLDEyNS4zLDI3Mi43LDEyNiwyNzIuNyIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTIxOC42LDI3Mi43aDM0LjljMC43LDAsMS4zLDAuNiwxLjMsMS4zYzAsMC43LTAuNiwxLjMtMS4zLDEuM2gtMzQuOWMtMC43LDAtMS4zLTAuNi0xLjQtMS4zDQoJYzAtMC40LDAuMS0wLjcsMC40LTFDMjE3LjksMjcyLjksMjE4LjIsMjcyLjcsMjE4LjYsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTguMiwyODIuMmgxMzEuNWMwLjcsMCwxLjMsMC42LDEuNCwxLjNjMCwwLjQtMC4xLDAuNy0wLjQsMWMtMC4zLDAuMy0wLjYsMC40LTEsMC40SDE1OC4yDQoJYy0wLjcsMC0xLjMtMC42LTEuMy0xLjNsMCwwQzE1Ni45LDI4Mi44LDE1Ny41LDI4Mi4yLDE1OC4yLDI4Mi4yIi8+DQo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNOTMuOCwyODIuMmgzNC45YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40bDAsMEg5My44Yy0wLjcsMC0xLjMtMC42LTEuNC0xLjMNCgljMC0wLjQsMC4xLTAuNywwLjQtMUM5My4xLDI4Mi4zLDkzLjUsMjgyLjIsOTMuOCwyODIuMiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTE5Ny4xLDI3Mi43aDguMWMwLjcsMCwxLjMsMC42LDEuMywxLjNjMCwwLjctMC42LDEuMy0xLjMsMS4zaC04LjFjLTAuNywwLjEtMS40LTAuNS0xLjQtMS4zDQoJYy0wLjEtMC43LDAuNS0xLjQsMS4zLTEuNEMxOTcsMjcyLjcsMTk3LjEsMjcyLjcsMTk3LjEsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yODQuNCwyNjQuNmg4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNy0wLjYsMS4zLTEuMywxLjNoLTguMWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzI4MywyNjUuMywyODMuNiwyNjQuNiwyODQuNCwyNjQuNiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTk5LjIsMjY0LjZoMTcxLjdjMC40LDAsMC43LDAuMSwwLjksMC40YzAuNCwwLjQsMC41LDEsMC4zLDEuNWMtMC4yLDAuNS0wLjcsMC44LTEuMiwwLjhIOTkuMQ0KCWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zQzk3LjgsMjY1LjMsOTguNCwyNjQuNiw5OS4yLDI2NC42Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjM1LDk1Ljh2OC4xYzAsMC43LTAuNiwxLjMtMS4zLDEuM3MtMS4zLTAuNi0xLjMtMS4zdi04LjFjMC0wLjcsMC42LTEuMywxLjMtMS40QzIzNC40LDk0LjQsMjM1LDk1LDIzNSw5NS44Ig0KCS8+DQo8L3N2Zz4NCg=="}});
//# sourceMappingURL=2.39effb7cc468a8b90c44.js.map
\ No newline at end of file
webpackJsonp([3],{"/4Tr":function(t,s){},"2X9c":function(t,s,i){t.exports=i.p+"static/img/error_500.ed0cba4.svg"},FskK:function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var e=i("2X9c"),a=i.n(e),n={name:"page500",data:function(){return{img_500:a.a}},computed:{message:function(){return"抱歉,服务器出错了"}}},r={render:function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticStyle:{background:"#f0f2f5","margin-top":"-20px",height:"100%"}},[s("div",{staticClass:"wscn-http404"},[s("div",{staticClass:"pic-404"},[s("img",{staticClass:"pic-404__parent",attrs:{src:this.img_500,alt:"500"}})]),this._v(" "),s("div",{staticClass:"bullshit"},[s("div",{staticClass:"bullshit__headline"},[this._v(this._s(this.message))]),this._v(" "),s("a",{staticClass:"bullshit__return-home",attrs:{href:"#/companyGroup"}},[this._v("返回首页")])])])])},staticRenderFns:[]};var c=i("VU/8")(n,r,!1,function(t){i("/4Tr")},"data-v-4bf06e19",null);s.default=c.exports}});
//# sourceMappingURL=3.6017c2d464a188e3cc3a.js.map
\ No newline at end of file
webpackJsonp([4],{AejC:function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var e=i("Minx"),a=i.n(e),n={name:"page404",data:function(){return{img_404:a.a}},computed:{message:function(){return"抱歉,你访问的页面不存在"}},mounted:function(){console.log(this.$route.path)}},c={render:function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticStyle:{background:"#f0f2f5","margin-top":"-20px",height:"100%"}},[s("div",{staticClass:"wscn-http404"},[s("div",{staticClass:"pic-404"},[s("img",{staticClass:"pic-404__parent",attrs:{src:this.img_404,alt:"404"}})]),this._v(" "),s("div",{staticClass:"bullshit"},[s("div",{staticClass:"bullshit__headline"},[this._v(this._s(this.message))]),this._v(" "),s("a",{staticClass:"bullshit__return-home",attrs:{href:"#/companyGroup"}},[this._v("返回首页")])])])])},staticRenderFns:[]};var r=i("VU/8")(n,c,!1,function(t){i("dqqc")},"data-v-12e12bd8",null);s.default=r.exports},Minx:function(t,s,i){t.exports=i.p+"static/img/error_404.bf58747.svg"},dqqc:function(t,s){}});
//# sourceMappingURL=4.c384492b24e03d00a718.js.map
\ No newline at end of file
webpackJsonp([6],{"4qCZ":function(e,t){},"5tgt":function(e,t,n){e.exports=function(e,t){return function(o){n("Opzk")("./"+e+"/"+t+".vue").then(function(e){o(e)})}}},"6jtR":function(e,t){},NHnr:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n("//Fk"),r=n.n(o),a=n("7+uW"),s={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{attrs:{id:"app"}},[t("transition",{attrs:{name:"fade",mode:"out-in"}},[t("router-view")],1)],1)},staticRenderFns:[]};var u=n("VU/8")({name:"App",data:function(){return{}}},s,!1,function(e){n("6jtR")},null,null).exports,i=n("/ocq"),c=n("5tgt"),f=n.n(c);a.default.use(i.a);var l=function(e){n.e(0).then(n.bind(null,"ODjX")).then(function(t){e(t)})};window.sessionStorage.getItem("token")&&store.commit(types.LOGIN,window.sessionStorage.getItem("token"));var p,d=[{path:"/index",name:"index",component:f()("index","index")},{path:"/staffRecordsTemplate",name:"员工档案设置",component:f()("contacts","staffRecordsTemplate")},{path:"/403",name:"无权访问",component:l},{path:"/404",name:"error404",component:l},{path:"/500",name:"error500",component:l},{path:"*",redirect:"/404",hidden:!0}],m=new i.a({routes:d,scrollBehavior:function(){return{y:0}}}),g=n("zL8q"),h=n.n(g),v=n("Rf8U"),k=n.n(v),w=n("mtWM"),x=n.n(w),j=n("bOdI"),O=n.n(j),R=n("NYxO");a.default.use(R.a);var b=new R.a.Store({state:{user:{},token:null,title:"",show:!1},mutations:(p={},O()(p,"login",function(e,t){sessionStorage.token=t,e.token=t}),O()(p,"logout",function(e){sessionStorage.removeItem("token"),e.token=null}),O()(p,"title",function(e,t){e.title=t}),O()(p,"show",function(e,t){e.show=t}),p)});n("4qCZ"),n("uKUT"),n("Xcu2");a.default.config.productionTip=!1,a.default.use(h.a,{size:"large"}),a.default.use(k.a,x.a),a.default.axios.defaults.withCredentials=!0,a.default.axios.interceptors.request.use(function(e){return e},function(e){return console.log("requesterr"+e),r.a.reject(e)}),a.default.axios.interceptors.response.use(function(e){return console.log("main:",e),200==e.status&&1==e.data.errorCode&&console.log("main:",e),e},function(e){if(console.log(e),e.response)switch(e.response.status){case 401:case 500:g.Message.error("服务器500")}return r.a.reject(e.response.data)}),m.beforeEach(function(e,t,n){"/"==e.path?n({path:"/login"}):n()}),new a.default({el:"#app",router:m,store:b,components:{App:u},template:"<App/>"})},Opzk:function(e,t,n){var o={"./contacts/staffRecordsTemplate.vue":["lFAe",1],"./errorPage/403.vue":["6XGN",2],"./errorPage/404.vue":["AejC",4],"./errorPage/500.vue":["FskK",3],"./errorPage/index.vue":["ODjX",0]};function r(e){var t=o[e];return t?n.e(t[1]).then(function(){return n(t[0])}):Promise.reject(new Error("Cannot find module '"+e+"'."))}r.keys=function(){return Object.keys(o)},r.id="Opzk",e.exports=r},Xcu2:function(e,t){},uKUT:function(e,t){}},["NHnr"]);
//# sourceMappingURL=app.b6992da8a0e11223eff1.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var r={},t={7: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],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"4d32899c3299cb95b130",1:"fdebea08f545ef001ed6",2:"39effb7cc468a8b90c44",3:"6017c2d464a188e3cc3a",4:"c384492b24e03d00a718"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),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="./",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.83297523b1f3ff04d447.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 317c60a97ed298f4e79c"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","7","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","0","1","2","3","4","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAA,SAAApB,GACA,IAAAqB,EAAAhB,EAAAL,GACA,OAAAqB,EACA,WAAAC,QAAA,SAAAC,GAA0CA,MAI1C,GAAAF,EACA,OAAAA,EAAA,GAIA,IAAAG,EAAA,IAAAF,QAAA,SAAAC,EAAAE,GACAJ,EAAAhB,EAAAL,IAAAuB,EAAAE,KAEAJ,EAAA,GAAAG,EAGA,IAAAE,EAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,UACAD,EAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EACAJ,EAAAK,QAAA,KAEArB,EAAAsB,IACAN,EAAAO,aAAA,QAAAvB,EAAAsB,IAEAN,EAAAQ,IAAAxB,EAAAyB,EAAA,aAAAtC,EAAA,KAAwEuC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,wBAAuI3C,GAAA,MAC/M,IAAAkC,EAAAU,WAAAC,EAAA,MAEA,SAAAA,IAEAhB,EAAAiB,QAAAjB,EAAAkB,OAAA,KACAC,aAAAd,GACA,IAAAe,EAAA5C,EAAAL,GACA,IAAAiD,IACAA,GACAA,EAAA,OAAAC,MAAA,iBAAAlD,EAAA,aAEAK,EAAAL,QAAAmD,GAKA,OAfAtB,EAAAiB,QAAAjB,EAAAkB,OAAAF,EAaAnB,EAAA0B,YAAAvB,GAEAL,GAIAX,EAAAwC,EAAA1C,EAGAE,EAAAyC,EAAAvC,EAGAF,EAAA0C,EAAA,SAAAtC,EAAAuC,EAAAC,GACA5C,EAAA6C,EAAAzC,EAAAuC,IACAjD,OAAAoD,eAAA1C,EAAAuC,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA5C,EAAAkD,EAAA,SAAA7C,GACA,IAAAuC,EAAAvC,KAAA8C,WACA,WAA2B,OAAA9C,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAA0C,EAAAE,EAAA,IAAAA,GACAA,GAIA5C,EAAA6C,EAAA,SAAAO,EAAAC,GAAsD,OAAA3D,OAAAC,UAAAC,eAAAC,KAAAuD,EAAAC,IAGtDrD,EAAAyB,EAAA,KAGAzB,EAAAsD,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.83297523b1f3ff04d447.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t7: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"4d32899c3299cb95b130\",\"1\":\"fdebea08f545ef001ed6\",\"2\":\"39effb7cc468a8b90c44\",\"3\":\"6017c2d464a188e3cc3a\",\"4\":\"c384492b24e03d00a718\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 317c60a97ed298f4e79c"],"sourceRoot":""}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
File added
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
<meta name=screen-orientation content=portrait>
<meta name=apple-mobile-web-app-capable content=yes>
<meta name=format-detection content="telephone=no">
<meta name=full-screen content=yes>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<meta name=renderer content=webkit>
<meta http-equiv=Pragma content=no-cache>
<meta http-equiv=Cache-Control content=no-cache>
<meta http-equiv=Expires content=0>
<meta name=x5-fullscreen content=true>
<meta content=yes name=apple-mobile-web-app-capable>
<meta content=yes name=apple-touch-fullscreen>
<meta content="telephone=no,email=no" name=format-detection>
<link rel="shortcut icon" href="./favicon.ico"/>
<title>好办 APP</title>
</head>
<body style="background-color: #f0f2f5;width: 100%;">
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
{
"name": "office-web",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "fairyly",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"element-ui": "^2.3.9",
"requset": "^1.0.5",
"script-loader": "^0.7.2",
"tinymce": "^4.8.3",
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"axios": "^0.18.0",
"babel-core": "^6.22.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"less": "^3.0.4",
"less-loader": "^4.1.0",
"node-notifier": "^5.1.2",
"node-sass": "^4.9.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-loader": "^7.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-axios": "^2.1.1",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"vuedraggable": "^2.16.0",
"vuex": "^3.0.1",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
<template>
<div id="app">
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
}
}
}
</script>
<style>
</style>
import Vue from 'vue'
import axios from 'axios';
import qs from 'qs';
import {Message} from 'element-ui'
Vue.axios.defaults.timeout = 15000;
var local = window.location.origin;
if (local.indexOf('localhost')!= -1) {
local = 'http://www.gicdev.com';
}
console.log(local)
Vue.axios.interceptors.request.use(config=> {
console.log(local)
return config;
}, err=> {
Message.error({message: '请求超时!'});
return Promise.resolve(err);
})
Vue.axios.interceptors.response.use(data=> {
console.log("response data:",data)
if (data.status && data.status == 200 && data.data.status == 'error') {
Message.error({message: data.data.msg});
return;
}
return data;
}, err=> {
console.log("response err:",err);
Message.error({message: err.response.message});
if (err.response.status == 504||err.response.status == 404) {
// window.location.href= local + "/gic-web/#/"
// Message.error({message: '服务异常⊙﹏⊙∥'});
} else if (err.response.status == 403) {
// window.location.href= local + "/gic-web/#/"
// Message.error({message: '权限不足,请联系管理员!'});
}else {
// window.location.href= local + "/gic-web/#/"
// Message.error({message: '未知错误!'});
}
return Promise.resolve(err);
})
// var localhost = window.location.protocol +'//'+ window.location.host
// console.log(localhost)
// let base = local + '/gicweb/cloudweb/';
const timeout = 15000;
let token = '';//sessionStorage.getItem('user');
/*
*
* 统一 get 请求方法
* @url: 请求的 url
* @params: 请求带的参数
* @header: 带 token
*
*/
export const getRequest = (url, params) => {
params.requestProject = "gic-clique";
return Vue.axios({
method: 'get',
url: `${local}${url}`,
data: {},
params: params,
headers: {'content-type': 'application/x-www-form-urlencoded'},// "token": token
});
}
/*
*
* 统一 post 请求方法
* url: 请求的 url
* @params: 请求带的参数
* @header: 带 token
*
*/
export const postRequest = (url, params) => {
params.requestProject = "gic-clique";
return Vue.axios({
method: 'post',
url: `${local}${url}`,
data: qs.stringify(params),
// params: params,
// paramsSerializer: function(params) {
// return QS.stringify(params, {arrayFormat: 'brackets'})
// },
// transformRequest: [function (data) {
// // Do whatever you want to transform the data
// console.log(data)
// data = JSON.stringify(data)
// return data;
// }],
// transformRequest: [
// function (data) { // 解决传递数组变成对象的问题
// Object.keys(data).forEach((key) => {
// if ((typeof data[key]) === 'object') {
// data[key] = JSON.stringify(data[key]) // 这里必须使用内置JSON对象转换
// }
// })
// data = qs.stringify(data) // 这里必须使用qs库进行转换
// return data
// }
// ],
headers: {'content-type': 'application/x-www-form-urlencoded'} //multipart/form-data{"token": token}
});
}
export const postJsonRequest = (url, params) => {
params.requestProject = "gic-clique";
return Vue.axios({
method: 'post',
url: `${local}${url}`,
data: "{}",
params: params,
// paramsSerializer: function(params) {
// return QS.stringify(params, {arrayFormat: 'brackets'})
// },
// transformRequest: [function (data) {
// // Do whatever you want to transform the data
// console.log(data)
// data = JSON.stringify(data)
// return data;
// }],
// transformRequest: [
// function (data) { // 解决传递数组变成对象的问题
// Object.keys(data).forEach((key) => {
// if ((typeof data[key]) === 'object') {
// data[key] = JSON.stringify(data[key]) // 这里必须使用内置JSON对象转换
// }
// })
// data = qs.stringify(data) // 这里必须使用qs库进行转换
// return data
// }
// ],
// withCredentials: true,
// credentials: 'same-origin',
headers: {'Content-Type': 'application/json;charset=UTF-8'} //multipart/form-data{"token": token}
});
}
/*
* method: 'post'
* 'Content-Type': 'application/json;charset=UTF-8'
* @data: params
* @requestProject: 'gic-clique'
*
*/
export const postJson = (url, params) => {
// params.requestProject = "gic-clique";
return Vue.axios({
method: 'post',
url: `${local}${url}`,
data: params,
params: {requestProject:'gic-clique'},
// withCredentials: true,
// credentials: 'same-origin',
headers: {'Content-Type': 'application/json;charset=UTF-8'} //multipart/form-data{"token": token}
});
}
/*
* method: 'post'
* data: params
*
*/
export const postForm = (url, params) => {
params.requestProject = "gic-clique";
return Vue.axios({
method: 'post',
url: `${local}${url}`,
data: params,
// params: params,
// paramsSerializer: function(params) {
// return QS.stringify(params, {arrayFormat: 'brackets'})
// },
// transformRequest: [function (data) {
// // Do whatever you want to transform the data
// console.log(data)
// data = JSON.stringify(data)
// return data;
// }],
// transformRequest: [
// function (data) { // 解决传递数组变成对象的问题
// Object.keys(data).forEach((key) => {
// if ((typeof data[key]) === 'object') {
// data[key] = JSON.stringify(data[key]) // 这里必须使用内置JSON对象转换
// }
// })
// data = qs.stringify(data) // 这里必须使用qs库进行转换
// return data
// }
// ],
headers: {} //'content-type': 'application/x-www-form-urlencoded'multipart/form-data{"token": token}
});
}
import * as api from './api';
export default api;
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 400 335" style="enable-background:new 0 0 400 335;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FAFCFF;}
.st1{fill:#DBE5F1;}
.st2{fill:#DEE7F4;}
.st3{fill:#B9C7DB;}
.st4{fill:#FFFFFF;}
.st5{fill:none;stroke:#B9C7DB;stroke-width:4;stroke-miterlimit:10;}
.st6{fill:none;stroke:#B6C7D8;stroke-miterlimit:10;}
</style>
<path class="st5" d="M274.5,241.3c-5.3-5.3-4.4,4.4-6.7,6.7c-3.1,3.1-6.3,6-9.7,8.6H125.2c-3.4-2.7-6.6-5.6-9.7-8.7
c-28.4-28.5-38.6-70.5-26.6-109l-10.5-10.6c-5.3-5.3-5.3-13.8,0-19.2c5.2-5.3,13.7-5.3,19-0.1c0,0,0,0,0.1,0.1l6.6,6.8
c3.1,3.2,8.2,3.2,11.4,0l0,0c3.2-3.2,3.2-8.3,0-11.5L103.1,92c-3.2-3.2-3.2-8.3,0-11.5c3.1-3.2,8.2-3.2,11.4,0l0,0l17.2,17.2
c-0.9,3.7,0.9,7.6,4.4,9.3c3.5,1.7,7.7,0.6,9.9-2.5c2.3-3.1,2.1-7.4-0.5-10.3c-3.3-3.8-6.5-7.2-6.5-7.2l-7.3-7.4
c34.8-21.3,82.6-21.7,117.2,0c34.5,21.7,53.9,61.2,50,101.9l15.4,15.6c3.2,3.2,3.2,8.3,0,11.5c-3.1,3.2-8.2,3.2-11.4,0l0,0
l-15.1-15.3c-3.1-3.2-8.2-3.2-11.4,0l0,0c-3.2,3.2-3.2,8.3,0,11.5l17.1,17.2c5.2,5.3,5.2,13.8,0,19.1
C288.4,246.6,279.9,246.6,274.5,241.3C274.6,241.3,274.6,241.3,274.5,241.3L274.5,241.3z"/>
<path class="st3" d="M86.6,71.4c0,4.7,3.8,8.5,8.5,8.5c1.5,0,3-0.4,4.3-1.1c4.1-2.3,5.5-7.5,3.1-11.6c-1.5-2.6-4.3-4.3-7.4-4.3
C90.4,62.9,86.6,66.7,86.6,71.4"/>
<path class="st3" d="M216.4,145.4h24.3l-7.4,17.9c2.6,1.8,4.5,3.8,5.8,6c1.2,2.2,1.9,4.8,1.9,7.8c0,4.6-1.6,8.4-4.8,11.2
c-3.2,2.9-7.3,4.3-12.3,4.3c-2.5,0-5.1-0.4-7.5-1.1v-13.1c2,0.9,3.9,1.4,5.5,1.4s2.9-0.5,3.7-1.4c0.9-1,1.3-2.3,1.3-4.1
c0-1.9-0.8-3.4-2.4-4.6c-1.6-1.2-3.7-1.7-6.4-1.7l3.4-9.1h-5.1V145.4L216.4,145.4z M207.5,181.6c0,1.5-0.3,3-0.8,4.3
s-1.3,2.5-2.3,3.5s-2.2,1.8-3.4,2.3c-1.3,0.6-2.8,0.9-4.3,0.9h-9.6c-1.5,0-2.9-0.3-4.3-0.9c-1.3-0.6-2.5-1.3-3.4-2.3
c-0.4-0.4-0.8-0.9-1.2-1.4l11.7-17.3v6c0,0.6,0.2,1.1,0.6,1.4c0.4,0.4,0.8,0.6,1.4,0.6c1.1,0,2-0.8,2-1.9v-0.1v-11.9l10.9-16.1
c1.8,2,2.8,4.6,2.7,7.3L207.5,181.6L207.5,181.6L207.5,181.6z M177.1,185.9c-0.6-1.4-0.9-2.8-0.8-4.3V156c0-1.5,0.3-3,0.8-4.3
s1.3-2.5,2.3-3.5s2.2-1.8,3.4-2.3c1.3-0.6,2.8-0.9,4.3-0.9h9.6c1.5,0,2.9,0.3,4.3,0.9c1.3,0.5,2.4,1.3,3.4,2.3l-10.5,15.4v-2.7
c0-0.5-0.2-1.1-0.6-1.4c-0.4-0.4-0.9-0.6-1.4-0.6c-1.1,0-2,0.8-2,1.9v0.1v8.6l-12.1,17.9C177.5,186.9,177.3,186.4,177.1,185.9
L177.1,185.9z M243.8,192.7c3.5-7.4,5.3-15.5,5.3-23.7c0-30.5-24.4-55.2-54.6-55.2s-54.6,24.7-54.6,55.2c0,0.4,0,0.8,0,1.1
l19.6-24.6h11.4L154,171.3h5.5v-6.5l11.7-18.5v46.8h-11.7v-9.8h-17.8c5.1,19.2,20.1,34.3,39.2,39.2c-1.2,3.1-4.8,10.7-10.7,12
c-7.3,1.7,19.9,0.4,39.4-12.5c14.9-4.4,27.2-15,33.9-28.9L243.8,192.7L243.8,192.7z"/>
<path class="st4" d="M238.9,154.3l-24.4,35.4l0.5,0.3l24.4-35.4L238.9,154.3z"/>
<path class="st3" d="M266.2,66.6h8c0.7,0,1.3,0.6,1.3,1.3l0,0c0,0.4-0.1,0.7-0.4,1c-0.2,0.3-0.6,0.4-0.9,0.4h-8
c-0.4,0-0.7-0.1-0.9-0.4c-0.5-0.5-0.5-1.4,0-1.9C265.5,66.7,265.8,66.6,266.2,66.6 M116.5,201.9c-4.4,0-8,3.6-8,8.1s3.6,8.1,8,8.1
s8-3.6,8-8.1S120.9,201.9,116.5,201.9L116.5,201.9z M121.4,212.1c-0.8,2-2.8,3.3-4.9,3.3c-3,0-5.3-2.4-5.3-5.4c0-2.2,1.3-4.1,3.3-5
c2-0.8,4.3-0.4,5.8,1.2C121.8,207.7,122.2,210,121.4,212.1L121.4,212.1z M191.3,78.7c-4.4,0-8,3.6-8,8.1s3.6,8.1,8,8.1
c2.1,0,4.2-0.9,5.7-2.4s2.3-3.6,2.3-5.7C199.3,82.4,195.7,78.7,191.3,78.7z M196.3,88.9c-0.8,2-2.8,3.3-4.9,3.3
c-3,0-5.3-2.4-5.3-5.4c0-2.2,1.3-4.2,3.3-5s4.3-0.4,5.8,1.2C196.6,84.6,197.1,86.9,196.3,88.9L196.3,88.9z M270.2,162.6
c-4.4,0-8,3.6-8,8.1s3.6,8.1,8,8.1s8-3.6,8-8.1C278.2,166.3,274.6,162.6,270.2,162.6z M275.1,172.8c-0.8,2-2.8,3.3-4.9,3.3
c-3,0-5.3-2.4-5.3-5.4c0-2.2,1.3-4.2,3.3-5s4.3-0.4,5.8,1.2S275.9,170.8,275.1,172.8z M230.1,31.4c-4.4,0-8,3.6-8,8.1s3.6,8.1,8,8.1
c2.1,0,4.2-0.9,5.7-2.4s2.3-3.6,2.3-5.7C238.1,35,234.5,31.4,230.1,31.4z M235,41.6c-0.8,2-2.8,3.3-4.9,3.3c-3,0-5.3-2.4-5.3-5.4
c0-2.2,1.3-4.2,3.3-5s4.3-0.4,5.8,1.2C235.4,37.2,235.8,39.5,235,41.6z"/>
<path class="st3" d="M163.2,45.9h8.2c0.4,0,0.7,0.1,1,0.4c0.5,0.5,0.5,1.3,0,1.9l0,0c-0.3,0.3-0.6,0.4-1,0.4h-8.2
c-0.4,0-0.7-0.1-1-0.4c-0.5-0.5-0.5-1.3,0-1.9l0,0C162.4,46.1,162.8,45.9,163.2,45.9 M271.7,63.5v8c0,0.4-0.1,0.7-0.4,0.9
c-0.3,0.3-0.6,0.4-1,0.4c-0.7,0-1.4-0.6-1.4-1.3l0,0v-8c0-0.4,0.1-0.7,0.4-0.9c0.5-0.5,1.4-0.5,1.9,0
C271.6,62.8,271.7,63.2,271.7,63.5"/>
<path class="st3" d="M107.4,154.8h8.2c0.4,0,0.7,0.1,1,0.4c0.3,0.2,0.4,0.6,0.4,0.9c0,0.7-0.6,1.3-1.4,1.3h-8.2
c-0.5,0-0.9-0.3-1.2-0.7c-0.2-0.4-0.2-0.9,0-1.3C106.4,155.1,106.9,154.8,107.4,154.8 M169,42.7v8c0,0.4-0.1,0.7-0.4,0.9
c-0.5,0.5-1.4,0.5-2,0c-0.2-0.2-0.4-0.6-0.4-0.9v-8c0-0.4,0.1-0.7,0.4-0.9c0.5-0.5,1.4-0.5,1.9,0C168.8,42,169,42.3,169,42.7"/>
<path class="st3" d="M230.9,110.3h8.1c0.7,0,1.3,0.6,1.3,1.4c0,0.7-0.6,1.3-1.3,1.4h-8.1c-0.8,0-1.4-0.6-1.4-1.4
c0-0.4,0.1-0.7,0.4-1C230.2,110.4,230.6,110.3,230.9,110.3"/>
<path class="st3" d="M114.6,163.8v8.2c0,0.4-0.1,0.7-0.4,1c-0.5,0.5-1.4,0.5-1.9,0c-0.3-0.3-0.4-0.6-0.4-1v-8.2c0-0.4,0.1-0.7,0.4-1
c0.5-0.5,1.4-0.5,1.9,0l0,0C114.4,163.1,114.6,163.4,114.6,163.8"/>
<path class="st1" d="M126,272.7h60.4c0.7,0,1.3,0.6,1.3,1.3l0,0c0,0.7-0.6,1.3-1.3,1.4H126c-0.7,0-1.3-0.6-1.3-1.3
C124.7,273.3,125.3,272.7,126,272.7"/>
<path class="st1" d="M218.6,272.7h34.9c0.7,0,1.3,0.6,1.3,1.3c0,0.7-0.6,1.3-1.3,1.3h-34.9c-0.7,0-1.3-0.6-1.4-1.3
c0-0.4,0.1-0.7,0.4-1C217.9,272.9,218.2,272.7,218.6,272.7"/>
<path class="st1" d="M158.2,282.2h131.5c0.7,0,1.3,0.6,1.4,1.3c0,0.4-0.1,0.7-0.4,1c-0.3,0.3-0.6,0.4-1,0.4H158.2
c-0.7,0-1.3-0.6-1.3-1.3l0,0C156.9,282.8,157.5,282.2,158.2,282.2"/>
<path class="st1" d="M93.8,282.2h34.9c0.7,0,1.3,0.6,1.3,1.3l0,0c0,0.7-0.6,1.3-1.3,1.4l0,0H93.8c-0.7,0-1.3-0.6-1.4-1.3
c0-0.4,0.1-0.7,0.4-1C93.1,282.3,93.5,282.2,93.8,282.2"/>
<path class="st1" d="M197.1,272.7h8.1c0.7,0,1.3,0.6,1.3,1.3c0,0.7-0.6,1.3-1.3,1.3h-8.1c-0.7,0.1-1.4-0.5-1.4-1.3
c-0.1-0.7,0.5-1.4,1.3-1.4C197,272.7,197.1,272.7,197.1,272.7"/>
<path class="st1" d="M284.4,264.6h8.1c0.7,0,1.3,0.6,1.3,1.3l0,0c0,0.7-0.6,1.3-1.3,1.3h-8.1c-0.7,0-1.3-0.6-1.3-1.3
C283,265.3,283.6,264.6,284.4,264.6"/>
<path class="st1" d="M99.2,264.6h171.7c0.4,0,0.7,0.1,0.9,0.4c0.4,0.4,0.5,1,0.3,1.5c-0.2,0.5-0.7,0.8-1.2,0.8H99.1
c-0.7,0-1.3-0.6-1.3-1.3C97.8,265.3,98.4,264.6,99.2,264.6"/>
<path class="st3" d="M235,95.8v8.1c0,0.7-0.6,1.3-1.3,1.3s-1.3-0.6-1.3-1.3v-8.1c0-0.7,0.6-1.3,1.3-1.4C234.4,94.4,235,95,235,95.8"
/>
</svg>
This source diff could not be displayed because it is too large. You can view the blob instead.
/* 后台返回消息提示 */
import { Message } from 'element-ui';
// 后台返回异常提示
export default {
errorMsg: function(response) {
var local = window.location.origin;
if (local.indexOf('localhost')) {
local = 'http://gicdev.demogic.com';
}
console.log(response)
if (response.errorCode != 0) {
if (response.errorCode == 401) {
// window.location.href = local + "/gic-web/#/";
return false;
}
Message.error({
duration: 1000,
message: response.message
})
}
}
}
// 防抖
export function _debounce(fn, delay) {
var delay = delay || 200;
var timer;
// console.log(fn)
return function () {
var that = this;
var args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function () {
timer = null;
fn.apply(that, args);
}, delay);
};
}
// 节流
export function _throttle(fn, interval) {
var last;
var timer;
var interval = interval || 200;
return function () {
var that = this;
var args = arguments;
var now = +new Date();
if (last && now - last < interval) {
clearTimeout(timer);
timer = setTimeout(function () {
last = now;
fn.apply(that, args);
}, interval);
} else {
last = now;
fn.apply(that, args);
}
}
}
/* 消息提示 */
import { Message } from 'element-ui';
export default {
showmsg: function(msg,type) {
Message({
duration: 1000,
message: msg,
type: type
})
}
};
/**
* 判断字符长度
* @param: str
*/
export default {
/**
* 一个汉字算两个字符,一个英文字母或数字算一个字符
*/
getByteLen: function(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null) {
len += 2;
}
else {
len += 1;
}
}
return len;
},
/**
* 一个汉字算一个字,一个英文字母或数字算半个字
*/
getZhLen: function (val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null) {
len += 1;
}
else {
len += 0.5;
}
}
return Math.ceil(len);
},
/*暂无用*/
cutStr: function(str, len,type){
var char_length = 0;
for (var i = 0; i < str.length; i++){
var son_str = str.charAt(i);
if(type==1) {
encodeURI(son_str).length > 2 ? char_length += 1 : char_length += 0.5;
}
if(type==2) {
char_length += 1 ;
}
if (char_length >= len){
var sub_len = char_length == len ? i+1 : i;
return str.substr(0, sub_len);
}
}
},
/**
* 限制字数用, 一个汉字算一个字,两个英文/字母算一个字
*/
getByteVal: function(val, max) {
var returnValue = '';
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null)
byteValLen += 1;
else
byteValLen += 0.5;
if (byteValLen > max)
break;
returnValue += val[i];
}
return returnValue;
},
/**
* 限制字符数用, 一个汉字算两个字符,一个英文/字母算一个字符
*/
getCharVal: function (val, max) {
var returnValue = '';
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null)
byteValLen += 2;
else
byteValLen += 1;
if (byteValLen > max)
break;
returnValue += val[i];
}
return returnValue;
},
/**
* 正则校验,校验非负数字
*/
regPos: function(v) {
var regTest = /^\d+(\.\d+)?$/;
return regTest.test(v);
}
}
/*
* 时间日期转换
* @param: "10:00-22:00"/ new Date()
*/
export default {
/*
* var storeBusinessTime="10:00-22:00" to
*/
timeToDate: function(val) {
var date = new Date()
var y = date.getFullYear();
var m = date.getMonth() +1;
var day = date.getDate();
var d = [],newArr = [];
var dArr = val.split('-');
dArr.forEach(function(ele,index){
newArr.push(ele.split(':'))
})
d = [new Date(y,m,day,newArr[0][0],newArr[0][1]),new Date(y,m,day,newArr[1][0],newArr[1][1])]
return d;
},
dateToTime(val) {
console.log(val)
// (0-9)年月数字的显示
function formatDig(num) {
return num > 9 ? '' + num : '0' + num;
}
var t;
var t1 = formatDig(new Date(val[0]).getHours())+':'+formatDig(new Date(val[0]).getMinutes())
var t2 = formatDig(new Date(val[1]).getHours())+':'+formatDig(new Date(val[1]).getMinutes())
t= t1+'-'+t2
return t;
}
}
var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
var DEFAULT_PATTERN = 'yyyy-MM-dd';
function padding(s, len) {
var len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; }
return s;
};
export default {
getQueryStringByName: function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
},
formatDate: {
format: function (date, pattern) {
pattern = pattern || DEFAULT_PATTERN;
return pattern.replace(SIGN_REGEXP, function ($0) {
switch ($0.charAt(0)) {
case 'y': return padding(date.getFullYear(), $0.length);
case 'M': return padding(date.getMonth() + 1, $0.length);
case 'd': return padding(date.getDate(), $0.length);
case 'w': return date.getDay() + 1;
case 'h': return padding(date.getHours(), $0.length);
case 'm': return padding(date.getMinutes(), $0.length);
case 's': return padding(date.getSeconds(), $0.length);
}
});
},
parse: function (dateString, pattern) {
var matchs1 = pattern.match(SIGN_REGEXP);
var matchs2 = dateString.match(/(\d)+/g);
if (matchs1.length == matchs2.length) {
var _date = new Date(1970, 0, 1);
for (var i = 0; i < matchs1.length; i++) {
var _int = parseInt(matchs2[i]);
var sign = matchs1[i];
switch (sign.charAt(0)) {
case 'y': _date.setFullYear(_int); break;
case 'M': _date.setMonth(_int - 1); break;
case 'd': _date.setDate(_int); break;
case 'h': _date.setHours(_int); break;
case 'm': _date.setMinutes(_int); break;
case 's': _date.setSeconds(_int); break;
}
}
return _date;
}
return null;
}
}
};
<template>
<div class="searh-menu-container">
<div class="p-0-15">
<el-input prefix-icon="el-icon-search" v-model="searchKey" placeholder="请输入内容" clearable @clear="clearFn" @keyup.enter.native="searchFn"></el-input>
<el-tree
v-if="!searchResultShow"
class="search-menu"
node-key="id"
:default-expanded-keys="defaultOpen"
:data="menuData"
:highlight-current="true"
:expand-on-click-node="false"
:props="myProps"
@node-click="handleNodeClick">
<span class="custom-tree-node" slot-scope="{ node, data }">
<i class="iconfont" :class="node.level == 1 ? 'icon-2zuzhijiagou' : 'icon-tongshi-zuzhijiagou'"></i>
<span>{{ node.label }}</span>
</span>
</el-tree>
</div>
<div class="search-result-container" v-if="searchResultShow">
<ul class="search-result-ul">
<p class="title">部门列表</p>
<li class="group-item items">
<i class="iconfont icon-tongshi-zuzhijiagou"></i>
人事部
</li>
<li class="group-item items">
<i class="iconfont icon-tongshi-zuzhijiagou"></i>
人事部
</li>
</ul>
<ul class="search-result-ul">
<p class="title">人员列表</p>
<li class="person-item items">
<i class="iconfont icon-chengyuan"></i>
陈景良
<span class="from-group">人事部</span>
</li>
<li class="person-item items">
<i class="iconfont icon-chengyuan"></i>
陈景良
<span class="from-group">人事部</span>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: "searchMenu",
components: {},
props: {
treeData: {
type: Array,
required: true
}
},
data() {
return {
searchKey: "",
searchResultShow: false,
myProps: {
children: 'childrens',
label: 'label',
disabled: "disabled"
},
menuData: [],
defaultOpen: []
};
},
created() {
// this.sortGroupByLevel();
},
methods: {
/**
* 清楚输入框
*/
clearFn() {
this.searchResultShow = false;
},
/**
* 关键字搜索
*/
searchFn() {
if (this.searchKey == "") {
this.searchResultShow = false;
return false;
}
this.searchResultShow = true;
// console.log(this.searchKey);
this.$emit("handleSearchKey", this.searchKey);
},
/**
* 树形菜单选择
*/
handleNodeClick(obj, node) {
// console.log(obj, node);
this.$emit("handleTreeSelection", obj, node);
},
/**
* 按层级排序部门
* fixme 现在代码是将每个层级都剥离了出来,为的是适用后面可能出现的需求,但是如果后期需求无特殊更改,本代码可优化精简
*/
sortGroupByLevel(list) {
let that = this;
var arr = {
list0: {},
list1: {},
list2: {},
list3: {},
list4: {},
list5: {},
list6: {},
list: list,
listObj: {}
},
key,
obj2,
key2,
parent,
idOfLevel0,
parentLevel;
list.length && list.forEach(obj => {
obj.name = obj.name || "";
obj.disabled = true;
obj.label = obj.name || "";
obj.id = obj.groupId || "";
obj.englishName = obj.englishName || "";
obj.level = obj.level;
obj.groupId = obj.groupId || "";
obj.parentId = obj.parentId || "";
key = obj.groupId;
if (arr["list" + obj.level]) {
arr["list" + obj.level][key] = obj;
arr["list" + obj.level][key]["children"] = {};
}
if (obj.level == 0) {
idOfLevel0 = obj.groupId;
}
});
for (let level = 6; level > 0; level--) {
for (let item in arr["list" + level]) {
obj2 = arr["list" + level][item];
parentLevel = level - 1;
parent = arr["list" + parentLevel][obj2.parentId];
if (!parent) {
continue;
}
key2 = obj2.groupId;
if (!parent.hasOwnProperty("childrens")) {
parent["childrens"] = [];
}
parent["children"][key2] = obj2;
parent["childrens"].push(obj2);
}
}
arr.listObj = Object.assign({}, arr.list0, arr.list1, arr.list2, arr.list3, arr.list4, arr.list5, arr.list6);
let menuArr = [];
for (let key in arr.list0) {
menuArr.push(arr.list0[key]);
that.defaultOpen.push(key);
}
that.menuData = menuArr;
console.log(that.menuData);
}
},
filter: {},
computed: {},
watch: {
treeData(newArr, old) {
// console.log(old, newArr, "newarr");
this.sortGroupByLevel(newArr);
}
}
};
</script>
<style lang="scss">
.searh-menu-container {
overflow-y: auto;
overflow-x: auto;
width: 260px;
background: #eef1f8;
height: 690px;
padding: 20px 0;
box-sizing: border-box;
.p-0-15 {
padding: 0 15px;
}
.search-menu {
margin-top: 30px;
color: #606266;
font-size: 14px;
background: #EEF1F8;
min-width: 100%;
display:inline-block !important;
.el-tree-node {
.el-tree-node__content {
height: 36px;
.iconfont {
color: #409EFF;
margin-right: 5px;
}
&:hover {
color: #fff;
background: #409EFF;
.iconfont {
color: #fff;
}
}
}
}
}
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
background: #409EFF;
color: #fff;
.iconfont {
color: #fff;
}
}
.search-result-ul {
font-size: 14px;
color: #606266;
.title {
padding: 15px;
color: #303133;
}
li.items {
padding: 15px;
background: #fff;
box-sizing: border-box;
border-bottom: 1px solid #E4E7ED;
cursor: pointer;
.iconfont {
color: #409EFF;
}
.from-group {
float: right;
}
}
}
}
</style>
<!--
限制输入框组件
<limitInput
:inputWidth="500"
:limitClass="'limit-color'"
:disflag='!childItem.fieldEdited'
:inputValue.sync="ruleForm.addressDetail"
:holder="'请输入详细地址'"
:getByType="'word'"
:maxLength="40">
</limitInput>
-->
<template>
<div :class="['input-line-cell',limitClass]" :style="{width: inputWidth + 'px'}">
<el-input
:style="{width: inputWidth + 'px'}"
v-model="itemValue"
:disabled='disflag'
:placeholder="holder"
@focus="inputFocus()"
@keyup.native="(value) => toInput(value)">
</el-input>
<span class="tip"><span class="len_span">{{inputNum}}</span>/{{limitLength}}</span>
</div>
</template>
<script>
import strLength from '@/common/js/strlen';
export default {
name: "limitinput",
props: {
inputValue: {// 传入 input value
type: String,
default: ''
},
maxLength: {// 限制长度
type: Number,
default: 10
},
inputWidth: {// input 长度
type: Number,
default: 500
},
getByType: { // 字或字符判断类型
type: String,
default: 'word' // word: 字, char: 字符
},
holder: {
type: String,
default: '请输入'
},
disflag: {
type: Boolean,
default: false
},
limitClass: {
type: String,
default: ''
},
},
data() {
return {
inputNum: 0,
limitLength: 10,
itemValue: '',
}
},
methods: {
inputFocus(num) {
const that = this
},
// 输入
toInput: function(value) {
const that = this;
let temp = '';
if (that.getByType == 'word') {
temp = strLength.getByteVal(value.target.value,that.limitLength)
that.itemValue= temp.trim()
that.inputNum = strLength.getZhLen(that.itemValue);
}else {
temp = strLength.getCharVal(value.target.value,that.limitLength)
that.itemValue= temp.trim()
that.inputNum = strLength.getByteLen(that.itemValue);
}
that.$emit('update:inputValue',that.itemValue)
},
},
watch: {
maxLength: function(newData,oldData){
const that = this;
that.limitLength = newData
},
inputValue: function(newData,oldData){
const that = this;
that.itemValue = newData
that.inputNum = strLength.getZhLen(that.itemValue)
},
},
/* 接收数据 */
mounted(){
const that = this;
that.limitLength = that.maxLength;
that.itemValue = that.inputValue || '';
that.inputNum = strLength.getZhLen(that.inputValue);
},
}
</script>
<style lang="less" scoped>
.input-line-cell {
position: relative;
display: inline-block;
&.limit-color {
.tip {
color: rgba(255,255,255,0.7);
}
}
}
.w-340 {
width: 340px;
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
.el-input {
/deep/ .el-input__inner {
font-size: 12px;
color: #606266;
background-color: rgba(255,255,255,.1);
}
.is-disabled{
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
}
.tip {
position: absolute;
top: 2px;
right: 10px;
display: inline-block;
line-height: 32px;
text-align: right;
font-size: 12px;
color: #909399;
}
</style>
<!--
限制文本框组件
<limit-textarea
:inputWidth="500"
:inputValue.sync="ruleForm.addressDetail"
:holder="'请输入详细地址'"
:getByType="'word'"
:maxLength="40">
</limit-textarea>
-->
<template>
<div class="input-line-cell" :style="{width: inputWidth + 'px'}">
<el-input
:style="{width: inputWidth + 'px'}"
v-model="itemValue"
:placeholder="holder"
type="textarea"
:rows="3"
@focus="inputFocus()"
@keyup.native="(value) => toInput(value)">
</el-input>
<span class="tip"><span class="len_span">{{inputNum}}</span>/{{limitLength}}</span>
</div>
</template>
<script>
import strLength from '@/common/js/strlen';
export default {
name: "limittextarea",
props: {
inputValue: {// 传入 input value
type: String,
default: ''
},
maxLength: {// 限制长度
type: Number,
default: 10
},
inputWidth: {// input 长度
type: Number,
default: 500
},
getByType: { // 字或字符判断类型
type: String,
default: 'word' // word: 字, char: 字符
},
holder: {
type: String,
default: '请输入'
}
},
data() {
return {
inputNum: 0,
limitLength: 10,
itemValue: '',
}
},
methods: {
inputFocus(num) {
const that = this
console.log(num)
},
// 输入
toInput: function(value) {
const that = this;
console.log(value)
let temp = '';
if (that.getByType == 'word') {
temp = strLength.getByteVal(value.target.value,that.limitLength)
that.itemValue= temp.trim()
that.inputNum = strLength.getZhLen(that.itemValue);
}else {
temp = strLength.getCharVal(value.target.value,that.limitLength)
that.itemValue= temp.trim()
that.inputNum = strLength.getByteLen(that.itemValue);
}
that.$emit('update:inputValue',that.itemValue)
},
},
watch: {
maxLength: function(newData,oldData){
const that = this;
that.limitLength = newData
},
inputValue: function(newData,oldData){
const that = this;
that.itemValue = newData
that.inputNum = strLength.getZhLen(that.itemValue)
},
},
/* 接收数据 */
mounted(){
const that = this;
that.limitLength = that.maxLength;
that.itemValue = that.inputValue || '';
that.inputNum = strLength.getZhLen(that.inputValue);
},
}
</script>
<style lang="less" scoped>
.input-line-cell {
position: relative;
display: inline-block;
}
.w-340 {
width: 340px;
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
.el-input {
/deep/ .el-textarea__inner {
font-size: 12px;
color: #606266;
background-color: rgba(255,255,255,.1);
resize: none;
}
.is-disabled{
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
}
.tip {
position: absolute;
bottom: -28px;
right: 10px;
display: inline-block;
line-height: 32px;
text-align: right;
font-size: 12px;
color: #909399;
}
</style>
<template>
<div class="input-line-cell">
<el-input class="w-340" v-model="itemValue" placeholder="" :disabled="disableInput==0? false: true" @focus="inputFocus(c3Index)" @keyup.native="(value) => toInput(value)"></el-input>
<span class="tip"><span class="len_span">{{inputNum}}</span>/{{limitLength}}</span>
</div>
</template>
<script>
import strLength from '@/common/js/strlen';
export default {
name: "addinput",
props: {
childItem: String, // 传入是不是 k303(原C3)
childIndex: Number, // 传入的 k303(原C3) 索引
titleName: String, //传入的标题子段
inputValue: String, // 传入 input value
maxLength: Number, // 限制长度
disFlag: Number, // 禁用标志,0: false,1: true
child: String, // 传入的子级标题
},
data() {
return {
inputNum: 0,
limitLength: 10,
itemValue: '',
disableInput: false,
c3Flag: '',
c3Index: '',
titleFlag: '',
childFlag: '',
}
},
methods: {
inputFocus(num) {
var that = this
console.log(num)
},
// 输入
toInput: function(value) {
var that = this;
console.log(value)
var temp = '';
var temp = strLength.getByteVal(value.target.value,that.limitLength)
// console.log(temp)
that.itemValue= temp.trim()
that.inputNum = strLength.getZhLen(that.itemValue);
// 如果是子级
if (!!that.childFlag) {
var obj = {}
obj.child = that.childFlag
obj.value = that.itemValue;
if (that.titleFlag == 'title') {
obj.title = that.titleFlag;
}
if (that.c3Flag == 'k303') {
obj.c3Index = that.c3Index;
obj.flag = that.c3Flag;
}
that.$emit('itemInput',obj)
return;
}
// 如果是标题
if (that.titleFlag == 'title') {
var obj = {}
obj.value = that.itemValue;
obj.title = that.titleFlag;
that.$emit('itemInput',obj)
return;
}
// console.log(that.inputNum )
if (that.c3Flag == 'k303') {
var obj = {}
obj.value = that.itemValue;
obj.flag = that.c3Flag;
obj.c3Index = that.c3Index;
that.$emit('itemInput',obj)
return;
}
that.$emit('itemInput',that.itemValue)
},
},
watch: {
maxLength: function(newData,oldData){
var that = this;
that.limitLength = newData
},
inputValue: function(newData,oldData){
var that = this;
that.itemValue = newData
that.inputNum = strLength.getZhLen(that.itemValue)
},
disFlag: function(newData,oldData){
var that = this;
that.disableInput = newData
},
childItem: function(newData,oldData){
var that = this;
that.c3Flag = newData
},
childIndex: function(newData,oldData){
var that = this;
that.c3Index = newData
},
titleName: function(newData,oldData){
var that = this;
that.titleFlag = newData
},
child: function(newData,oldData){
var that = this;
that.childFlag = newData
},
},
/* 接收数据 */
mounted(){
var that = this;
console.log(that.childIndex)
that.limitLength = that.maxLength;
that.itemValue = that.inputValue || '';
that.inputNum = strLength.getZhLen(that.inputValue);
that.disableInput = that.disFlag || 0;
that.c3Flag = that.childItem || '';
that.c3Index = that.childIndex==0? 0: that.childIndex;
that.titleFlag = that.titleName
that.childFlag = that.child
},
}
</script>
<style lang="less" scoped>
.input-line-cell {
display: inline-block;
}
.w-340 {
width: 340px;
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
.el-input {
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
.is-disabled{
/deep/ .el-input__inner {
font-size: 12px;
color: #fff;
background-color: rgba(255,255,255,.1);
}
}
}
.edit-item {
color:#fff;
.tip {
margin-left: -47px;
color: rgba(255,255,255,0.7);
width: 30px;
display: inline-block;
text-align: right;
margin-right: 10px;
font-size: 12px;
}
}
</style>
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI ,{ Message } from 'element-ui'
import VueAxios from 'vue-axios'
import axios from 'axios'
import store from './store/store'
import * as types from './store/types'
import '../static/css/index.less'
// import 'element-ui/lib/theme-chalk/index.css'
import '../static/font/iconfont.css'
import '../theme/index.css'
Vue.config.productionTip = false;
Vue.use(ElementUI,{size: 'large'});
Vue.use(VueAxios,axios);
Vue.axios.defaults.withCredentials = true ;// 跨域cookie访问
Vue.axios.interceptors.request.use(
config => {
return config;
},
err => {
console.log('requesterr' + err);
return Promise.reject(err);
});
Vue.axios.interceptors.response.use(
response => {
console.log("main:",response);
if(response.status == 200 && response.data.errorCode == 1) {
// router.replace({
// path: 'login',
// query: {redirect: router.currentRoute.fullPath}
// })
console.log("main:",response);
}
return response;
},
error => {
console.log(error);
if (error.response) {
switch (error.response.status) {
case 401:
// 401 清除token信息并跳转到登录页面
// store.commit(types.LOGOUT);
// router.replace({
// path: 'login',
// query: {redirect: router.currentRoute.fullPath}
// });
// window.location.href = window.location.origin + '/gic-web/#/';
case 500:
Message.error('服务器500')
}
}
return Promise.reject(error.response.data)
});
router.beforeEach((to, from, next) => {
// if (window.location.pathname.slice(-1) !== '/') {
// window.location = window.location.pathname + '/';
// }
if (to.path == '/') {
next({ path: '/login' })
} else {
next()
}
})
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
});
module.exports = (parantfile,file) => (r) => {
import('views/'+ parantfile + '/' + file + '.vue').then((module) => {
r(module)
})
}
import Vue from 'vue'
import Router from 'vue-router'
import _import from './_import.js'
Vue.use(Router);
// const error403 = (r) => {
// import('views/errorPage/403.vue').then((module) => {
// r(module)
// })
// };
// const error404 = (r) => {
// import('views/errorPage/404.vue').then((module) => {
// r(module)
// })
// };
// const error500 = (r) => {
// import('views/errorPage/500.vue').then((module) => {
// r(module)
// })
// };
const errorPage = (r) => {
import('views/errorPage/index.vue').then((module) => {
r(module)
})
};
// 页面刷新时,重新赋值token
if (window.sessionStorage.getItem('token')) {
store.commit(types.LOGIN, window.sessionStorage.getItem('token'))
}
export const constantRouterMap = [
{
path: '/index',
name: 'index',
component: _import('index','index'),
},
{
path: '/staffRecordsTemplate',
name: '员工档案设置',
component: _import('contacts','staffRecordsTemplate')
},
{
path: '/403',
name: '无权访问',
component: errorPage
},
{
path: '/404',
name: 'error404',
component: errorPage
},
{
path: '/500',
name: 'error500',
component: errorPage
},
{ path: '*', redirect: '/404', hidden: true },
];
export default new Router({
// mode:'history',
routes: constantRouterMap,
scrollBehavior: () => ({ y: 0 }),
})
import Vuex from 'vuex'
import Vue from 'vue'
import * as types from './types'
Vue.use(Vuex);
export default new Vuex.Store({
state: {
user: {},
token: null,
title: '',
show: false
},
mutations: {
[types.LOGIN]: (state, data) => {
sessionStorage.token = data;
state.token = data;
},
[types.LOGOUT]: (state) => {
sessionStorage.removeItem('token');
state.token = null
},
[types.TITLE]: (state, data) => {
state.title = data;
},
[types.SHOW]: (state,data) => {
state.show = data;
}
}
})
export const LOGIN = 'login';
export const LOGOUT = 'logout';
export const TITLE = 'title';
export const SHOW = 'show';
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment