diff --git a/build/build.js b/build/build.js new file mode 100644 index 0000000000000000000000000000000000000000..8f2ad8ad496a6a0cfba4ea7f90a7b8a3f1f30d6c --- /dev/null +++ b/build/build.js @@ -0,0 +1,41 @@ +'use strict' +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +const ora = require('ora') +const rm = require('rimraf') +const path = require('path') +const chalk = require('chalk') +const webpack = require('webpack') +const config = require('../config') +const webpackConfig = require('./webpack.prod.conf') + +const spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, (err, stats) => { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. + chunks: false, + chunkModules: false + }) + '\n\n') + + if (stats.hasErrors()) { + console.log(chalk.red(' Build failed with errors.\n')) + process.exit(1) + } + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) + }) +}) diff --git a/build/check-versions.js b/build/check-versions.js new file mode 100644 index 0000000000000000000000000000000000000000..3ef972a08dd51db2cf6c1b5d7f145a5149463e12 --- /dev/null +++ b/build/check-versions.js @@ -0,0 +1,54 @@ +'use strict' +const chalk = require('chalk') +const semver = require('semver') +const packageConfig = require('../package.json') +const shell = require('shelljs') + +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +const versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + } +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + const warnings = [] + + for (let i = 0; i < versionRequirements.length; i++) { + const mod = versionRequirements[i] + + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + + for (let i = 0; i < warnings.length; i++) { + const warning = warnings[i] + console.log(' ' + warning) + } + + console.log() + process.exit(1) + } +} diff --git a/build/logo.png b/build/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 Binary files /dev/null and b/build/logo.png differ diff --git a/build/utils.js b/build/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..e534fb0fd6284c53c3ec997bda2822300edd08a3 --- /dev/null +++ b/build/utils.js @@ -0,0 +1,101 @@ +'use strict' +const path = require('path') +const config = require('../config') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const packageConfig = require('../package.json') + +exports.assetsPath = function (_path) { + const assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + const cssLoader = { + loader: 'css-loader', + options: { + sourceMap: options.sourceMap + } + } + + const postcssLoader = { + loader: 'postcss-loader', + options: { + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] + + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + const output = [] + const loaders = exports.cssLoaders(options) + + for (const extension in loaders) { + const loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + + return output +} + +exports.createNotifierCallback = () => { + const notifier = require('node-notifier') + + return (severity, errors) => { + if (severity !== 'error') return + + const error = errors[0] + const filename = error.file && error.file.split('!').pop() + + notifier.notify({ + title: packageConfig.name, + message: severity + ': ' + error.name, + subtitle: filename || '', + icon: path.join(__dirname, 'logo.png') + }) + } +} diff --git a/build/vue-loader.conf.js b/build/vue-loader.conf.js new file mode 100644 index 0000000000000000000000000000000000000000..33ed58bc0afcb7e28e81762dea765aca5d47b801 --- /dev/null +++ b/build/vue-loader.conf.js @@ -0,0 +1,22 @@ +'use strict' +const utils = require('./utils') +const config = require('../config') +const isProduction = process.env.NODE_ENV === 'production' +const sourceMapEnabled = isProduction + ? config.build.productionSourceMap + : config.dev.cssSourceMap + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: sourceMapEnabled, + extract: isProduction + }), + cssSourceMap: sourceMapEnabled, + cacheBusting: config.dev.cacheBusting, + transformToRequire: { + video: ['src', 'poster'], + source: 'src', + img: 'src', + image: 'xlink:href' + } +} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js new file mode 100644 index 0000000000000000000000000000000000000000..0f8a7e18d53660e1cd553a8dd512c47dbf9d8677 --- /dev/null +++ b/build/webpack.base.conf.js @@ -0,0 +1,86 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const config = require('../config') +const vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + + + +module.exports = { + context: path.resolve(__dirname, '../'), + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src'), + } + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('media/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + }, + { + test: / \.scss$ /, + loaders:['style','css','sass'] + } + ] + }, + node: { + // prevent webpack from injecting useless setImmediate polyfill because Vue + // source contains it (although only uses it if it's native). + setImmediate: false, + // prevent webpack from injecting mocks to Node native modules + // that does not make sense for the client + dgram: 'empty', + fs: 'empty', + net: 'empty', + tls: 'empty', + child_process: 'empty' + } +} diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js new file mode 100644 index 0000000000000000000000000000000000000000..070ae221f3f3fda5e43ac6ec7c53dd29574d504d --- /dev/null +++ b/build/webpack.dev.conf.js @@ -0,0 +1,95 @@ +'use strict' +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const path = require('path') +const baseWebpackConfig = require('./webpack.base.conf') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +const portfinder = require('portfinder') + +const HOST = process.env.HOST +const PORT = process.env.PORT && Number(process.env.PORT) + +const devWebpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) + }, + // cheap-module-eval-source-map is faster for development + devtool: config.dev.devtool, + + // these devServer options should be customized in /config/index.js + devServer: { + clientLogLevel: 'warning', + historyApiFallback: { + rewrites: [ + { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, + ], + }, + hot: true, + contentBase: false, // since we use CopyWebpackPlugin. + compress: true, + host: HOST || config.dev.host, + port: PORT || config.dev.port, + open: config.dev.autoOpenBrowser, + overlay: config.dev.errorOverlay + ? { warnings: false, errors: true } + : false, + publicPath: config.dev.assetsPublicPath, + proxy: config.dev.proxyTable, + quiet: true, // necessary for FriendlyErrorsPlugin + watchOptions: { + poll: config.dev.poll, + } + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': require('../config/dev.env') + }), + new webpack.HotModuleReplacementPlugin(), + new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. + new webpack.NoEmitOnErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true + }), + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.dev.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +module.exports = new Promise((resolve, reject) => { + portfinder.basePort = process.env.PORT || config.dev.port + portfinder.getPort((err, port) => { + if (err) { + reject(err) + } else { + // publish the new Port, necessary for e2e tests + process.env.PORT = port + // add port to devServer config + devWebpackConfig.devServer.port = port + + // Add FriendlyErrorsPlugin + devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ + compilationSuccessInfo: { + messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], + }, + onErrors: config.dev.notifyOnErrors + ? utils.createNotifierCallback() + : undefined + })) + + resolve(devWebpackConfig) + } + }) +}) diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js new file mode 100644 index 0000000000000000000000000000000000000000..d9f99f65a5dbd8c8e69561b73168440c461f2a1e --- /dev/null +++ b/build/webpack.prod.conf.js @@ -0,0 +1,145 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const baseWebpackConfig = require('./webpack.base.conf') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') + +const env = require('../config/prod.env') + +const webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true, + usePostCSS: true + }) + }, + devtool: config.build.productionSourceMap ? config.build.devtool : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new UglifyJsPlugin({ + uglifyOptions: { + compress: { + warnings: false + } + }, + sourceMap: config.build.productionSourceMap, + parallel: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css'), + // Setting the following option to `false` will not extract CSS from codesplit chunks. + // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. + // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, + // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 + allChunks: true, + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: config.build.productionSourceMap + ? { safe: true, map: { inline: false } } + : { safe: true } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.build.index, + template: 'index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency' + }), + // keep module.id stable when vendor modules does not change + new webpack.HashedModuleIdsPlugin(), + // enable scope hoisting + new webpack.optimize.ModuleConcatenationPlugin(), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks (module) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + minChunks: Infinity + }), + // This instance extracts shared chunks from code splitted chunks and bundles them + // in a separate chunk, similar to the vendor chunk + // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk + new webpack.optimize.CommonsChunkPlugin({ + name: 'app', + async: 'vendor-async', + children: true, + minChunks: 3 + }), + + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.build.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +if (config.build.productionGzip) { + const CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + + config.build.productionGzipExtensions.join('|') + + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.bundleAnalyzerReport) { + const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/package.json b/package.json index aa1c7deb0adb6e6aea5a1380426189ac24eee7a7..5a7f39ae75775e264fa8bf5c3f0bd14e5bef8dd4 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,10 @@ "preview": "vite preview --port 4173" }, "dependencies": { + "element-ui": "^2.15.14", "guess": "^1.0.2", - "vue": "^3.2.37" + "vue": "^3.2.37", + "vue-router": "^4.2.5" }, "devDependencies": { "@vitejs/plugin-vue": "^3.0.1", diff --git a/src/App.vue b/src/App.vue index 633a5dfe4e547c48bfa93740a290ba5ba370930a..c7582a9675c6d9816812f720a99283816253c931 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,4 +1,4 @@ - @@ -44,4 +44,45 @@ header { flex-wrap: wrap; } } + --> + + + + + + + + + + diff --git a/src/components/CSPZB.vue b/src/components/CSPZB.vue new file mode 100644 index 0000000000000000000000000000000000000000..ef6265955ca050b51aac597a909fe8cd60c9b227 --- /dev/null +++ b/src/components/CSPZB.vue @@ -0,0 +1,944 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 新建 + 修改 + 删除 + + + + + + + + {{scope.row.bzwm}} + + + + + + + + + + 数据维护 + 数据下载 + 查看明细数据 + + + + + 表信息 + + + + + + + + + + + + + 字段信息 + + 新增 + 删除 + + + + 字段{{fieldFormList.length>1?i+1:''}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、提供配置表的新建、修改功能 + 2、配置表数据项手工输入,其中: + (1)表英文名、表中文名、字段英文名、字段中文名、字段类型、长度、是否主键为必输项 + (2)表英文名、字段英文名不允许重复 + (3)字段类型为NUMBER时,精度为必填项 + (4)"是否可为空"默认为"否" + + + + + 表信息 + + + + + + + + + + + + + 字段信息 + + + 字段{{viewFormList.length>1?i+1:''}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 数据导入 + 数据下载 + + + + + + + + + + + + + + + 修改 + + + 删除 + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、提供配置表数据的新建、修改、删除功能 + 2、配置表数据可采用excel导入方式上传,且可下载 + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/FHCJGXPZB.vue b/src/components/FHCJGXPZB.vue new file mode 100644 index 0000000000000000000000000000000000000000..83e7082733afcd9a838c3eecc6f490016b073756 --- /dev/null +++ b/src/components/FHCJGXPZB.vue @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + diff --git a/src/components/JCSJSTGL.vue b/src/components/JCSJSTGL.vue new file mode 100644 index 0000000000000000000000000000000000000000..13d5210cfaf88d3f1cb285c0498356e09467d9f6 --- /dev/null +++ b/src/components/JCSJSTGL.vue @@ -0,0 +1,724 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + 新建 + + + + + + + + + + + + + 修改 + 删除 + 参数配置 + 查看明细数据 + + + + + 菜单说明: + + 1、查询条件:提供"视图英文名"、"视图英文名"、"来源表"、"创建日期等查询条件,可多选、支持模糊查询,""创建日期"范围模糊至创建月份 + 2、提供"基础数据视图配置"维护功能,可查询、创建、修改、删除视图 + 3、功能说明: + (1)[参数配置]:可为"基础数据视图"设置参数,及参数默认值 + (2)[查看明细数据]:根据"参数配置"提供视图数据 + + + + 视图信息 + + + + + + + + + + + + + + + 字段信息 + 删除 + + + + {{i+1}} + + + + + + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、提供基础数据视图的新建与修改功能 + 2、视图生成规则: + (1)视图英文名:"V_"+来源表英文名,若来源表为多个,自动使用第一个,且英文名可修改 + (2)字段信息:可批量添加视图字段,即点击"+"新增字段时,弹出来源表中英文字段列表,可多选、支持模糊查询.字段名称根据来源表字段自动回西安、并可修改 + + + + + 视图信息 + + + + + + + + + + 字段信息 + 删除 + + + + + + + + + + + + + + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、提供基础数据视图默认参数的配置功能,明细数据按照参数配置生成 + 2、提供参数配置项的新增、修改、删除功能,配置项来源于视图字段 + + + + + + + + + + + + + + + + + + 页面说明: + + 根据视图参数配置展示明细数据,若视图未配置参数,则默认为全部 + + + + + + + + + diff --git a/src/components/JHGZTJT.vue b/src/components/JHGZTJT.vue new file mode 100644 index 0000000000000000000000000000000000000000..fa6cf5b6eb7e3508ec4e639b91ad365b50dfe128 --- /dev/null +++ b/src/components/JHGZTJT.vue @@ -0,0 +1,967 @@ + + + + + + + + + 图表{{formList.length===1?"":i+1}}配置参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增统计图表 + + 删除 + 保存 + + 新增统计范围条件 + + + + + 新增图表默认配置 + 生成图表 + + + + + 生成预览报告 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 生成 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/SJBGBG.vue b/src/components/SJBGBG.vue new file mode 100644 index 0000000000000000000000000000000000000000..2eced59893f1da0af3a19efe849598b2a50de0d6 --- /dev/null +++ b/src/components/SJBGBG.vue @@ -0,0 +1,286 @@ + + + + + + + + + 生成报告 + + + + 生成报告(全量) + 生成上年报告 + 生成上月报告 + 生成近一年报告 + 删除 + + + + + + + + + {{scope.row.bgmc}} + + + + + + + + + + + + + + 下载 + + + 上传 + + + + + + + + + + diff --git a/src/components/SJBGGL.vue b/src/components/SJBGGL.vue new file mode 100644 index 0000000000000000000000000000000000000000..7bbc7645bcce4370683124192cb9b1f761ac4a87 --- /dev/null +++ b/src/components/SJBGGL.vue @@ -0,0 +1,1308 @@ + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + + + + + + + + + + + + + + + + 申请数据变更 + + + + + + + + + + + + 查询 + 下载 + 删除 + + + + + + + + + + + + + + + + + + + {{roleName==='张三'||roleName==='李四'?'':scope.row.spdbh}} + + + + + + + + + + 查看/编辑 + + + 流程图 + + + + + + + + + + + + + + + + + + + + + + + 上传附件 + + + 申请部门填写 + + + + + + + + + + + + + 删除 + + + 下载 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是(当天需要完成) + 否 + + + + + + + + 是 + 否 + + + + + + + 解决时限 + + + + + + 是 + 否 + + + + + + + 提交 + + + 暂存 + + + 撤销 + + + 下载申请单 + + + + + + + + + 审批部门: + + + + + + + 提 交 + 取 消 + + + + + + 上传附件 + + + 申请部门填写 + + + + + + + + + + {{scope.row.wjmc}} + + + + + + + + + 删除 + + + 下载 + + + + + + + 审批流程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是(当天需要完成) + 否 + + + + + + + + 是 + 否 + + + + + 是 + 否 + + + + + + + 提交 + + + 暂存 + + + 撤销 + + + 下载申请单 + + + + + + + + + + + + + diff --git a/src/components/SJBGRWBL.vue b/src/components/SJBGRWBL.vue new file mode 100644 index 0000000000000000000000000000000000000000..83e16d654d205a9470321a635538bb1e70fcb7fa --- /dev/null +++ b/src/components/SJBGRWBL.vue @@ -0,0 +1,1524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + + + + + + + + + + + + + + + + + + + {{scope.row.spdbh}} + + + + + + + + + + 任务办理 + + + 流程图 + + + + + + + + 上传附件 + + + 申请部门填写 + + + + + + + + + + {{scope.row.wjmc}} + + + + + + + + + 删除 + + + 下载 + + + + + + + 审批流程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是(当天需要完成) + 否 + + + + + + + + 是 + 否 + + + + + 是 + 否 + + + + + + 科技部门填写 + 业务归口部门填写 + 系统管理部门审批意见: + 数据质量归口管理部门审批意见: + 系统开发管理部门审批意见: + 科技部一把手审批意见:(若为重保期后台数据变更) + 系统运维管理部门审批意见: + + + + (提出分析建议:①请科技部明确涉及系统、组件和部门②开展影响性分析,提出对周边关联工作及系统数据的影响,提出解决方案和解决时限建议) + + + + + + + + + + + + + + + + + + 是 + 否 + + + + + 是 + 否 + + + + + 是 + 否 + + + + + 是 + 否 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是 + 否 + + + + + + + 是 + 否 + + + + + + 同意 + 部门内驳回 + 跨部门驳回 + + + + + + + 审批部门: + + + + + + + 确 定 + 取 消 + + + + + + + + diff --git a/src/components/SJBGTJTB.vue b/src/components/SJBGTJTB.vue new file mode 100644 index 0000000000000000000000000000000000000000..aee07da009485ee86098cdc5d0353793c006a1f9 --- /dev/null +++ b/src/components/SJBGTJTB.vue @@ -0,0 +1,940 @@ + + + + + + + + + 图表{{formList.length===1?"":i+1}}配置参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增统计图表 + + 删除 + 保存 + + 新增统计范围条件 + + + + + 新增图表默认配置 + 生成图表 + + + + + 生成预览报告 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 生成 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/SJBGTZ.vue b/src/components/SJBGTZ.vue new file mode 100644 index 0000000000000000000000000000000000000000..b14ef676c76c8ce0c5b0bd7b481000c4a752f358 --- /dev/null +++ b/src/components/SJBGTZ.vue @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + + + + + + + + + {{scope.row.spdbh}} + + + + + + + + + + + + + + + + + + diff --git a/src/components/SJZLGZK.vue b/src/components/SJZLGZK.vue new file mode 100644 index 0000000000000000000000000000000000000000..cc498e703fd95dd3c607bf51db01400d27ff65df --- /dev/null +++ b/src/components/SJZLGZK.vue @@ -0,0 +1,471 @@ + + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 考核 + 准考核 + 日常监测 + 数据探查 + + + 查询 + + + 下载 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/SJZLJCBG.vue b/src/components/SJZLJCBG.vue new file mode 100644 index 0000000000000000000000000000000000000000..ea342e5a7220d3b122d0e08a7765cab915c9a2aa --- /dev/null +++ b/src/components/SJZLJCBG.vue @@ -0,0 +1,212 @@ + + + + 检核日期 + + + + + 生成数据质量报告 + 生成上月报告 + 生成上季度报告 + 生成上年报告 + 生成近一年报告 + 删除 + + + + + + + + + + + + + + + 下载 + + + 上传 + + + + + + + + + + \ No newline at end of file diff --git a/src/components/SJZLJZTB.vue b/src/components/SJZLJZTB.vue new file mode 100644 index 0000000000000000000000000000000000000000..06368580f4e870e129955bcef4eff6fc5a39083b --- /dev/null +++ b/src/components/SJZLJZTB.vue @@ -0,0 +1,971 @@ + + + + + + + + + 图表{{formList.length===1?"":i+1}}配置参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增统计图表 + + 删除 + 保存 + + 新增统计范围条件 + + + + + 新增图表默认配置 + 生成图表 + + + + + 生成预览报告 + 生成上年报告 + 生成上月报告 + 生成近一年报告 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 生成 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/SJZLKH.vue b/src/components/SJZLKH.vue new file mode 100644 index 0000000000000000000000000000000000000000..c72dbf3b5f8608fe2e37187cb96c28f9d5190806 --- /dev/null +++ b/src/components/SJZLKH.vue @@ -0,0 +1,135 @@ + + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + diff --git a/src/components/SJZLRCJC.vue b/src/components/SJZLRCJC.vue new file mode 100644 index 0000000000000000000000000000000000000000..33e85e7f457f00ebcf4458bd2c2cd9641d5df5fb --- /dev/null +++ b/src/components/SJZLRCJC.vue @@ -0,0 +1,176 @@ + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + + + + + + + + diff --git a/src/components/SJZLTC.vue b/src/components/SJZLTC.vue new file mode 100644 index 0000000000000000000000000000000000000000..c3684cde6713803a5234267d866641f2a8cca150 --- /dev/null +++ b/src/components/SJZLTC.vue @@ -0,0 +1,123 @@ + + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + diff --git a/src/components/SJZLTJTB.vue b/src/components/SJZLTJTB.vue new file mode 100644 index 0000000000000000000000000000000000000000..96d35be347b6f38015a5fd3e6eca0d1dcf20cd2b --- /dev/null +++ b/src/components/SJZLTJTB.vue @@ -0,0 +1,1032 @@ + + + + + + + + + 图表{{formList.length===1?"":i+1}}配置参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增统计图表 + + 删除 + 保存 + + 新增统计范围条件 + + + + + 新增图表默认配置 + 生成图表 + + + + + 生成预览报告 + 生成上年报告 + 生成上月报告 + 生成近一年报告 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 生成 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/SJZLZKH.vue b/src/components/SJZLZKH.vue new file mode 100644 index 0000000000000000000000000000000000000000..33740b7d59f6d6f60eebd4d6c4a961446db52866 --- /dev/null +++ b/src/components/SJZLZKH.vue @@ -0,0 +1,131 @@ + + + + + + + + + + + + + {{treeData[0].label}} + {{currentLabel}} + + + + + + + + + + diff --git a/src/components/ZBQXPZ.vue b/src/components/ZBQXPZ.vue new file mode 100644 index 0000000000000000000000000000000000000000..d700fdab3485cb9f339a9bc476dda5414ad41f91 --- /dev/null +++ b/src/components/ZBQXPZ.vue @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + 新建 + + + + + + + + + + + + 修改 + 删除 + + + + + + + + + + + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、页面功能:创建指标权限组与指标的对应关系 + 2、数据项说明:"指标权限组名称"与"指标名称"为必填项,"指标名称"支持多选、模糊查询,至少选择一个指标 + + + + + + + + + + + + + + 提交 + 重置 + 返回 + + + 页面说明: + + 1、页面功能:创建指标权限组与指标的对应关系 + 2、数据项说明:"指标权限组名称"与"指标名称"为必填项,"指标名称"支持多选、模糊查询,至少选择一个指标 + + + + + + + + + diff --git a/src/home.vue b/src/home.vue new file mode 100644 index 0000000000000000000000000000000000000000..1c82e21c61d008a8b1710ae9c9d8b8a36ca17da0 --- /dev/null +++ b/src/home.vue @@ -0,0 +1,389 @@ + + + + + + + 数据质量规则库 + + + + 数据质量规则库 + + 对质量考核指标进行管理,知悉数据质量考核的业务规则;对数据质量检核规则和检核作业进行管理 + + + + 数据质量监控 + + + + + {{v.title}} + + {{v.words}} + + + + + 数据变更管理 + + + + 数据变更管理 + + 后台数据变更管理模块 + + + + + + + + + + + + + + + + + + + 所属部门:{{department}} + + + + + + + + diff --git a/src/main.js b/src/main.js index 90e6400b4d8ad8aba0c1caa53874eb4b81380648..e4c0c86e36263aeb1d8fbe1440f159b4cbb6d0e7 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,20 @@ import { createApp } from 'vue' import App from './App.vue' -import './assets/main.css' +// import './assets/main.css' -createApp(App).mount('#app') +import router from './router/index' +import ElementUI from 'element-ui'; +// import 'element-ui/lib/theme-chalk/index.css'; + +// Vue.use(ElementUI); + +// Vue.config.productionTip = false + +createApp(App).use(router).use(ElementUI).mount('#app') +// new Vue({ +// el: '#app', +// router, +// components: { App }, +// template: '' +// }) \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f5036b51288b20b779136ca8f1324a51a65adabf --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,18 @@ +import Vue from 'vue' +import Router from 'vue-router' + +Vue.use(Router) + +export default new Router({ + routes: [ + { + path: '/home', + name: '新一代数据管理系统', + component: ()=>import('../home.vue') + }, + { + path:'/', + redirect:'/home' + }, + ] +})