Commit fc19c41c by fairyly

feat: 增加好办3.0

parent ebb2432b
{
"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/
/build/
/config/
/dist/
/*.js
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parserOptions: {
parser: "babel-eslint"
},
globals: {
'AMap': true
},
env: {
browser: true
},
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
// "standard",
"plugin:vue/essential",
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
"plugin:prettier/recommended"
],
// required to lint *.vue files
plugins: ["vue", "prettier"],
// add your custom rules here
rules: {
"prettier/prettier": "error",
// allow async-await
"generator-star-spacing": "off",
"no-console": process.env.NODE_ENV === "production" ? 2 : 0,
"no-alert": process.env.NODE_ENV === "production" ? 2 : 0, //禁止使用alert confirm prompt
"no-debugger": process.env.NODE_ENV === "production" ? 2 : 0,
// --------------------静态检测-----------------------------
/**
* 静态检测:
* 以下基本位能够帮助发现代码错误的规则
* */
// 禁止与负零进行比较
"no-compare-neg-zero": 2,
// 禁止将常量作为 if 或三元表达式的测试条件,比如 if (true), let foo = 0 ? 'foo' : 'bar'
"no-constant-condition": [
2,
{
checkLoops: false
}
],
// 禁止在函数参数中出现重复名称的参数 【辅助检测】
"no-dupe-args": 2,
// 禁止在对象字面量中出现重复名称的键名 【辅助检测】
"no-dupe-keys": 2,
// 禁止出现空代码块 【可读性差】
"no-empty": [
2,
{
"allowEmptyCatch": true
}
],
// 禁止将 catch 的第一个参数 error 重新赋值 【重新赋值,error将没有意义】
"no-ex-assign": 2,
// @fixable 禁止函数表达式中出现多余的括号,比如 let foo = (function () { return 1 }) 【一般不会这么写,可读性差】
"no-extra-parens": [2, "functions"],
// 禁止将一个函数申明重新赋值,如:
// function foo() {}
// foo = bar [静态检测:无意义]
"no-func-assign": 2,
// 禁止在 if 内出现函数申明或使用 var 定义变量
"no-inner-declarations": [2, "both"],
// 禁止使用特殊空白符(比如全角空格),除非是出现在字符串、正则表达式或模版字符串中
"no-irregular-whitespace": [
2,
{
skipStrings: true,
skipComments: false,
skipRegExps: true,
skipTemplates: true
}
],
// typeof 表达式比较的对象必须是 'undefined', 'object', 'boolean', 'number', 'string', 'function' 或 'symbol'
"valid-typeof": 2,
// -----------------------------------最佳实践----------------------------------------------
/**
* 最佳实践
* 这些规则通过一些最佳实践帮助你避免问题
*/
// 禁止函数的循环复杂度超过 20,【https://en.wikipedia.org/wiki/Cyclomatic_complexity】
complexity: [
2,
{
max: 20
}
],
// 不允许有空函数,除非是将一个空函数设置为某个项的默认值 【否则空函数并没有实际意义】
"no-empty-function": [
2,
{
allow: ["functions", "arrowFunctions"]
}
],
// 禁止修改原生对象 【例如 Array.protype.xxx=funcion(){},很容易出问题,比如for in 循环数组 会出问题】
"no-extend-native": 2,
// @fixable 表示小数时,禁止省略 0,比如 .5 【可读性】
"no-floating-decimal": 2,
// 禁止直接 new 一个类而不赋值 【 那么除了占用内存还有什么意义呢? @off vue语法糖大量存在此类语义 先手动关闭】
"no-new": 0,
// 禁止使用 new Function,比如 let x = new Function("a", "b", "return a + b"); 【可读性差】
"no-new-func": 2,
// 禁止将自己赋值给自己 [规则帮助检测]
"no-self-assign": 2,
// 禁止将自己与自己比较 [规则帮助检测]
"no-self-compare": 2,
// @fixable 立即执行的函数必须符合如下格式 (function () { alert('Hello') })() 【立即函数写法很多,这个是最易读最标准的】
"wrap-iife": [
2,
"inside",
{
functionPrototypeMethods: true
}
],
// 禁止使用保留字作为变量名 [规则帮助检测保留字,通常ide难以发现,生产会出现问题]
"no-shadow-restricted-names": 2,
// 禁止使用未定义的变量
"no-undef": [
2,
{
typeof: false
}
],
// 定义过的变量必须使用 【正规应该是这样的,具体可以大家讨论】
"no-unused-vars": [
2,
{
vars: "all",
args: "none",
caughtErrors: "none",
ignoreRestSiblings: true
}
],
// 变量必须先定义后使用 【ps:涉及到es6存在不允许变量提升的问题,以免引起意想不到的错误,具体可以大家讨论】
"no-use-before-define": [
2,
{
functions: false,
classes: false,
variables: false
}
],
// ----------------------------------------------------代码规范----------------------------------------------------------
/**
* 代码规范
* 有关【空格】、【链式换行】、【缩进】、【=、{}、()、首位空格】规范没有添加,怕大家一时间接受不了,目前所挑选的规则都是:保障我们的代码可读性、可维护性的
* */
// 变量名必须是 camelcase 驼峰风格的
// @off 【涉及到 很多 api 或文件名可能都不是 camelcase 先关闭】
camelcase: 0,
// @fixable 禁止在行首写逗号
"comma-style": [2, "last"],
// @fixable 一个缩进必须用两个空格替代
// @off 【不限制大家,为了关闭eslint默认值,所以手动关闭,off不可去掉】 讨论
indent: [2, 2,{ "SwitchCase": 1 }],
//@off 手动关闭//前面需要回车的规则 注释
"spaced-comment": 0,
//@off 手动关闭: 禁用行尾空白
"no-trailing-spaces": 2,
//@off 手动关闭: 不允许多行回车
"no-multiple-empty-lines": 1,
//@off 手动关闭: 逗号前必须加空格
"comma-spacing": 0,
//@off 手动关闭: 冒号后必须加空格
"key-spacing": 1,
// @fixable 结尾禁止使用分号
//@off [vue官方推荐无分号,不知道大家是否可以接受?先手动off掉] 讨论
// "semi": [2,"never"],
semi: 0,
// 代码块嵌套的深度禁止超过 5 层
"max-depth": [1, 5],
// 回调函数嵌套禁止超过 4 层,多了请用 async await 替代
"max-nested-callbacks": [2, 4],
// 函数的参数禁止超过 7 个
"max-params": [2, 7],
// new 后面的类名必须首字母大写 【面向对象编程原则】
"new-cap": [
2,
{
newIsCap: true,
capIsNew: false,
properties: true
}
],
// @fixable new 后面的类必须有小括号 【没有小括号、指针指过去没有意义】
"new-parens": 2,
// @fixable 禁止属性前有空格,比如 foo. bar() 【可读性太差,一般也没人这么写】
"no-whitespace-before-property": 2,
// @fixable 禁止 if 后面不加大括号而写两行代码 eg: if(a>b) a=0 b=0
"nonblock-statement-body-position": [
2,
"beside",
{ overrides: { while: "below" } }
],
// 禁止变量申明时用逗号一次申明多个 eg: let a,b,c,d,e,f,g = [] 【debug并不好审查、并且没办法单独写注释】
"one-var": [2, "never"],
// @fixable 【变量申明必须每行一个,同上】
"one-var-declaration-per-line": [2, "always"],
//是否使用全等
eqeqeq: 0,
//this别名
"consistent-this": [2, "that"],
// -----------------------------ECMAScript 6-------------------------------------
/**
* ECMAScript 6
* 这些规则与 ES6 有关 【请大家 尝试使用正确使用const和let代替var,以后大家熟悉之后可能会提升规则】
* */
// 禁止对定义过的 class 重新赋值
"no-class-assign": 2,
// @fixable 禁止出现难以理解的箭头函数,比如 let x = a => 1 ? 2 : 3
"no-confusing-arrow": [2, { allowParens: true }],
// 禁止对使用 const 定义的常量重新赋值
"no-const-assign": 2,
// 禁止重复定义类
"no-dupe-class-members": 2,
// 禁止重复 import 模块
"no-duplicate-imports": 2,
//@off 以后可能会开启 禁止 var
"no-var": 0,
// ---------------------------------被关闭的规则-----------------------
// parseInt必须指定第二个参数 parseInt("071",10);
radix: 0,
//强制使用一致的反勾号、双引号或单引号 (quotes) 关闭
quotes: 0,
//要求或禁止函数圆括号之前有一个空格
"space-before-function-paren": [0, "always"],
//禁止或强制圆括号内的空格
"space-in-parens": [0, "never"],
//关键字后面是否要空一格
"space-after-keywords": [0, "always"],
// 要求或禁止在函数标识符和其调用之间有空格
"func-call-spacing": [0, "never"]
}
};
.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": {}
}
}
{
"printWidth": 2800,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"semi": true,
"trailingComma": "none",
"bracketSpacing": true,
"insertPragma": false,
"jsxBracketSameLine": true,
"proseWrap": "preserve"
}
# 好办 3.0
\ No newline at end of file
# haoban-3
> 好办后台3.0前端代码
## 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).
## 说明文档
- [好办后台路由结构图](http://115.159.76.241/office/office-web/blob/dev/haoban-router-constructor.png)
- [好办后台整体使用说明](http://115.159.76.241/office/office-web/blob/dev/instructions.md)
## 上线跟随项目
- [好办App webview 项目 - office-mobile](http://115.159.76.241/office/office-mobile)
- [好办旧版项目- haoban-old](http://115.159.76.241/office/haoban-old)
- [好办运维后台项目- haoban-devOps](http://115.159.76.241/office/haobanDevOps)
## 注意
>由于自定义 header 头增加 haobanSign 字段(即企业id),本地调试有些请求会有 options 预检请求,可以先注释下面代码, build 时候再放开注释;
```
# src/api/api.js
if (!!localStorage.getItem('userInfo')) {
let haobanSign = JSON.parse(localStorage.getItem('userInfo')).enterpriseId;
Vue.axios.defaults.headers.post['haobansign'] = haobanSign;
Vue.axios.defaults.headers.get['haobansign'] = haobanSign;
}
```
- 线上环境
```
# 注释(开发本地调试需放开注释)
/* if (local.indexOf('localhost') != -1) {
local = 'http://www.gicdev.com';
} */
```
- tinymce
- 增加了`paste`插件源码中上传的图片最大限制
- 注释了`image`插件中图片描述
```
/* generalFormItems.push({
name: 'alt',
type: 'textbox',
label: 'Image description'
}); */
```
'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)
}
const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: "eslint-loader",
enforce: "pre",
include: [resolve("src"), resolve("test")],
options: {
fix: true,
formatter: require("eslint-friendly-formatter"),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
});
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ["babel-polyfill", "./src/main.js"]
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
externals: {
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex': 'Vuex'
},
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: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
fix: true,
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay,
}
}, */
...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
},
{
test: /\.(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: 8007, // 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-
// Use Eslint Loader?
// If true, your code will be linted during bundling and
// linting errors and warnings will be shown in the console.
useEslint: true,
// If true, eslint errors and warnings will also be shown in the error overlay
// in the browser.
showEslintErrorsInOverlay: false,
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: '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: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}
'use strict'
module.exports = {
NODE_ENV: '"production"'
}
/*
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 14:44:45
* @LastEditors : 无尘
* @LastEditTime : 2020-01-03 13:53:23
*/
module.exports = {
proxyList: {
'/haoban-manage-web/': {
target: 'https://www.gicdev.com/haoban-manage-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-manage-web': ''
}
},
'/haoban-app-member-web/': {
target: 'https://www.gicdev.com/haoban-app-member-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-member-web': ''
}
},
'/haoban-app-announcement-web/': {
target: 'https://www.gicdev.com/haoban-app-announcement-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-announcement-web': ''
}
},
'/haoban-app-material-web/': {
target: 'https://www.gicdev.com/haoban-app-material-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-material-web': ''
}
},
'/haoban-app-attence-web/': {
target: 'https://www.gicdev.com/haoban-app-attence-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-attence-web': ''
}
},
'/haoban-app-tel-task-web/': {
target: 'https://www.gicdev.com/haoban-app-tel-task-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-tel-task-web': ''
}
},
'/haoban-app-daily-web/': {
target: 'http://gicdev.demogic.com/haoban-app-daily-web/',
changeOrigin: true,
pathRewrite: {
'^/haoban-app-daily-web': ''
}
}
}
}
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>好办管理平台</title><link href=./static/css/app.9e33ac3e6bede67e22cce9148e23eb51.css rel=stylesheet></head><body style="min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script>// Raven.config('https://3715a345910d4c768e7a1ec14619c2d5@sentry.io/1413672').install();</script><script type=text/javascript src=./static/js/manifest.4a2f294b9e3a870d9019.js></script><script type=text/javascript src=./static/js/vendor.287e8e130e965e18116f.js></script><script type=text/javascript src=./static/js/app.4c946f8723bd53fe65cd.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.
@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;
}*/
}
.commom-container {
background: #fff;
}
.common-frame-container {
display: flex;
.common-right-container {
/*height: 690px;*/
background: #fff;
flex: 1;
padding: 0 24px;
.common-right-header {
height: 70px;
line-height: 70px;
font-weight: 400;
font-size: 14px;
color: #606266;
.title-span {
color: #303133;
font-size: 20px;
}
.handle-area {
float: right;
.hurdle {
width: 1px;
height: 16px;
display: inline-block;
background: #DCDFE6;
margin: 0;
vertical-align: sub;
}
.no-bdr-btn {
background: none;
color: #409EFF;
border: none;
}
.el-button.is-disabled,
.el-button.is-disabled:hover,
.el-button.is-disabled:focus {
background: none;
color: #c0c4cc;
}
}
}
.tab-div {
margin-bottom: 20px;
}
.common-right-button-box {
padding: 8px 15px;
background: #EBEEF5;
font-size: 0;
.el-select--small {
width: 120px;
margin-right: 10px;
}
.el-button {
margin-right: 8px;
}
}
.pagination {
margin: 24px 0;
text-align: right;
}
.diy-table {
.diy-header {
display: flex;
.name {
// width: 155px;
// min-width: 155px;
// max-width: 155px;
}
.code {
// width: 175px;
// min-width: 175px;
// max-width: 175px;
}
.phone {
// width: 165px;
// min-width: 165px;
// max-width: 165px;
}
.position {
// width: 145px;
// min-width: 145px;
// max-width: 145px;
}
.status {
// width: 110px;
// min-width: 110px;
// max-width: 110px;
}
.operate {
width: 150px;
min-width: 150px;
max-width: 150px;
}
}
.clerk-obj-li {
display: flex;
padding: 10px 0;
margin-bottom: 25px;
line-height: 32px;
&:last-child {
margin-bottom: 0;
}
.clerk-name {
// width: 155px;
// min-width: 155px;
// max-width: 155px;
.manager {
display: inline-block;
width: 30px;
height: 15px;
line-height: 16px;
vertical-align: middle;
text-align: center;
background: rgba(247, 203, 39, 1);
border-radius: 2px;
color: #fff;
font-size: 10px;
}
}
.clerk-code {
// width: 175px;
// min-width: 175px;
// max-width: 175px;
}
.clerk-phone {
// width: 165px;
// min-width: 165px;
// max-width: 165px;
}
.clerk-position {
// width: 145px;
// min-width: 145px;
// max-width: 145px;
}
.clerk-status {
/* width: 110px;
min-width: 110px;
max-width: 110px; */
.status-icon {
width: 34px;
height: 32px;
line-height: 32px;
text-align: center;
background: #ECF5FF;
border: 1px solid #D9ECFF;
border-radius: 4px;
&.is-active {
color: #409EFF;
}
}
}
.clerk-handle {
width: 150px;
min-width: 150px;
max-width: 150px;
}
}
}
}
}
.store-info {
flex: 1;
height: 690px;
overflow: auto;
.info-cell {
margin-bottom: 24px;
background: #fff;
padding-bottom: 24px;
>.title {
line-height: 55px;
text-indent: 32px;
border-bottom: 1px solid #E4E7ED;
}
.info-form {
padding: 24px 60px 0;
.el-form-item:last-child {
margin-bottom: 0;
}
.el-textarea,
.counter {
width: 500px;
&.el-date-editor {
width: 150px;
}
}
.w-92 {
.el-input {
width: 92px;
}
}
.area-container {
.el-select {
width: 163px;
}
.el-input {
width: 160px;
}
}
.img-list {
display: flex;
flex-wrap: wrap;
width: 500px;
.img-li {
width: 148px;
height: 148px;
border-radius: 6px;
margin-right: 12px;
margin-bottom: 10px;
position: relative;
&.J_add-img {
text-align: center;
line-height: 150px;
border: 1px solid rgba(192, 204, 218, 1);
font-size: 23px;
color: #909399;
.tip {
position: absolute;
font-size: 13px;
bottom: -23px;
height: 13px;
line-height: 13px;
text-align: center;
width: 100%;
}
}
.J_del-img {
position: absolute;
font-size: 20px;
color: #808995;
top: -10px;
right: -10px;
cursor: pointer;
}
img {
width: 100%;
height: 100%;
border-radius: 6px;
}
}
}
}
}
.handle-area {
background: rgba(255, 255, 255, 1);
height: 57px;
line-height: 57px;
text-align: center;
}
}
@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;
}
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.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;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.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 {
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 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;
}
.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;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
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.
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.
webpackJsonp([1],{"2X9c":function(M,L,j){M.exports=j.p+"static/img/error_500.ed0cba4.svg"},CkW6:function(M,L){M.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDAwIDMzNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAwIDMzNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0ZBRkNGRjt9DQoJLnN0MXtmaWxsOiNEQkU1RjE7fQ0KCS5zdDJ7ZmlsbDojREVFN0Y0O30NCgkuc3Qze2ZpbGw6I0I5QzdEQjt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDV7ZmlsbDpub25lO3N0cm9rZTojQjlDN0RCO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q2e2ZpbGw6bm9uZTtzdHJva2U6I0I2QzdEODtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0NSIgZD0iTTI3NC41LDI0MS4zYy01LjMtNS4zLTQuNCw0LjQtNi43LDYuN2MtMy4xLDMuMS02LjMsNi05LjcsOC42SDEyNS4yYy0zLjQtMi43LTYuNi01LjYtOS43LTguNw0KCWMtMjguNC0yOC41LTM4LjYtNzAuNS0yNi42LTEwOWwtMTAuNS0xMC42Yy01LjMtNS4zLTUuMy0xMy44LDAtMTkuMmM1LjItNS4zLDEzLjctNS4zLDE5LTAuMWMwLDAsMCwwLDAuMSwwLjFsNi42LDYuOA0KCWMzLjEsMy4yLDguMiwzLjIsMTEuNCwwbDAsMGMzLjItMy4yLDMuMi04LjMsMC0xMS41TDEwMy4xLDkyYy0zLjItMy4yLTMuMi04LjMsMC0xMS41YzMuMS0zLjIsOC4yLTMuMiwxMS40LDBsMCwwbDE3LjIsMTcuMg0KCWMtMC45LDMuNywwLjksNy42LDQuNCw5LjNjMy41LDEuNyw3LjcsMC42LDkuOS0yLjVjMi4zLTMuMSwyLjEtNy40LTAuNS0xMC4zYy0zLjMtMy44LTYuNS03LjItNi41LTcuMmwtNy4zLTcuNA0KCWMzNC44LTIxLjMsODIuNi0yMS43LDExNy4yLDBjMzQuNSwyMS43LDUzLjksNjEuMiw1MCwxMDEuOWwxNS40LDE1LjZjMy4yLDMuMiwzLjIsOC4zLDAsMTEuNWMtMy4xLDMuMi04LjIsMy4yLTExLjQsMGwwLDANCglsLTE1LjEtMTUuM2MtMy4xLTMuMi04LjItMy4yLTExLjQsMGwwLDBjLTMuMiwzLjItMy4yLDguMywwLDExLjVsMTcuMSwxNy4yYzUuMiw1LjMsNS4yLDEzLjgsMCwxOS4xDQoJQzI4OC40LDI0Ni42LDI3OS45LDI0Ni42LDI3NC41LDI0MS4zQzI3NC42LDI0MS4zLDI3NC42LDI0MS4zLDI3NC41LDI0MS4zTDI3NC41LDI0MS4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTg2LjYsNzEuNGMwLDQuNywzLjgsOC41LDguNSw4LjVjMS41LDAsMy0wLjQsNC4zLTEuMWM0LjEtMi4zLDUuNS03LjUsMy4xLTExLjZjLTEuNS0yLjYtNC4zLTQuMy03LjQtNC4zDQoJQzkwLjQsNjIuOSw4Ni42LDY2LjcsODYuNiw3MS40Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjE2LjQsMTQ1LjRoMjQuM2wtNy40LDE3LjljMi42LDEuOCw0LjUsMy44LDUuOCw2YzEuMiwyLjIsMS45LDQuOCwxLjksNy44YzAsNC42LTEuNiw4LjQtNC44LDExLjINCgljLTMuMiwyLjktNy4zLDQuMy0xMi4zLDQuM2MtMi41LDAtNS4xLTAuNC03LjUtMS4xdi0xMy4xYzIsMC45LDMuOSwxLjQsNS41LDEuNHMyLjktMC41LDMuNy0xLjRjMC45LTEsMS4zLTIuMywxLjMtNC4xDQoJYzAtMS45LTAuOC0zLjQtMi40LTQuNmMtMS42LTEuMi0zLjctMS43LTYuNC0xLjdsMy40LTkuMWgtNS4xVjE0NS40TDIxNi40LDE0NS40eiBNMjA3LjUsMTgxLjZjMCwxLjUtMC4zLDMtMC44LDQuMw0KCXMtMS4zLDIuNS0yLjMsMy41cy0yLjIsMS44LTMuNCwyLjNjLTEuMywwLjYtMi44LDAuOS00LjMsMC45aC05LjZjLTEuNSwwLTIuOS0wLjMtNC4zLTAuOWMtMS4zLTAuNi0yLjUtMS4zLTMuNC0yLjMNCgljLTAuNC0wLjQtMC44LTAuOS0xLjItMS40bDExLjctMTcuM3Y2YzAsMC42LDAuMiwxLjEsMC42LDEuNGMwLjQsMC40LDAuOCwwLjYsMS40LDAuNmMxLjEsMCwyLTAuOCwyLTEuOXYtMC4xdi0xMS45bDEwLjktMTYuMQ0KCWMxLjgsMiwyLjgsNC42LDIuNyw3LjNMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZ6IE0xNzcuMSwxODUuOWMtMC42LTEuNC0wLjktMi44LTAuOC00LjNWMTU2YzAtMS41LDAuMy0zLDAuOC00LjMNCglzMS4zLTIuNSwyLjMtMy41czIuMi0xLjgsMy40LTIuM2MxLjMtMC42LDIuOC0wLjksNC4zLTAuOWg5LjZjMS41LDAsMi45LDAuMyw0LjMsMC45YzEuMywwLjUsMi40LDEuMywzLjQsMi4zbC0xMC41LDE1LjR2LTIuNw0KCWMwLTAuNS0wLjItMS4xLTAuNi0xLjRjLTAuNC0wLjQtMC45LTAuNi0xLjQtMC42Yy0xLjEsMC0yLDAuOC0yLDEuOXYwLjF2OC42bC0xMi4xLDE3LjlDMTc3LjUsMTg2LjksMTc3LjMsMTg2LjQsMTc3LjEsMTg1LjkNCglMMTc3LjEsMTg1Ljl6IE0yNDMuOCwxOTIuN2MzLjUtNy40LDUuMy0xNS41LDUuMy0yMy43YzAtMzAuNS0yNC40LTU1LjItNTQuNi01NS4ycy01NC42LDI0LjctNTQuNiw1NS4yYzAsMC40LDAsMC44LDAsMS4xDQoJbDE5LjYtMjQuNmgxMS40TDE1NCwxNzEuM2g1LjV2LTYuNWwxMS43LTE4LjV2NDYuOGgtMTEuN3YtOS44aC0xNy44YzUuMSwxOS4yLDIwLjEsMzQuMywzOS4yLDM5LjJjLTEuMiwzLjEtNC44LDEwLjctMTAuNywxMg0KCWMtNy4zLDEuNywxOS45LDAuNCwzOS40LTEyLjVjMTQuOS00LjQsMjcuMi0xNSwzMy45LTI4LjlMMjQzLjgsMTkyLjdMMjQzLjgsMTkyLjd6Ii8+DQo8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMjM4LjksMTU0LjNsLTI0LjQsMzUuNGwwLjUsMC4zbDI0LjQtMzUuNEwyMzguOSwxNTQuM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yNjYuMiw2Ni42aDhjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjIsMC4zLTAuNiwwLjQtMC45LDAuNGgtOA0KCWMtMC40LDAtMC43LTAuMS0wLjktMC40Yy0wLjUtMC41LTAuNS0xLjQsMC0xLjlDMjY1LjUsNjYuNywyNjUuOCw2Ni42LDI2Ni4yLDY2LjYgTTExNi41LDIwMS45Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJczgtMy42LDgtOC4xUzEyMC45LDIwMS45LDExNi41LDIwMS45TDExNi41LDIwMS45eiBNMTIxLjQsMjEyLjFjLTAuOCwyLTIuOCwzLjMtNC45LDMuM2MtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4xLDMuMy01DQoJYzItMC44LDQuMy0wLjQsNS44LDEuMkMxMjEuOCwyMDcuNywxMjIuMiwyMTAsMTIxLjQsMjEyLjFMMTIxLjQsMjEyLjF6IE0xOTEuMyw3OC43Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJYzIuMSwwLDQuMi0wLjksNS43LTIuNHMyLjMtMy42LDIuMy01LjdDMTk5LjMsODIuNCwxOTUuNyw3OC43LDE5MS4zLDc4Ljd6IE0xOTYuMyw4OC45Yy0wLjgsMi0yLjgsMy4zLTQuOSwzLjMNCgljLTMsMC01LjMtMi40LTUuMy01LjRjMC0yLjIsMS4zLTQuMiwzLjMtNXM0LjMtMC40LDUuOCwxLjJDMTk2LjYsODQuNiwxOTcuMSw4Ni45LDE5Ni4zLDg4LjlMMTk2LjMsODguOXogTTI3MC4yLDE2Mi42DQoJYy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xczgtMy42LDgtOC4xQzI3OC4yLDE2Ni4zLDI3NC42LDE2Mi42LDI3MC4yLDE2Mi42eiBNMjc1LjEsMTcyLjhjLTAuOCwyLTIuOCwzLjMtNC45LDMuMw0KCWMtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4yLDMuMy01czQuMy0wLjQsNS44LDEuMlMyNzUuOSwxNzAuOCwyNzUuMSwxNzIuOHogTTIzMC4xLDMxLjRjLTQuNCwwLTgsMy42LTgsOC4xczMuNiw4LjEsOCw4LjENCgljMi4xLDAsNC4yLTAuOSw1LjctMi40czIuMy0zLjYsMi4zLTUuN0MyMzguMSwzNSwyMzQuNSwzMS40LDIzMC4xLDMxLjR6IE0yMzUsNDEuNmMtMC44LDItMi44LDMuMy00LjksMy4zYy0zLDAtNS4zLTIuNC01LjMtNS40DQoJYzAtMi4yLDEuMy00LjIsMy4zLTVzNC4zLTAuNCw1LjgsMS4yQzIzNS40LDM3LjIsMjM1LjgsMzkuNSwyMzUsNDEuNnoiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNjMuMiw0NS45aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuNSwwLjUsMC41LDEuMywwLDEuOWwwLDBjLTAuMywwLjMtMC42LDAuNC0xLDAuNGgtOC4yDQoJYy0wLjQsMC0wLjctMC4xLTEtMC40Yy0wLjUtMC41LTAuNS0xLjMsMC0xLjlsMCwwQzE2Mi40LDQ2LjEsMTYyLjgsNDUuOSwxNjMuMiw0NS45IE0yNzEuNyw2My41djhjMCwwLjQtMC4xLDAuNy0wLjQsMC45DQoJYy0wLjMsMC4zLTAuNiwwLjQtMSwwLjRjLTAuNywwLTEuNC0wLjYtMS40LTEuM2wwLDB2LThjMC0wLjQsMC4xLTAuNywwLjQtMC45YzAuNS0wLjUsMS40LTAuNSwxLjksMA0KCUMyNzEuNiw2Mi44LDI3MS43LDYzLjIsMjcxLjcsNjMuNSIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTEwNy40LDE1NC44aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuMywwLjIsMC40LDAuNiwwLjQsMC45YzAsMC43LTAuNiwxLjMtMS40LDEuM2gtOC4yDQoJYy0wLjUsMC0wLjktMC4zLTEuMi0wLjdjLTAuMi0wLjQtMC4yLTAuOSwwLTEuM0MxMDYuNCwxNTUuMSwxMDYuOSwxNTQuOCwxMDcuNCwxNTQuOCBNMTY5LDQyLjd2OGMwLDAuNC0wLjEsMC43LTAuNCwwLjkNCgljLTAuNSwwLjUtMS40LDAuNS0yLDBjLTAuMi0wLjItMC40LTAuNi0wLjQtMC45di04YzAtMC40LDAuMS0wLjcsMC40LTAuOWMwLjUtMC41LDEuNC0wLjUsMS45LDBDMTY4LjgsNDIsMTY5LDQyLjMsMTY5LDQyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMzAuOSwxMTAuM2g4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS40YzAsMC43LTAuNiwxLjMtMS4zLDEuNGgtOC4xYy0wLjgsMC0xLjQtMC42LTEuNC0xLjQNCgljMC0wLjQsMC4xLTAuNywwLjQtMUMyMzAuMiwxMTAuNCwyMzAuNiwxMTAuMywyMzAuOSwxMTAuMyIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTExNC42LDE2My44djguMmMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjUsMC41LTEuNCwwLjUtMS45LDBjLTAuMy0wLjMtMC40LTAuNi0wLjQtMXYtOC4yYzAtMC40LDAuMS0wLjcsMC40LTENCgljMC41LTAuNSwxLjQtMC41LDEuOSwwbDAsMEMxMTQuNCwxNjMuMSwxMTQuNiwxNjMuNCwxMTQuNiwxNjMuOCIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyNiwyNzIuN2g2MC40YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40SDEyNmMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzEyNC43LDI3My4zLDEyNS4zLDI3Mi43LDEyNiwyNzIuNyIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTIxOC42LDI3Mi43aDM0LjljMC43LDAsMS4zLDAuNiwxLjMsMS4zYzAsMC43LTAuNiwxLjMtMS4zLDEuM2gtMzQuOWMtMC43LDAtMS4zLTAuNi0xLjQtMS4zDQoJYzAtMC40LDAuMS0wLjcsMC40LTFDMjE3LjksMjcyLjksMjE4LjIsMjcyLjcsMjE4LjYsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTguMiwyODIuMmgxMzEuNWMwLjcsMCwxLjMsMC42LDEuNCwxLjNjMCwwLjQtMC4xLDAuNy0wLjQsMWMtMC4zLDAuMy0wLjYsMC40LTEsMC40SDE1OC4yDQoJYy0wLjcsMC0xLjMtMC42LTEuMy0xLjNsMCwwQzE1Ni45LDI4Mi44LDE1Ny41LDI4Mi4yLDE1OC4yLDI4Mi4yIi8+DQo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNOTMuOCwyODIuMmgzNC45YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40bDAsMEg5My44Yy0wLjcsMC0xLjMtMC42LTEuNC0xLjMNCgljMC0wLjQsMC4xLTAuNywwLjQtMUM5My4xLDI4Mi4zLDkzLjUsMjgyLjIsOTMuOCwyODIuMiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTE5Ny4xLDI3Mi43aDguMWMwLjcsMCwxLjMsMC42LDEuMywxLjNjMCwwLjctMC42LDEuMy0xLjMsMS4zaC04LjFjLTAuNywwLjEtMS40LTAuNS0xLjQtMS4zDQoJYy0wLjEtMC43LDAuNS0xLjQsMS4zLTEuNEMxOTcsMjcyLjcsMTk3LjEsMjcyLjcsMTk3LjEsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yODQuNCwyNjQuNmg4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNy0wLjYsMS4zLTEuMywxLjNoLTguMWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzI4MywyNjUuMywyODMuNiwyNjQuNiwyODQuNCwyNjQuNiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTk5LjIsMjY0LjZoMTcxLjdjMC40LDAsMC43LDAuMSwwLjksMC40YzAuNCwwLjQsMC41LDEsMC4zLDEuNWMtMC4yLDAuNS0wLjcsMC44LTEuMiwwLjhIOTkuMQ0KCWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zQzk3LjgsMjY1LjMsOTguNCwyNjQuNiw5OS4yLDI2NC42Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjM1LDk1Ljh2OC4xYzAsMC43LTAuNiwxLjMtMS4zLDEuM3MtMS4zLTAuNi0xLjMtMS4zdi04LjFjMC0wLjcsMC42LTEuMywxLjMtMS40QzIzNC40LDk0LjQsMjM1LDk1LDIzNSw5NS44Ig0KCS8+DQo8L3N2Zz4NCg=="},Minx:function(M,L,j){M.exports=j.p+"static/img/error_404.bf58747.svg"},ODjX:function(M,L,j){"use strict";Object.defineProperty(L,"__esModule",{value:!0});var N=j("CkW6"),u=j.n(N),w=j("Minx"),D=j.n(w),C=j("2X9c"),s=j.n(C),y={name:"errpage",data:function(){return{imgSrc:"",message:"",srcList:{403:u.a,404:D.a,500:s.a},msgList:{403:"抱歉,你无权访问该页面",404:"抱歉,你访问的页面不存在",500:"抱歉,服务器出错了"}}},mounted:function(){var M=this.$route.path.split("/")[1];this.imgSrc=this.srcList[M],this.message=this.msgList[M]}},t={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.imgSrc,alt:"404"}})]),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:"#/index"}},[this._v("返回首页")])])])])},staticRenderFns:[]};var i=j("VU/8")(y,t,!1,function(M){j("g1vF")},"data-v-71fa5143",null);L.default=i.exports},g1vF:function(M,L){}});
\ 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.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([21],{"35Ft":function(e,t){},Ga4Q:function(e,t){},n7j5:function(e,t,a){"use strict";var i=a("mvHQ"),n=a.n(i),s={name:"select-area",components:{vueSelectEmployee:a("c4uw").a},props:{treeData:{type:Object,default:function(){return{}}},butList:{type:Array,default:function(){return[]}},specialList:{type:Array,default:function(){return[]}}},data:function(){return{copyTreeData:JSON.parse(n()(this.treeData))}},methods:{delCurrent:function(e,t){var a=this[t];a.splice(a.indexOf(e),1)},handleSelectedList:function(e){this.butList=e},callSelector:function(e,t){this.$emit("callPerSelector",e,t)}}},r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"select-area"},[a("div",{staticClass:"setting-name"},[e._v("\n 个别员工不设置该权限\n ")]),e._v(" "),a("ul",{staticClass:"particular-list"},[e._l(e.butList,function(t,i){return[t.employeeClerkId?a("li",{key:i+"_"+t.employeeClerkId,staticClass:"item person-item"},[t.headPic?a("img",{attrs:{src:t.headPic}}):a("div",{staticClass:"replace-head-img"},[a("i",{staticClass:"iconfont icon-yewuduanmorentouxian"})]),e._v(" "),a("p",{staticClass:"name"},[e._v(e._s(t.label))]),e._v(" "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return e.delCurrent(t,"butList")}}})]):a("li",{key:i+"_"+t.groupId,staticClass:"item group-item"},[e._v("\n "+e._s(t.label)+"\n "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return e.delCurrent(t,"butList")}}})])]}),e._v(" "),a("li",{staticClass:"item J_add-btn",on:{click:function(t){return e.callSelector("but",e.butList)}}},[a("i",{staticClass:"el-icon-plus"})])],2),e._v(" "),a("div",{staticClass:"setting-name"},[e._v("\n 允许指定部门/人员可见\n ")]),e._v(" "),a("ul",{staticClass:"particular-list"},[e._l(e.specialList,function(t,i){return[t.employeeClerkId?a("li",{key:i+"_"+t.employeeClerkId,staticClass:"item person-item"},[t.headPic?a("img",{attrs:{src:t.headPic}}):a("div",{staticClass:"replace-head-img"},[a("i",{staticClass:"iconfont icon-yewuduanmorentouxian"})]),e._v(" "),a("p",{staticClass:"name"},[e._v(e._s(t.label))]),e._v(" "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return e.delCurrent(t,"specialList")}}})]):a("li",{key:i+"_"+t.groupId,staticClass:"item group-item"},[e._v("\n "+e._s(t.label)+"\n "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return e.delCurrent(t,"specialList")}}})])]}),e._v(" "),a("li",{staticClass:"item J_add-btn",on:{click:function(t){return e.callSelector("special",e.specialList)}}},[a("i",{staticClass:"el-icon-plus"})])],2)])},staticRenderFns:[]};var l={name:"permissionSetting",components:{selectArea:a("VU/8")(s,r,!1,function(e){a("uKhm")},null,null).exports},props:{butList:{type:Array,default:function(){return[]}},specialList:{type:Array,default:function(){return[]}},selfButList:{type:Array,default:function(){return[]}},selfSpecialList:{type:Array,default:function(){return[]}},visibleSpecialLsit:{type:Array,default:function(){return[]}},onlySelfApartList:{type:Array,default:function(){return[]}},treeData:{type:Object,default:function(){return{}}},departInfo:{type:Object,default:function(){return{}}}},data:function(){return{visibleThere:!1,visibleSelf:!1}},methods:{switchPermission:function(e,t,a){e&&(this[a]=!e),this.visibleSelf?this.departInfo.type=2:this.visibleThere?this.departInfo.type=1:this.departInfo.type=""},callPerSelector:function(e,t){this.$emit("callPerSelector",e,t)}},mounted:function(){var e=this.departInfo.type;this.visibleThere=!(1!=e),this.visibleSelf=!(2!=e)},watch:{departInfo:{handler:function(e,t){var a=e.type;this.visibleThere=!(1!=a),this.visibleSelf=!(2!=a)},deep:!0}}},o={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"jurisdiction-setting"},[a("div",{staticClass:"only-visivble-there permission-div"},[a("div",{staticClass:"permission-div-title"},[a("span",[e._v("本部门员工仅可见本部门员工")]),e._v(" "),a("el-switch",{attrs:{"active-color":"#409EFF","inactive-color":"#DCDFE6"},on:{change:function(t){return e.switchPermission(e.visibleThere,"visibleThere","visibleSelf")}},model:{value:e.visibleThere,callback:function(t){e.visibleThere=t},expression:"visibleThere"}})],1),e._v(" "),e.visibleThere?a("div",{staticClass:"particular-setting"},[a("select-area",{attrs:{treeData:e.treeData,butList:e.butList,specialList:e.specialList},on:{callPerSelector:e.callPerSelector}})],1):e._e()]),e._v(" "),a("div",{staticClass:"only-visivble-self permission-div"},[a("div",{staticClass:"permission-div-title"},[a("span",[e._v("本部门员工仅可见自己")]),e._v(" "),a("el-switch",{attrs:{"active-color":"#409EFF","inactive-color":"#DCDFE6"},on:{change:function(t){return e.switchPermission(e.visibleSelf,"visibleSelf","visibleThere")}},model:{value:e.visibleSelf,callback:function(t){e.visibleSelf=t},expression:"visibleSelf"}})],1),e._v(" "),e.visibleSelf?a("div",{staticClass:"particular-setting"},[a("select-area",{attrs:{treeData:e.treeData,butList:e.selfButList,specialList:e.selfSpecialList},on:{callPerSelector:e.callPerSelector}})],1):e._e()])])},staticRenderFns:[]};var c=a("VU/8")(l,o,!1,function(e){a("Ga4Q")},null,null);t.a=c.exports},q5Ri:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a("n7j5"),n=a("c4uw"),s=a("P9l9"),r={name:"addDepartment",components:{permissionSetting:i.a,vueSelectEmployee:n.a},data:function(){return{departInfo:{name:"",parentName:"",parentId:""},testList:[],treeSet:{isSelectPerson:!1,dialogVisible:!1,isSingle:!0},rules:{name:[{required:!0,message:"请输入部门名称",trigger:"blur"},{min:1,max:20,message:"长度在 1 到 20 个字符",trigger:"blur"}],parentId:[{required:!0,message:"请选择父级部门",trigger:"change"}]},treeData:{},disabled:!0,defaultSelection:[],defaultParent:[],selectorType:"parent",changed:"parent",onlyPerson:!1,onlyGroup:[]}},methods:{getDepartInfo:function(){var e=this,t={groupId:e.$route.query.departmentId};Object(s.a)("/haoban-manage-web/dept/findDeptById",t).then(function(t){if(1==t.data.errorCode){e.departInfo.name=t.data.result.name,e.departInfo.parentId=t.data.result.parentId;var a=t.data.result.chainName.split("/"),i=a.length;e.departInfo.parentName=1==i?"":a[i-2],e.defaultParent=[{label:e.departInfo.parentName,id:t.data.result.parentId,groupId:t.data.result.parentId}]}else e.$message.error({duration:1e3,message:t.data.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},callGroupSelector:function(){this.selectorType="parent",this.defaultSelection=this.defaultParent,this.onlyPerson=!1,this.onlyGroup=[],this.changed="parent",this.treeSet={dialogVisible:!0,isSingle:!0,isSelectPerson:!1}},callPerSelector:function(e,t){this.selectorType=e,this.defaultSelection=t,this.onlyPerson=!0,this.onlyGroup=[this.$route.query.departmentId],this.changed=e,this.treeSet={dialogVisible:!0,isSingle:!1,isSelectPerson:!0}},handleSelectedList:function(e){this.departInfo.parentId=e?e.id:"",this.departInfo.parentName=e?e.label:""},saveEdit:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.$refs.departForm.validate(function(a){if(!a)return!1;var i=e,n={parentId:i.departInfo.parentId,name:i.departInfo.name};Object(s.a)("/haoban-manage-web/dept/insert",n).then(function(e){1==e.data.errorCode?(i.$message.success({duration:1e3,message:"操作成功!"}),"continue"==t?(i.departInfo={name:"",parentName:"",parentId:""},i.disabled=!0,i.getGroupData()):window.history.go(-1)):i.$message.error({duration:1e3,message:e.data.message})}).catch(function(e){i.$message.error({duration:1e3,message:e.message})})})},getGroupData:function(){var e=this;Object(s.a)("/haoban-manage-web/dept/deptListForCompany",{isStoreGroup:0}).then(function(t){var a=[],i=[];1==t.data.errorCode&&(a=t.data.result.departmentList||[],i=t.data.result.searchList||[]),e.treeData={treeData:a,personData:i},e.disabled=!1}).catch(function(e){})},cancel:function(){this.$confirm(" 是否确认取消,取消后当前页面信息将丢失 ?","提示",{type:"warning"}).then(function(){window.history.go(-1)}).catch(function(e){})}},beforeMount:function(){this.getGroupData(),this.isAddNew||this.getDepartInfo()},computed:{isAddNew:function(){return!(1!=this.$route.query.addnew)}}},l={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"add-department-container"},[a("div",{staticClass:"setting-cell depart-info"},[a("p",{staticClass:"title"},[e._v("部门信息")]),e._v(" "),a("el-form",{ref:"departForm",staticClass:"department-info-form",attrs:{"label-position":"right",rules:e.rules,model:e.departInfo,"label-width":"120px"}},[a("el-form-item",{attrs:{label:"部门名称",prop:"name"}},[a("el-input",{model:{value:e.departInfo.name,callback:function(t){e.$set(e.departInfo,"name",t)},expression:"departInfo.name"}})],1),e._v(" "),a("el-form-item",{attrs:{label:"部门排序调整",prop:"parentId"}},[a("el-input",{attrs:{disabled:e.disabled,"suffix-icon":"el-icon-arrow-down"},on:{focus:e.callGroupSelector},model:{value:e.departInfo.parentName,callback:function(t){e.$set(e.departInfo,"parentName",t)},expression:"departInfo.parentName"}})],1)],1)],1),e._v(" "),a("vue-select-employee",{attrs:{defaultSelection:e.defaultSelection,treeSet:e.treeSet,treeData:e.treeData},on:{handleSelectedList:e.handleSelectedList}})],1)},staticRenderFns:[]};var o=a("VU/8")(r,l,!1,function(e){a("35Ft")},null,null);t.default=o.exports},uKhm:function(e,t){}});
\ No newline at end of file
webpackJsonp([23],{"27o1":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r("3Xzz"),o={name:"add-clerk-page",components:{clerkInfo:r("oncj").a,navCrumb:n.a},data:function(){return{navpath:[{name:"首页",path:"/index"},{name:"企业通讯录",path:"/administrativeFrame"},{name:"门店架构",path:"/storeFrame"},{name:"新增店员",path:""}],isAddnew:!1,firstLevelId:"",storeType:"",gicFlag:!(!this.$route.query.gicFlag||"false"==this.$route.query.gicFlag)}},beforeMount:function(){this.firstLevelId=this.$route.query.firstLevelId,this.storeType=this.$route.query.type,this.$route.query.clerkId?(this.isAddnew=!1,this.navpath[3].name="编辑店员"):this.isAddnew=!0}},a={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"common-set-wrap add-clerk-wrap"},[t("nav-crumb",{attrs:{navpath:this.navpath}}),this._v(" "),t("div",{staticClass:"right-content"},[t("div",{staticClass:"right-box"},[t("div",{staticClass:"add-clerk-page"},[t("clerk-info",{attrs:{storeType:this.storeType,firstLevelId:this.firstLevelId,isAddnew:this.isAddnew,gicFlag:this.gicFlag}})],1)])]),this._v(" "),t("vue-gic-footer")],1)},staticRenderFns:[]};var i=r("VU/8")(o,a,!1,function(e){r("GaQx")},null,null);t.default=i.exports},GaQx:function(e,t){},nxhH:function(e,t){},oncj:function(e,t,r){"use strict";var n=r("l46T"),o=r("Ie7z"),a=r("P9l9"),i=r("XDyb"),s=r("T+u5"),l=r.n(s),c={name:"clerk-info-form",props:{isAddnew:{type:Boolean,default:!1},perId:{type:[String,Number],default:""},firstLevelId:{type:[String,Number],default:""},storeType:{type:[String,Number],default:""},gicFlag:{type:Boolean,default:!1}},components:{vueSelectStore:o.a,countryMobile:i.a,limitInput:n.a},data:function(){var e=this;return{rules:{name:[{required:!0,message:"请输入店员姓名",trigger:"blur"}],phoneNumber:[{required:!0,validator:function(t,r,n){if(!r)return n(new Error("请输入手机号"));var o=new l.a("+"+e.clerkInfo.nationcode+r);o.isValid()&&o.isMobile()?n():n(new Error("手机号格式不正确"))},trigger:"blur"}],storeName:[{required:!0,message:"请选择门店",trigger:"change"}],code:[{required:!0,validator:function(t,r,n){if(""==r)return n(new Error("请输入工号或员工代码"));/^[A-Za-z0-9_\u4e00-\u9fa5]+$/.test(r)?n():e.clerkInfo.code=r.replace(/[^A-Za-z0-9_\u4e00-\u9fa5]+/g,"")},trigger:"blur"}]},clerkInfo:{storeName:this.$route.query.storeName||"",storeId:this.$route.query.storeId||"",managerMode:!1,positionName:"职员",nationcode:"86"},treeSet:{isSelectPerson:!1,dialogVisible:!1,isSingle:!0,groupId:"",storeType:"",openNextBool:!0},defaultList:[{id:this.$route.query.storeId,label:this.$route.query.storeName}]}},methods:{toInputCode:function(e){var t=this.clerkInfo.code;""!==t&&(this.clerkInfo.code=t.replace(/[^A-Za-z0-9]+/g,""))},saveFn:function(e){var t=!0;this.$refs.clerk_info.validate(function(e){e||(t=!1)}),t&&this.addEmployee(this.clerkInfo,e)},callSelector:function(){this.treeSet.dialogVisible=!0},handleSelectedList:function(e){this.clerkInfo.storeName=e&&e.length?e[0].label:"",this.clerkInfo.storeId=e&&e.length?e[0].id:"",this.$forceUpdate()},addEmployee:function(e,t){var r=this,n={name:e.name,isClerk:1,phoneNumber:e.phoneNumber,positionName:e.positionName,storeId:e.storeId,managerMode:1*e.managerMode,code:e.code,employeeClerkId:e.employeeClerkId||"",nationcode:e.nationcode},o=r.isAddnew?"/haoban-manage-web/emp/add":"/haoban-manage-web/emp/update";Object(a.a)(o,n).then(function(e){1==e.data.errorCode?(r.$message.success({message:"操作成功"}),1==t?(r.clerkInfo={name:"",isClerk:1,phoneNumber:"",positionName:"职员",storeId:"",managerMode:!1,code:"",nationcode:"86"},r.defaultList=[],r.$refs.clerk_info.resetFields()):r.$router.push("/storeFrame")):r.$message.error({message:e.data.message})}).catch(function(e){r.$message.error({message:e.message})})},cancel:function(){var e=this;this.$confirm(" 是否确认取消,取消后当前页面信息将丢失 ?","提示",{type:"warning"}).then(function(){e.$router.go(-1)}).catch(function(e){})},getClerkInfo:function(){var e=this,t={id:e.$route.query.clerkId?e.$route.query.clerkId:e.perId};Object(a.a)("/haoban-manage-web/emp/findOne",t).then(function(t){1==t.data.errorCode?(e.clerkInfo=t.data.result,e.defaultList=[{id:t.data.result.storeId,label:t.data.result.storeName}]):e.$message.error({message:t.data.message})}).catch(function(t){e.$message.error({message:t})})}},beforeMount:function(){this.treeSet.storeType=this.storeType,this.treeSet.groupId=this.firstLevelId,this.isAddnew||this.getClerkInfo()},watch:{perId:function(e,t){this.getClerkInfo(e)}}},u={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"form-container bdr-box"},[r("el-form",{ref:"clerk_info",staticClass:"add-clerk-form",attrs:{model:e.clerkInfo,rules:e.rules,"label-width":"80px"}},[r("el-form-item",{attrs:{label:"姓名",prop:"name"}},[r("limitInput",{attrs:{inputWidth:380,inputValue:e.clerkInfo.name,holder:"请输入姓名",maxLength:10},on:{"update:inputValue":function(t){return e.$set(e.clerkInfo,"name",t)},"update:input-value":function(t){return e.$set(e.clerkInfo,"name",t)}}})],1),e._v(" "),r("el-form-item",{attrs:{label:"手机号",prop:"phoneNumber"}},[r("countryMobile",{attrs:{inputWidth:380,nationCode:e.clerkInfo.nationcode,holder:"请输入手机号",disflag:!e.isAddnew},on:{"update:nationCode":function(t){return e.$set(e.clerkInfo,"nationcode",t)},"update:nation-code":function(t){return e.$set(e.clerkInfo,"nationcode",t)}},model:{value:e.clerkInfo.phoneNumber,callback:function(t){e.$set(e.clerkInfo,"phoneNumber",t)},expression:"clerkInfo.phoneNumber"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"门店",prop:"storeName"}},[r("el-input",{staticClass:"clerk-info-input",attrs:{disabled:!e.isAddnew},on:{focus:e.callSelector},model:{value:e.clerkInfo.storeName,callback:function(t){e.$set(e.clerkInfo,"storeName",t)},expression:"clerkInfo.storeName"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"code",prop:"code"}},[r("limitInput",{attrs:{inputWidth:380,disflag:e.gicFlag&&!e.isAddnew,inputValue:e.clerkInfo.code,holder:"请输入工号或员工代码",maxLength:20},on:{"update:inputValue":function(t){return e.$set(e.clerkInfo,"code",t)},"update:input-value":function(t){return e.$set(e.clerkInfo,"code",t)}}})],1),e._v(" "),r("el-form-item",{attrs:{label:"职位",prop:"positionName"}},[r("limitInput",{attrs:{inputWidth:380,inputValue:e.clerkInfo.positionName,holder:"请输入职位",maxLength:20},on:{"update:inputValue":function(t){return e.$set(e.clerkInfo,"positionName",t)},"update:input-value":function(t){return e.$set(e.clerkInfo,"positionName",t)}}})],1)],1),e._v(" "),r("div",{staticClass:"btn-box"},[r("el-button",{attrs:{type:"primary"},on:{click:e.saveFn}},[e._v("保 存")]),e._v(" "),!e.gicFlag&&e.isAddnew?r("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.saveFn(1)}}},[e._v("保存并继续添加")]):e._e(),e._v(" "),e.gicFlag?e._e():r("el-button",{on:{click:e.cancel}},[e._v("取 消")])],1),e._v(" "),r("vue-select-store",{ref:"storeSelector",attrs:{selectType:"store",defaultList:e.defaultList,treeSet:e.treeSet},on:{handleSelectedList:e.handleSelectedList}})],1)},staticRenderFns:[]};var d=r("VU/8")(c,u,!1,function(e){r("nxhH")},null,null);t.a=d.exports}});
\ No newline at end of file
webpackJsonp([29],{"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 a=i("2X9c"),e=i.n(a),n={name:"page500",data:function(){return{img_500:e.a}},computed:{message:function(){return"抱歉,服务器出错了"}}},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_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 r=i("VU/8")(n,c,!1,function(t){i("Zwp/")},"data-v-d1f21788",null);s.default=r.exports},"Zwp/":function(t,s){}});
\ No newline at end of file
webpackJsonp([30],{HmVO:function(t,e){},PHqb:function(t,e){},Zyzf:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a("//Fk"),s=a.n(i),n=a("gBtx"),o=a.n(n),l=a("3Xzz"),c=a("PI0u"),r=a("P9l9"),d=a("3E4D"),f=a("Ch4/"),u={name:"staff-detail-field",props:{showCustomDialog:{type:Boolean,default:!1},detailData:{type:Array,default:function(){return[]}},dataType:{type:Number,default:1}},data:function(){return{repProjectName:"gic-web",customDialog:!1,fixData:["clerkName","clerkPhone","groupName","positionName"],fixDataStore:["clerkName","clerkPhone","groupName","positionName","clerkCode"],customData:[],checkList:[],setList:[],baseUrl:""}},beforeMount:function(){var t=window.location.origin;"-1"!=t.indexOf("localhost")?this.baseUrl="http://gicdev.demogic.com":this.baseUrl=t},computed:{},methods:{handleCardClose:function(){this.customCancel()},customCancel:function(){this.customDialog=!1,this.$emit("customHandleConfirm","hide")},customConfirm:Object(c.a)(function(){this.checkList=this.customData.map(function(t){return t.checkList}).flat(),this.saveFields(this.dataType)},500),customChange:function(t){},saveFields:function(t){var e=this,a={fields:e.checkList,type:t};Object(r.e)("/haoban-manage-web/record/employee-show-field-save.json",a).then(function(t){var a=t.data;if(1==a.errorCode)return d.a.showmsg("添加成功","success"),void e.$emit("customHandleConfirm");f.a.errorMsg(a)}).catch(function(t){console.log(t),e.$message.error({duration:1e3,message:t.message})})},treeData:function(t){var e=t.filter(function(e){var a=t.filter(function(t){return e.fieldCode==t.parentCode});return a.length>0&&(e.children=a),0==e.parentCode});return e.sort(function(t,e){return t.sort-e.sort}),e.forEach(function(t,e){t.children.sort(function(t,e){return t.sort-e.sort})}),e},getInfo:function(){var t=this;t.setList=[],Object(r.e)("/haoban-manage-web/record/employee-find-template.json",{}).then(function(e){var a=e.data;1!=a.errorCode?f.a.errorMsg(a):a.result&&a.result.length&&a.result.forEach(function(e){0!=e.parentCode&&t.setList.push(e.fieldCode)})}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getAllFields:function(){var t=this;Object(r.e)("/haoban-manage-web/record/employee-find-system-template.json",{}).then(function(e){var a=e.data;1!=a.errorCode?f.a.errorMsg(a):t.handleAllFields(a.result)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},handleAllFields:function(t){var e=this.treeData(t);e.forEach(function(t,e){t.checkList=[]}),this.customData=e},handleDetailData:function(){var t=this;t.customData.forEach(function(e,a){e.checkList=[],e.children.forEach(function(a,i){t.checkList.includes(a.fieldCode)&&e.checkList.push(a.fieldCode),a.disable=1==t.dataType?t.fixData.includes(a.fieldCode):t.fixDataStore.includes(a.fieldCode),t.setList.includes(a.fieldCode)||(a.disable=!0)})})}},watch:{showCustomDialog:function(t,e){this.customDialog=t},detailData:function(t,e){this.checkList=t&&t.length?t:[],this.handleDetailData()}},mounted:function(){var t=this;t.customDialog=t.showCustomDialog,s.a.all([t.getInfo()]).then(function(){t.getAllFields()})}},m={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-dialog-wrap"},[a("el-dialog",{attrs:{title:"员工个人详情页展示字段设置",visible:t.customDialog,width:"761px","before-close":t.handleCardClose},on:{"update:visible":function(e){t.customDialog=e}}},[a("div",{staticClass:"custom-dialog__title"},[a("p",{staticClass:"custom-dialog__p"},[t._v("tips:添加后的字段将在员工个人详情页展示出来,个人敏感信息不建议添加")])]),t._v(" "),a("div",{staticClass:"custom-dialog-body"},[t._l(t.customData,function(e,i){return[a("div",{key:i,staticClass:"detail-field-cell flex"},[a("div",{staticClass:"detail-field-left"},[t._v(t._s(e.fieldName))]),t._v(" "),a("div",{staticClass:"detail-field-right flex"},[a("el-checkbox-group",{staticClass:"flex flex-wrap",on:{change:t.customChange},model:{value:e.checkList,callback:function(a){t.$set(e,"checkList",a)},expression:"item.checkList"}},t._l(e.children,function(e,i){return a("el-checkbox",{key:e.fieldCode+i,attrs:{label:e.fieldCode,disabled:e.disable,name:"type"}},[t._v("\n "+t._s(e.fieldName)+"\n ")])}),1)],1)])]})],2),t._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:t.customCancel}},[t._v("取 消")]),t._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:t.customConfirm}},[t._v("确 定")])],1)])],1)},staticRenderFns:[]};var h=a("VU/8")(u,m,!1,function(t){a("PHqb")},"data-v-64d006f9",null).exports,g={name:"staffDetails",data:function(){return{navpath:[{name:"首页",path:"/index"},{name:"设置",path:"/companyAddress"},{name:"通讯录信息",path:"/staffDetails"},{name:"员工详细字段",path:""}],fixData:["clerkName","clerkPhone","groupName","positionName"],fixDataStore:["clerkName","clerkPhone","groupName","positionName","clerkCode"],adminStruct:{name:"行政架构通讯录员工详情字段",fixedList:[],defineList:[]},storeStruct:{name:"门店架构通讯录员工详情字段",fixedList:[],defineList:[]},showCustomDialog:!1,detailData:[],dataType:null}},computed:{},methods:{showDialogLayer:function(t){this.showCustomDialog=!0,this.dataType=t,this.detailData=1===t?this.adminStruct.fixedList.map(function(t){return t.fields}).concat(this.adminStruct.defineList.map(function(t){return t.fields})):this.storeStruct.fixedList.map(function(t){return t.fields}).concat(this.storeStruct.defineList.map(function(t){return t.fields}))},customHandleConfirm:function(t){if(this.showCustomDialog=!1,t)return!1;this.getSaveFields(this.dataType)},delField:function(t,e,a,i){var s=this;s.$alert("确定要删除?","提示",{confirmButtonText:"确定",cancelButtonText:"取消"}).then(function(n){n.value;s.postDlField(e.fields,i,a,t)}).catch(function(){})},postDlField:function(t,e,a,i){var s=this,n={fields:t,type:e};Object(r.e)("/haoban-manage-web/record/employee-show-field-delete.json",n).then(function(t){var e=t.data;if(1==e.errorCode)return d.a.showmsg("删除成功","success"),void a.splice(i,1);f.a.errorMsg(e)}).catch(function(t){s.$message.error({duration:1e3,message:t.message})})},getSaveFields:function(t){var e=this;1===t?(e.adminStruct.fixedList=[],e.adminStruct.defineList=[]):(e.storeStruct.fixedList=[],e.storeStruct.defineList=[]);var a={type:t};Object(r.e)("/haoban-manage-web/record/employee-show-field-detail.json",a).then(function(a){var i=a.data;1!=i.errorCode?f.a.errorMsg(i):i.result.forEach(function(a,i){1===o()(t)?e.fixData.includes(a.fields)?e.adminStruct.fixedList.push(a):e.adminStruct.defineList.push(a):e.fixDataStore.includes(a.fields)?e.storeStruct.fixedList.push(a):e.storeStruct.defineList.push(a)})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})}},mounted:function(){s.a.all([this.getSaveFields(1),this.getSaveFields(2)])},components:{navCrumb:l.a,staffDetailField:h}},p={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"staffDetails-wrap common-set-wrap"},[a("nav-crumb",{attrs:{navpath:t.navpath}}),t._v(" "),a("div",{staticClass:"right-content"},[a("div",{staticClass:"right-box",style:{height:t.$store.state.bgHeight,"overflow-y":"auto"}},[a("div",{staticClass:"staffDetails-cell"},[a("h2",{staticClass:"m-b-25 font-w-500"},[t._v(t._s(t.adminStruct.name))]),t._v(" "),a("div",{staticClass:"staffDetails-cell-fixed"},[t._l(t.adminStruct.fixedList,function(e,i){return[a("el-button",{key:"btn1"+i,staticClass:"staffDetails-cell-btn",attrs:{disabled:""}},[t._v(t._s(e.fieldName))])]})],2),t._v(" "),a("div",{staticClass:"staffDetails-cell-add font-0"},[t._l(t.adminStruct.defineList,function(e,i){return[a("el-tag",{key:"tag1"+i,staticClass:"staffDetails-cell-btn"},[t._v(t._s(e.fieldName)+" "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return a.stopPropagation(),t.delField(i,e,t.adminStruct.defineList,1)}}})])]}),t._v(" "),a("el-button",{staticClass:"el-tag m-l-8 staffDetails-cell-btn",on:{click:function(e){return e.stopPropagation(),t.showDialogLayer(1)}}},[a("i",{staticClass:"el-icon-plus"}),t._v("添加字段")])],2)]),t._v(" "),a("div",{staticClass:"staffDetails-cell"},[a("h2",{staticClass:"m-b-25 font-w-500"},[t._v(t._s(t.storeStruct.name))]),t._v(" "),a("div",{staticClass:"staffDetails-cell-fixed"},[t._l(t.storeStruct.fixedList,function(e,i){return[a("el-button",{key:"btn"+i,staticClass:"staffDetails-cell-btn",attrs:{disabled:""}},[t._v(t._s(e.fieldName))])]})],2),t._v(" "),a("div",{staticClass:"staffDetails-cell-add font-0"},[t._l(t.storeStruct.defineList,function(e,i){return[a("el-tag",{key:"tag"+i,staticClass:"staffDetails-cell-btn"},[t._v(t._s(e.fieldName)+" "),a("i",{staticClass:"el-icon-circle-close",on:{click:function(a){return a.stopPropagation(),t.delField(i,e,t.storeStruct.defineList,2)}}})])]}),t._v(" "),a("el-button",{staticClass:"el-tag m-l-8 staffDetails-cell-btn",on:{click:function(e){return e.stopPropagation(),t.showDialogLayer(2)}}},[a("i",{staticClass:"el-icon-plus"}),t._v("添加字段")])],2)])])]),t._v(" "),a("vue-gic-footer"),t._v(" "),a("staff-detail-field",{attrs:{detailData:t.detailData,showCustomDialog:t.showCustomDialog,dataType:t.dataType},on:{customHandleConfirm:t.customHandleConfirm}})],1)},staticRenderFns:[]};var v=a("VU/8")(g,p,!1,function(t){a("HmVO")},"data-v-4dbf74e4",null);e.default=v.exports}});
\ No newline at end of file
webpackJsonp([31],{B9Yg:function(t,s,e){t.exports=e.p+"static/img/gic-error.8aba914.png"},"Q3j/":function(t,s,e){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var i=e("B9Yg"),a=e.n(i),n={name:"page404",data:function(){return{img_404:a.a}},computed:{message:function(){return"登录遇到错误啦!请确认您是否已是好办管理员,如不是,请联系管理员。"}},mounted:function(){}},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_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:"#/login",rel:"noopener noreferrer"}},[this._v("返回好办登录页")])])])])},staticRenderFns:[]};var c=e("VU/8")(n,r,!1,function(t){e("kUQV")},"data-v-45ea1cc1",null);s.default=c.exports},kUQV:function(t,s){}});
\ No newline at end of file
webpackJsonp([34],{"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("dq3G")},"data-v-34b4b20b",null);L.default=C.exports},CkW6:function(M,L){M.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDAwIDMzNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAwIDMzNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0ZBRkNGRjt9DQoJLnN0MXtmaWxsOiNEQkU1RjE7fQ0KCS5zdDJ7ZmlsbDojREVFN0Y0O30NCgkuc3Qze2ZpbGw6I0I5QzdEQjt9DQoJLnN0NHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDV7ZmlsbDpub25lO3N0cm9rZTojQjlDN0RCO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q2e2ZpbGw6bm9uZTtzdHJva2U6I0I2QzdEODtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0NSIgZD0iTTI3NC41LDI0MS4zYy01LjMtNS4zLTQuNCw0LjQtNi43LDYuN2MtMy4xLDMuMS02LjMsNi05LjcsOC42SDEyNS4yYy0zLjQtMi43LTYuNi01LjYtOS43LTguNw0KCWMtMjguNC0yOC41LTM4LjYtNzAuNS0yNi42LTEwOWwtMTAuNS0xMC42Yy01LjMtNS4zLTUuMy0xMy44LDAtMTkuMmM1LjItNS4zLDEzLjctNS4zLDE5LTAuMWMwLDAsMCwwLDAuMSwwLjFsNi42LDYuOA0KCWMzLjEsMy4yLDguMiwzLjIsMTEuNCwwbDAsMGMzLjItMy4yLDMuMi04LjMsMC0xMS41TDEwMy4xLDkyYy0zLjItMy4yLTMuMi04LjMsMC0xMS41YzMuMS0zLjIsOC4yLTMuMiwxMS40LDBsMCwwbDE3LjIsMTcuMg0KCWMtMC45LDMuNywwLjksNy42LDQuNCw5LjNjMy41LDEuNyw3LjcsMC42LDkuOS0yLjVjMi4zLTMuMSwyLjEtNy40LTAuNS0xMC4zYy0zLjMtMy44LTYuNS03LjItNi41LTcuMmwtNy4zLTcuNA0KCWMzNC44LTIxLjMsODIuNi0yMS43LDExNy4yLDBjMzQuNSwyMS43LDUzLjksNjEuMiw1MCwxMDEuOWwxNS40LDE1LjZjMy4yLDMuMiwzLjIsOC4zLDAsMTEuNWMtMy4xLDMuMi04LjIsMy4yLTExLjQsMGwwLDANCglsLTE1LjEtMTUuM2MtMy4xLTMuMi04LjItMy4yLTExLjQsMGwwLDBjLTMuMiwzLjItMy4yLDguMywwLDExLjVsMTcuMSwxNy4yYzUuMiw1LjMsNS4yLDEzLjgsMCwxOS4xDQoJQzI4OC40LDI0Ni42LDI3OS45LDI0Ni42LDI3NC41LDI0MS4zQzI3NC42LDI0MS4zLDI3NC42LDI0MS4zLDI3NC41LDI0MS4zTDI3NC41LDI0MS4zeiIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTg2LjYsNzEuNGMwLDQuNywzLjgsOC41LDguNSw4LjVjMS41LDAsMy0wLjQsNC4zLTEuMWM0LjEtMi4zLDUuNS03LjUsMy4xLTExLjZjLTEuNS0yLjYtNC4zLTQuMy03LjQtNC4zDQoJQzkwLjQsNjIuOSw4Ni42LDY2LjcsODYuNiw3MS40Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjE2LjQsMTQ1LjRoMjQuM2wtNy40LDE3LjljMi42LDEuOCw0LjUsMy44LDUuOCw2YzEuMiwyLjIsMS45LDQuOCwxLjksNy44YzAsNC42LTEuNiw4LjQtNC44LDExLjINCgljLTMuMiwyLjktNy4zLDQuMy0xMi4zLDQuM2MtMi41LDAtNS4xLTAuNC03LjUtMS4xdi0xMy4xYzIsMC45LDMuOSwxLjQsNS41LDEuNHMyLjktMC41LDMuNy0xLjRjMC45LTEsMS4zLTIuMywxLjMtNC4xDQoJYzAtMS45LTAuOC0zLjQtMi40LTQuNmMtMS42LTEuMi0zLjctMS43LTYuNC0xLjdsMy40LTkuMWgtNS4xVjE0NS40TDIxNi40LDE0NS40eiBNMjA3LjUsMTgxLjZjMCwxLjUtMC4zLDMtMC44LDQuMw0KCXMtMS4zLDIuNS0yLjMsMy41cy0yLjIsMS44LTMuNCwyLjNjLTEuMywwLjYtMi44LDAuOS00LjMsMC45aC05LjZjLTEuNSwwLTIuOS0wLjMtNC4zLTAuOWMtMS4zLTAuNi0yLjUtMS4zLTMuNC0yLjMNCgljLTAuNC0wLjQtMC44LTAuOS0xLjItMS40bDExLjctMTcuM3Y2YzAsMC42LDAuMiwxLjEsMC42LDEuNGMwLjQsMC40LDAuOCwwLjYsMS40LDAuNmMxLjEsMCwyLTAuOCwyLTEuOXYtMC4xdi0xMS45bDEwLjktMTYuMQ0KCWMxLjgsMiwyLjgsNC42LDIuNyw3LjNMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZMMjA3LjUsMTgxLjZ6IE0xNzcuMSwxODUuOWMtMC42LTEuNC0wLjktMi44LTAuOC00LjNWMTU2YzAtMS41LDAuMy0zLDAuOC00LjMNCglzMS4zLTIuNSwyLjMtMy41czIuMi0xLjgsMy40LTIuM2MxLjMtMC42LDIuOC0wLjksNC4zLTAuOWg5LjZjMS41LDAsMi45LDAuMyw0LjMsMC45YzEuMywwLjUsMi40LDEuMywzLjQsMi4zbC0xMC41LDE1LjR2LTIuNw0KCWMwLTAuNS0wLjItMS4xLTAuNi0xLjRjLTAuNC0wLjQtMC45LTAuNi0xLjQtMC42Yy0xLjEsMC0yLDAuOC0yLDEuOXYwLjF2OC42bC0xMi4xLDE3LjlDMTc3LjUsMTg2LjksMTc3LjMsMTg2LjQsMTc3LjEsMTg1LjkNCglMMTc3LjEsMTg1Ljl6IE0yNDMuOCwxOTIuN2MzLjUtNy40LDUuMy0xNS41LDUuMy0yMy43YzAtMzAuNS0yNC40LTU1LjItNTQuNi01NS4ycy01NC42LDI0LjctNTQuNiw1NS4yYzAsMC40LDAsMC44LDAsMS4xDQoJbDE5LjYtMjQuNmgxMS40TDE1NCwxNzEuM2g1LjV2LTYuNWwxMS43LTE4LjV2NDYuOGgtMTEuN3YtOS44aC0xNy44YzUuMSwxOS4yLDIwLjEsMzQuMywzOS4yLDM5LjJjLTEuMiwzLjEtNC44LDEwLjctMTAuNywxMg0KCWMtNy4zLDEuNywxOS45LDAuNCwzOS40LTEyLjVjMTQuOS00LjQsMjcuMi0xNSwzMy45LTI4LjlMMjQzLjgsMTkyLjdMMjQzLjgsMTkyLjd6Ii8+DQo8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMjM4LjksMTU0LjNsLTI0LjQsMzUuNGwwLjUsMC4zbDI0LjQtMzUuNEwyMzguOSwxNTQuM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yNjYuMiw2Ni42aDhjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjIsMC4zLTAuNiwwLjQtMC45LDAuNGgtOA0KCWMtMC40LDAtMC43LTAuMS0wLjktMC40Yy0wLjUtMC41LTAuNS0xLjQsMC0xLjlDMjY1LjUsNjYuNywyNjUuOCw2Ni42LDI2Ni4yLDY2LjYgTTExNi41LDIwMS45Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJczgtMy42LDgtOC4xUzEyMC45LDIwMS45LDExNi41LDIwMS45TDExNi41LDIwMS45eiBNMTIxLjQsMjEyLjFjLTAuOCwyLTIuOCwzLjMtNC45LDMuM2MtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4xLDMuMy01DQoJYzItMC44LDQuMy0wLjQsNS44LDEuMkMxMjEuOCwyMDcuNywxMjIuMiwyMTAsMTIxLjQsMjEyLjFMMTIxLjQsMjEyLjF6IE0xOTEuMyw3OC43Yy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xDQoJYzIuMSwwLDQuMi0wLjksNS43LTIuNHMyLjMtMy42LDIuMy01LjdDMTk5LjMsODIuNCwxOTUuNyw3OC43LDE5MS4zLDc4Ljd6IE0xOTYuMyw4OC45Yy0wLjgsMi0yLjgsMy4zLTQuOSwzLjMNCgljLTMsMC01LjMtMi40LTUuMy01LjRjMC0yLjIsMS4zLTQuMiwzLjMtNXM0LjMtMC40LDUuOCwxLjJDMTk2LjYsODQuNiwxOTcuMSw4Ni45LDE5Ni4zLDg4LjlMMTk2LjMsODguOXogTTI3MC4yLDE2Mi42DQoJYy00LjQsMC04LDMuNi04LDguMXMzLjYsOC4xLDgsOC4xczgtMy42LDgtOC4xQzI3OC4yLDE2Ni4zLDI3NC42LDE2Mi42LDI3MC4yLDE2Mi42eiBNMjc1LjEsMTcyLjhjLTAuOCwyLTIuOCwzLjMtNC45LDMuMw0KCWMtMywwLTUuMy0yLjQtNS4zLTUuNGMwLTIuMiwxLjMtNC4yLDMuMy01czQuMy0wLjQsNS44LDEuMlMyNzUuOSwxNzAuOCwyNzUuMSwxNzIuOHogTTIzMC4xLDMxLjRjLTQuNCwwLTgsMy42LTgsOC4xczMuNiw4LjEsOCw4LjENCgljMi4xLDAsNC4yLTAuOSw1LjctMi40czIuMy0zLjYsMi4zLTUuN0MyMzguMSwzNSwyMzQuNSwzMS40LDIzMC4xLDMxLjR6IE0yMzUsNDEuNmMtMC44LDItMi44LDMuMy00LjksMy4zYy0zLDAtNS4zLTIuNC01LjMtNS40DQoJYzAtMi4yLDEuMy00LjIsMy4zLTVzNC4zLTAuNCw1LjgsMS4yQzIzNS40LDM3LjIsMjM1LjgsMzkuNSwyMzUsNDEuNnoiLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNjMuMiw0NS45aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuNSwwLjUsMC41LDEuMywwLDEuOWwwLDBjLTAuMywwLjMtMC42LDAuNC0xLDAuNGgtOC4yDQoJYy0wLjQsMC0wLjctMC4xLTEtMC40Yy0wLjUtMC41LTAuNS0xLjMsMC0xLjlsMCwwQzE2Mi40LDQ2LjEsMTYyLjgsNDUuOSwxNjMuMiw0NS45IE0yNzEuNyw2My41djhjMCwwLjQtMC4xLDAuNy0wLjQsMC45DQoJYy0wLjMsMC4zLTAuNiwwLjQtMSwwLjRjLTAuNywwLTEuNC0wLjYtMS40LTEuM2wwLDB2LThjMC0wLjQsMC4xLTAuNywwLjQtMC45YzAuNS0wLjUsMS40LTAuNSwxLjksMA0KCUMyNzEuNiw2Mi44LDI3MS43LDYzLjIsMjcxLjcsNjMuNSIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTEwNy40LDE1NC44aDguMmMwLjQsMCwwLjcsMC4xLDEsMC40YzAuMywwLjIsMC40LDAuNiwwLjQsMC45YzAsMC43LTAuNiwxLjMtMS40LDEuM2gtOC4yDQoJYy0wLjUsMC0wLjktMC4zLTEuMi0wLjdjLTAuMi0wLjQtMC4yLTAuOSwwLTEuM0MxMDYuNCwxNTUuMSwxMDYuOSwxNTQuOCwxMDcuNCwxNTQuOCBNMTY5LDQyLjd2OGMwLDAuNC0wLjEsMC43LTAuNCwwLjkNCgljLTAuNSwwLjUtMS40LDAuNS0yLDBjLTAuMi0wLjItMC40LTAuNi0wLjQtMC45di04YzAtMC40LDAuMS0wLjcsMC40LTAuOWMwLjUtMC41LDEuNC0wLjUsMS45LDBDMTY4LjgsNDIsMTY5LDQyLjMsMTY5LDQyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0yMzAuOSwxMTAuM2g4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS40YzAsMC43LTAuNiwxLjMtMS4zLDEuNGgtOC4xYy0wLjgsMC0xLjQtMC42LTEuNC0xLjQNCgljMC0wLjQsMC4xLTAuNywwLjQtMUMyMzAuMiwxMTAuNCwyMzAuNiwxMTAuMywyMzAuOSwxMTAuMyIvPg0KPHBhdGggY2xhc3M9InN0MyIgZD0iTTExNC42LDE2My44djguMmMwLDAuNC0wLjEsMC43LTAuNCwxYy0wLjUsMC41LTEuNCwwLjUtMS45LDBjLTAuMy0wLjMtMC40LTAuNi0wLjQtMXYtOC4yYzAtMC40LDAuMS0wLjcsMC40LTENCgljMC41LTAuNSwxLjQtMC41LDEuOSwwbDAsMEMxMTQuNCwxNjMuMSwxMTQuNiwxNjMuNCwxMTQuNiwxNjMuOCIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyNiwyNzIuN2g2MC40YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40SDEyNmMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzEyNC43LDI3My4zLDEyNS4zLDI3Mi43LDEyNiwyNzIuNyIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTIxOC42LDI3Mi43aDM0LjljMC43LDAsMS4zLDAuNiwxLjMsMS4zYzAsMC43LTAuNiwxLjMtMS4zLDEuM2gtMzQuOWMtMC43LDAtMS4zLTAuNi0xLjQtMS4zDQoJYzAtMC40LDAuMS0wLjcsMC40LTFDMjE3LjksMjcyLjksMjE4LjIsMjcyLjcsMjE4LjYsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTguMiwyODIuMmgxMzEuNWMwLjcsMCwxLjMsMC42LDEuNCwxLjNjMCwwLjQtMC4xLDAuNy0wLjQsMWMtMC4zLDAuMy0wLjYsMC40LTEsMC40SDE1OC4yDQoJYy0wLjcsMC0xLjMtMC42LTEuMy0xLjNsMCwwQzE1Ni45LDI4Mi44LDE1Ny41LDI4Mi4yLDE1OC4yLDI4Mi4yIi8+DQo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNOTMuOCwyODIuMmgzNC45YzAuNywwLDEuMywwLjYsMS4zLDEuM2wwLDBjMCwwLjctMC42LDEuMy0xLjMsMS40bDAsMEg5My44Yy0wLjcsMC0xLjMtMC42LTEuNC0xLjMNCgljMC0wLjQsMC4xLTAuNywwLjQtMUM5My4xLDI4Mi4zLDkzLjUsMjgyLjIsOTMuOCwyODIuMiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTE5Ny4xLDI3Mi43aDguMWMwLjcsMCwxLjMsMC42LDEuMywxLjNjMCwwLjctMC42LDEuMy0xLjMsMS4zaC04LjFjLTAuNywwLjEtMS40LTAuNS0xLjQtMS4zDQoJYy0wLjEtMC43LDAuNS0xLjQsMS4zLTEuNEMxOTcsMjcyLjcsMTk3LjEsMjcyLjcsMTk3LjEsMjcyLjciLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yODQuNCwyNjQuNmg4LjFjMC43LDAsMS4zLDAuNiwxLjMsMS4zbDAsMGMwLDAuNy0wLjYsMS4zLTEuMywxLjNoLTguMWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zDQoJQzI4MywyNjUuMywyODMuNiwyNjQuNiwyODQuNCwyNjQuNiIvPg0KPHBhdGggY2xhc3M9InN0MSIgZD0iTTk5LjIsMjY0LjZoMTcxLjdjMC40LDAsMC43LDAuMSwwLjksMC40YzAuNCwwLjQsMC41LDEsMC4zLDEuNWMtMC4yLDAuNS0wLjcsMC44LTEuMiwwLjhIOTkuMQ0KCWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zQzk3LjgsMjY1LjMsOTguNCwyNjQuNiw5OS4yLDI2NC42Ii8+DQo8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMjM1LDk1Ljh2OC4xYzAsMC43LTAuNiwxLjMtMS4zLDEuM3MtMS4zLTAuNi0xLjMtMS4zdi04LjFjMC0wLjcsMC42LTEuMywxLjMtMS40QzIzNC40LDk0LjQsMjM1LDk1LDIzNSw5NS44Ig0KCS8+DQo8L3N2Zz4NCg=="},dq3G:function(M,L){}});
\ No newline at end of file
webpackJsonp([36],{"0my8":function(e,t){},HkK0:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=r("Xxa5"),s=r.n(a),n=r("exGp"),o=r.n(n),l=r("P9l9"),c={name:"clerkTbale",components:{vueSelectStore:r("Ie7z").a},props:{store:{type:Object,required:!0},gicFlag:{type:Boolean,default:!0}},data:function(){return{currentBrand:this.store.storeGroupId,treeSet:{isSelectPerson:!0,dialogVisible:!1,isSingle:!0,openNextBool:!0},selectType:"store",transArr:[],selectedList:[],storeListData:{}}},methods:{goBack:function(){window.location.reload()},transClerk:function(e,t){this.transArr="single"==e?[t]:"all"==e?this.storeListData.clerks:this.selectedList,this.treeSet.dialogVisible=!0},delClerk:function(e){this.$emit("delClerk",e)},selectMember:function(e){this.selectedList=e},handleSelectedList:function(e){var t=this;if(!e.length)return!1;var r=[];t.transArr.forEach(function(e){r.push(e.employeeClerkId)});var a={ids:r.join(","),storeId:e[0].id};Object(l.e)("/haoban-manage-web/emp/batchTransfer",a).then(function(e){1==e.data.errorCode?(t.$message.success({message:"操作成功"}),t.getClerkList()):t.$message.error({message:e.data.message})}).catch(function(e){t.$message.error({message:e.message})})},getClerkList:function(){var e=this,t={departmentId:e.store.storeGroupId,storeId:e.store.storeId,showChild:1,showType:2,pageSize:200,pageNum:1,status:1,isCherk:1};Object(l.e)("/haoban-manage-web/emp/findsimplepage",t).then(function(t){1==t.data.errorCode?e.storeListData.clerks=t.data.result.list||[]:e.$message.error({duration:1e3,message:t.data.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})}},watch:{store:function(e,t){this.storeListData=e||{}}},mounted:function(){this.storeListData=this.store||{}}},i={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"recycle-bin"},[r("p",{staticClass:"r-b-top-header"},[r("a",{staticClass:"a-href title",on:{click:e.goBack}},[e._v("返回")]),e._v(" "),e.gicFlag?e._e():r("el-button",{attrs:{disabled:0==e.selectedList.length},on:{click:function(t){return e.transClerk("group")}}},[e._v("批量转移")]),e._v(" "),e.gicFlag?e._e():r("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.transClerk("all")}}},[e._v("全部转移")])],1),e._v(" "),r("el-table",{ref:"clerkTable",staticStyle:{width:"100%"},attrs:{data:e.storeListData.clerks},on:{"selection-change":e.selectMember}},[r("el-table-column",{attrs:{type:"selection",width:"42"}}),e._v(" "),r("el-table-column",{attrs:{label:"姓名",prop:"name"}}),e._v(" "),r("el-table-column",{attrs:{label:"手机号码",prop:"phoneNumber"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s("86"==t.row.nationcode?t.row.phoneNumber:"+"+t.row.nationcode+"-"+t.row.phoneNumber)+"\n ")]}}])}),e._v(" "),r("el-table-column",{attrs:{label:"操作",width:"80",prop:"clerkCount"},scopedSlots:e._u([{key:"default",fn:function(t){return[e.gicFlag?e._e():r("a",{staticClass:"a-href",on:{click:function(r){return e.transClerk("single",t.row)}}},[r("i",{staticClass:"el-icon-sort"})]),e._v(" "),e.gicFlag?e._e():r("a",{staticClass:"a-href",on:{click:function(r){return e.delClerk(t.row)}}},[r("i",{staticClass:"el-icon-delete"})])]}}])})],1),e._v(" "),r("vue-select-store",{ref:"storeSelector",attrs:{currentBrand:e.currentBrand,treeSet:e.treeSet,selectType:e.selectType},on:{handleSelectedList:e.handleSelectedList}})],1)},staticRenderFns:[]};var u=r("VU/8")(c,i,!1,function(e){r("r5Dg")},null,null).exports,d=r("3Xzz"),h=r("PI0u"),g=r("unF8"),p=r("Ch4/"),m={name:"recycle-bin",components:{navCrumb:d.a,clerkTable:u},data:function(){return{searchKey:"",typeArr:["全部类型","自营","联营","代理(加盟)","代销","托管"],pageSize:20,pageNumber:1,recycleList:[],total:0,navpath:[{name:"首页",path:"/index"},{name:"通讯录",path:"/administrativeFrame"},{name:"门店架构",path:"/storeFrame?showRecycle=0"},{name:"门店回收站",path:""}],clerks:[],showClerks:!1,currentStore:{},brandId:"",gicFlag:!0}},methods:{toInput:Object(h.a)(function(e){this.pageNumber=1,this.getRecycleList()},300),getRecycleList:function(){var e=this,t=e.$route.query,r={storeName:e.searchKey||"",storeGroupId:t.dept,showChild:1*t.showChild,showType:2,pageSize:e.pageSize,pageNum:e.pageNumber,status:4,storeType:t.type};Object(l.a)("/haoban-manage-web/store/findSimplePage",r).then(function(t){1==t.data.errorCode?(e.total=t.data.result.total,e.recycleList=t.data.result.list||[]):(e.recycleList=[],e.$message.error({duration:1e3,message:t.data.message}))}).catch(function(t){e.loading=!1,e.$message.error({duration:1e3,message:t.message})})},restore:function(e){var t=this;t.$confirm("确定要恢复到门店列表吗?","提示",{type:"warning"}).then(function(){var r={status:1,storeId:e.storeId};Object(l.a)("/haoban-manage-web/store/changeStatus",r).then(function(e){1==e.data.errorCode?(t.searchKey="",t.pageNumber=1,t.getRecycleList()):t.$message.error({message:e.data.message})}).catch(function(e){t.$message.error({message:e.message})})}).catch(function(e){})},handleSizeChange:function(e){this.pageSize=e,this.getRecycleList()},handleCurrentChange:function(e){this.pageNumber=e,this.getRecycleList()},showClerksFn:function(e){this.currentStore=e,this.clerks=null==e.clerks?[]:e.clerks,this.showClerks=!0},delClerk:function(e){var t=this.currentStore,r=this;r.$confirm("是否要删除该员工?","提示",{type:"warning"}).then(function(){var a={ids:e.employeeClerkId};Object(l.a)("/haoban-manage-web/emp/del",a).then(function(a){1==a.data.errorCode?t.clerks.forEach(function(r){r.employeeClerkId==e.employeeClerkId&&t.clerks.splice(t.clerks.indexOf(r),1)}):r.$message.error({duration:1e3,message:a.data.message})}).catch(function(e){r.$message.error({duration:1e3,message:e.message})})})},getGicData:function(){var e=this;return o()(s.a.mark(function t(){var r,a,n,o;return s.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a={type:1,businessId:(r=e).brandId},t.next=4,Object(g.a)(a);case 4:n=t.sent,1==(o=n.data).errorCode?r.gicFlag=o.result:p.a.errorMsg(o);case 7:case"end":return t.stop()}},t,e)}))()}},beforeMount:function(){this.getRecycleList(),this.brandId=this.$route.query.brandId,this.getGicData()}},f={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"common-set-wrap recycle-wrap"},[r("nav-crumb",{attrs:{navpath:e.navpath}}),e._v(" "),r("div",{staticClass:"right-content"},[r("div",{staticClass:"right-box"},[e.showClerks?r("clerk-table",{attrs:{gicFlag:e.gicFlag,store:e.currentStore},on:{delClerk:e.delClerk}}):r("div",{staticClass:"recycle-bin"},[r("div",{staticClass:"r-b-top-header"},[r("div",{staticClass:"title"},[e._v(e._s(e.recycleList.length)+" 家门店")]),e._v(" "),r("el-input",{attrs:{placeholder:"请输入门店名","prefix-icon":"el-icon-search"},nativeOn:{keyup:function(t){return r=t,e.toInput(r);var r}},model:{value:e.searchKey,callback:function(t){e.searchKey=t},expression:"searchKey"}},[e._v(">")])],1),e._v(" "),r("el-table",{staticStyle:{width:"100%"},attrs:{data:e.recycleList}},[r("el-table-column",{attrs:{label:"门店名称",prop:"storeName"}}),e._v(" "),r("el-table-column",{attrs:{label:"代码",prop:"storeCode"}}),e._v(" "),r("el-table-column",{attrs:{label:"类型",prop:"storeType"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.typeArr[1*t.row.storeType+1])+"\n ")]}}])}),e._v(" "),r("el-table-column",{attrs:{label:"地址",prop:"postAddress"}}),e._v(" "),r("el-table-column",{attrs:{label:"待处理店员",prop:"clerkCount"},scopedSlots:e._u([{key:"default",fn:function(t){return[r("a",{staticClass:"a-href",on:{click:function(r){return e.showClerksFn(t.row)}}},[e._v("\n "+e._s(t.row.clerks.length)+"\n ")])]}}])}),e._v(" "),r("el-table-column",{attrs:{label:"操作",prop:"clerkCount"},scopedSlots:e._u([{key:"default",fn:function(t){return[e.gicFlag?e._e():r("a",{staticClass:"a-href",on:{click:function(r){return e.restore(t.row)}}},[e._v("恢复到门店列表")])]}}])})],1),e._v(" "),e.total?r("div",{staticClass:"pagination"},[r("el-pagination",{attrs:{background:"","page-sizes":[20,40,60,80],"page-size":e.pageSize,"current-page":e.pageNumber,layout:"total, sizes, prev, pager, next",total:e.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1):e._e()],1)],1)]),e._v(" "),r("vue-gic-footer")],1)},staticRenderFns:[]};var b=r("VU/8")(m,f,!1,function(e){r("0my8")},null,null);t.default=b.exports},r5Dg:function(e,t){}});
\ No newline at end of file
webpackJsonp([37],{ALsN:function(t,s){},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(){}},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_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 c=i("VU/8")(n,r,!1,function(t){i("ALsN")},"data-v-18a2f51c",null);s.default=c.exports},Minx:function(t,s,i){t.exports=i.p+"static/img/error_404.bf58747.svg"}});
\ 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 diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
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.
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