├── .babelrc ├── .editorconfig ├── .gitignore ├── .idea └── vcs.xml ├── .postcssrc.js ├── LICENSE ├── README.md ├── TIM截图20181202211248.png ├── build ├── build.js ├── check-versions.js ├── logo.png ├── utils.js ├── vue-loader.conf.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── config ├── dev.env.js ├── index.js ├── prod.env.js └── test.env.js ├── dist ├── index.html └── static │ ├── css │ ├── app.7c0dc9027bab8409736bec4d17d981f0.css │ ├── app.7c0dc9027bab8409736bec4d17d981f0.css.map │ └── v-tree.css │ ├── img │ ├── line_conn.png │ ├── loading.gif │ └── v-tree.png │ └── js │ ├── app.d60003d8116965c3ccb0.js │ ├── app.d60003d8116965c3ccb0.js.map │ ├── manifest.3ad1d5771e9b13dbdad2.js │ ├── manifest.3ad1d5771e9b13dbdad2.js.map │ ├── vendor.12953a6fa51569319d07.js │ └── vendor.12953a6fa51569319d07.js.map ├── index.html ├── package.json ├── src ├── App.vue ├── components │ ├── tree-core.vue │ ├── tree.vue │ └── vTreeDemo.vue ├── main.js └── router │ └── index.js ├── static ├── .gitkeep ├── css │ └── v-tree.css └── img │ ├── line_conn.png │ ├── loading.gif │ └── v-tree.png └── test ├── e2e ├── custom-assertions │ └── elementCount.js ├── nightwatch.conf.js ├── runner.js └── specs │ └── test.js └── unit ├── .eslintrc ├── jest.conf.js ├── setup.js └── specs └── HelloWorld.spec.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"], 12 | "env": { 13 | "test": { 14 | "presets": ["env", "stage-2"], 15 | "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | /test/unit/coverage/ 8 | /test/e2e/reports/ 9 | selenium-debug.log 10 | 11 | # Editor directories and files 12 | /.idea/** 13 | .vscode 14 | *.suo 15 | *.ntvs* 16 | *.njsproj 17 | *.sln 18 | /node_modules/** 19 | package-lock.json 20 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 miller 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # what is v-tree? 2 | 3 | > Tree menu based on Vue 4 | 5 | ***en:A demo path: v-tree/src/components/vTreeDemo.Vue*** 6 | 7 | ***zh:一个demo的路径: v-tree/src/components/vTreeDemo.Vue*** 8 | 9 | ## Explain: 10 | en:Functions already implemented: 11 | Single election、check box、Cascade selection、Yes/No pull-down、Callback function before clicking on node、 12 | Click node function、Check/Cancel Check Box Events、Asynchronous loading node 13 | 14 | zh:单选、复选、复选是/否级联选择(默认级联选中)、是否展示下拉虚线、点击节点回调函数,返回true 选中并触发选中事件,false相反, 15 | 节点选中事件,返回选中节点信息和上个选中节点信息,选中/取消选中复选框事件,将返回所有选中复选框数据 16 | 异步加载数据 17 | 18 | Vue custom variables and function description. vue自定义变量和函数说明 19 | 20 | Default single selection 21 | ``` bash 22 | :treeNode type:json default:[] 23 | ``` 24 | Standard JSON tree node,'name' attribute required. 25 | 标准json tree节点,name属性必填 26 | ``` bash 27 | :allOpen type:boolean default:false 28 | ``` 29 | Open/close all nodes 30 | 开启/关闭所有节点 31 | ``` bash 32 | :nodeTrigger type:boolean default:false 33 | ``` 34 | Click on a node to trigger a node event 35 | 点击节点是否触发节点事件 36 | ``` bash 37 | @call type:Function parameter:inside treeNode,You can change it and the page will be re-rendered. 38 | ``` 39 | Initialize callback function 40 | 初始化回调函数 参数为节点数据的深拷贝,你可以修改此数据,tree将会重新渲染 41 | ``` bash 42 | :beforeClick type:Function parameter:Current node information(参数:当前节点信息) 43 | ``` 44 | Trigger the callback function before clicking on the node, 45 | return false Unable to trigger clickNode 46 | 击节点前触发回调函数,return false 无法触发clickNode事件 47 | ``` bash 48 | :clickNode type:Function parameter 1:Current node information,parameter 2:Last selected node information(上一个选中的节点信息) 49 | ``` 50 | click node callback function 51 | 点击节点 回调函数 52 | ``` bash 53 | :hiddenLine type:Boolean default: false 54 | ``` 55 | Hide hidden lines 56 | 是否隐藏 虚线 57 | ``` bash 58 | :checkBox type:boolean default:false 59 | ``` 60 | Open/close the check box 61 | 开启/关闭复选框 62 | ``` bash 63 | :checkBoxType type:boolean default:true 64 | ``` 65 | Open/close Cascade Selection 66 | 开启/关闭级联选中 67 | ``` bash 68 | @checkBoxCall type:Function parameter:All selected node sets(所有选中的节点集合) 69 | ``` 70 | Check/uncheck check box callback function 71 | 选中/取消选中复选框回调函数 72 | ``` bash 73 | :async type:boolean default:false 74 | ``` 75 | Open/close async loading 76 | 是否开启异步 默认关闭 77 | ``` bash 78 | :asyncCall type:Function parameter 1:Current node information,parameter 2:callback function,Receive an array parameter 79 | Example: 80 | 81 | asyncCall(data, call) { //data:Current node information 82 | setTimeout(function () { 83 | let hm = '' + (new Date()).getTime(); 84 | let addNode = [ 85 | {id: hm, name: "children node" + hm.substr(hm.length - 4, hm.length)}, 86 | ]; 87 | call(addNode); //callback function 88 | }, 800); 89 | } 90 | ``` 91 | async loading callback function 92 | 异步回调函数function(data,call),data:current node, call 回调执行,接收一个数组参数 93 | 94 | A complete example: 95 | ``` bash 96 | 110 | ``` 111 | 112 | ## Pull Request 113 | If you find a mistake,Welcome Pull Request 114 | 115 | ![image](https://github.com/lenosp/v-tree/blob/master/TIM%E6%88%AA%E5%9B%BE20181202211248.png) 116 | 117 | ## Build Setup 118 | ``` bash 119 | # install dependencies 120 | npm install 121 | 122 | # serve with hot reload at localhost:8089 123 | npm run dev 124 | ``` 125 | -------------------------------------------------------------------------------- /TIM截图20181202211248.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/TIM截图20181202211248.png -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | require('./check-versions')() 3 | 4 | process.env.NODE_ENV = 'production' 5 | 6 | const ora = require('ora') 7 | const rm = require('rimraf') 8 | const path = require('path') 9 | const chalk = require('chalk') 10 | const webpack = require('webpack') 11 | const config = require('../config') 12 | const webpackConfig = require('./webpack.prod.conf') 13 | 14 | const spinner = ora('building for production...') 15 | spinner.start() 16 | 17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 18 | if (err) throw err 19 | webpack(webpackConfig, (err, stats) => { 20 | spinner.stop() 21 | if (err) throw err 22 | process.stdout.write(stats.toString({ 23 | colors: true, 24 | modules: false, 25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. 26 | chunks: false, 27 | chunkModules: false 28 | }) + '\n\n') 29 | 30 | if (stats.hasErrors()) { 31 | console.log(chalk.red(' Build failed with errors.\n')) 32 | process.exit(1) 33 | } 34 | 35 | console.log(chalk.cyan(' Build complete.\n')) 36 | console.log(chalk.yellow( 37 | ' Tip: built files are meant to be served over an HTTP server.\n' + 38 | ' Opening index.html over file:// won\'t work.\n' 39 | )) 40 | }) 41 | }) 42 | -------------------------------------------------------------------------------- /build/check-versions.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const chalk = require('chalk') 3 | const semver = require('semver') 4 | const packageConfig = require('../package.json') 5 | const shell = require('shelljs') 6 | 7 | function exec (cmd) { 8 | return require('child_process').execSync(cmd).toString().trim() 9 | } 10 | 11 | const versionRequirements = [ 12 | { 13 | name: 'node', 14 | currentVersion: semver.clean(process.version), 15 | versionRequirement: packageConfig.engines.node 16 | } 17 | ] 18 | 19 | if (shell.which('npm')) { 20 | versionRequirements.push({ 21 | name: 'npm', 22 | currentVersion: exec('npm --version'), 23 | versionRequirement: packageConfig.engines.npm 24 | }) 25 | } 26 | 27 | module.exports = function () { 28 | const warnings = [] 29 | 30 | for (let i = 0; i < versionRequirements.length; i++) { 31 | const mod = versionRequirements[i] 32 | 33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 34 | warnings.push(mod.name + ': ' + 35 | chalk.red(mod.currentVersion) + ' should be ' + 36 | chalk.green(mod.versionRequirement) 37 | ) 38 | } 39 | } 40 | 41 | if (warnings.length) { 42 | console.log('') 43 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 44 | console.log() 45 | 46 | for (let i = 0; i < warnings.length; i++) { 47 | const warning = warnings[i] 48 | console.log(' ' + warning) 49 | } 50 | 51 | console.log() 52 | process.exit(1) 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/build/logo.png -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const config = require('../config') 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 5 | const packageConfig = require('../package.json') 6 | 7 | exports.assetsPath = function (_path) { 8 | const assetsSubDirectory = process.env.NODE_ENV === 'production' 9 | ? config.build.assetsSubDirectory 10 | : config.dev.assetsSubDirectory 11 | 12 | return path.posix.join(assetsSubDirectory, _path) 13 | } 14 | 15 | exports.cssLoaders = function (options) { 16 | options = options || {} 17 | 18 | const cssLoader = { 19 | loader: 'css-loader', 20 | options: { 21 | sourceMap: options.sourceMap 22 | } 23 | } 24 | 25 | const postcssLoader = { 26 | loader: 'postcss-loader', 27 | options: { 28 | sourceMap: options.sourceMap 29 | } 30 | } 31 | 32 | // generate loader string to be used with extract text plugin 33 | function generateLoaders (loader, loaderOptions) { 34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 35 | 36 | if (loader) { 37 | loaders.push({ 38 | loader: loader + '-loader', 39 | options: Object.assign({}, loaderOptions, { 40 | sourceMap: options.sourceMap 41 | }) 42 | }) 43 | } 44 | 45 | // Extract CSS when that option is specified 46 | // (which is the case during production build) 47 | if (options.extract) { 48 | return ExtractTextPlugin.extract({ 49 | use: loaders, 50 | fallback: 'vue-style-loader' 51 | }) 52 | } else { 53 | return ['vue-style-loader'].concat(loaders) 54 | } 55 | } 56 | 57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 58 | return { 59 | css: generateLoaders(), 60 | postcss: generateLoaders(), 61 | less: generateLoaders('less'), 62 | sass: generateLoaders('sass', { indentedSyntax: true }), 63 | scss: generateLoaders('sass'), 64 | stylus: generateLoaders('stylus'), 65 | styl: generateLoaders('stylus') 66 | } 67 | } 68 | 69 | // Generate loaders for standalone style files (outside of .vue) 70 | exports.styleLoaders = function (options) { 71 | const output = [] 72 | const loaders = exports.cssLoaders(options) 73 | 74 | for (const extension in loaders) { 75 | const loader = loaders[extension] 76 | output.push({ 77 | test: new RegExp('\\.' + extension + '$'), 78 | use: loader 79 | }) 80 | } 81 | 82 | return output 83 | } 84 | 85 | exports.createNotifierCallback = () => { 86 | const notifier = require('node-notifier') 87 | 88 | return (severity, errors) => { 89 | if (severity !== 'error') return 90 | 91 | const error = errors[0] 92 | const filename = error.file && error.file.split('!').pop() 93 | 94 | notifier.notify({ 95 | title: packageConfig.name, 96 | message: severity + ': ' + error.name, 97 | subtitle: filename || '', 98 | icon: path.join(__dirname, 'logo.png') 99 | }) 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const config = require('../config') 5 | const vueLoaderConfig = require('./vue-loader.conf') 6 | 7 | function resolve (dir) { 8 | return path.join(__dirname, '..', dir) 9 | } 10 | 11 | 12 | 13 | module.exports = { 14 | context: path.resolve(__dirname, '../'), 15 | entry: { 16 | app: './src/main.js' 17 | }, 18 | output: { 19 | path: config.build.assetsRoot, 20 | filename: '[name].js', 21 | publicPath: process.env.NODE_ENV === 'production' 22 | ? config.build.assetsPublicPath 23 | : config.dev.assetsPublicPath 24 | }, 25 | resolve: { 26 | extensions: ['.js', '.vue', '.json'], 27 | alias: { 28 | 'vue$': 'vue/dist/vue.esm.js', 29 | '@': resolve('src'), 30 | } 31 | }, 32 | module: { 33 | rules: [ 34 | { 35 | test: /\.vue$/, 36 | loader: 'vue-loader', 37 | options: vueLoaderConfig 38 | }, 39 | { 40 | test: /\.js$/, 41 | loader: 'babel-loader', 42 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] 43 | }, 44 | { 45 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 46 | loader: 'url-loader', 47 | options: { 48 | limit: 10000, 49 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 50 | } 51 | }, 52 | { 53 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 54 | loader: 'url-loader', 55 | options: { 56 | limit: 10000, 57 | name: utils.assetsPath('media/[name].[hash:7].[ext]') 58 | } 59 | }, 60 | { 61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 62 | loader: 'url-loader', 63 | options: { 64 | limit: 10000, 65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 66 | } 67 | } 68 | ] 69 | }, 70 | node: { 71 | // prevent webpack from injecting useless setImmediate polyfill because Vue 72 | // source contains it (although only uses it if it's native). 73 | setImmediate: false, 74 | // prevent webpack from injecting mocks to Node native modules 75 | // that does not make sense for the client 76 | dgram: 'empty', 77 | fs: 'empty', 78 | net: 'empty', 79 | tls: 'empty', 80 | child_process: 'empty' 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const webpack = require('webpack') 4 | const config = require('../config') 5 | const merge = require('webpack-merge') 6 | const path = require('path') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 11 | const portfinder = require('portfinder') 12 | 13 | const HOST = process.env.HOST 14 | const PORT = process.env.PORT && Number(process.env.PORT) 15 | 16 | const devWebpackConfig = merge(baseWebpackConfig, { 17 | module: { 18 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) 19 | }, 20 | // cheap-module-eval-source-map is faster for development 21 | devtool: config.dev.devtool, 22 | 23 | // these devServer options should be customized in /config/index.js 24 | devServer: { 25 | clientLogLevel: 'warning', 26 | historyApiFallback: { 27 | rewrites: [ 28 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, 29 | ], 30 | }, 31 | hot: true, 32 | contentBase: false, // since we use CopyWebpackPlugin. 33 | compress: true, 34 | host: HOST || config.dev.host, 35 | port: PORT || config.dev.port, 36 | open: config.dev.autoOpenBrowser, 37 | overlay: config.dev.errorOverlay 38 | ? { warnings: false, errors: true } 39 | : false, 40 | publicPath: config.dev.assetsPublicPath, 41 | proxy: config.dev.proxyTable, 42 | quiet: true, // necessary for FriendlyErrorsPlugin 43 | watchOptions: { 44 | poll: config.dev.poll, 45 | } 46 | }, 47 | plugins: [ 48 | new webpack.DefinePlugin({ 49 | 'process.env': require('../config/dev.env') 50 | }), 51 | new webpack.HotModuleReplacementPlugin(), 52 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. 53 | new webpack.NoEmitOnErrorsPlugin(), 54 | // https://github.com/ampedandwired/html-webpack-plugin 55 | new HtmlWebpackPlugin({ 56 | filename: 'index.html', 57 | template: 'index.html', 58 | inject: true 59 | }), 60 | // copy custom static assets 61 | new CopyWebpackPlugin([ 62 | { 63 | from: path.resolve(__dirname, '../static'), 64 | to: config.dev.assetsSubDirectory, 65 | ignore: ['.*'] 66 | } 67 | ]) 68 | ] 69 | }) 70 | 71 | module.exports = new Promise((resolve, reject) => { 72 | portfinder.basePort = process.env.PORT || config.dev.port 73 | portfinder.getPort((err, port) => { 74 | if (err) { 75 | reject(err) 76 | } else { 77 | // publish the new Port, necessary for e2e tests 78 | process.env.PORT = port 79 | // add port to devServer config 80 | devWebpackConfig.devServer.port = port 81 | 82 | // Add FriendlyErrorsPlugin 83 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ 84 | compilationSuccessInfo: { 85 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], 86 | }, 87 | onErrors: config.dev.notifyOnErrors 88 | ? utils.createNotifierCallback() 89 | : undefined 90 | })) 91 | 92 | resolve(devWebpackConfig) 93 | } 94 | }) 95 | }) 96 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const webpack = require('webpack') 5 | const config = require('../config') 6 | const merge = require('webpack-merge') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 11 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') 12 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin') 13 | 14 | const env = process.env.NODE_ENV === 'testing' 15 | ? require('../config/test.env') 16 | : require('../config/prod.env') 17 | 18 | const webpackConfig = merge(baseWebpackConfig, { 19 | module: { 20 | rules: utils.styleLoaders({ 21 | sourceMap: config.build.productionSourceMap, 22 | extract: true, 23 | usePostCSS: true 24 | }) 25 | }, 26 | devtool: config.build.productionSourceMap ? config.build.devtool : false, 27 | output: { 28 | path: config.build.assetsRoot, 29 | filename: utils.assetsPath('js/[name].[chunkhash].js'), 30 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') 31 | }, 32 | plugins: [ 33 | // http://vuejs.github.io/vue-loader/en/workflow/production.html 34 | new webpack.DefinePlugin({ 35 | 'process.env': env 36 | }), 37 | new UglifyJsPlugin({ 38 | uglifyOptions: { 39 | compress: { 40 | warnings: false 41 | } 42 | }, 43 | sourceMap: config.build.productionSourceMap, 44 | parallel: true 45 | }), 46 | // extract css into its own file 47 | new ExtractTextPlugin({ 48 | filename: utils.assetsPath('css/[name].[contenthash].css'), 49 | // Setting the following option to `false` will not extract CSS from codesplit chunks. 50 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. 51 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 52 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 53 | allChunks: true, 54 | }), 55 | // Compress extracted CSS. We are using this plugin so that possible 56 | // duplicated CSS from different components can be deduped. 57 | new OptimizeCSSPlugin({ 58 | cssProcessorOptions: config.build.productionSourceMap 59 | ? { safe: true, map: { inline: false } } 60 | : { safe: true } 61 | }), 62 | // generate dist index.html with correct asset hash for caching. 63 | // you can customize output by editing /index.html 64 | // see https://github.com/ampedandwired/html-webpack-plugin 65 | new HtmlWebpackPlugin({ 66 | filename: process.env.NODE_ENV === 'testing' 67 | ? 'index.html' 68 | : config.build.index, 69 | template: 'index.html', 70 | inject: true, 71 | minify: { 72 | removeComments: true, 73 | collapseWhitespace: true, 74 | removeAttributeQuotes: true 75 | // more options: 76 | // https://github.com/kangax/html-minifier#options-quick-reference 77 | }, 78 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin 79 | chunksSortMode: 'dependency' 80 | }), 81 | // keep module.id stable when vendor modules does not change 82 | new webpack.HashedModuleIdsPlugin(), 83 | // enable scope hoisting 84 | new webpack.optimize.ModuleConcatenationPlugin(), 85 | // split vendor js into its own file 86 | new webpack.optimize.CommonsChunkPlugin({ 87 | name: 'vendor', 88 | minChunks (module) { 89 | // any required modules inside node_modules are extracted to vendor 90 | return ( 91 | module.resource && 92 | /\.js$/.test(module.resource) && 93 | module.resource.indexOf( 94 | path.join(__dirname, '../node_modules') 95 | ) === 0 96 | ) 97 | } 98 | }), 99 | // extract webpack runtime and module manifest to its own file in order to 100 | // prevent vendor hash from being updated whenever app bundle is updated 101 | new webpack.optimize.CommonsChunkPlugin({ 102 | name: 'manifest', 103 | minChunks: Infinity 104 | }), 105 | // This instance extracts shared chunks from code splitted chunks and bundles them 106 | // in a separate chunk, similar to the vendor chunk 107 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk 108 | new webpack.optimize.CommonsChunkPlugin({ 109 | name: 'app', 110 | async: 'vendor-async', 111 | children: true, 112 | minChunks: 3 113 | }), 114 | 115 | // copy custom static assets 116 | new CopyWebpackPlugin([ 117 | { 118 | from: path.resolve(__dirname, '../static'), 119 | to: config.build.assetsSubDirectory, 120 | ignore: ['.*'] 121 | } 122 | ]) 123 | ] 124 | }) 125 | 126 | if (config.build.productionGzip) { 127 | const CompressionWebpackPlugin = require('compression-webpack-plugin') 128 | 129 | webpackConfig.plugins.push( 130 | new CompressionWebpackPlugin({ 131 | asset: '[path].gz[query]', 132 | algorithm: 'gzip', 133 | test: new RegExp( 134 | '\\.(' + 135 | config.build.productionGzipExtensions.join('|') + 136 | ')$' 137 | ), 138 | threshold: 10240, 139 | minRatio: 0.8 140 | }) 141 | ) 142 | } 143 | 144 | if (config.build.bundleAnalyzerReport) { 145 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin 146 | webpackConfig.plugins.push(new BundleAnalyzerPlugin()) 147 | } 148 | 149 | module.exports = webpackConfig 150 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: {}, 14 | 15 | // Various Dev Server settings 16 | host: 'localhost', // can be overwritten by process.env.HOST 17 | port: 8089, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 18 | autoOpenBrowser: false, 19 | errorOverlay: true, 20 | notifyOnErrors: true, 21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 22 | 23 | 24 | /** 25 | * Source Maps 26 | */ 27 | 28 | // https://webpack.js.org/configuration/devtool/#development 29 | devtool: 'cheap-module-eval-source-map', 30 | 31 | // If you have problems debugging vue-files in devtools, 32 | // set this to false - it *may* help 33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 34 | cacheBusting: true, 35 | 36 | cssSourceMap: true 37 | }, 38 | 39 | build: { 40 | // Template for index.html 41 | index: path.resolve(__dirname, '../dist/index.html'), 42 | 43 | // Paths 44 | assetsRoot: path.resolve(__dirname, '../dist'), 45 | assetsSubDirectory: 'static', 46 | assetsPublicPath: './', 47 | 48 | /** 49 | * Source Maps 50 | */ 51 | 52 | productionSourceMap: true, 53 | // https://webpack.js.org/configuration/devtool/#production 54 | devtool: '#source-map', 55 | 56 | // Gzip off by default as many popular static hosts such as 57 | // Surge or Netlify already gzip all static assets for you. 58 | // Before setting to `true`, make sure to: 59 | // npm install --save-dev compression-webpack-plugin 60 | productionGzip: false, 61 | productionGzipExtensions: ['js', 'css'], 62 | 63 | // Run the build command with an extra argument to 64 | // View the bundle analyzer report after build finishes: 65 | // `npm run build --report` 66 | // Set to `true` or `false` to always turn it on or off 67 | bundleAnalyzerReport: process.env.npm_config_report 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /config/test.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const devEnv = require('./dev.env') 4 | 5 | module.exports = merge(devEnv, { 6 | NODE_ENV: '"testing"' 7 | }) 8 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | v-tree
-------------------------------------------------------------------------------- /dist/static/css/app.7c0dc9027bab8409736bec4d17d981f0.css: -------------------------------------------------------------------------------- 1 | .main ul li[data-v-8e136f26]{list-style:none;float:left;width:25%}.ztree [data-v-c1c489e0]{moz-user-select:-moz-none;-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0;margin:0;font-size:12px;font-family:Verdana,Arial,Helvetica,AppleGothic,sans-serif}.ztree[data-v-c1c489e0]{margin:0;padding:5px;color:#333}.ztree li[data-v-c1c489e0]{padding:0;margin:0;list-style:none;line-height:17px;text-align:left;white-space:nowrap;outline:0}.ztree li ul[data-v-c1c489e0]{margin:0;padding:0 0 0 18px}.ztree li ul.line[data-v-c1c489e0]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAACCAYAAACOoybuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc4REU0MjZCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc4REU0MjdCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzhERTQyNEJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzhERTQyNUJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po2SkZQAAAAZSURBVHjaYvz//z8D0QCkmBiclpb2HyDAAPeAIxI04Q1+AAAAAElFTkSuQmCC) 0 0 repeat-y}.ztree li a[data-v-c1c489e0]{padding-right:3px;margin:0;cursor:pointer;height:21px;color:#333;background-color:transparent;text-decoration:none;vertical-align:top;display:inline-block}.ztree li a[data-v-c1c489e0]:hover{text-decoration:underline}.ztree li a.curSelectedNode[data-v-c1c489e0],.ztree li a.curSelectedNode_Edit[data-v-c1c489e0]{padding-top:0;background-color:#e5e5e5;color:#000;height:21px;opacity:.8}.ztree li a.curSelectedNode_Edit[data-v-c1c489e0]{border:1px solid #666}.ztree li a.tmpTargetNode_inner[data-v-c1c489e0]{padding-top:0;background-color:#aaa;color:#fff;height:21px;border:1px solid #666;opacity:.8;filter:alpha(opacity=80)}.ztree li a input.rename[data-v-c1c489e0]{height:14px;width:80px;padding:0;margin:0;font-size:12px;border:1px solid #585956;*border:0}.ztree li span[data-v-c1c489e0]{line-height:21px;margin-right:2px}.ztree li span.button[data-v-c1c489e0]{line-height:0;margin:0;padding:0;width:21px;height:21px;display:inline-block;vertical-align:middle;border:0 none;cursor:pointer;outline:none;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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)}.ztree li span.button.chk[data-v-c1c489e0]{width:13px;height:13px;margin:0 2px;cursor:auto}.ztree li span.button.chk.checkbox_false_full[data-v-c1c489e0]{background-position:-5px -5px}.ztree li span.button.chk.checkbox_false_full_focus[data-v-c1c489e0]{background-position:-5px -26px}.ztree li span.button.chk.checkbox_false_part[data-v-c1c489e0]{background-position:-5px -48px}.ztree li span.button.chk.checkbox_false_part_focus[data-v-c1c489e0]{background-position:-5px -68px}.ztree li span.button.chk.checkbox_false_disable[data-v-c1c489e0]{background-position:-5px -89px}.ztree li span.button.chk.checkbox_true_full[data-v-c1c489e0]{background-position:-26px -5px}.ztree li span.button.chk.checkbox_true_full_focus[data-v-c1c489e0]{background-position:-26px -26px}.ztree li span.button.chk.checkbox_true_part[data-v-c1c489e0]{background-position:-26px -48px}.ztree li span.button.chk.checkbox_true_part_focus[data-v-c1c489e0]{background-position:-26px -68px}.ztree li span.button.chk.checkbox_true_disable[data-v-c1c489e0]{background-position:-26px -89px}.ztree li span.button.chk.radio_false_full[data-v-c1c489e0]{background-position:-47px -5px}.ztree li span.button.chk.radio_false_full_focus[data-v-c1c489e0]{background-position:-47px -26px}.ztree li span.button.chk.radio_false_part[data-v-c1c489e0]{background-position:-47px -47px}.ztree li span.button.chk.radio_false_part_focus[data-v-c1c489e0]{background-position:-47px -68px}.ztree li span.button.chk.radio_false_disable[data-v-c1c489e0]{background-position:-47px -89px}.ztree li span.button.chk.radio_true_full[data-v-c1c489e0]{background-position:-68px -5px}.ztree li span.button.chk.radio_true_full_focus[data-v-c1c489e0]{background-position:-68px -26px}.ztree li span.button.chk.radio_true_part[data-v-c1c489e0]{background-position:-68px -47px}.ztree li span.button.chk.radio_true_part_focus[data-v-c1c489e0]{background-position:-68px -68px}.ztree li span.button.chk.radio_true_disable[data-v-c1c489e0]{background-position:-68px -89px}.ztree li span.button.switch[data-v-c1c489e0]{width:21px;height:21px}.ztree li span.button.root_open[data-v-c1c489e0]{background-position:-105px -63px}.ztree li span.button.root_close[data-v-c1c489e0]{background-position:-126px -63px}.ztree li span.button.roots_open[data-v-c1c489e0]{background-position:-105px 0}.ztree li span.button.roots_close[data-v-c1c489e0]{background-position:-126px 0}.ztree li span.button.center_open[data-v-c1c489e0]{background-position:-105px -21px}.ztree li span.button.center_close[data-v-c1c489e0]{background-position:-126px -21px}.ztree li span.button.bottom_open[data-v-c1c489e0]{background-position:-105px -42px}.ztree li span.button.bottom_close[data-v-c1c489e0]{background-position:-126px -42px}.ztree li span.button.noline_open[data-v-c1c489e0]{background-position:-105px -84px}.ztree li span.button.noline_close[data-v-c1c489e0]{background-position:-126px -84px}.ztree li span.button.root_docu[data-v-c1c489e0]{background:none}.ztree li span.button.roots_docu[data-v-c1c489e0]{background-position:-84px 0}.ztree li span.button.center_docu[data-v-c1c489e0]{background-position:-84px -21px}.ztree li span.button.bottom_docu[data-v-c1c489e0]{background-position:-84px -42px}.ztree li span.button.noline_docu[data-v-c1c489e0]{background:none}.ztree li span.button.ico_open[data-v-c1c489e0]{margin-right:2px;background-position:-147px -21px;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_close[data-v-c1c489e0]{margin-right:2px;background-position:-147px 0;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_docu[data-v-c1c489e0]{margin-right:2px;background-position:-147px -42px;vertical-align:top;*vertical-align:middle}.ztree li span.button.edit[data-v-c1c489e0]{margin-left:2px;margin-right:-1px;background-position:-189px -21px;vertical-align:top;*vertical-align:middle}.ztree li span.button.edit[data-v-c1c489e0]:hover{background-position:-168px -21px}.ztree li span.button.remove[data-v-c1c489e0]{margin-left:2px;margin-right:-1px;background-position:-189px -42px;vertical-align:top;*vertical-align:middle}.ztree li span.button.remove[data-v-c1c489e0]:hover{background-position:-168px -42px}.ztree li span.button.add[data-v-c1c489e0]{margin-left:2px;margin-right:-1px;background-position:-189px 0;vertical-align:top;*vertical-align:middle}.ztree li span.button.add[data-v-c1c489e0]:hover{background-position:-168px 0}.ztree li span.button.ico_loading[data-v-c1c489e0]{margin-right:2px;vertical-align:top;*vertical-align:middle}ul.tmpTargetzTree[data-v-c1c489e0]{background-color:#ffe6b0;opacity:.8;filter:alpha(opacity=80)}span.tmpzTreeMove_arrow[data-v-c1c489e0]{width:16px;height:21px;display:inline-block;padding:0;margin:2px 0 0 1px;border:0 none;position:absolute;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-position:-168px -84px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0H2XKgAAENNJREFUeNrsXUF24jgTFv2ym8Ukq1k2OUHSr2cfOEHICQKbnmXDCYAT0FnObKBPEPoEOPuZF/oEwyxnNfTiX/dfRT4litu2JMvGNtT3Hs8E7EKR61OVZOlT6/v370ogEIThjVSBQBCOE6kCQRPwy/x/wanTv4OfWubff/zxR7DNDx8+tIRIgqahFXDt9zJtCpEaiF9//dW7Jf3zzz9b+7YpqR3w22+/9enQzjhl8/vvvy98ftBmk+xNQv4hst+GfS7bJrSCyF6HDtf0uqTXll4P9FqQ7W2VN46c2Id4ldmk84Z0ODU+WtLvrEuoku+B0SXI5kmGA83gPA8Z19/SeRfkVCNHp2R74ywi0Tlv6cD2ej4kBUFf2abPmEhTX7LjWr759/TqxL7q8e/Q96M8do8sck5wT0x8pM/fEZk2h/S/ZkUkbknOslpeONt/cHwXsGOyAy4tNldMYnp/RecOHJx+Toc+IgY79waEYqefu9pJKgO3oCDjGp+zzRnsqkMnE0cen0gVw1XCZ1yHY7L7T8J3ZUWralM7W/rC37MzeaDtSiIPpx+DRGx3YJaZowY7PH/P0Ym+mzqa/YgyTMxrYHtBtvi3/mZC8fuq07wGop9W70SwcyJT4+qzkudITBhOxUCcNBItbFEE1wwRgQZxh8bfA3w/NH/PgiH6WNN4akqv/xCRRmhd+8KLwnDq04g2JiKVCN33+EiO2cVnXiQCOqj8aVpUQNS8g/N3ELls/bhTRJ5LlIuvucN7nd7paMfpy6ccjYnuyKYeqewtPo+PeTr98ZRM2/K1af6d12YJgwCun7f2YbPq4W/tqJscJGJc4GjLq9fG+UuHVlGhv9Uxok7f+LxrpLWnOf/3VtZRO6XNOX36L3ls2vpIrjYLRitkhK0Mm1VNEboxnPsSLTwjYhKRgz462vkWc34bOb452HwuF5XlEwYvVIxEa0QrFxL7toACSe2cW8YtUjoznVuDYMojT45wvLZEmuvY+bay8Xk9JguIrUD2HYlwqh7W/RLSApI98cIDwBuHznzu720Oy44J5450uuRpY41r+3hwmlTGDtKyyCCBDXqQYa7JRK8zfT1GCnuwGeWsgkZEpIChb4lIAKc19+Q0WQ9kfTvaG7LX00PgBplMx++hz+SKESLbiq6d0PEzz2jADIdbek2Qko08CBrR9QMMJjxiuHttDDS0YxG0qJz80PCgfnygnYVtQKpcTyLxbAWHKUKfPR9I3oCc91lk83FQ9FeYjPcgzST2bGtnzyMaabsLzIzQ0adn3Gz+nbvA50dBnWPXKTpV2qRoNiGbG4sPmVgEPEMqo2Fyttk6pIV9IP4VbhzfwIciZh4ghd3NtfMlZIZNJX0kd2AZRdBM7ZRlFEE2D3IZBUizKMHu1mWgYp8RKYWchT/L2fPzoSr6lYXYbMlSc4EgHLLUvLo09Pux2hQiCQQCSe0EgrIgS80rTO2aMDBQl8GGuoufSEQSNAIy/C3I6sS38jxHEvGThqV2VLl9OrzNOOUfqsyFpxNk2iR705B/iOy3FR7IFqELQPY6KkH8pIBVnEFO2ATxEzpHL5Mx52Ry3Q1K9OlLvBb7tHmSUQla/CTK+IFbOu+CKmbkWPlW8RMQYSd+4kNSEPSVbUxPmfqSHddmip/Q96M8ds20QB3+fLuZ+nGJS5/q7jPVXVQSiTRxeYbLYF82reInWS0vVQivGvUWPyGbS4sD75ZX0Psrl9aLzssUP3G1k1QGBfETFuXA58/iJ1j0lpdMjSBRoPhJGlYJES00Ul2ql6lhl/CHh8DI5GzzjSXUb0O+T0DblUQeN9oUP2HhjAGnh7gp5/i8j/Nc8Sx+QnZutLIN/78gzjlIO0OZ80YkwetI1Qlw+Hv1oqWh50NuA0nkbLOSB7LsfJyKmU6YQCJrC4VrnsVP4sTG38/iJx5OP0QfaxpPTelVlPiJdNSLS+fu4eBtnfWopxUEy33ZrFz8hBwzUfzEMcx34MzTtOjInyMFdRI/QT9uJ35idJYLFz/RfaQsEZQDEz9ZI62PSiKR9p1TOP9inzZrKX7ikStXJn4Cgiol4icuNiO05pwKrxyKuqbffJfD4RUykCJJ5GSzduInTCKq7FqIn1BZEsVPMPAg4idu0CuJVx5p8MDB4WfG+6JIlNtmJREJrXktxU9QNj6vx2QBsRXI3jUkdUX8xA7dR5153NOBg2wx388p7K8Mh18GlLUXYvONQ2c+9/c2h1Ux8RPfUUBUeJQ14oPP+4h23uInmkz0OtPXYwSwB5t5c/5jED/hfuStRySaeDxOWCH1XsOPlgX8u7ltWsVP0Dpndfa9xE/IXk8PgRtkMh0/t/gJdj/gh30bPNjNJX7C5KDrn8VP6L2In+THxDFyffKY1fIAuz+r10PTIYiMboC3zZMMZxo5TBH67PlA8gbkLEz8BP2VV+InsVGnnT3fXQ74/8LMiFTxk8BpQscgfrIpqcGIVPFL/4NsnticqeCKZWc+LyH92NkF8V+Jn4T8D0jbIqSwu7l2BW470gooV6uEOpTnWgE4qNnfIM2iBLsiflIPiPiJQHDIEM2GiiDiJ4cFiUgCgUQkiUgSkSQiCQTOqLv4iUQkiUhNikitgFepNiUiCZoUkURFaI8tvV5PtA7cdmUfEengVYSMh9kmnlccF1CVcftRFTZPMm40T4n56PCjd3rjMAfn0Wt7bJNdlz7bp8Aul3Vo2sYWltO8u+phtz+229HkVFjkVwBJD15FCOD5ir3YZzylawwRlEVgPc7Vy7y4tnqa2TItwOZXvH+L+z/xJhIc6N7xRzu80Zejs7rqMYxdbYJEaXY7KN/Ad58kukYLqpjQskxDlC9kutAxqAgpS6MZIiCzMu6J+Rs99aL81C3Q5lWWzbTBhivPAlw5OGZHeYiaOEZDBcLb7M7T9phNKetMZU/935EX22tWEpH2hTImxyaQqZ/juilSrjM4t36d4fNpTpsPKTYfsmzWadSOUyVz5eypIzldCTJ2JFEbKWIa1uplScU44P899lEevZaMX7cBa9uGxrGdkEbuxeabGpGoi76Wzxqfa49zO467sN9abj6X8x3e9wP+52Oebc2N3xe08NPAPs21cWSnvyigfHGb1kzqpCLSDNCaXxokWsPR7z1sXXr+tk05VhkRjvP2kdH/0iTaYq/aSx0Vcw5mHJuKUDw7GCcMQERNbRmqINKCIw9G1HZ6YQaJVp7k2OYgsSu+gjR8g2copybRPLQSDKdzUhNyJYvLb1agInTwqIJIPOL1FaNoXbRqeUik0AF0zYlddySPEJVmVK4tyjlAOX8gUd6hdUFh+GIcN+i7XhRsc23zzar6SHM4ZQiJdPrlGmVctSU+p5QzKRItxI8rxyfjyE6/rMJmlYMN7KTDABIpPBR1ETXhFuXO0eYmRro5ninNE9LE6aF7aQkC+kUhUi8Co/GXS184zeZFis2LLJtpqd03zwJ8y1kZs9D+DKde5Oja1mlK5dz4zESgc0fGLAylfhyd0wMkGwkIleKmLjZPMlKmW8dIsXZJcbgvQc65Vu7R587D8ZlMSzj8lXqZzvMlbx+GrhuQTU7zypoiFIQmqAglpMpZjea6yYzOnP3tMhvAx1HLmmsnOHzIZswCwRFAFvYJBEIkgUCIJBAcDE6kCgRNQN0HG4RIgiYhSF8hyyYRwssYkfCVTSFSA9EkzYaiQVElTzSrLrXDPkVOmg16vyMHB9DPkX62nPol764PxmbK64LENWqJBmk2lJXmsc/xpOVZEZEMaV5umycpldRRHpoNvD+R4851rvPqJh42NUF/ED/BJmnTvLvqoR4SZzYcMkkbAL6fLE6yUcWtYYpwf3PZTItIeTQbIgen9NVsiBxJlCl+wrvv+Qps0DWZ4icg+sHPvrCtR6oIUzj8VvmvSSvFZp36SPGVs65r+J3ET3j3PY8I5yR+Que9w650gv1ihUb2QbnpZrQ8bPJrUkhqVxGJutjGklv5vz1Sr47jb4wdI1xb2cVPdHQaK/tW9oJyIpJOw4rCxEgXixts2GPkMUnkq9ngJX7C9h36NlbxE7ZBth4RtSolUkM1G0JxFdANSfWPlPdZZK6USAse5cNAwE6zwSCR7yK/vYufgER9/dscFfMOZhSBI9Vs6Bh9mU7BNr/lsVmJZgPdnK/o/HcdBgxs0a2s87+CNM/iJwaJ5kpQJd4ZRFoXdM+DbFbVR3qWqg0gkVKe4ieOo2wRWqQZlW0Lwg9A+B9IVGU0OmI8ljDY8NjUwYY5SHSbk0Q6/eKKdBnh8xE/mSQQPikSLQ7dY2uq2dCYwYZGaDYg1Ro5pFrO4ic8nE02mXRDg0xXKlm34eDFT+qIfwc/TWL3NhMuU4Q+fPgw9bGJuXZWIi1UwZoNnAJhaLtQzQZEC03KVPETn5kIdO7ImM6kUkjUrfIZUoM0G44CJ2ktPXe+8JzGShCP3+uqEubagUyJ4id5+zB03YD371E1nCJUxmTRKiag5sE+JqDmgWg2CFRDCCTiJwLBoUOWmgsEQiSBQIgkEAiRBAKBEEkgKBQiftJwHLMQSmOI9Ndff/Xp8DbjlH/ev3+/8PlBm02yFzTthuy31dMGuhuytQmtILLXUU/rnvTaKZ4ouSDbtdFsOCYhFGOSM9f/TV20M04yHGim7Ot3bum8C3KqkaNT6lWlbQsR2F7Ph6Qg6Cvb9BkTaepLdlyrFxl2Yl/xbPMxfT/KY1cQDL0glLGCdsa2tkRST5M2z7JaXnImng/3n3LbNU/BMdkBlxYH3i2roPdXdO7Awem1UAmXlZ17A0Kx089d7SSVQT1NCWIyrvE525zBrjomMtVECOWzetka6LIuZMocbLClLznSm7YriTycfoyKZbvnTBhOD0Gcc3zex3mu+IgyTMjODZNI/78gzjlIO0OZBftLY3crldXL6gBNpkrvQyWDDUbLvtRkTCDRwhZFcM0QEWgQJzb/TecMYHPIEdSR/EP0saYJqekK5NTLN5jEn8TFS+0TcR3HJzpH6mVRZ+WRqapRO933+EjO2dX5rg+JgA5C/DSNICDTHdKxjrLsUA2ysM1FjDh3eK8bAU2kq7oQyUcIJa/NLCGUktBXbsqnl/Cr7jERyfznV4goviRiXOBoW3KxNs63ySvrFGFrELWvXtYk7dYigaDm+XVIe0q1WVEf6WePc9tHldqpp52jdQS6NEgUMYnIQR/p+M7BzreY89vI4bKS91m3jvtHPCqZQKI1opULiQXhgwtp99TUH9yqcnY5ry+R0Jp3Y+nc2qgI18GGCMdrS6S5jp1vK9su/2aygNgK6VxXDzyoF9GNL+LrpUZZzlamCf2mVYxElUpIv3HozOf+3uawyGcjvLq+o4Bwar62jwenSWXsIKJEBgls0DdurslErzN9PUYAe7AZHZFT12XwwWyAKyeRLSJxB/oerXNWZ9+no70hez09BG6QyXT8nvJTctEijiu6dsKpAM9owINd1p2YoLJHHgSNMNrHgwmP9H6JiKkHGtqxCCrYH8Z1IxEjc4Vs0VOE0K+4t3QKmUQ3HtHDZtfbXiyajdXr2Q1bNB53dZgmdGxz7bD/lU7rarMjyEEtNQfxr0AoJtBDETMPkMLu5trlIaSgcDLx/d3WaY8q0WwQCMoebBAIBEIkgUCIJBAIkQQCIZJAIBAiCQRCJIFAiCQQCJEEAoEQSSAQIgkEQiSBQCBEEgiESAKBEEkgECIJBAIhkkAgRBIIhEgCgRBJIBAIkQQCIZJAIEQSCA4b/xdgAEmenC1yRf7rAAAAAElFTkSuQmCC)}ul.ztree.zTreeDragUL[data-v-c1c489e0]{margin:0;padding:0;position:absolute;width:auto;height:auto;overflow:hidden;background-color:#cfcfcf;border:1px dotted #00b83f;opacity:.8;filter:alpha(opacity=80)}.ztreeMask[data-v-c1c489e0]{z-index:10000;background-color:#cfcfcf;opacity:0;filter:alpha(opacity=0);position:absolute}.ztree [data-v-5694ded0]{moz-user-select:-moz-none;-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0;margin:0;font-size:12px;font-family:Verdana,Arial,Helvetica,AppleGothic,sans-serif}.ztree[data-v-5694ded0]{margin:0;padding:5px;color:#333}.ztree li[data-v-5694ded0]{padding:0;margin:0;list-style:none;line-height:17px;text-align:left;white-space:nowrap;outline:0}.ztree li ul[data-v-5694ded0]{margin:0;padding:0 0 0 18px}.ztree li ul.line[data-v-5694ded0]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAACCAYAAACOoybuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc4REU0MjZCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc4REU0MjdCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzhERTQyNEJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzhERTQyNUJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po2SkZQAAAAZSURBVHjaYvz//z8D0QCkmBiclpb2HyDAAPeAIxI04Q1+AAAAAElFTkSuQmCC) 0 0 repeat-y}.ztree li a[data-v-5694ded0]{padding-right:3px;margin:0;cursor:pointer;height:21px;color:#333;background-color:transparent;text-decoration:none;vertical-align:top;display:inline-block}.ztree li a[data-v-5694ded0]:hover{text-decoration:underline}.ztree li a.curSelectedNode[data-v-5694ded0],.ztree li a.curSelectedNode_Edit[data-v-5694ded0]{padding-top:0;background-color:#e5e5e5;color:#000;height:21px;opacity:.8}.ztree li a.curSelectedNode_Edit[data-v-5694ded0]{border:1px solid #666}.ztree li a.tmpTargetNode_inner[data-v-5694ded0]{padding-top:0;background-color:#aaa;color:#fff;height:21px;border:1px solid #666;opacity:.8;filter:alpha(opacity=80)}.ztree li a input.rename[data-v-5694ded0]{height:14px;width:80px;padding:0;margin:0;font-size:12px;border:1px solid #585956;*border:0}.ztree li span[data-v-5694ded0]{line-height:21px;margin-right:2px}.ztree li span.button[data-v-5694ded0]{line-height:0;margin:0;padding:0;width:21px;height:21px;display:inline-block;vertical-align:middle;border:0 none;cursor:pointer;outline:none;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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)}.ztree li span.button.chk[data-v-5694ded0]{width:13px;height:13px;margin:0 2px;cursor:auto}.ztree li span.button.chk.checkbox_false_full[data-v-5694ded0]{background-position:-5px -5px}.ztree li span.button.chk.checkbox_false_full_focus[data-v-5694ded0]{background-position:-5px -26px}.ztree li span.button.chk.checkbox_false_part[data-v-5694ded0]{background-position:-5px -48px}.ztree li span.button.chk.checkbox_false_part_focus[data-v-5694ded0]{background-position:-5px -68px}.ztree li span.button.chk.checkbox_false_disable[data-v-5694ded0]{background-position:-5px -89px}.ztree li span.button.chk.checkbox_true_full[data-v-5694ded0]{background-position:-26px -5px}.ztree li span.button.chk.checkbox_true_full_focus[data-v-5694ded0]{background-position:-26px -26px}.ztree li span.button.chk.checkbox_true_part[data-v-5694ded0]{background-position:-26px -48px}.ztree li span.button.chk.checkbox_true_part_focus[data-v-5694ded0]{background-position:-26px -68px}.ztree li span.button.chk.checkbox_true_disable[data-v-5694ded0]{background-position:-26px -89px}.ztree li span.button.chk.radio_false_full[data-v-5694ded0]{background-position:-47px -5px}.ztree li span.button.chk.radio_false_full_focus[data-v-5694ded0]{background-position:-47px -26px}.ztree li span.button.chk.radio_false_part[data-v-5694ded0]{background-position:-47px -47px}.ztree li span.button.chk.radio_false_part_focus[data-v-5694ded0]{background-position:-47px -68px}.ztree li span.button.chk.radio_false_disable[data-v-5694ded0]{background-position:-47px -89px}.ztree li span.button.chk.radio_true_full[data-v-5694ded0]{background-position:-68px -5px}.ztree li span.button.chk.radio_true_full_focus[data-v-5694ded0]{background-position:-68px -26px}.ztree li span.button.chk.radio_true_part[data-v-5694ded0]{background-position:-68px -47px}.ztree li span.button.chk.radio_true_part_focus[data-v-5694ded0]{background-position:-68px -68px}.ztree li span.button.chk.radio_true_disable[data-v-5694ded0]{background-position:-68px -89px}.ztree li span.button.switch[data-v-5694ded0]{width:21px;height:21px}.ztree li span.button.root_open[data-v-5694ded0]{background-position:-105px -63px}.ztree li span.button.root_close[data-v-5694ded0]{background-position:-126px -63px}.ztree li span.button.roots_open[data-v-5694ded0]{background-position:-105px 0}.ztree li span.button.roots_close[data-v-5694ded0]{background-position:-126px 0}.ztree li span.button.center_open[data-v-5694ded0]{background-position:-105px -21px}.ztree li span.button.center_close[data-v-5694ded0]{background-position:-126px -21px}.ztree li span.button.bottom_open[data-v-5694ded0]{background-position:-105px -42px}.ztree li span.button.bottom_close[data-v-5694ded0]{background-position:-126px -42px}.ztree li span.button.noline_open[data-v-5694ded0]{background-position:-105px -84px}.ztree li span.button.noline_close[data-v-5694ded0]{background-position:-126px -84px}.ztree li span.button.root_docu[data-v-5694ded0]{background:none}.ztree li span.button.roots_docu[data-v-5694ded0]{background-position:-84px 0}.ztree li span.button.center_docu[data-v-5694ded0]{background-position:-84px -21px}.ztree li span.button.bottom_docu[data-v-5694ded0]{background-position:-84px -42px}.ztree li span.button.noline_docu[data-v-5694ded0]{background:none}.ztree li span.button.ico_open[data-v-5694ded0]{margin-right:2px;background-position:-147px -21px;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_close[data-v-5694ded0]{margin-right:2px;background-position:-147px 0;vertical-align:top;*vertical-align:middle}.ztree li span.button.ico_docu[data-v-5694ded0]{margin-right:2px;background-position:-147px -42px;vertical-align:top;*vertical-align:middle}.ztree li span.button.edit[data-v-5694ded0]{margin-left:2px;margin-right:-1px;background-position:-189px -21px;vertical-align:top;*vertical-align:middle}.ztree li span.button.edit[data-v-5694ded0]:hover{background-position:-168px -21px}.ztree li span.button.remove[data-v-5694ded0]{margin-left:2px;margin-right:-1px;background-position:-189px -42px;vertical-align:top;*vertical-align:middle}.ztree li span.button.remove[data-v-5694ded0]:hover{background-position:-168px -42px}.ztree li span.button.add[data-v-5694ded0]{margin-left:2px;margin-right:-1px;background-position:-189px 0;vertical-align:top;*vertical-align:middle}.ztree li span.button.add[data-v-5694ded0]:hover{background-position:-168px 0}.ztree li span.button.ico_loading[data-v-5694ded0]{margin-right:2px;vertical-align:top;*vertical-align:middle}ul.tmpTargetzTree[data-v-5694ded0]{background-color:#ffe6b0;opacity:.8;filter:alpha(opacity=80)}span.tmpzTreeMove_arrow[data-v-5694ded0]{width:16px;height:21px;display:inline-block;padding:0;margin:2px 0 0 1px;border:0 none;position:absolute;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;background-position:-168px -84px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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)}ul.ztree.zTreeDragUL[data-v-5694ded0]{margin:0;padding:0;position:absolute;width:auto;height:auto;overflow:hidden;background-color:#cfcfcf;border:1px dotted #00b83f;opacity:.8;filter:alpha(opacity=80)}.ztreeMask[data-v-5694ded0]{z-index:10000;background-color:#cfcfcf;opacity:0;filter:alpha(opacity=0);position:absolute} 2 | /*# sourceMappingURL=app.7c0dc9027bab8409736bec4d17d981f0.css.map */ -------------------------------------------------------------------------------- /dist/static/css/app.7c0dc9027bab8409736bec4d17d981f0.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["app.7c0dc9027bab8409736bec4d17d981f0.css"],"names":[],"mappings":"AAUA,6BACE,gBAAiB,AACjB,WAAY,AACZ,SAAW,CACZ,AAED,yBACE,0BAA2B,AAC3B,sBAAuB,AACvB,oBAAoB,AACpB,yBAAyB,AACzB,qBAAqB,AACrB,iBAAiB,AAGjB,UAAU,AAAC,SAAS,AAAC,eAAe,AAAC,0DAA+D,CACrG,AACD,wBAAyB,SAAS,AAAC,YAAY,AAAC,UAAU,CACzD,AACD,2BAA2B,UAAU,AAAC,SAAS,AAAC,gBAAgB,AAAC,iBAAiB,AAAC,gBAAgB,AAAC,mBAAmB,AAAC,SAAS,CAChI,AACD,8BAA+B,SAAS,AAAC,kBAAkB,CAC1D,AACD,mCAAoC,+wCAAgxC,CACnzC,AACD,6BAA8B,kBAAkB,AAAC,SAAS,AAAC,eAAe,AAAC,YAAY,AAAC,WAAW,AAAC,6BAA8B,AAAC,qBAAqB,AAAC,mBAAmB,AAAC,oBAAqB,CACjM,AACD,mCAAoC,yBAAyB,CAC5D,AAGD,+FAF8C,cAAgB,AAAC,yBAAyB,AAAC,WAAY,AAAC,YAAY,AAAC,UAAY,CAG9H,AADD,kDAAwH,qBAAsB,CAC7I,AACD,iDAAkD,cAAgB,AAAC,sBAAsB,AAAC,WAAY,AAAC,YAAY,AAAC,sBAAsB,AACxI,WAAY,AAAC,wBAAwB,CACtC,AAKD,0CAA2C,YAAY,AAAC,WAAW,AAAC,UAAU,AAAC,SAAS,AACtF,eAAe,AAAC,yBAAyB,CAAC,QAAW,CACtD,AACD,gCAAiC,iBAAiB,AAAC,gBAAgB,CAClE,AACD,uCAAwC,cAAc,AAAC,SAAS,AAAC,UAAW,AAAC,WAAW,AAAC,YAAY,AAAC,qBAAsB,AAAC,sBAAsB,AACjJ,cAAc,AAAC,eAAgB,aAAa,AAC5C,6BAA6B,AAAC,4BAA4B,AAAC,6BAA8B,AACzF,g7NAAi7N,CACl7N,AACD,2CAA4C,WAAW,AAAC,YAAY,AAAC,aAAa,AAAC,WAAY,CAC9F,AACD,+DAAgE,6BAA+B,CAC9F,AACD,qEAAsE,8BAAgC,CACrG,AACD,+DAAgE,8BAAgC,CAC/F,AACD,qEAAsE,8BAAgC,CACrG,AACD,kEAAmE,8BAAgC,CAClG,AACD,8DAA+D,8BAAgC,CAC9F,AACD,oEAAqE,+BAAiC,CACrG,AACD,8DAA+D,+BAAiC,CAC/F,AACD,oEAAqE,+BAAiC,CACrG,AACD,iEAAkE,+BAAiC,CAClG,AACD,4DAA6D,8BAAgC,CAC5F,AACD,kEAAmE,+BAAiC,CACnG,AACD,4DAA6D,+BAAiC,CAC7F,AACD,kEAAmE,+BAAiC,CACnG,AACD,+DAAgE,+BAAiC,CAChG,AACD,2DAA4D,8BAAgC,CAC3F,AACD,iEAAkE,+BAAiC,CAClG,AACD,2DAA4D,+BAAiC,CAC5F,AACD,iEAAkE,+BAAiC,CAClG,AACD,8DAA+D,+BAAiC,CAC/F,AACD,8CAA+C,WAAW,AAAC,WAAW,CACrE,AACD,iDAAiD,gCAAgC,CAChF,AACD,kDAAkD,gCAAgC,CACjF,AACD,kDAAkD,4BAA8B,CAC/E,AACD,mDAAmD,4BAA8B,CAChF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,iDAAkD,eAAgB,CACjE,AACD,kDAAkD,2BAA6B,CAC9E,AACD,mDAAmD,+BAAiC,CACnF,AACD,mDAAmD,+BAAiC,CACnF,AACD,mDAAoD,eAAgB,CACnE,AACD,gDAAgD,iBAAiB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9I,AACD,iDAAiD,iBAAiB,AAAC,6BAA8B,AAAC,mBAAmB,CAAC,qBAAsB,CAC3I,AACD,gDAAgD,iBAAiB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9I,AACD,4CAA6C,gBAAgB,AAAC,kBAAmB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9J,AACD,kDACE,gCAAkC,CACnC,AACD,8CAA+C,gBAAgB,AAAC,kBAAmB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAChK,AACD,oDACE,gCAAkC,CACnC,AACD,2CAA4C,gBAAgB,AAAC,kBAAmB,AAAC,6BAA8B,AAAC,mBAAmB,CAAC,qBAAsB,CACzJ,AACD,iDACE,4BAA8B,CAC/B,AACD,mDAAmD,iBAAiB,AAAE,mBAAmB,CAAC,qBAAsB,CAC/G,AACD,mCAAoC,yBAAyB,AAAC,WAAY,AAAC,wBAAwB,CAClG,AACD,yCAA0C,WAAW,AAAC,YAAY,AAAC,qBAAsB,AAAC,UAAU,AAAC,mBAAmB,AAAC,cAAc,AAAC,kBAAkB,AACxJ,6BAA6B,AAAC,4BAA4B,AAAC,6BAA8B,AACzF,iCAAiC,AAAC,g7NAAi7N,CACp9N,AACD,sCAAuC,SAAS,AAAC,UAAU,AAAC,kBAAkB,AAAC,WAAW,AAAC,YAAY,gBAAgB,AAAC,yBAAyB,AAAC,0BAA0B,AAAC,WAAY,AAAC,wBAAwB,CACjN,AACD,4BAA6B,cAAc,AAAC,yBAAyB,AAAC,UAAY,AAAC,wBAAwB,AAAC,iBAAiB,CAC5H,AAED,yBACE,0BAA2B,AAC3B,sBAAuB,AACvB,oBAAoB,AACpB,yBAAyB,AACzB,qBAAqB,AACrB,iBAAiB,AAGjB,UAAU,AAAC,SAAS,AAAC,eAAe,AAAC,0DAA+D,CACrG,AACD,wBAAyB,SAAS,AAAC,YAAY,AAAC,UAAU,CACzD,AACD,2BAA2B,UAAU,AAAC,SAAS,AAAC,gBAAgB,AAAC,iBAAiB,AAAC,gBAAgB,AAAC,mBAAmB,AAAC,SAAS,CAChI,AACD,8BAA+B,SAAS,AAAC,kBAAkB,CAC1D,AACD,mCAAoC,+wCAAgxC,CACnzC,AACD,6BAA8B,kBAAkB,AAAC,SAAS,AAAC,eAAe,AAAC,YAAY,AAAC,WAAW,AAAC,6BAA8B,AAAC,qBAAqB,AAAC,mBAAmB,AAAC,oBAAqB,CACjM,AACD,mCAAoC,yBAAyB,CAC5D,AAGD,+FAF8C,cAAgB,AAAC,yBAAyB,AAAC,WAAY,AAAC,YAAY,AAAC,UAAY,CAG9H,AADD,kDAAwH,qBAAsB,CAC7I,AACD,iDAAkD,cAAgB,AAAC,sBAAsB,AAAC,WAAY,AAAC,YAAY,AAAC,sBAAsB,AACxI,WAAY,AAAC,wBAAwB,CACtC,AAKD,0CAA2C,YAAY,AAAC,WAAW,AAAC,UAAU,AAAC,SAAS,AACtF,eAAe,AAAC,yBAAyB,CAAC,QAAW,CACtD,AACD,gCAAiC,iBAAiB,AAAC,gBAAgB,CAClE,AACD,uCAAwC,cAAc,AAAC,SAAS,AAAC,UAAW,AAAC,WAAW,AAAC,YAAY,AAAC,qBAAsB,AAAC,sBAAsB,AACjJ,cAAc,AAAC,eAAgB,aAAa,AAC5C,6BAA6B,AAAC,4BAA4B,AAAC,6BAA8B,AACzF,g7NAAi7N,CACl7N,AACD,2CAA4C,WAAW,AAAC,YAAY,AAAC,aAAa,AAAC,WAAY,CAC9F,AACD,+DAAgE,6BAA+B,CAC9F,AACD,qEAAsE,8BAAgC,CACrG,AACD,+DAAgE,8BAAgC,CAC/F,AACD,qEAAsE,8BAAgC,CACrG,AACD,kEAAmE,8BAAgC,CAClG,AACD,8DAA+D,8BAAgC,CAC9F,AACD,oEAAqE,+BAAiC,CACrG,AACD,8DAA+D,+BAAiC,CAC/F,AACD,oEAAqE,+BAAiC,CACrG,AACD,iEAAkE,+BAAiC,CAClG,AACD,4DAA6D,8BAAgC,CAC5F,AACD,kEAAmE,+BAAiC,CACnG,AACD,4DAA6D,+BAAiC,CAC7F,AACD,kEAAmE,+BAAiC,CACnG,AACD,+DAAgE,+BAAiC,CAChG,AACD,2DAA4D,8BAAgC,CAC3F,AACD,iEAAkE,+BAAiC,CAClG,AACD,2DAA4D,+BAAiC,CAC5F,AACD,iEAAkE,+BAAiC,CAClG,AACD,8DAA+D,+BAAiC,CAC/F,AACD,8CAA+C,WAAW,AAAC,WAAW,CACrE,AACD,iDAAiD,gCAAgC,CAChF,AACD,kDAAkD,gCAAgC,CACjF,AACD,kDAAkD,4BAA8B,CAC/E,AACD,mDAAmD,4BAA8B,CAChF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,mDAAmD,gCAAkC,CACpF,AACD,oDAAoD,gCAAkC,CACrF,AACD,iDAAkD,eAAgB,CACjE,AACD,kDAAkD,2BAA6B,CAC9E,AACD,mDAAmD,+BAAiC,CACnF,AACD,mDAAmD,+BAAiC,CACnF,AACD,mDAAoD,eAAgB,CACnE,AACD,gDAAgD,iBAAiB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9I,AACD,iDAAiD,iBAAiB,AAAC,6BAA8B,AAAC,mBAAmB,CAAC,qBAAsB,CAC3I,AACD,gDAAgD,iBAAiB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9I,AACD,4CAA6C,gBAAgB,AAAC,kBAAmB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAC9J,AACD,kDACE,gCAAkC,CACnC,AACD,8CAA+C,gBAAgB,AAAC,kBAAmB,AAAC,iCAAkC,AAAC,mBAAmB,CAAC,qBAAsB,CAChK,AACD,oDACE,gCAAkC,CACnC,AACD,2CAA4C,gBAAgB,AAAC,kBAAmB,AAAC,6BAA8B,AAAC,mBAAmB,CAAC,qBAAsB,CACzJ,AACD,iDACE,4BAA8B,CAC/B,AACD,mDAAmD,iBAAiB,AAAE,mBAAmB,CAAC,qBAAsB,CAC/G,AACD,mCAAoC,yBAAyB,AAAC,WAAY,AAAC,wBAAwB,CAClG,AACD,yCAA0C,WAAW,AAAC,YAAY,AAAC,qBAAsB,AAAC,UAAU,AAAC,mBAAmB,AAAC,cAAc,AAAC,kBAAkB,AACxJ,6BAA6B,AAAC,4BAA4B,AAAC,6BAA8B,AACzF,iCAAiC,AAAC,g7NAAi7N,CACp9N,AACD,sCAAuC,SAAS,AAAC,UAAU,AAAC,kBAAkB,AAAC,WAAW,AAAC,YAAY,gBAAgB,AAAC,yBAAyB,AAAC,0BAA0B,AAAC,WAAY,AAAC,wBAAwB,CACjN,AACD,4BAA6B,cAAc,AAAC,yBAAyB,AAAC,UAAY,AAAC,wBAAwB,AAAC,iBAAiB,CAC5H","file":"app.7c0dc9027bab8409736bec4d17d981f0.css","sourcesContent":["\n#app {\n /*font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-align: center;\n color: #2c3e50;\n margin-top: 60px;*/\n}\n\n.main ul li[data-v-8e136f26] {\n list-style: none;\n float: left;\n width: 25%;\n}\n\n.ztree *[data-v-c1c489e0] {\n moz-user-select: -moz-none;\n -moz-user-select: none;\n -o-user-select:none;\n -webkit-user-select:none;\n -ms-user-select:none;\n user-select:none;\n\n\n padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif\n}\n.ztree[data-v-c1c489e0] {margin:0; padding:5px; color:#333\n}\n.ztree li[data-v-c1c489e0]{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0\n}\n.ztree li ul[data-v-c1c489e0]{ margin:0; padding:0 0 0 18px\n}\n.ztree li ul.line[data-v-c1c489e0]{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAACCAYAAACOoybuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc4REU0MjZCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc4REU0MjdCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzhERTQyNEJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzhERTQyNUJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po2SkZQAAAAZSURBVHjaYvz//z8D0QCkmBiclpb2HyDAAPeAIxI04Q1+AAAAAElFTkSuQmCC) 0 0 repeat-y;\n}\n.ztree li a[data-v-c1c489e0] {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block\n}\n.ztree li a[data-v-c1c489e0]:hover {text-decoration:underline\n}\n.ztree li a.curSelectedNode[data-v-c1c489e0] {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;\n}\n.ztree li a.curSelectedNode_Edit[data-v-c1c489e0] {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;\n}\n.ztree li a.tmpTargetNode_inner[data-v-c1c489e0] {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid;\n opacity:0.8; filter:alpha(opacity=80)\n}\n.ztree li a.tmpTargetNode_prev[data-v-c1c489e0] {\n}\n.ztree li a.tmpTargetNode_next[data-v-c1c489e0] {\n}\n.ztree li a input.rename[data-v-c1c489e0] {height:14px; width:80px; padding:0; margin:0;\n font-size:12px; border:1px #585956 solid; *border:0px\n}\n.ztree li span[data-v-c1c489e0] {line-height:21px; margin-right:2px\n}\n.ztree li span.button[data-v-c1c489e0] {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle;\n border:0 none; cursor: pointer;outline:none;\n background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;\n background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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);\n}\n.ztree li span.button.chk[data-v-c1c489e0] {width:13px; height:13px; margin:0 2px; cursor: auto\n}\n.ztree li span.button.chk.checkbox_false_full[data-v-c1c489e0] {background-position: -5px -5px;\n}\n.ztree li span.button.chk.checkbox_false_full_focus[data-v-c1c489e0] {background-position: -5px -26px;\n}\n.ztree li span.button.chk.checkbox_false_part[data-v-c1c489e0] {background-position: -5px -48px;\n}\n.ztree li span.button.chk.checkbox_false_part_focus[data-v-c1c489e0] {background-position: -5px -68px;\n}\n.ztree li span.button.chk.checkbox_false_disable[data-v-c1c489e0] {background-position: -5px -89px;\n}\n.ztree li span.button.chk.checkbox_true_full[data-v-c1c489e0] {background-position: -26px -5px;\n}\n.ztree li span.button.chk.checkbox_true_full_focus[data-v-c1c489e0] {background-position: -26px -26px;\n}\n.ztree li span.button.chk.checkbox_true_part[data-v-c1c489e0] {background-position: -26px -48px;\n}\n.ztree li span.button.chk.checkbox_true_part_focus[data-v-c1c489e0] {background-position: -26px -68px;\n}\n.ztree li span.button.chk.checkbox_true_disable[data-v-c1c489e0] {background-position: -26px -89px;\n}\n.ztree li span.button.chk.radio_false_full[data-v-c1c489e0] {background-position: -47px -5px;\n}\n.ztree li span.button.chk.radio_false_full_focus[data-v-c1c489e0] {background-position: -47px -26px;\n}\n.ztree li span.button.chk.radio_false_part[data-v-c1c489e0] {background-position: -47px -47px;\n}\n.ztree li span.button.chk.radio_false_part_focus[data-v-c1c489e0] {background-position: -47px -68px;\n}\n.ztree li span.button.chk.radio_false_disable[data-v-c1c489e0] {background-position: -47px -89px;\n}\n.ztree li span.button.chk.radio_true_full[data-v-c1c489e0] {background-position: -68px -5px;\n}\n.ztree li span.button.chk.radio_true_full_focus[data-v-c1c489e0] {background-position: -68px -26px;\n}\n.ztree li span.button.chk.radio_true_part[data-v-c1c489e0] {background-position: -68px -47px;\n}\n.ztree li span.button.chk.radio_true_part_focus[data-v-c1c489e0] {background-position: -68px -68px;\n}\n.ztree li span.button.chk.radio_true_disable[data-v-c1c489e0] {background-position: -68px -89px;\n}\n.ztree li span.button.switch[data-v-c1c489e0] {width:21px; height:21px\n}\n.ztree li span.button.root_open[data-v-c1c489e0]{background-position:-105px -63px\n}\n.ztree li span.button.root_close[data-v-c1c489e0]{background-position:-126px -63px\n}\n.ztree li span.button.roots_open[data-v-c1c489e0]{background-position: -105px 0;\n}\n.ztree li span.button.roots_close[data-v-c1c489e0]{background-position: -126px 0;\n}\n.ztree li span.button.center_open[data-v-c1c489e0]{background-position: -105px -21px;\n}\n.ztree li span.button.center_close[data-v-c1c489e0]{background-position: -126px -21px;\n}\n.ztree li span.button.bottom_open[data-v-c1c489e0]{background-position: -105px -42px;\n}\n.ztree li span.button.bottom_close[data-v-c1c489e0]{background-position: -126px -42px;\n}\n.ztree li span.button.noline_open[data-v-c1c489e0]{background-position: -105px -84px;\n}\n.ztree li span.button.noline_close[data-v-c1c489e0]{background-position: -126px -84px;\n}\n.ztree li span.button.root_docu[data-v-c1c489e0]{ background:none;\n}\n.ztree li span.button.roots_docu[data-v-c1c489e0]{background-position: -84px 0;\n}\n.ztree li span.button.center_docu[data-v-c1c489e0]{background-position: -84px -21px;\n}\n.ztree li span.button.bottom_docu[data-v-c1c489e0]{background-position: -84px -42px;\n}\n.ztree li span.button.noline_docu[data-v-c1c489e0]{ background:none;\n}\n.ztree li span.button.ico_open[data-v-c1c489e0]{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.ico_close[data-v-c1c489e0]{margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.ico_docu[data-v-c1c489e0]{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.edit[data-v-c1c489e0] {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.edit[data-v-c1c489e0]:hover {\n background-position: -168px -21px;\n}\n.ztree li span.button.remove[data-v-c1c489e0] {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.remove[data-v-c1c489e0]:hover {\n background-position: -168px -42px;\n}\n.ztree li span.button.add[data-v-c1c489e0] {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.add[data-v-c1c489e0]:hover {\n background-position: -168px 0;\n}\n.ztree li span.button.ico_loading[data-v-c1c489e0]{margin-right:2px; vertical-align:top; *vertical-align:middle\n}\nul.tmpTargetzTree[data-v-c1c489e0] {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)\n}\nspan.tmpzTreeMove_arrow[data-v-c1c489e0] {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;\n background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;\n background-position:-168px -84px; background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0H2XKgAAENNJREFUeNrsXUF24jgTFv2ym8Ukq1k2OUHSr2cfOEHICQKbnmXDCYAT0FnObKBPEPoEOPuZF/oEwyxnNfTiX/dfRT4litu2JMvGNtT3Hs8E7EKR61OVZOlT6/v370ogEIThjVSBQBCOE6kCQRPwy/x/wanTv4OfWubff/zxR7DNDx8+tIRIgqahFXDt9zJtCpEaiF9//dW7Jf3zzz9b+7YpqR3w22+/9enQzjhl8/vvvy98ftBmk+xNQv4hst+GfS7bJrSCyF6HDtf0uqTXll4P9FqQ7W2VN46c2Id4ldmk84Z0ODU+WtLvrEuoku+B0SXI5kmGA83gPA8Z19/SeRfkVCNHp2R74ywi0Tlv6cD2ej4kBUFf2abPmEhTX7LjWr759/TqxL7q8e/Q96M8do8sck5wT0x8pM/fEZk2h/S/ZkUkbknOslpeONt/cHwXsGOyAy4tNldMYnp/RecOHJx+Toc+IgY79waEYqefu9pJKgO3oCDjGp+zzRnsqkMnE0cen0gVw1XCZ1yHY7L7T8J3ZUWralM7W/rC37MzeaDtSiIPpx+DRGx3YJaZowY7PH/P0Ym+mzqa/YgyTMxrYHtBtvi3/mZC8fuq07wGop9W70SwcyJT4+qzkudITBhOxUCcNBItbFEE1wwRgQZxh8bfA3w/NH/PgiH6WNN4akqv/xCRRmhd+8KLwnDq04g2JiKVCN33+EiO2cVnXiQCOqj8aVpUQNS8g/N3ELls/bhTRJ5LlIuvucN7nd7paMfpy6ccjYnuyKYeqewtPo+PeTr98ZRM2/K1af6d12YJgwCun7f2YbPq4W/tqJscJGJc4GjLq9fG+UuHVlGhv9Uxok7f+LxrpLWnOf/3VtZRO6XNOX36L3ls2vpIrjYLRitkhK0Mm1VNEboxnPsSLTwjYhKRgz462vkWc34bOb452HwuF5XlEwYvVIxEa0QrFxL7toACSe2cW8YtUjoznVuDYMojT45wvLZEmuvY+bay8Xk9JguIrUD2HYlwqh7W/RLSApI98cIDwBuHznzu720Oy44J5450uuRpY41r+3hwmlTGDtKyyCCBDXqQYa7JRK8zfT1GCnuwGeWsgkZEpIChb4lIAKc19+Q0WQ9kfTvaG7LX00PgBplMx++hz+SKESLbiq6d0PEzz2jADIdbek2Qko08CBrR9QMMJjxiuHttDDS0YxG0qJz80PCgfnygnYVtQKpcTyLxbAWHKUKfPR9I3oCc91lk83FQ9FeYjPcgzST2bGtnzyMaabsLzIzQ0adn3Gz+nbvA50dBnWPXKTpV2qRoNiGbG4sPmVgEPEMqo2Fyttk6pIV9IP4VbhzfwIciZh4ghd3NtfMlZIZNJX0kd2AZRdBM7ZRlFEE2D3IZBUizKMHu1mWgYp8RKYWchT/L2fPzoSr6lYXYbMlSc4EgHLLUvLo09Pux2hQiCQQCSe0EgrIgS80rTO2aMDBQl8GGuoufSEQSNAIy/C3I6sS38jxHEvGThqV2VLl9OrzNOOUfqsyFpxNk2iR705B/iOy3FR7IFqELQPY6KkH8pIBVnEFO2ATxEzpHL5Mx52Ry3Q1K9OlLvBb7tHmSUQla/CTK+IFbOu+CKmbkWPlW8RMQYSd+4kNSEPSVbUxPmfqSHddmip/Q96M8ds20QB3+fLuZ+nGJS5/q7jPVXVQSiTRxeYbLYF82reInWS0vVQivGvUWPyGbS4sD75ZX0Psrl9aLzssUP3G1k1QGBfETFuXA58/iJ1j0lpdMjSBRoPhJGlYJES00Ul2ql6lhl/CHh8DI5GzzjSXUb0O+T0DblUQeN9oUP2HhjAGnh7gp5/i8j/Nc8Sx+QnZutLIN/78gzjlIO0OZ80YkwetI1Qlw+Hv1oqWh50NuA0nkbLOSB7LsfJyKmU6YQCJrC4VrnsVP4sTG38/iJx5OP0QfaxpPTelVlPiJdNSLS+fu4eBtnfWopxUEy33ZrFz8hBwzUfzEMcx34MzTtOjInyMFdRI/QT9uJ35idJYLFz/RfaQsEZQDEz9ZI62PSiKR9p1TOP9inzZrKX7ikStXJn4Cgiol4icuNiO05pwKrxyKuqbffJfD4RUykCJJ5GSzduInTCKq7FqIn1BZEsVPMPAg4idu0CuJVx5p8MDB4WfG+6JIlNtmJREJrXktxU9QNj6vx2QBsRXI3jUkdUX8xA7dR5153NOBg2wx388p7K8Mh18GlLUXYvONQ2c+9/c2h1Ux8RPfUUBUeJQ14oPP+4h23uInmkz0OtPXYwSwB5t5c/5jED/hfuStRySaeDxOWCH1XsOPlgX8u7ltWsVP0Dpndfa9xE/IXk8PgRtkMh0/t/gJdj/gh30bPNjNJX7C5KDrn8VP6L2In+THxDFyffKY1fIAuz+r10PTIYiMboC3zZMMZxo5TBH67PlA8gbkLEz8BP2VV+InsVGnnT3fXQ74/8LMiFTxk8BpQscgfrIpqcGIVPFL/4NsnticqeCKZWc+LyH92NkF8V+Jn4T8D0jbIqSwu7l2BW470gooV6uEOpTnWgE4qNnfIM2iBLsiflIPiPiJQHDIEM2GiiDiJ4cFiUgCgUQkiUgSkSQiCQTOqLv4iUQkiUhNikitgFepNiUiCZoUkURFaI8tvV5PtA7cdmUfEengVYSMh9kmnlccF1CVcftRFTZPMm40T4n56PCjd3rjMAfn0Wt7bJNdlz7bp8Aul3Vo2sYWltO8u+phtz+229HkVFjkVwBJD15FCOD5ir3YZzylawwRlEVgPc7Vy7y4tnqa2TItwOZXvH+L+z/xJhIc6N7xRzu80Zejs7rqMYxdbYJEaXY7KN/Ad58kukYLqpjQskxDlC9kutAxqAgpS6MZIiCzMu6J+Rs99aL81C3Q5lWWzbTBhivPAlw5OGZHeYiaOEZDBcLb7M7T9phNKetMZU/935EX22tWEpH2hTImxyaQqZ/juilSrjM4t36d4fNpTpsPKTYfsmzWadSOUyVz5eypIzldCTJ2JFEbKWIa1uplScU44P899lEevZaMX7cBa9uGxrGdkEbuxeabGpGoi76Wzxqfa49zO467sN9abj6X8x3e9wP+52Oebc2N3xe08NPAPs21cWSnvyigfHGb1kzqpCLSDNCaXxokWsPR7z1sXXr+tk05VhkRjvP2kdH/0iTaYq/aSx0Vcw5mHJuKUDw7GCcMQERNbRmqINKCIw9G1HZ6YQaJVp7k2OYgsSu+gjR8g2copybRPLQSDKdzUhNyJYvLb1agInTwqIJIPOL1FaNoXbRqeUik0AF0zYlddySPEJVmVK4tyjlAOX8gUd6hdUFh+GIcN+i7XhRsc23zzar6SHM4ZQiJdPrlGmVctSU+p5QzKRItxI8rxyfjyE6/rMJmlYMN7KTDABIpPBR1ETXhFuXO0eYmRro5ninNE9LE6aF7aQkC+kUhUi8Co/GXS184zeZFis2LLJtpqd03zwJ8y1kZs9D+DKde5Oja1mlK5dz4zESgc0fGLAylfhyd0wMkGwkIleKmLjZPMlKmW8dIsXZJcbgvQc65Vu7R587D8ZlMSzj8lXqZzvMlbx+GrhuQTU7zypoiFIQmqAglpMpZjea6yYzOnP3tMhvAx1HLmmsnOHzIZswCwRFAFvYJBEIkgUCIJBAcDE6kCgRNQN0HG4RIgiYhSF8hyyYRwssYkfCVTSFSA9EkzYaiQVElTzSrLrXDPkVOmg16vyMHB9DPkX62nPol764PxmbK64LENWqJBmk2lJXmsc/xpOVZEZEMaV5umycpldRRHpoNvD+R4851rvPqJh42NUF/ED/BJmnTvLvqoR4SZzYcMkkbAL6fLE6yUcWtYYpwf3PZTItIeTQbIgen9NVsiBxJlCl+wrvv+Qps0DWZ4icg+sHPvrCtR6oIUzj8VvmvSSvFZp36SPGVs65r+J3ET3j3PY8I5yR+Que9w650gv1ihUb2QbnpZrQ8bPJrUkhqVxGJutjGklv5vz1Sr47jb4wdI1xb2cVPdHQaK/tW9oJyIpJOw4rCxEgXixts2GPkMUnkq9ngJX7C9h36NlbxE7ZBth4RtSolUkM1G0JxFdANSfWPlPdZZK6USAse5cNAwE6zwSCR7yK/vYufgER9/dscFfMOZhSBI9Vs6Bh9mU7BNr/lsVmJZgPdnK/o/HcdBgxs0a2s87+CNM/iJwaJ5kpQJd4ZRFoXdM+DbFbVR3qWqg0gkVKe4ieOo2wRWqQZlW0Lwg9A+B9IVGU0OmI8ljDY8NjUwYY5SHSbk0Q6/eKKdBnh8xE/mSQQPikSLQ7dY2uq2dCYwYZGaDYg1Ro5pFrO4ic8nE02mXRDg0xXKlm34eDFT+qIfwc/TWL3NhMuU4Q+fPgw9bGJuXZWIi1UwZoNnAJhaLtQzQZEC03KVPETn5kIdO7ImM6kUkjUrfIZUoM0G44CJ2ktPXe+8JzGShCP3+uqEubagUyJ4id5+zB03YD371E1nCJUxmTRKiag5sE+JqDmgWg2CFRDCCTiJwLBoUOWmgsEQiSBQIgkEAiRBAKBEEkgKBQiftJwHLMQSmOI9Ndff/Xp8DbjlH/ev3+/8PlBm02yFzTthuy31dMGuhuytQmtILLXUU/rnvTaKZ4ouSDbtdFsOCYhFGOSM9f/TV20M04yHGim7Ot3bum8C3KqkaNT6lWlbQsR2F7Ph6Qg6Cvb9BkTaepLdlyrFxl2Yl/xbPMxfT/KY1cQDL0glLGCdsa2tkRST5M2z7JaXnImng/3n3LbNU/BMdkBlxYH3i2roPdXdO7Awem1UAmXlZ17A0Kx089d7SSVQT1NCWIyrvE525zBrjomMtVECOWzetka6LIuZMocbLClLznSm7YriTycfoyKZbvnTBhOD0Gcc3zex3mu+IgyTMjODZNI/78gzjlIO0OZBftLY3crldXL6gBNpkrvQyWDDUbLvtRkTCDRwhZFcM0QEWgQJzb/TecMYHPIEdSR/EP0saYJqekK5NTLN5jEn8TFS+0TcR3HJzpH6mVRZ+WRqapRO933+EjO2dX5rg+JgA5C/DSNICDTHdKxjrLsUA2ysM1FjDh3eK8bAU2kq7oQyUcIJa/NLCGUktBXbsqnl/Cr7jERyfznV4goviRiXOBoW3KxNs63ySvrFGFrELWvXtYk7dYigaDm+XVIe0q1WVEf6WePc9tHldqpp52jdQS6NEgUMYnIQR/p+M7BzreY89vI4bKS91m3jvtHPCqZQKI1opULiQXhgwtp99TUH9yqcnY5ry+R0Jp3Y+nc2qgI18GGCMdrS6S5jp1vK9su/2aygNgK6VxXDzyoF9GNL+LrpUZZzlamCf2mVYxElUpIv3HozOf+3uawyGcjvLq+o4Bwar62jwenSWXsIKJEBgls0DdurslErzN9PUYAe7AZHZFT12XwwWyAKyeRLSJxB/oerXNWZ9+no70hez09BG6QyXT8nvJTctEijiu6dsKpAM9owINd1p2YoLJHHgSNMNrHgwmP9H6JiKkHGtqxCCrYH8Z1IxEjc4Vs0VOE0K+4t3QKmUQ3HtHDZtfbXiyajdXr2Q1bNB53dZgmdGxz7bD/lU7rarMjyEEtNQfxr0AoJtBDETMPkMLu5trlIaSgcDLx/d3WaY8q0WwQCMoebBAIBEIkgUCIJBAIkQQCIZJAIBAiCQRCJIFAiCQQCJEEAoEQSSAQIgkEQiSBQCBEEgiESAKBEEkgECIJBAIhkkAgRBIIhEgCgRBJIBAIkQQCIZJAIEQSCA4b/xdgAEmenC1yRf7rAAAAAElFTkSuQmCC);\n}\nul.ztree.zTreeDragUL[data-v-c1c489e0] {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)\n}\n.ztreeMask[data-v-c1c489e0] {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute\n}\n\n.ztree *[data-v-5694ded0] {\n moz-user-select: -moz-none;\n -moz-user-select: none;\n -o-user-select:none;\n -webkit-user-select:none;\n -ms-user-select:none;\n user-select:none;\n\n\n padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif\n}\n.ztree[data-v-5694ded0] {margin:0; padding:5px; color:#333\n}\n.ztree li[data-v-5694ded0]{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0\n}\n.ztree li ul[data-v-5694ded0]{ margin:0; padding:0 0 0 18px\n}\n.ztree li ul.line[data-v-5694ded0]{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAACCAYAAACOoybuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDc4REU0MjZCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDc4REU0MjdCRUUzMTFFM0EzMjlBMDg4NDE2NDQzNDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzhERTQyNEJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzhERTQyNUJFRTMxMUUzQTMyOUEwODg0MTY0NDM0NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po2SkZQAAAAZSURBVHjaYvz//z8D0QCkmBiclpb2HyDAAPeAIxI04Q1+AAAAAElFTkSuQmCC) 0 0 repeat-y;\n}\n.ztree li a[data-v-5694ded0] {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block\n}\n.ztree li a[data-v-5694ded0]:hover {text-decoration:underline\n}\n.ztree li a.curSelectedNode[data-v-5694ded0] {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;\n}\n.ztree li a.curSelectedNode_Edit[data-v-5694ded0] {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;\n}\n.ztree li a.tmpTargetNode_inner[data-v-5694ded0] {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid;\n opacity:0.8; filter:alpha(opacity=80)\n}\n.ztree li a.tmpTargetNode_prev[data-v-5694ded0] {\n}\n.ztree li a.tmpTargetNode_next[data-v-5694ded0] {\n}\n.ztree li a input.rename[data-v-5694ded0] {height:14px; width:80px; padding:0; margin:0;\n font-size:12px; border:1px #585956 solid; *border:0px\n}\n.ztree li span[data-v-5694ded0] {line-height:21px; margin-right:2px\n}\n.ztree li span.button[data-v-5694ded0] {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle;\n border:0 none; cursor: pointer;outline:none;\n background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;\n background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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);\n}\n.ztree li span.button.chk[data-v-5694ded0] {width:13px; height:13px; margin:0 2px; cursor: auto\n}\n.ztree li span.button.chk.checkbox_false_full[data-v-5694ded0] {background-position: -5px -5px;\n}\n.ztree li span.button.chk.checkbox_false_full_focus[data-v-5694ded0] {background-position: -5px -26px;\n}\n.ztree li span.button.chk.checkbox_false_part[data-v-5694ded0] {background-position: -5px -48px;\n}\n.ztree li span.button.chk.checkbox_false_part_focus[data-v-5694ded0] {background-position: -5px -68px;\n}\n.ztree li span.button.chk.checkbox_false_disable[data-v-5694ded0] {background-position: -5px -89px;\n}\n.ztree li span.button.chk.checkbox_true_full[data-v-5694ded0] {background-position: -26px -5px;\n}\n.ztree li span.button.chk.checkbox_true_full_focus[data-v-5694ded0] {background-position: -26px -26px;\n}\n.ztree li span.button.chk.checkbox_true_part[data-v-5694ded0] {background-position: -26px -48px;\n}\n.ztree li span.button.chk.checkbox_true_part_focus[data-v-5694ded0] {background-position: -26px -68px;\n}\n.ztree li span.button.chk.checkbox_true_disable[data-v-5694ded0] {background-position: -26px -89px;\n}\n.ztree li span.button.chk.radio_false_full[data-v-5694ded0] {background-position: -47px -5px;\n}\n.ztree li span.button.chk.radio_false_full_focus[data-v-5694ded0] {background-position: -47px -26px;\n}\n.ztree li span.button.chk.radio_false_part[data-v-5694ded0] {background-position: -47px -47px;\n}\n.ztree li span.button.chk.radio_false_part_focus[data-v-5694ded0] {background-position: -47px -68px;\n}\n.ztree li span.button.chk.radio_false_disable[data-v-5694ded0] {background-position: -47px -89px;\n}\n.ztree li span.button.chk.radio_true_full[data-v-5694ded0] {background-position: -68px -5px;\n}\n.ztree li span.button.chk.radio_true_full_focus[data-v-5694ded0] {background-position: -68px -26px;\n}\n.ztree li span.button.chk.radio_true_part[data-v-5694ded0] {background-position: -68px -47px;\n}\n.ztree li span.button.chk.radio_true_part_focus[data-v-5694ded0] {background-position: -68px -68px;\n}\n.ztree li span.button.chk.radio_true_disable[data-v-5694ded0] {background-position: -68px -89px;\n}\n.ztree li span.button.switch[data-v-5694ded0] {width:21px; height:21px\n}\n.ztree li span.button.root_open[data-v-5694ded0]{background-position:-105px -63px\n}\n.ztree li span.button.root_close[data-v-5694ded0]{background-position:-126px -63px\n}\n.ztree li span.button.roots_open[data-v-5694ded0]{background-position: -105px 0;\n}\n.ztree li span.button.roots_close[data-v-5694ded0]{background-position: -126px 0;\n}\n.ztree li span.button.center_open[data-v-5694ded0]{background-position: -105px -21px;\n}\n.ztree li span.button.center_close[data-v-5694ded0]{background-position: -126px -21px;\n}\n.ztree li span.button.bottom_open[data-v-5694ded0]{background-position: -105px -42px;\n}\n.ztree li span.button.bottom_close[data-v-5694ded0]{background-position: -126px -42px;\n}\n.ztree li span.button.noline_open[data-v-5694ded0]{background-position: -105px -84px;\n}\n.ztree li span.button.noline_close[data-v-5694ded0]{background-position: -126px -84px;\n}\n.ztree li span.button.root_docu[data-v-5694ded0]{ background:none;\n}\n.ztree li span.button.roots_docu[data-v-5694ded0]{background-position: -84px 0;\n}\n.ztree li span.button.center_docu[data-v-5694ded0]{background-position: -84px -21px;\n}\n.ztree li span.button.bottom_docu[data-v-5694ded0]{background-position: -84px -42px;\n}\n.ztree li span.button.noline_docu[data-v-5694ded0]{ background:none;\n}\n.ztree li span.button.ico_open[data-v-5694ded0]{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.ico_close[data-v-5694ded0]{margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.ico_docu[data-v-5694ded0]{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.edit[data-v-5694ded0] {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.edit[data-v-5694ded0]:hover {\n background-position: -168px -21px;\n}\n.ztree li span.button.remove[data-v-5694ded0] {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.remove[data-v-5694ded0]:hover {\n background-position: -168px -42px;\n}\n.ztree li span.button.add[data-v-5694ded0] {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle\n}\n.ztree li span.button.add[data-v-5694ded0]:hover {\n background-position: -168px 0;\n}\n.ztree li span.button.ico_loading[data-v-5694ded0]{margin-right:2px; vertical-align:top; *vertical-align:middle\n}\nul.tmpTargetzTree[data-v-5694ded0] {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)\n}\nspan.tmpzTreeMove_arrow[data-v-5694ded0] {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;\n background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;\n background-position:-168px -84px; background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAB+CAYAAABRR0/XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MjA0QTdBMDkxQkZFMzExODQ5Qjk0QTJGMTk1NkQ0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNTczODMyQ0MwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNTczODMyQkMwOTgxMUUzQjkzMEMwREQ1QzNCRDhBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyMDRBN0EwOTFCRkUzMTE4NDlCOTRBMkYxOTU2RDRBIi8+IDwvcmRmOkRlc2NyaXB0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);\n}\nul.ztree.zTreeDragUL[data-v-5694ded0] {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)\n}\n.ztreeMask[data-v-5694ded0] {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute\n}\n"]} -------------------------------------------------------------------------------- /dist/static/css/v-tree.css: -------------------------------------------------------------------------------- 1 | .ztree * { 2 | moz-user-select: -moz-none; 3 | -moz-user-select: none; 4 | -o-user-select:none; 5 | -khtml-user-select:none; 6 | -webkit-user-select:none; 7 | -ms-user-select:none; 8 | user-select:none; 9 | 10 | 11 | padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} 12 | .ztree {margin:0; padding:5px; color:#333} 13 | .ztree li{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0} 14 | .ztree li ul{ margin:0; padding:0 0 0 18px} 15 | .ztree li ul.line{ background:url(../img/line_conn.png) 0 0 repeat-y;} 16 | 17 | .ztree li a {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block} 18 | .ztree li a:hover {text-decoration:underline} 19 | .ztree li a.curSelectedNode {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;} 20 | .ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;} 21 | .ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid; 22 | opacity:0.8; filter:alpha(opacity=80)} 23 | .ztree li a.tmpTargetNode_prev {} 24 | .ztree li a.tmpTargetNode_next {} 25 | .ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; 26 | font-size:12px; border:1px #585956 solid; *border:0px} 27 | .ztree li span {line-height:21px; margin-right:2px} 28 | .ztree li span.button {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle; 29 | border:0 none; cursor: pointer;outline:none; 30 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 31 | background-image:url("../img/v-tree.png");} 32 | 33 | .ztree li span.button.chk {width:13px; height:13px; margin:0 2px; cursor: auto} 34 | .ztree li span.button.chk.checkbox_false_full {background-position: -5px -5px;} 35 | .ztree li span.button.chk.checkbox_false_full_focus {background-position: -5px -26px;} 36 | .ztree li span.button.chk.checkbox_false_part {background-position: -5px -48px;} 37 | .ztree li span.button.chk.checkbox_false_part_focus {background-position: -5px -68px;} 38 | .ztree li span.button.chk.checkbox_false_disable {background-position: -5px -89px;} 39 | .ztree li span.button.chk.checkbox_true_full {background-position: -26px -5px;} 40 | .ztree li span.button.chk.checkbox_true_full_focus {background-position: -26px -26px;} 41 | .ztree li span.button.chk.checkbox_true_part {background-position: -26px -48px;} 42 | .ztree li span.button.chk.checkbox_true_part_focus {background-position: -26px -68px;} 43 | .ztree li span.button.chk.checkbox_true_disable {background-position: -26px -89px;} 44 | .ztree li span.button.chk.radio_false_full {background-position: -47px -5px;} 45 | .ztree li span.button.chk.radio_false_full_focus {background-position: -47px -26px;} 46 | .ztree li span.button.chk.radio_false_part {background-position: -47px -47px;} 47 | .ztree li span.button.chk.radio_false_part_focus {background-position: -47px -68px;} 48 | .ztree li span.button.chk.radio_false_disable {background-position: -47px -89px;} 49 | .ztree li span.button.chk.radio_true_full {background-position: -68px -5px;} 50 | .ztree li span.button.chk.radio_true_full_focus {background-position: -68px -26px;} 51 | .ztree li span.button.chk.radio_true_part {background-position: -68px -47px;} 52 | .ztree li span.button.chk.radio_true_part_focus {background-position: -68px -68px;} 53 | .ztree li span.button.chk.radio_true_disable {background-position: -68px -89px;} 54 | 55 | .ztree li span.button.switch {width:21px; height:21px} 56 | .ztree li span.button.root_open{background-position:-105px -63px} 57 | .ztree li span.button.root_close{background-position:-126px -63px} 58 | .ztree li span.button.roots_open{background-position: -105px 0;} 59 | .ztree li span.button.roots_close{background-position: -126px 0;} 60 | .ztree li span.button.center_open{background-position: -105px -21px;} 61 | .ztree li span.button.center_close{background-position: -126px -21px;} 62 | .ztree li span.button.bottom_open{background-position: -105px -42px;} 63 | .ztree li span.button.bottom_close{background-position: -126px -42px;} 64 | .ztree li span.button.noline_open{background-position: -105px -84px;} 65 | .ztree li span.button.noline_close{background-position: -126px -84px;} 66 | .ztree li span.button.root_docu{ background:none;} 67 | .ztree li span.button.roots_docu{background-position: -84px 0;} 68 | .ztree li span.button.center_docu{background-position: -84px -21px;} 69 | .ztree li span.button.bottom_docu{background-position: -84px -42px;} 70 | .ztree li span.button.noline_docu{ background:none;} 71 | 72 | .ztree li span.button.ico_open{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle} 73 | .ztree li span.button.ico_close{margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle} 74 | .ztree li span.button.ico_docu{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle} 75 | .ztree li span.button.edit {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle} 76 | .ztree li span.button.edit:hover { 77 | background-position: -168px -21px; 78 | } 79 | .ztree li span.button.remove {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle} 80 | .ztree li span.button.remove:hover { 81 | background-position: -168px -42px; 82 | } 83 | .ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle} 84 | .ztree li span.button.add:hover { 85 | background-position: -168px 0; 86 | } 87 | .ztree li span.button.ico_loading{margin-right:2px; vertical-align:top; *vertical-align:middle} 88 | 89 | ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} 90 | 91 | span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; 92 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 93 | background-position:-168px -84px; background-image:url("../img/v-tree.png"); } 94 | 95 | ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} 96 | .ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} 97 | -------------------------------------------------------------------------------- /dist/static/img/line_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/dist/static/img/line_conn.png -------------------------------------------------------------------------------- /dist/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/dist/static/img/loading.gif -------------------------------------------------------------------------------- /dist/static/img/v-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/dist/static/img/v-tree.png -------------------------------------------------------------------------------- /dist/static/js/app.d60003d8116965c3ccb0.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{"5R+a":function(e,n){},NHnr:function(e,n,c){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var t=c("7+uW"),r={render:function(){var e=this.$createElement,n=this._self._c||e;return n("div",{attrs:{id:"app"}},[n("router-view")],1)},staticRenderFns:[]};var i=c("VU/8")({name:"App"},r,!1,function(e){c("Ndzi")},null,null).exports,o=c("/ocq"),a=c("mvHQ"),l=c.n(a),d=c("pFYg"),s=c.n(d),h={name:"treeCore",props:{tree:{type:Object,required:!0},allOpen:{type:Boolean,default:null,required:!1},nodeTrigger:{type:Boolean,default:!1,required:!1},checkBox:{type:Boolean,default:!1,required:!1},checkBoxType:{type:Boolean,default:!0,required:!1},beforeClick:{type:Function,default:null},last:{type:Boolean,default:null,required:!1},first:{type:Boolean,default:!0,required:!1},currentArray:{type:Array,required:!0},index:{type:Number,required:!0},rootData:{type:Array,required:!0},parentTree:{type:Object,required:!1},checkBoxCallInit:{type:Function},checkBoxCall:{type:Function},clickNode:{type:Function},asyncCall:{type:Function},hiddenLine:{type:Boolean,default:!1,required:!1},async:{type:Boolean,default:!1,required:!1}},data:function(){return{line:"",currentTree:this.tree,asyncLoading:!1}},methods:{coreInit:function(){var e=this;if(this.line=this.hiddenLine?"":this.currentArray.length-1===this.index?"":"line",this.tree.parentTree&&this.tree.checked){var n=[];n.push(this.tree);!function c(t){t.checked||(t.checked=e.tree.checked,n.push(t)),t.parentTree?c(t.parentTree):e.checkBoxCallInit(n)}(this.currentTree)}},checkedBoxV:function(){this.tree.checked=!0,this.$emit("checkedBoxV")},pNode:function(e){return e.open},vShow:function(e){this.async&&!e.open&&0===e.children.length&&(this.asyncCall.call(this,e,this.asyncBack),this.asyncLoading=!0),e.open=!e.open},asyncBack:function(e){(void 0===e||s()(e))&&this.addNode(e),this.asyncLoading=!1},selectNode:function(){if(this.beforeClick.call(this,this.tree)){var e=null;!function n(c){c.forEach(function(c){c.active&&(e=c),c.active=!1,c.children&&n(c.children)})}(this.rootData),this.tree.active=!0,this.nodeTrigger&&(this.tree.open=!this.tree.open),this.clickNode.call(this,this.tree,e)}},addNode:function(e){var n=this;try{e.forEach(function(e){n.tree.children.push({id:e.id?e.id:null,name:e.name,open:!!e.open&&e.open,checked:!!e.checked&&e.checked,checkBox:!!e.checkBox&&e.checkBox,nodeTrigger:e.nodeTrigger?e.nodeTrigger:n.nodeTrigger,checkBoxType:n.checkBoxType,last:!1,first:!1,active:!1,async:n.async,hiddenLine:n.hiddenLine,parentTree:n.tree,children:[]})})}catch(e){console.error("The asynchronous callback parameter must be an array,异步回调参数必须是数组")}},selectCheckBox:function(e){var n=this;e.checked=!e.checked;var c=[];if(c.push(e),this.checkBoxType){!function n(t){t.forEach(function(t){c.push(t),t.checked=e.checked,t.children&&n(t.children)})}(e.children);this.parentTree&&function t(r){if(r.children.length>1){var i=[];if(r.children.forEach(function(e,c){c!==n.index&&i.push(e)}),i&&r.checked&&function(e){for(var n=0;n0}},vTreeFirstSpan:function(){return function(){return this.hiddenLine?this.tree.open?"noline_open treenode_switch":"noline_close treenode_switch":this.currentArray.length-1===this.index?this.tree.open?"bottom_open":"bottom_close":this.tree.open?"roots_open":"roots_close"}},classes:function(){return function(){return this.hiddenLine?"noline_docu":this.first?"roots_docu":this.currentArray.length-1===this.index?"bottom_docu":"center_docu"}},iconCss:function(){return function(){return this.tree.children.length>0?this.tree.open?"ico_open":"ico_close":"ico_docu"}},load:function(){return function(){return this.asyncLoading?"background:url(../../static/img/loading.gif) 0 0 no-repeat":""}},aClass:function(){return function(){return this.tree.active?"curSelectedNode":""}}},watch:{tree:{handler:function(e,n){n.checked&&(this.tree.checked=n.checked)},deep:!0}}},u={render:function(){var e=this,n=e.$createElement,c=e._self._c||n;return c("li",[e.vif()?c("span",{staticClass:"button switch",class:e.vTreeFirstSpan(),attrs:{title:""},on:{click:function(n){e.vShow(e.tree)}}}):c("span",{staticClass:"button switch ",class:e.classes(),attrs:{title:""}}),e._v(" "),e.checkBox?c("span",{staticClass:"button chk",class:e.tree.checked?"checkbox_true_full":"checkbox_false_full",on:{click:function(n){e.selectCheckBox(e.tree)}}}):e._e(),e._v(" "),c("a",{class:e.aClass(),attrs:{target:"_blank",title:e.tree.name},on:{click:e.selectNode}},[c("span",{staticClass:"button",class:e.iconCss(),style:e.load(),attrs:{title:e.tree.name}}),e._v(" "),c("span",{staticClass:"node_name"},[e._v(e._s(e.tree.name))])]),e._v(" "),c("ul",{class:e.line},e._l(e.tree.children,function(n,t){return c("treeCore",{directives:[{name:"show",rawName:"v-show",value:e.tree.open,expression:"tree.open"}],key:t,attrs:{checkBoxType:e.checkBoxType,allOpen:n.allOpen,first:!1,checkBox:e.checkBox,nodeTrigger:e.nodeTrigger,index:t,tree:n,currentArray:e.tree.children,parentTree:n.parentTree,rootData:e.rootData,clickNode:e.clickNode,beforeClick:e.beforeClick,checkBoxCallInit:e.checkBoxCallInit,checkBoxCall:e.checkBoxCall,last:e.tree.children.length-1===t,hiddenLine:n.hiddenLine,async:e.async,asyncCall:e.asyncCall},on:{addNode:e.addNode,checkedBoxV:e.checkedBoxV}})}))])},staticRenderFns:[]};var p={components:{vTree:c("VU/8")(h,u,!1,function(e){c("iQDY")},"data-v-5694ded0",null).exports},name:"tree",props:{treeNode:{type:Array,default:function(){return[]},required:!0},allOpen:{type:Boolean,default:null,required:!1},nodeTrigger:{type:Boolean,default:!1,required:!1},checkBox:{type:Boolean,default:!1,required:!1},checkBoxType:{type:Boolean,default:!0,required:!1},beforeClick:{type:Function,default:null},clickNode:{type:Function},addNode:{type:Function},asyncCall:{type:Function},hiddenLine:{type:Boolean,default:!1,required:!1},async:{type:Boolean,default:!1,required:!1}},data:function(){return{treeData:[],line:"",first:!0,allOpens:this.allOpen,checkedBoxCallArr:[]}},methods:{init:function(){var e=this,n=JSON.parse(l()(this.treeNode));!function n(c,t){for(var r=0;r0&&n(i.children,i)}}(n,null),this.treeData=n,this.line="line",this.first&&this.$emit("call",this.treeData)},changeOpenStatus:function(){var e=this;!function n(c){c.forEach(function(c){c.open=e.allOpen,c.children&&n(c.children)})}(this.treeData)},checkBoxCallInit:function(e){var n=this;e.forEach(function(e){n.checkedBoxCallArr.push(e)})},checkBoxCall:function(e,n){var c=this;n?e.forEach(function(e){c.checkedBoxCallArr.push(e)}):e.forEach(function(e){if(0!==c.checkBoxCall.length){var n=(e.id?e.id:null)+e.index+e.name;c.checkedBoxCallArr.forEach(function(e,t){(e.id?e.id:null)+e.index+e.name===n&&c.checkedBoxCallArr.splice(t,1)})}}),this.$emit("checkBoxCall",this.checkedBoxCallArr)}},created:function(){this.init()},update:function(){},mounted:function(){this.$emit("checkBoxCall",this.checkedBoxCallArr)},watch:{allOpen:function(){this.changeOpenStatus()}}},k={render:function(){var e=this,n=e.$createElement,c=e._self._c||n;return c("div",[c("ul",{staticClass:"ztree"},e._l(e.treeData,function(n,t){return c("vTree",{key:t,attrs:{checkBoxType:e.checkBoxType,allOpen:e.allOpen,beforeClick:e.beforeClick,checkBox:e.checkBox,nodeTrigger:e.nodeTrigger,index:t,tree:n,first:0===t,last:e.treeData.length-1===t,addNode:e.addNode,currentArray:e.treeData,parentTree:n.parentTree,rootData:e.treeData,checkBoxCallInit:e.checkBoxCallInit,checkBoxCall:e.checkBoxCall,clickNode:e.clickNode,hiddenLine:e.hiddenLine,async:e.async,asyncCall:e.asyncCall}})}))])},staticRenderFns:[]};var f={components:{Tree:c("VU/8")(p,k,!1,function(e){c("NPKr")},"data-v-c1c489e0",null).exports},data:function(){return{treeNode:[],allOpen:null,allClose:null,nodeTrigger:!1,checkBox:!0,clickFirstNode:!1,checkFirstCheckBox:!1,checkBoxType:!0,tree:[],trees:[],firstIsOpen:!1,hiddenLine:!1,async:!0}},methods:{isOpen:function(){return null==this.allOpen?"system default 系统默认":this.allOpen?"open all":"close all"},checkBoxCall:function(e){console.log("checkBox",e)},asyncCheckBoxCall:function(e){console.log("asyncCheckBox",e)},beforeClick:function(e){return console.log("beforeClick",e),!this.clickFirstNode||"1"!==e.id},beforeCheckBox:function(e){return console.log("checkFirstCheckBox",e),!this.checkFirstCheckBox||"1"!==e.id},checkBoxHandle:function(e){console.log("value",e)},openFirst:function(){this.trees[0].open=!this.trees[0].open,this.firstIsOpen=this.trees[0].open},call:function(e){this.trees=e},callAsync:function(e){},clickNode:function(e,n){console.log(e,n)},asyncCall:function(e,n){setTimeout(function(){var e=""+(new Date).getTime(),c=[{id:e,name:"children node"+e.substr(e.length-4,e.length)}];n(c)},800)}},mounted:function(){},computed:{shuoming:function(){return function(){return'\n\n \n this.treeNode = [\n {\n id: "1",\n name: "父节点22 - 折叠",\n // open: true,\n children: [\n {\n id: "1-1", name: "叶子节点221",\n children: [\n {\n id: "1-1-1-1", name: "叶子节点221111",\n children: [\n {\n id: "2-1--1", name: "叶子节点2321111",\n children: [\n {\n id: "2-1---1", name: "叶子节点231111",\n children: [\n {checked: true, id: "2-1---1", name: "叶子节点23111"}]\n }]\n }]\n },\n {id: "1-2-2", name: "叶子节点2222"},\n {id: "1-3-3", name: "叶子节点2233"},\n {id: "1-4-4", name: "叶子节点2244", checked: true,}\n ]\n },\n {id: "1-2", name: "叶子节点222"},\n {id: "1-3", name: "叶子节点223"},\n {id: "1-4", name: "叶子节点224"}\n ]\n }, {\n id: "2",\n name: "父节点23 - 折叠",\n children: [\n {id: "2-1", name: "叶子节点231"},\n {id: "2-2", name: "叶子节点232"},\n {id: "2-3", name: "叶子节点233"},\n {id: "2-4", name: "叶子节点234"}\n ]\n }, {\n open: true,\n id: "3",\n name: "父节点24 - 折叠",\n children: [\n {\n id: "2-1-1", name: "叶子节点232", open: true,\n children: [\n {id: "2-1-3", name: "叶子节点2313"},\n {id: "2-2-3", name: "叶子节点2323"},\n {id: "2-3-3", name: "叶子节点2333"},\n {id: "2-4-3", name: "叶子节点2343"}\n ]\n },\n ]\n },\n ]; '}}},created:function(){this.treeNode=[{id:"1",name:"父节点22 - 折叠",children:[{id:"1-1",name:"叶子节点221",children:[{id:"1-1-1-1",name:"叶子节点221111",children:[{id:"2-1--1",name:"叶子节点2321111",children:[{id:"2-1---1",name:"叶子节点231111",children:[{checked:!0,id:"2-1---1",name:"叶子节点23111"}]}]}]},{id:"1-2-2",name:"叶子节点2222"},{id:"1-3-3",name:"叶子节点2233"},{id:"1-4-4",name:"叶子节点2244",checked:!0}]},{id:"1-2",name:"叶子节点222"},{id:"1-3",name:"叶子节点223"},{id:"1-4",name:"叶子节点224"}]},{id:"2",name:"父节点23 - 折叠",children:[{id:"2-1",name:"叶子节点231"},{id:"2-2",name:"叶子节点232"},{id:"2-3",name:"叶子节点233"},{id:"2-4",name:"叶子节点234"}]},{open:!0,id:"3",name:"父节点24 - 折叠",children:[{id:"2-1-1",name:"叶子节点232",open:!0,children:[{id:"2-1-3",name:"叶子节点2313"},{id:"2-2-3",name:"叶子节点2323"},{id:"2-3-3",name:"叶子节点2333"},{id:"2-4-3",name:"叶子节点2343"}]}]}]}},y={render:function(){var e=this,n=e.$createElement,c=e._self._c||n;return c("div",{staticStyle:{height:"auto"}},[c("span",[e._v("\n z-tree demo\n ")]),e._v(" "),c("div",{staticStyle:{height:"auto"}},[c("span",[e._v("1、开启/关闭所有节点")]),e._v(" "),c("button",{on:{click:function(n){e.allOpen=!e.allOpen}}},[c("span",{style:{color:e.allOpen?"#66CD00":"red"}},[e._v("\n "+e._s(e.isOpen())+"\n ")])]),e._v(" "),c("br"),e._v(" "),c("span",[e._v("2、开启/关闭第一个节点")]),e._v(" "),c("button",{on:{click:e.openFirst}},[c("span",{style:{color:e.firstIsOpen?"#66CD00":"red"}},[e._v("\n "+e._s(e.firstIsOpen?"Already opened":"Already close")+"\n ")]),e._v("\n The first node\n ")]),e._v(" "),c("br"),e._v(" "),c("span",[e._v("3、禁止/允许选择第一个节点")]),e._v(" "),c("button",{on:{click:function(n){e.clickFirstNode=!e.clickFirstNode}}},[c("span",{style:{color:e.clickFirstNode?"red":"#66CD00"}},[e._v("\n "+e._s(e.clickFirstNode?"Banned":"allow")+"\n ")]),e._v("\n Select the first node("+e._s(e.clickFirstNode)+")\n ")]),e._v(" "),c("br"),e._v(" "),c("span",[e._v("3、已开启/已关闭点击节点打开/关闭事件")]),e._v(" "),c("button",{on:{click:function(n){e.nodeTrigger=!e.nodeTrigger}}},[c("span",{style:{color:e.nodeTrigger?"#66CD00":"red"}},[e._v("\n "+e._s(e.nodeTrigger?"Already opened":"Already close")+"\n ")]),e._v("\n Subnode Open Event\n ")]),e._v(" "),c("br"),e._v(" "),c("button",{on:{click:function(n){e.checkBox=!e.checkBox}}},[c("span",{style:{color:e.checkBox?"#66CD00":"red"}},[e._v("\n "+e._s(e.checkBox?"Already opened":"Already close")+"\n ")]),e._v("\n checkbox\n ")]),e._v(" "),c("br"),e._v(" "),c("button",{on:{click:function(n){e.checkBoxType=!e.checkBoxType}}},[c("span",{style:{color:e.checkBoxType?"#66CD00":"red"}},[e._v("\n "+e._s(e.checkBoxType?"Already opened":"Already close")+"\n ")]),e._v("\n Check box cascade selection 复选框级联选中\n ")]),e._v(" "),c("br")]),e._v(" "),c("div",{staticClass:"main"},[c("ul",[c("li",[c("span",[e._v("One time loading 一次性加载")]),e._v(" "),c("Tree",{attrs:{treeNode:e.treeNode,allOpen:e.allOpen,nodeTrigger:e.nodeTrigger,checkBox:e.checkBox,beforeClick:e.beforeClick,checkBoxType:e.checkBoxType,clickNode:e.clickNode,hiddenLine:e.hiddenLine},on:{checkBoxCall:e.checkBoxCall,call:e.call}})],1),e._v(" "),c("li",[c("span",[e._v("async loading 异步加载")]),e._v(" "),c("Tree",{attrs:{treeNode:e.treeNode,nodeTrigger:e.nodeTrigger,checkBox:e.checkBox,beforeClick:e.beforeClick,checkBoxType:e.checkBoxType,clickNode:e.clickNode,hiddenLine:e.hiddenLine,async:e.async,asyncCall:e.asyncCall},on:{checkBoxCall:e.asyncCheckBoxCall,call:e.callAsync}})],1),e._v(" "),c("li",{staticStyle:{width:"40%"}},[c("div",{staticStyle:{border:"1px solid red"}},[c("pre",[e._v(" "+e._s(e.shuoming())+"\n ")])])])])])])},staticRenderFns:[]};var x=c("VU/8")(f,y,!1,function(e){c("5R+a")},"data-v-8e136f26",null).exports;t.a.use(o.a);var B=new o.a({routes:[{path:"/",name:"vTree",component:x}]});t.a.config.productionTip=!1,new t.a({el:"#app",router:B,components:{App:i},template:""})},NPKr:function(e,n){},Ndzi:function(e,n){},iQDY:function(e,n){}},["NHnr"]); 2 | //# sourceMappingURL=app.d60003d8116965c3ccb0.js.map -------------------------------------------------------------------------------- /dist/static/js/manifest.3ad1d5771e9b13dbdad2.js: -------------------------------------------------------------------------------- 1 | !function(r){var n=window.webpackJsonp;window.webpackJsonp=function(e,u,c){for(var f,i,p,a=0,l=[];a 2 | 3 | 4 | 5 | 6 | v-tree 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "v-tree", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "zxm <154040976@qq.com>", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "unit": "jest --config test/unit/jest.conf.js --coverage", 11 | "e2e": "node test/e2e/runner.js", 12 | "test": "npm run unit && npm run e2e", 13 | "build": "node build/build.js" 14 | }, 15 | "dependencies": { 16 | "vue": "^2.5.2", 17 | "vue-router": "^3.0.1" 18 | }, 19 | "devDependencies": { 20 | "autoprefixer": "^7.1.2", 21 | "babel-core": "^6.22.1", 22 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 23 | "babel-jest": "^21.0.2", 24 | "babel-loader": "^7.1.1", 25 | "babel-plugin-dynamic-import-node": "^1.2.0", 26 | "babel-plugin-syntax-jsx": "^6.18.0", 27 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", 28 | "babel-plugin-transform-runtime": "^6.22.0", 29 | "babel-plugin-transform-vue-jsx": "^3.5.0", 30 | "babel-preset-env": "^1.3.2", 31 | "babel-preset-stage-2": "^6.22.0", 32 | "babel-register": "^6.22.0", 33 | "chalk": "^2.0.1", 34 | "chromedriver": "^2.27.2", 35 | "copy-webpack-plugin": "^4.0.1", 36 | "cross-spawn": "^5.0.1", 37 | "css-loader": "^0.28.0", 38 | "extract-text-webpack-plugin": "^3.0.0", 39 | "file-loader": "^1.1.4", 40 | "friendly-errors-webpack-plugin": "^1.6.1", 41 | "html-webpack-plugin": "^2.30.1", 42 | "jest": "^22.0.4", 43 | "jest-serializer-vue": "^0.3.0", 44 | "nightwatch": "^0.9.12", 45 | "node-notifier": "^5.1.2", 46 | "optimize-css-assets-webpack-plugin": "^3.2.0", 47 | "ora": "^1.2.0", 48 | "portfinder": "^1.0.13", 49 | "postcss-import": "^11.0.0", 50 | "postcss-loader": "^2.0.8", 51 | "postcss-url": "^7.2.1", 52 | "rimraf": "^2.6.0", 53 | "selenium-server": "^3.0.1", 54 | "semver": "^5.3.0", 55 | "shelljs": "^0.7.6", 56 | "uglifyjs-webpack-plugin": "^1.1.1", 57 | "url-loader": "^0.5.8", 58 | "vue-jest": "^1.0.2", 59 | "vue-loader": "^13.3.0", 60 | "vue-style-loader": "^3.0.1", 61 | "vue-template-compiler": "^2.5.2", 62 | "webpack": "^3.6.0", 63 | "webpack-bundle-analyzer": "^2.9.0", 64 | "webpack-dev-server": "^2.9.1", 65 | "webpack-merge": "^4.1.0" 66 | }, 67 | "engines": { 68 | "node": ">= 6.0.0", 69 | "npm": ">= 3.0.0" 70 | }, 71 | "browserslist": [ 72 | "> 1%", 73 | "last 2 versions", 74 | "not ie <= 8" 75 | ] 76 | } 77 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 23 | -------------------------------------------------------------------------------- /src/components/tree-core.vue: -------------------------------------------------------------------------------- 1 | 51 | 52 | 334 | 335 | 338 | -------------------------------------------------------------------------------- /src/components/tree.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 200 | 201 | 204 | -------------------------------------------------------------------------------- /src/components/vTreeDemo.vue: -------------------------------------------------------------------------------- 1 | 102 | 103 | 366 | 367 | 375 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import App from './App' 5 | import router from './router' 6 | 7 | Vue.config.productionTip = false 8 | 9 | /* eslint-disable no-new */ 10 | new Vue({ 11 | el: '#app', 12 | router, 13 | components: { App }, 14 | template: '' 15 | }) 16 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import vTree from '@/components/vTreeDemo' 4 | 5 | Vue.use(Router) 6 | 7 | export default new Router({ 8 | routes: [ 9 | { 10 | path: '/', 11 | name: 'vTree', 12 | component: vTree 13 | } 14 | ] 15 | }) 16 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/static/.gitkeep -------------------------------------------------------------------------------- /static/css/v-tree.css: -------------------------------------------------------------------------------- 1 | .ztree * { 2 | moz-user-select: -moz-none; 3 | -moz-user-select: none; 4 | -o-user-select:none; 5 | -khtml-user-select:none; 6 | -webkit-user-select:none; 7 | -ms-user-select:none; 8 | user-select:none; 9 | 10 | 11 | padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} 12 | .ztree {margin:0; padding:5px; color:#333} 13 | .ztree li{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0} 14 | .ztree li ul{ margin:0; padding:0 0 0 18px} 15 | .ztree li ul.line{ background:url(../img/line_conn.png) 0 0 repeat-y;} 16 | 17 | .ztree li a {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block} 18 | .ztree li a:hover {text-decoration:underline} 19 | .ztree li a.curSelectedNode {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;} 20 | .ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;} 21 | .ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid; 22 | opacity:0.8; filter:alpha(opacity=80)} 23 | .ztree li a.tmpTargetNode_prev {} 24 | .ztree li a.tmpTargetNode_next {} 25 | .ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; 26 | font-size:12px; border:1px #585956 solid; *border:0px} 27 | .ztree li span {line-height:21px; margin-right:2px} 28 | .ztree li span.button {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle; 29 | border:0 none; cursor: pointer;outline:none; 30 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 31 | background-image:url("../img/v-tree.png");} 32 | 33 | .ztree li span.button.chk {width:13px; height:13px; margin:0 2px; cursor: auto} 34 | .ztree li span.button.chk.checkbox_false_full {background-position: -5px -5px;} 35 | .ztree li span.button.chk.checkbox_false_full_focus {background-position: -5px -26px;} 36 | .ztree li span.button.chk.checkbox_false_part {background-position: -5px -48px;} 37 | .ztree li span.button.chk.checkbox_false_part_focus {background-position: -5px -68px;} 38 | .ztree li span.button.chk.checkbox_false_disable {background-position: -5px -89px;} 39 | .ztree li span.button.chk.checkbox_true_full {background-position: -26px -5px;} 40 | .ztree li span.button.chk.checkbox_true_full_focus {background-position: -26px -26px;} 41 | .ztree li span.button.chk.checkbox_true_part {background-position: -26px -48px;} 42 | .ztree li span.button.chk.checkbox_true_part_focus {background-position: -26px -68px;} 43 | .ztree li span.button.chk.checkbox_true_disable {background-position: -26px -89px;} 44 | .ztree li span.button.chk.radio_false_full {background-position: -47px -5px;} 45 | .ztree li span.button.chk.radio_false_full_focus {background-position: -47px -26px;} 46 | .ztree li span.button.chk.radio_false_part {background-position: -47px -47px;} 47 | .ztree li span.button.chk.radio_false_part_focus {background-position: -47px -68px;} 48 | .ztree li span.button.chk.radio_false_disable {background-position: -47px -89px;} 49 | .ztree li span.button.chk.radio_true_full {background-position: -68px -5px;} 50 | .ztree li span.button.chk.radio_true_full_focus {background-position: -68px -26px;} 51 | .ztree li span.button.chk.radio_true_part {background-position: -68px -47px;} 52 | .ztree li span.button.chk.radio_true_part_focus {background-position: -68px -68px;} 53 | .ztree li span.button.chk.radio_true_disable {background-position: -68px -89px;} 54 | 55 | .ztree li span.button.switch {width:21px; height:21px} 56 | .ztree li span.button.root_open{background-position:-105px -63px} 57 | .ztree li span.button.root_close{background-position:-126px -63px} 58 | .ztree li span.button.roots_open{background-position: -105px 0;} 59 | .ztree li span.button.roots_close{background-position: -126px 0;} 60 | .ztree li span.button.center_open{background-position: -105px -21px;} 61 | .ztree li span.button.center_close{background-position: -126px -21px;} 62 | .ztree li span.button.bottom_open{background-position: -105px -42px;} 63 | .ztree li span.button.bottom_close{background-position: -126px -42px;} 64 | .ztree li span.button.noline_open{background-position: -105px -84px;} 65 | .ztree li span.button.noline_close{background-position: -126px -84px;} 66 | .ztree li span.button.root_docu{ background:none;} 67 | .ztree li span.button.roots_docu{background-position: -84px 0;} 68 | .ztree li span.button.center_docu{background-position: -84px -21px;} 69 | .ztree li span.button.bottom_docu{background-position: -84px -42px;} 70 | .ztree li span.button.noline_docu{ background:none;} 71 | 72 | .ztree li span.button.ico_open{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle} 73 | .ztree li span.button.ico_close{margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle} 74 | .ztree li span.button.ico_docu{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle} 75 | .ztree li span.button.edit {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle} 76 | .ztree li span.button.edit:hover { 77 | background-position: -168px -21px; 78 | } 79 | .ztree li span.button.remove {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle} 80 | .ztree li span.button.remove:hover { 81 | background-position: -168px -42px; 82 | } 83 | .ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle} 84 | .ztree li span.button.add:hover { 85 | background-position: -168px 0; 86 | } 87 | .ztree li span.button.ico_loading{margin-right:2px; vertical-align:top; *vertical-align:middle} 88 | 89 | ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} 90 | 91 | span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; 92 | background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; 93 | background-position:-168px -84px; background-image:url("../img/v-tree.png"); } 94 | 95 | ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} 96 | .ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} 97 | -------------------------------------------------------------------------------- /static/img/line_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/static/img/line_conn.png -------------------------------------------------------------------------------- /static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/static/img/loading.gif -------------------------------------------------------------------------------- /static/img/v-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lenosp/v-tree/4a85f22088afc7f08a376449a78aeecb7b579cf0/static/img/v-tree.png -------------------------------------------------------------------------------- /test/e2e/custom-assertions/elementCount.js: -------------------------------------------------------------------------------- 1 | // A custom Nightwatch assertion. 2 | // The assertion name is the filename. 3 | // Example usage: 4 | // 5 | // browser.assert.elementCount(selector, count) 6 | // 7 | // For more information on custom assertions see: 8 | // http://nightwatchjs.org/guide#writing-custom-assertions 9 | 10 | exports.assertion = function (selector, count) { 11 | this.message = 'Testing if element <' + selector + '> has count: ' + count 12 | this.expected = count 13 | this.pass = function (val) { 14 | return val === this.expected 15 | } 16 | this.value = function (res) { 17 | return res.value 18 | } 19 | this.command = function (cb) { 20 | var self = this 21 | return this.api.execute(function (selector) { 22 | return document.querySelectorAll(selector).length 23 | }, [selector], function (res) { 24 | cb.call(self, res) 25 | }) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/e2e/nightwatch.conf.js: -------------------------------------------------------------------------------- 1 | require('babel-register') 2 | var config = require('../../config') 3 | 4 | // http://nightwatchjs.org/gettingstarted#settings-file 5 | module.exports = { 6 | src_folders: ['test/e2e/specs'], 7 | output_folder: 'test/e2e/reports', 8 | custom_assertions_path: ['test/e2e/custom-assertions'], 9 | 10 | selenium: { 11 | start_process: true, 12 | server_path: require('selenium-server').path, 13 | host: '127.0.0.1', 14 | port: 4444, 15 | cli_args: { 16 | 'webdriver.chrome.driver': require('chromedriver').path 17 | } 18 | }, 19 | 20 | test_settings: { 21 | default: { 22 | selenium_port: 4444, 23 | selenium_host: 'localhost', 24 | silent: true, 25 | globals: { 26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port) 27 | } 28 | }, 29 | 30 | chrome: { 31 | desiredCapabilities: { 32 | browserName: 'chrome', 33 | javascriptEnabled: true, 34 | acceptSslCerts: true 35 | } 36 | }, 37 | 38 | firefox: { 39 | desiredCapabilities: { 40 | browserName: 'firefox', 41 | javascriptEnabled: true, 42 | acceptSslCerts: true 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /test/e2e/runner.js: -------------------------------------------------------------------------------- 1 | // 1. start the dev server using production config 2 | process.env.NODE_ENV = 'testing' 3 | 4 | const webpack = require('webpack') 5 | const DevServer = require('webpack-dev-server') 6 | 7 | const webpackConfig = require('../../build/webpack.prod.conf') 8 | const devConfigPromise = require('../../build/webpack.dev.conf') 9 | 10 | let server 11 | 12 | devConfigPromise.then(devConfig => { 13 | const devServerOptions = devConfig.devServer 14 | const compiler = webpack(webpackConfig) 15 | server = new DevServer(compiler, devServerOptions) 16 | const port = devServerOptions.port 17 | const host = devServerOptions.host 18 | return server.listen(port, host) 19 | }) 20 | .then(() => { 21 | // 2. run the nightwatch test suite against it 22 | // to run in additional browsers: 23 | // 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings" 24 | // 2. add it to the --env flag below 25 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` 26 | // For more information on Nightwatch's config file, see 27 | // http://nightwatchjs.org/guide#settings-file 28 | let opts = process.argv.slice(2) 29 | if (opts.indexOf('--config') === -1) { 30 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) 31 | } 32 | if (opts.indexOf('--env') === -1) { 33 | opts = opts.concat(['--env', 'chrome']) 34 | } 35 | 36 | const spawn = require('cross-spawn') 37 | const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) 38 | 39 | runner.on('exit', function (code) { 40 | server.close() 41 | process.exit(code) 42 | }) 43 | 44 | runner.on('error', function (err) { 45 | server.close() 46 | throw err 47 | }) 48 | }) 49 | -------------------------------------------------------------------------------- /test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | // automatically uses dev Server port from /config.index.js 7 | // default: http://localhost:8080 8 | // see nightwatch.conf.js 9 | const devServer = browser.globals.devServerURL 10 | 11 | browser 12 | .url(devServer) 13 | .waitForElementVisible('#app', 5000) 14 | .assert.elementPresent('.hello') 15 | .assert.containsText('h1', 'Welcome to Your Vue.js App') 16 | .assert.elementCount('img', 1) 17 | .end() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "jest": true 4 | }, 5 | "globals": { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/unit/jest.conf.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | module.exports = { 4 | rootDir: path.resolve(__dirname, '../../'), 5 | moduleFileExtensions: [ 6 | 'js', 7 | 'json', 8 | 'vue' 9 | ], 10 | moduleNameMapper: { 11 | '^@/(.*)$': '/src/$1' 12 | }, 13 | transform: { 14 | '^.+\\.js$': '/node_modules/babel-jest', 15 | '.*\\.(vue)$': '/node_modules/vue-jest' 16 | }, 17 | testPathIgnorePatterns: [ 18 | '/test/e2e' 19 | ], 20 | snapshotSerializers: ['/node_modules/jest-serializer-vue'], 21 | setupFiles: ['/test/unit/setup'], 22 | mapCoverage: true, 23 | coverageDirectory: '/test/unit/coverage', 24 | collectCoverageFrom: [ 25 | 'src/**/*.{js,vue}', 26 | '!src/main.js', 27 | '!src/router/index.js', 28 | '!**/node_modules/**' 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /test/unit/setup.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | Vue.config.productionTip = false 4 | -------------------------------------------------------------------------------- /test/unit/specs/HelloWorld.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import HelloWorld from '@/components/HelloWorld' 3 | 4 | describe('HelloWorld.vue', () => { 5 | it('should render correct contents', () => { 6 | const Constructor = Vue.extend(HelloWorld) 7 | const vm = new Constructor().$mount() 8 | expect(vm.$el.querySelector('.hello h1').textContent) 9 | .toEqual('Welcome to Your Vue.js App') 10 | }) 11 | }) 12 | --------------------------------------------------------------------------------