提交 5a141514 编写于 作者: X xiangxi99

Sat Oct 7 11:36:00 CST 2023 inscode

上级 7315d1d8
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
})
})
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}
'use strict'
const path = require('path')
const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const packageConfig = require('../package.json')
exports.assetsPath = function (_path) {
const assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
exports.createNotifierCallback = () => {
const notifier = require('node-notifier')
return (severity, errors) => {
if (severity !== 'error') return
const error = errors[0]
const filename = error.file && error.file.split('!').pop()
notifier.notify({
title: packageConfig.name,
message: severity + ': ' + error.name,
subtitle: filename || '',
icon: path.join(__dirname, 'logo.png')
})
}
}
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap
module.exports = {
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction
}),
cssSourceMap: sourceMapEnabled,
cacheBusting: config.dev.cacheBusting,
transformToRequire: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
}
}
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},
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'
}
}
'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)
}
})
})
'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
......@@ -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",
......
<script setup>
<!-- <script setup>
import HelloWorld from './components/HelloWorld.vue'
import TheWelcome from './components/TheWelcome.vue'
</script>
......@@ -44,4 +44,45 @@ header {
flex-wrap: wrap;
}
}
</style> -->
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: "App",
};
</script>
<style>
html,
body {
height: 100%;
overflow: auto;
margin: 0;
}
html {
overflow-y: auto;
}
#app {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
html,
body {
height: 100%;
}
/* ::-webkit-scrollbar {
width: 0 !important;
}
::-webkit-scrollbar {
width: 0 !important;
height: 0;
} */
</style>
<template>
<div>
<el-form
:model="form1"
:inline="true"
label-width="90px"
>
<el-form-item label="表英文名">
<el-select
v-model="value1"
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in options1"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="表中文名">
<el-select
v-model="value2"
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in options2"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建日期">
<el-date-picker
v-model="value3"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="字段英文名">
<el-select
v-model="value4"
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in options4"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="字段中文名">
<el-select
v-model="value5"
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in options5"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div style="text-align:right;margin-bottom:10px">
<el-button
size="mini"
type="primary"
>查询</el-button>
<el-button
size="mini"
type="primary"
@click="addTable"
>新建</el-button>
<el-button
size="mini"
type="primary"
@click="addTable"
>修改</el-button>
<el-button
size="mini"
type="primary"
>删除</el-button>
</div>
<el-table
:data="tableData1"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
type="selection"
width="40"
></el-table-column>
<el-table-column
label="序号"
prop="id"
width="50"
></el-table-column>
<el-table-column
label="表英文名"
prop="bywm"
width="120"
></el-table-column>
<el-table-column
label="表中文名"
prop="bzwm"
>
<template slot-scope="scope">
<el-button
type="text"
@click="viewConfInf(scope.row)"
>{{scope.row.bzwm}}</el-button>
</template>
</el-table-column>
<el-table-column
label="主键字段"
prop="zjzd"
width="120"
></el-table-column>
<el-table-column
label="数据来源"
prop="sjly"
width="80"
></el-table-column>
<el-table-column
label="创建日期"
prop="cjrq"
width="100"
></el-table-column>
<el-table-column
label="最近更新日期"
prop="zjgxrq"
width="100"
></el-table-column>
<el-table-column
label="操作人"
prop="czr"
width="85"
></el-table-column>
<el-table-column
label="操作"
width="230"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="viewMaintainData(scope.row)"
>数据维护</el-button>
<el-button
size="mini"
type="text"
>数据下载</el-button>
<el-button
size="mini"
type="text"
@click="viewData"
>查看明细数据</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新建/修改配置表"
:visible.sync="addDialog"
width="80%"
>
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">表信息</div>
<el-form
:model="tableForm"
:inline="true"
label-width="100px"
>
<el-form-item label="表英文名">
<el-input
v-model="tableForm.bywm"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="表中文名">
<el-input
v-model="tableForm.bzwm"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="数据来源">
<el-input
v-model="tableForm.sjly"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:5px">
<div style="font-size:16px;color:black;font-weight:bold">字段信息</div>
<div>
<el-button
type="text"
@click="addField"
>新增</el-button>
<el-button type="text">删除</el-button>
</div>
</div>
<div
v-for="(v,i) in fieldFormList"
:key="i"
>
<span style="margin-bottom:5px;font-weight:bold">字段{{fieldFormList.length>1?i+1:''}}</span>
<el-form
:model="v.fieldForm"
:inline="true"
label-width="100px"
>
<el-form-item
label="字段英文名"
:required="true"
>
<el-input
v-model="v.fieldForm.zdywm"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item
label="字段中文名"
:required="true"
>
<el-input
v-model="v.fieldForm.zdzwm"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item
label="是否主键"
:required="true"
>
<el-select
v-model="v.fieldForm.sfzj"
placeholder="请选择"
>
<el-option
v-for="item in v.fieldForm.options1"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否可为空">
<el-select
v-model="v.fieldForm.sfkwk"
placeholder="请选择"
>
<el-option
v-for="item in v.fieldForm.options2"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="字段类型"
:required="true"
>
<el-select
v-model="v.fieldForm.zdlx"
placeholder="请选择"
>
<el-option
v-for="item in v.fieldForm.options3"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="长度"
:required="true"
>
<el-input
v-model="v.fieldForm.cd"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="精度">
<el-input
v-model="v.fieldForm.jd"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
</div>
<div style="text-align:right">
<el-button type="text">提交</el-button>
<el-button type="text">重置</el-button>
<el-button type="text">返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、提供配置表的新建、修改功能</div>
<div>2、配置表数据项手工输入,其中:</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(1)表英文名、表中文名、字段英文名、字段中文名、字段类型、长度、是否主键为必输项</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(2)表英文名、字段英文名不允许重复</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(3)字段类型为NUMBER时,精度为必填项</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(4)"是否可为空"默认为"否"</div>
</div>
</div>
</el-dialog>
<el-dialog
title="配置表信息查看"
:visible.sync="confInfDialog"
width="80%"
>
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">表信息</div>
<el-form
:model="viewForm"
:inline="true"
label-width="100px"
>
<el-form-item label="表英文名">
<el-input v-model="viewForm.bywm"></el-input>
</el-form-item>
<el-form-item label="表中文名">
<el-input v-model="viewForm.bzwm"></el-input>
</el-form-item>
<el-form-item label="数据来源">
<el-input v-model="viewForm.sjly"></el-input>
</el-form-item>
</el-form>
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:5px">
<div style="font-size:16px;color:black;font-weight:bold;line-height:40px">字段信息</div>
</div>
<div
v-for="(v,i) in viewFormList"
:key="i"
>
<span style="margin-bottom:5px;font-weight:bold">字段{{viewFormList.length>1?i+1:''}}</span>
<el-form
:model="v.fieldForm"
:inline="true"
label-width="100px"
>
<el-form-item
label="字段英文名"
:required="true"
>
<el-input v-model="v.fieldForm.zdywm"></el-input>
</el-form-item>
<el-form-item
label="字段中文名"
:required="true"
>
<el-input v-model="v.fieldForm.zdzwm"></el-input>
</el-form-item>
<el-form-item
label="是否主键"
:required="true"
>
<el-input v-model="v.fieldForm.sfzj">
</el-input>
</el-form-item>
<el-form-item label="是否可为空">
<el-input v-model="v.fieldForm.sfkwk">
</el-input>
</el-form-item>
<el-form-item
label="字段类型"
:required="true"
>
<el-input v-model="v.fieldForm.zdlx">
</el-input>
</el-form-item>
<el-form-item
label="长度"
:required="true"
>
<el-input v-model="v.fieldForm.cd"></el-input>
</el-form-item>
<el-form-item label="精度">
<el-input v-model="v.fieldForm.jd"></el-input>
</el-form-item>
</el-form>
</div>
</el-dialog>
<el-dialog
title="数据维护"
:visible.sync="sjwhDialog"
width="80%"
>
<div style="text-align:right;margin-bottom:10px">
<el-button
type="primary"
size="mini"
>数据导入</el-button>
<el-button
type="primary"
size="mini"
>数据下载</el-button>
</div>
<el-table
:data="maintainData"
@selection-change="handleSelectChange"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
type="selection"
width="40"
></el-table-column>
<el-table-column
prop="id"
label="序号"
width="50"
></el-table-column>
<el-table-column
prop="hydldm"
label="行业大类代码"
></el-table-column>
<el-table-column
prop="hydl"
label="行业大类"
></el-table-column>
<el-table-column
prop="zbmc"
label="指标名称"
></el-table-column>
<el-table-column
prop="dx"
label="大型"
></el-table-column>
<el-table-column
prop="zx"
label="中型"
></el-table-column>
<el-table-column
prop="xx"
label="小型"
></el-table-column>
<el-table-column
prop="wx"
label="微型"
></el-table-column>
<el-table-column label="操作">
<template>
<el-button
size="mini"
type="text"
>
修改
</el-button>
<el-button
size="mini"
type="text"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align:right;margin:10px 0">
<el-button
type="primary"
size="mini"
>提交</el-button>
<el-button
type="primary"
size="mini"
>重置</el-button>
<el-button
type="primary"
size="mini"
>返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、提供配置表数据的新建、修改、删除功能</div>
<div>2、配置表数据可采用excel导入方式上传,且可下载</div>
</div>
</div>
</el-dialog>
<el-dialog
title="明细数据查看"
:visible.sync="mxsjDialog"
width="80%"
>
<el-table
:data="maintainData"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="id"
label="序号"
width="50"
></el-table-column>
<el-table-column
prop="hydldm"
label="行业大类代码"
></el-table-column>
<el-table-column
prop="hydl"
label="行业大类"
></el-table-column>
<el-table-column
prop="zbmc"
label="指标名称"
></el-table-column>
<el-table-column
prop="dx"
label="大型"
></el-table-column>
<el-table-column
prop="zx"
label="中型"
></el-table-column>
<el-table-column
prop="xx"
label="小型"
></el-table-column>
<el-table-column
prop="wx"
label="微型"
></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
export default {
name: "CSPZB",
data() {
return {
form1: {},
options1: [
{
value: "选项1",
label: "SECUTITY_CUST_TAB",
},
{
value: "选项2",
label: "EAST_CPBH",
},
{
value: "选项3",
label: "CURRENCY_CODE",
},
{
value: "选项4",
label: "PDM_QYHXBZ_CONFIGURE",
},
],
value1: "",
options2: [
{
value: "选项1",
label: "特殊客户表",
},
{
value: "选项2",
label: "EAST业务种类与产品映射表",
},
{
value: "选项3",
label: "币种标准化映射表",
},
{
value: "选项4",
label: "企业规模划型标准配置表",
},
],
value2: "",
value3: "",
options4: [
{
value: "选项1",
label: "id",
},
{
value: "选项2",
label: "name",
},
{
value: "选项3",
label: "date",
},
{
value: "选项4",
label: "code",
},
],
value4: "",
options5: [
{
value: "选项1",
label: "序号",
},
{
value: "选项2",
label: "名称",
},
{
value: "选项3",
label: "日期",
},
{
value: "选项4",
label: "代码",
},
],
value5: "",
tableData1: [
{
id: 1,
bywm: "SECUTITY_CUST_TAB",
bzwm: "特殊客户表",
zjzd: "CRM_CUST_ID",
sjly: "客户提供",
cjrq: "2022/6/26",
zjgxrq: "2023/5/15",
czr: "李一",
},
{
id: 2,
bywm: "EAST_CPBH",
bzwm: "EAST业务种类与产品映射表",
zjzd: "CPBH",
sjly: "客户提供",
cjrq: "2022/6/26",
zjgxrq: "2023/5/15",
czr: "李一",
},
{
id: 3,
bywm: "CURRENCY_CODE",
bzwm: "币种标准化映射表",
zjzd: "CUR_LET_CODE",
sjly: "新核心标准",
cjrq: "2022/6/26",
zjgxrq: "2023/5/15",
czr: "李一",
},
{
id: 4,
bywm: "PDM_QYHXBZ_CONFIGURE",
bzwm: "企业规模划型标准配置表",
zjzd: "INDUSTRY_RN",
sjly: "客户提供",
cjrq: "2022/6/26",
zjgxrq: "2023/5/15",
czr: "李一",
},
],
multipleSelection1: [],
addDialog: false,
tableForm: {
bywm: "",
bzwm: "",
sjly: "",
},
fieldFormList: [
{
fieldForm: {
zdywm: "",
zdzwm: "",
sfzj: "",
options1: [
{
label: "",
value: "0",
},
{
label: "",
value: "1",
},
],
sfkwk: "1",
options2: [
{
label: "",
value: "0",
},
{
label: "",
value: "1",
},
],
zdlx: "",
options3: [
{
label: "CHAR",
value: "0",
},
{
label: "VARCHAR",
value: "1",
},
{
label: "NUMBER",
value: "2",
},
],
cd: "",
jd: "",
},
},
],
tips: "",
confInfDialog: false,
viewForm: {
bywm: "PDM_QYHXBZ_CONFIGURE",
bzwm: "企业规模划型标准配置表",
sjly: "客户提供",
},
viewFormList: [
{
fieldForm: {
zdywm: "INDUSTRY_RN",
zdzwm: "各行业划型标准序号",
sfzj: "",
sfkwk: "",
zdlx: "VARCHAR2",
cd: "50",
jd: "",
},
},
{
fieldForm: {
zdywm: "INDUSTRY_TYPE_CODES",
zdzwm: "行业大类代码",
sfzj: "",
sfkwk: "",
zdlx: "VARCHAR2",
cd: "50",
jd: "",
},
},
{
fieldForm: {
zdywm: "INDUSTRY_TYPES",
zdzwm: "行业大类",
sfzj: "",
sfkwk: "",
zdlx: "VARCHAR2",
cd: "100",
jd: "",
},
},
],
sjwhDialog: false,
maintainData: [
{
id: 1,
hydldm: "A",
hydl: "农、林、牧、渔业 A",
zbmc: "营业收入",
dx: "20000及以上",
zx: "500及以上",
xx: "50及以上",
wx: "50及以下",
},
{
id: 2,
hydldm: "B,C,D",
hydl: "工业 BCD",
zbmc: "从业人员数",
dx: "1000及以上",
zx: "300及以上",
xx: "20及以上",
wx: "20及以下",
},
{
id: 3,
hydldm: "B,C,D",
hydl: "工业 BCD",
zbmc: "营业收入",
dx: "且40000及以上",
zx: "且2000及以上",
xx: "且300及以上",
wx: "或300及以下",
},
{
id: 4,
hydldm: "E",
hydl: "建筑业 E",
zbmc: "营业收入",
dx: "80000及以上",
zx: "6000及以上",
xx: "300及以上",
wx: "300及以下",
},
{
id: 5,
hydldm: "E",
hydl: "建筑业 E",
zbmc: "资产总额",
dx: "且80000及以上",
zx: "且5000及以上",
xx: "且300及以上",
wx: "或300及以下",
},
{
id: 6,
hydldm: "F51",
hydl: "批发业 F51",
zbmc: "从业人员数",
dx: "200及以上",
zx: "20及以上",
xx: "5及以上",
wx: "5以下",
},
],
multipleSelection2: [],
mxsjDialog: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleSelectionChange(val) {
this.multipleSelection1 = val;
},
handleSelectChange(val) {
this.multipleSelection2 = val;
},
addTable() {
this.addDialog = true;
},
addField() {
this.fieldFormList.push({
fieldForm: {
zdywm: "",
zdzwm: "",
sfzj: "",
options1: [
{
label: "",
value: "0",
},
{
label: "",
value: "1",
},
],
sfkwk: "1",
options2: [
{
label: "",
value: "0",
},
{
label: "",
value: "1",
},
],
zdlx: "",
options3: [
{
label: "char",
value: "0",
},
{
label: "varchar",
value: "1",
},
{
label: "number",
value: "2",
},
],
cd: "",
jd: "",
},
});
},
viewConfInf() {
this.confInfDialog = true;
},
viewMaintainData() {
this.sjwhDialog = true;
},
viewData() {
this.mxsjDialog = true;
},
},
};
</script>
<style lang='scss' scoped>
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 140px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.tips {
font-size: 14px;
color: #606266;
margin: 10px 0;
display: flex;
}
</style>
<template>
<div>
<el-table
:data="tableData1"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
label="序号"
prop="id"
width="50"
></el-table-column>
<el-table-column
label="机构代码"
prop="jgdm"
></el-table-column>
<el-table-column
label="机构名称"
prop="jgmc"
>
</el-table-column>
<el-table-column
label="机构类型"
prop="jglx"
></el-table-column>
<el-table-column
label="上级机构代码"
prop="sjjgdm"
></el-table-column>
<el-table-column
label="上级机构名称"
prop="sjjgmc"
></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "FHCJGXPZB",
data() {
return {
tableData1: [
{
id: 1,
jgdm: "1100",
jgmc: "北京分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 2,
jgdm: "1200",
jgmc: "天津分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 3,
jgdm: "1310",
jgmc: "河北分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 4,
jgdm: "1320",
jgmc: "河北雄安分行",
jglx: "二级分行",
sjjgdm: "1310",
sjjgmc: "河北分行",
},
{
id: 5,
jgdm: "1410",
jgmc: "山西分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 6,
jgdm: "1510",
jgmc: "内蒙古自治区分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 7,
jgdm: "2110",
jgmc: "辽宁分行",
jglx: "一级分行",
sjjgdm: "1000",
sjjgmc: "国家开发银行",
},
{
id: 8,
jgdm: "2120",
jgmc: "大连分行",
jglx: "二级分行",
sjjgdm: "2110",
sjjgmc: "辽宁",
},
],
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
},
};
</script>
<style lang='scss' scoped>
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
.tips {
font-size: 14px;
color: #606266;
margin: 10px 0;
display: flex;
}
</style>
<template>
<div>
<el-form
:model="form1"
:inline="true"
>
<el-form-item label="视图英文名">
<el-select
v-model="value1"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options1"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="试图中文名">
<el-select
v-model="value2"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options2"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源表">
<el-select
v-model="value3"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options3"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建日期">
<el-date-picker
v-model="value4"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-form>
<div style="text-align:right;margin-bottom:10px">
<el-button
size="mini"
type="primary"
>查询</el-button>
<el-button
size="mini"
type="primary"
>重置</el-button>
<el-button
size="mini"
type="primary"
@click="addView"
>新建</el-button>
</div>
<el-table
:data="tableData1"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
label="序号"
prop="id"
width="50"
></el-table-column>
<el-table-column
label="视图英文名"
prop="stywm"
></el-table-column>
<el-table-column
label="视图中文名"
prop="stzwm"
>
</el-table-column>
<el-table-column
label="来源表"
prop="lyb"
></el-table-column>
<el-table-column
label="创建日期"
prop="cjrq"
></el-table-column>
<el-table-column
label="更新日期"
prop="gxrq"
></el-table-column>
<el-table-column
label="操作人"
prop="czr"
></el-table-column>
<el-table-column
label="操作"
width="300"
>
<template slot-scope="scope">
<el-button type="text">修改</el-button>
<el-button type="text">删除</el-button>
<el-button
type="text"
@click="beginConf(scope.row)"
>参数配置</el-button>
<el-button
type="text"
@click="viewData"
>查看明细数据</el-button>
</template>
</el-table-column>
</el-table>
<div class="tips">
<span style="margin-right:5px">菜单说明:</span>
<div>
<div>1、查询条件:提供"视图英文名"、"视图英文名"、"来源表"、"创建日期等查询条件,可多选、支持模糊查询,""创建日期"范围模糊至创建月份</div>
<div>2、提供"基础数据视图配置"维护功能,可查询、创建、修改、删除视图</div>
<div>3、功能说明:</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(1)[参数配置]:可为"基础数据视图"设置参数,及参数默认值</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(2)[查看明细数据]:根据"参数配置"提供视图数据</div>
</div>
</div>
<el-dialog
title="新建/修改基础数据视图"
:visible.sync='addDialog'
width="80%"
>
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">视图信息</div>
<el-form
:model="addForm"
:inline="true"
label-width="100px"
>
<el-form-item label="来源表">
<el-select
v-model="addForm.value1"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in addForm.options1"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="视图英文名">
<el-input
v-model="addForm.value2"
placeholder="自动生成,可修改"
></el-input>
</el-form-item>
<el-form-item label="视图中文名">
<el-input
v-model="addForm.value3"
placeholder="文本,手工输入"
></el-input>
</el-form-item>
</el-form>
<div style="display:flex;justify-content:space-between">
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">字段信息</div>
<el-button type="text">删除</el-button>
</div>
<div
v-for="(v,i) in formList"
:key="i"
>
<el-form
:model="v.form"
label-width="100px"
:inline="true"
>
<el-form-item>{{i+1}}</el-form-item>
<el-form-item
label="字段英文名"
:required="true"
>
<el-input
v-model="v.form.value1"
placeholder="自动回显,可修改"
></el-input>
</el-form-item>
<el-form-item
label="字段中文名"
:required="true"
>
<el-input
v-model="v.form.value2"
placeholder="自动回显,可修改"
></el-input>
</el-form-item>
</el-form>
</div>
<i
class="el-icon-circle-plus-outline"
style="font-weight:650;font-size:16px;cursor: pointer;"
@click="addField"
></i>
<div style="text-align:right;margin:10px 0">
<el-button
type="primary"
size="mini"
>提交</el-button>
<el-button
type="primary"
size="mini"
>重置</el-button>
<el-button
type="primary"
size="mini"
>返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、提供基础数据视图的新建与修改功能</div>
<div>2、视图生成规则:</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(1)视图英文名:"V_"+来源表英文名,若来源表为多个,自动使用第一个,且英文名可修改</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;(2)字段信息:可批量添加视图字段,即点击"+"新增字段时,弹出来源表中英文字段列表,可多选、支持模糊查询.字段名称根据来源表字段自动回西安、并可修改</div>
</div>
</div>
</el-dialog>
<el-dialog
title="基础数据视图参数配置"
:visible.sync='confDialog'
width="80%"
>
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">视图信息</div>
<el-form
:model="confForm"
:inline="true"
label-width="100px"
>
<el-form-item label="视图英文名">
<el-input
v-model="confForm.value1"
placeholder="自动回显"
></el-input>
</el-form-item>
<el-form-item label="视图中文名">
<el-input
v-model="confForm.value2"
placeholder="自动回显"
></el-input>
</el-form-item>
</el-form>
<div style="display:flex;justify-content:space-between">
<div style="font-size:16px;color:black;font-weight:bold;margin-bottom:10px">字段信息</div>
<el-button type="text">删除</el-button>
</div>
<el-form
:model="form3"
label-width="100px"
>
<el-form-item label="数据日期">
<el-date-picker
v-model="form3.value1"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="机构名称">
<el-select
v-model="form3.value2"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in form3.options1"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="行业类型">
<el-select
v-model="form3.value3"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="(v,i) in form3.options2"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div style="text-align:right;margin:10px 0">
<el-button
type="primary"
size="mini"
>提交</el-button>
<el-button
type="primary"
size="mini"
>重置</el-button>
<el-button
type="primary"
size="mini"
>返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、提供基础数据视图默认参数的配置功能,明细数据按照参数配置生成</div>
<div>2、提供参数配置项的新增、修改、删除功能,配置项来源于视图字段</div>
</div>
</div>
</el-dialog>
<el-dialog
title="明细数据"
:visible.sync='dataDialog'
width="80%"
>
<el-table
:data="dataDetail"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
label="序号"
prop="id"
width="50px"
></el-table-column>
<el-table-column
label="数据日期"
prop="sjrq"
></el-table-column>
<el-table-column
label="客户编号"
prop="khbh"
></el-table-column>
<el-table-column
label="CRM客户编号"
prop="crmkhbh"
></el-table-column>
<el-table-column
label="客户名称"
prop="khmc"
></el-table-column>
<el-table-column
label="客户类型"
prop="khlx"
width="80px"
></el-table-column>
<el-table-column
label="生命周期"
prop="smzq"
width="80px"
></el-table-column>
<el-table-column
label="表内贷款余额"
prop="bndkye"
></el-table-column>
<el-table-column
label="合同笔数"
prop="htbs"
width="50px"
></el-table-column>
<el-table-column
label="是否涉密客户"
prop="sfsmkh"
width="50px"
></el-table-column>
</el-table>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>根据视图参数配置展示明细数据,若视图未配置参数,则默认为全部</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "JCSJSTGL",
data() {
return {
form1: {},
options1: [
{
value: "选项1",
label: "V_PDM_CUST_INFO",
},
{
value: "选项2",
label: "V_PDM_CONTRACT_INFO",
},
{
value: "选项3",
label: "V_PDM_LOAN_INFO",
},
{
value: "选项4",
label: "V_PDM_PROJECT_INFO",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "对公客户信息",
},
{
value: "选项2",
label: "信贷合同信息",
},
{
value: "选项3",
label: "贷款合约信息",
},
{
value: "选项4",
label: "贷款项目信息",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "PDM_CUST_INFO",
},
{
value: "选项2",
label: "PDM_CONTRACT_INFO",
},
{
value: "选项3",
label: "PDM_LOAN_INFO",
},
{
value: "选项4",
label: "PDM_PROJECT_INFO",
},
],
value3: [],
value4: "",
tableData1: [
{
id: 1,
stywm: "V_PDM_CUST_INFO",
stzwm: "对公客户信息",
lyb: "PDM_CUST_INFO",
cjrq: "2023/3/3",
gxrq: "2023/5/3",
czr: "张三",
},
{
id: 2,
stywm: "V_PDM_CONTRACT_INFO",
stzwm: "信贷合同信息",
lyb: "PDM_CONTRACT_INFO",
cjrq: "2023/3/3",
gxrq: "2023/5/3",
czr: "张三",
},
{
id: 3,
stywm: "V_PDM_LOAN_INFO",
stzwm: "贷款合约信息",
lyb: "PDM_LOAN_INFO",
cjrq: "2023/3/3",
gxrq: "2023/5/3",
czr: "张三",
},
{
id: 4,
stywm: "V_PDM_PROJECT_INFO",
stzwm: "贷款项目信息",
lyb: "PDM_PROJECT_INFO",
cjrq: "2023/3/3",
gxrq: "2023/5/3",
czr: "张三",
},
],
addDialog: false,
addForm: {
value1: [],
options1: [
{
value: "选项1",
label: "PDM_CUST_INFO",
},
{
value: "选项2",
label: "PDM_CONTRACT_INFO",
},
{
value: "选项3",
label: "PDM_LOAN_INFO",
},
{
value: "选项4",
label: "PDM_PROJECT_INFO",
},
],
value2: "",
value3: "",
},
formList: [
{
form: {
value1: "",
value2: "",
},
},
{
form: {
value1: "",
value2: "",
},
},
{
form: {
value1: "",
value2: "",
},
},
],
confDialog: false,
confForm: {
value1: "",
value2: "",
},
form3: {
value1: "",
value2: [],
value3: [],
options1: [
{
value: "选项1",
label: "机构1",
},
{
value: "选项2",
label: "机构2",
},
{
value: "选项3",
label: "机构3",
},
{
value: "选项4",
label: "机构4",
},
],
options2: [
{
value: "选项1",
label: "行业1",
},
{
value: "选项2",
label: "行业2",
},
{
value: "选项3",
label: "行业3",
},
{
value: "选项4",
label: "行业4",
},
],
},
dataDialog: false,
dataDetail: [
{
id: 1,
sjrq: "20230702",
khbh: "553820210020832482",
crmkhbh: "33949",
khmc: "鞍山钢铁集团有限公司",
khlx: "企业",
smzq: "成熟期",
bndkye: "7299500000",
htbs: "8",
sfsmkh: "",
},
{
id: 2,
sjrq: "20230702",
khbh: "201820210020837120",
crmkhbh: "35473",
khmc: "乌鲁木齐城市建设投资(集团)有限公司",
khlx: "企业",
smzq: "成熟期",
bndkye: "600000000",
htbs: "4",
sfsmkh: "",
},
{
id: 3,
sjrq: "20230702",
khbh: "877820210020832064",
crmkhbh: "33519",
khmc: "浏阳市城市建设集团有限公司",
khlx: "企业",
smzq: "成熟期",
bndkye: "829000000",
htbs: "10",
sfsmkh: "",
},
{
id: 4,
sjrq: "20230702",
khbh: "517820210020916327",
crmkhbh: "33949",
khmc: "启东城投集团有限公司",
khlx: "企业",
smzq: "成熟期",
bndkye: "69000000",
htbs: "1",
sfsmkh: "",
},
{
id: 5,
sjrq: "20230702",
khbh: "617820210020860670",
crmkhbh: "54743",
khmc: "海口市水务集团有限公司",
khlx: "企业",
smzq: "成熟期",
bndkye: "0",
htbs: "0",
sfsmkh: "",
},
],
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
addView() {
this.addDialog = true;
},
addField() {
this.formList.push({
form: {
value1: "",
value2: "",
},
});
},
beginConf() {
this.confDialog = true;
},
viewData() {
this.dataDialog = true;
},
},
};
</script>
<style lang='scss' scoped>
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 140px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.tips {
font-size: 14px;
color: #606266;
margin: 10px 0;
display: flex;
}
</style>
<template>
<div>
<div v-show="!showTables">
<div
style="display:flex"
v-for="(v,i) in formList"
:key="i"
>
<el-form
:model="v.form1"
:inline="true"
label-width="110px"
>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item style="font-weight:bold">
<span slot="label">
<span>图表{{formList.length===1?"":i+1}}配置参数</span>
</span>
</el-form-item>
<el-form-item label="图表类型">
<el-select
v-model="v.form1.value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="v.form1.value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="v.form1.value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item
label="统计范围"
style="font-weight:bold"
></el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="v.form1.value4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="v.form1.value5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检核日期">
<el-date-picker
v-model="v.form1.value6"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-row>
</el-form>
<div class="add-btn-top">
<el-button
size="mini"
type="primary"
style="width:110px"
v-if="i===0"
>新增统计图表</el-button>
<div
v-else
style="margin-left:10px"
>
<el-button
size="mini"
type="primary"
@click="delConfig(i)"
>删除</el-button>
<el-button
size="mini"
type="primary"
>保存</el-button>
</div>
<el-button
size="mini"
type="primary"
>新增统计范围条件</el-button>
</div>
</div>
<div class="add-btn">
<el-button
size="mini"
type="primary"
@click="addConfig"
>新增图表默认配置</el-button>
<el-button
size="mini"
type="primary"
@click="showTable"
>生成图表</el-button>
</div>
</div>
<div v-show="showTables">
<div style="text-align:right ">
<el-button
type="primary"
size="mini"
>生成预览报告</el-button>
</div>
<el-table
:data="tableData1"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="统计图表">
<el-table-column
label="序号"
prop="id"
></el-table-column>
<el-table-column
label="应用场景"
prop="yycj"
></el-table-column>
<el-table-column
label="指标个数"
prop="zbgs"
></el-table-column>
<el-table-column
label="检核数据项"
prop="jhsjx"
></el-table-column>
<el-table-column
label="本年新增指标"
prop="bnxzzb"
></el-table-column>
<el-table-column
label="本年优化指标"
prop="bnyhzb"
></el-table-column>
<el-table-column
label="本年下线指标"
prop="bnxxzb"
></el-table-column>
<el-table-column
label="上月"
prop="sy"
></el-table-column>
<el-table-column
label="2021年"
prop="ey"
></el-table-column>
<el-table-column
label="2022年"
prop="ee"
></el-table-column>
<el-table-column
label="环比"
prop="hb"
></el-table-column>
<el-table-column
label="同比"
prop="tb"
></el-table-column>
</el-table-column>
</el-table>
<div class="chart-flex">
<div
id="pieCharts"
style="width:290px;height:290px;"
v-show="showChart"
></div>
<div>
<el-table
:data="pieTable"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="汇总表">
<el-table-column
label="序号"
prop="id"
width="100"
></el-table-column>
<el-table-column
label="管控维度"
prop="gkwd"
width="150"
></el-table-column>
<el-table-column
label="指标个数"
prop="zbgs"
width="100"
></el-table-column>
<el-table-column
label="占比"
prop="zb"
width="150"
></el-table-column>
</el-table-column>
</el-table>
</div>
<div>
<div
class="chart-flex"
style="justify-content:flex-end"
>
<el-button
type="primary"
size="mini"
@click="showPie"
>生成</el-button>
<el-button
type="primary"
size="mini"
@click="delPie"
>删除</el-button>
</div>
<el-form
:model="pieForm"
:inline="true"
label-width="100px"
>
<el-row style="font-weight:600">
<el-form-item label="图表配置参数"></el-form-item>
</el-row>
<el-form-item label="图表类型">
<el-select
v-model="pieValue1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="pieValue2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="pieValue3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-row style="font-weight:650">
<el-form-item label="图表统计范围"></el-form-item>
</el-row>
<el-form-item label="系统名称">
<el-select
v-model="pieValue4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="pieValue5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="变更原因">
<el-select
v-model="pieValue6"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions6"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker
v-model="pieValue7"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "JHGZTJT",
data() {
return {
currentLabel: "",
currentId: "",
filterText: "",
startDate: "",
endDate: "",
formList: [
{
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
},
],
showTables: false,
tableData1: [
{
id: 1,
yycj: "考核指标",
zbgs: "40",
jhsjx: "28",
bnxzzb: "5",
bnyhzb: "12",
bnxxzb: "2",
sy: "40",
ey: "45",
ee: "37",
hb: "100%",
tb: "108%",
},
{
id: 2,
yycj: "准考核指标",
zbgs: "20",
jhsjx: "12",
bnxzzb: "5",
bnyhzb: "6",
bnxxzb: "0",
sy: "20",
ey: "18",
ee: "15",
hb: "100%",
tb: "133%",
},
{
id: 3,
yycj: "日常监测指标",
zbgs: "10",
jhsjx: "9",
bnxzzb: "3",
bnyhzb: "7",
bnxxzb: "0",
sy: "10",
ey: "7",
ee: "7",
hb: "100%",
tb: "143%",
},
{
id: 4,
yycj: "数据探查指标",
zbgs: "5",
jhsjx: "5",
bnxzzb: "3",
bnyhzb: "0",
bnxxzb: "0",
sy: "5",
ey: "5",
ee: "2",
hb: "100%",
tb: "250%",
},
],
pieTable: [
{
id: 1,
gkwd: "规范性",
zbgs: "1",
zb: "1.67%",
},
{
id: 2,
gkwd: "合理性",
zbgs: "25",
zb: "41.67%",
},
{
id: 3,
gkwd: "完整性",
zbgs: "34",
zb: "56.67%",
},
],
pieForm: {},
pieValue1: [],
pieOptions1: [
{
label: "扇形图",
value: "选项1",
},
{
label: "柱状图",
value: "选项2",
},
{
label: "折线图",
value: "选项3",
},
],
pieValue2: [],
pieOptions2: [
{
label: "维度1",
value: "选项1",
},
{
label: "维度2",
value: "选项2",
},
{
label: "维度3",
value: "选项3",
},
],
pieValue3: [],
pieOptions3: [
{
label: "类型1",
value: "选项1",
},
{
label: "类型2",
value: "选项2",
},
{
label: "类型3",
value: "选项3",
},
],
pieValue4: [],
pieOptions4: [
{
label: "系统1",
value: "选项1",
},
{
label: "系统2",
value: "选项2",
},
{
label: "系统3",
value: "选项3",
},
],
pieValue5: [],
pieOptions5: [
{
label: "分行1",
value: "选项1",
},
{
label: "分行2",
value: "选项2",
},
{
label: "分行3",
value: "选项3",
},
],
pieValue6: [],
pieOptions6: [
{
label: "原因1",
value: "选项1",
},
{
label: "原因2",
value: "选项2",
},
{
label: "原因3",
value: "选项3",
},
],
pieValue7: "",
showChart: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
// this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {
this.drawPieCharts();
},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
addConfig() {
this.formList.push({
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
});
},
delConfig(index) {
this.formList.splice(this.formList.indexOf(index), 1);
},
showTable() {
this.showTables = true;
},
drawPieCharts() {
var chartDom = document.getElementById("pieCharts");
var myChart = echarts.init(chartDom);
var option;
option = {
title: {
text: "",
},
tooltip: {},
grid: {
left: "0",
top: "0",
right: "0",
bottom: "0",
borderWidth: 1,
borderColor: "#EBEEF5",
show: true,
},
series: [
{
name: "",
type: "pie",
radius: "90%",
data: [
{ value: 1, name: "规范性" },
{ value: 25, name: "合理性" },
{ value: 34, name: "完整性" },
],
label: {
normal: {
show: true,
position: "inner",
formatter: "{b}: \n {d}%",
},
},
itemStyle: {
normal: {
label: {
textStyle: {
color: "#ffffff",
},
},
},
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
};
option && myChart.setOption(option);
},
showPie() {
this.showChart = true;
},
delPie() {
this.showChart = false;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 180px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
\ No newline at end of file
<template>
<div>
<el-form
:model="form"
:inline="true"
class="form1"
label-width="90px"
>
<el-form-item label="统计时间段">
<el-date-picker
v-model="startDate"
type="date"
placeholder="开始日期"
>
</el-date-picker>
<el-date-picker
v-model="endDate"
type="date"
placeholder="结束日期"
>
</el-date-picker>
<el-button
type="primary"
size="mini"
>生成报告</el-button>
</el-form-item>
</el-form>
<div style="text-align:right;margin-bottom:10px">
<el-button
type="primary"
size="mini"
>生成报告(全量)</el-button>
<el-button
type="primary"
size="mini"
>生成上年报告</el-button>
<el-button
type="primary"
size="mini"
>生成上月报告</el-button>
<el-button
type="primary"
size="mini"
>生成近一年报告</el-button>
<el-button
type="primary"
size="mini"
>删除</el-button>
</div>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
>
</el-table-column>
<el-table-column
prop="id"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="bgmc"
label="报告名称"
width="200"
>
<template slot-scope="scope">
<el-button type="text">{{scope.row.bgmc}}</el-button>
</template>
</el-table-column>
<el-table-column
prop="tjksrq"
label="统计开始日期"
>
</el-table-column><el-table-column
prop="tjjsrq"
label="统计结束日期"
>
</el-table-column><el-table-column
prop="bgbdsl"
label="变更补丁数量"
>
</el-table-column><el-table-column
prop="sjxtsl"
label="涉及系统数量"
>
</el-table-column><el-table-column
prop="sjfhsl"
label="涉及分行数量"
>
</el-table-column><el-table-column
prop="sjbmsl"
label="涉及部门数量"
>
</el-table-column><el-table-column
prop="bgpd"
label="报告频度"
>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="small"
>
下载
</el-button>
<el-button
type="text"
size="small"
>
上传
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "SJBGBG",
data() {
return {
startDate: "",
endDate: "",
form: {},
tableData: [
{
id: 1,
bgmc: "2022年03月度数据变更报告",
tjksrq: "2022/3/1",
tjjsrq: "2022/3/31",
bgbdsl: "60",
sjxtsl: "21",
sjfhsl: "6",
sjbmsl: "9",
bgpd: "月报",
},
{
id: 2,
bgmc: "2021年度数据变更报告",
tjksrq: "2021//1",
tjjsrq: "2022/3/31",
bgbdsl: "60",
sjxtsl: "21",
sjfhsl: "6",
sjbmsl: "9",
bgpd: "月报",
},
],
multipleSelection:[]
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleSelectionChange(val) {
this.multipleSelection = val;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
/deep/.form1 {
.el-form-item {
.el-form-item__content {
.el-input__inner {
width: 170px;
}
}
}
}
/deep/.el-input {
.el-input__inner {
width: 180px;
}
}
// /deep/.el-checkbox-group {
// display: flex;
// flex-direction: column;
// }
.top-bor {
display: flex;
border: 1px solid #ebeef5;
border-bottom: none;
height: 30px;
color: #606266;
background-color: whitesmoke;
.top-left {
padding-left: 5px;
width: 635px;
border-right: 1px solid #ebeef5;
// margin-right: 2px;
}
.top-right {
padding-left: 5px;
font-size: 14px;
line-height: 30px;
width: 648px;
display: flex;
justify-content: space-between;
}
}
.d-container {
display: flex;
.left {
margin-right: -1px;
flex: 1;
.title-mid {
background-color: whitesmoke;
color: #606266;
border: 1px solid #ebeef5;
border-top: none;
border-bottom: none;
height: 30px;
line-height: 30px;
font-size: 14px;
padding-left: 5px;
}
}
.right {
flex: 1;
border: 1px solid #ebeef5;
// border-left: none;
padding-left: 10px;
.form-reason {
/deep/.el-form-item__label {
margin-top: 30px;
}
}
}
/deep/.d-container {
.el-select {
.el-input__inner {
width: 140px;
}
}
}
}
</style>
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div style="min-width:1100px">
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div v-if="currentId === 2">
<el-form
:model="form"
:inline="true"
class="form1"
label-width="70px"
>
<el-row
type="flex"
justify="space-between"
>
<el-form-item label="系统名称">
<el-select
v-model="value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="提出部门">
<el-select
v-model="value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="流程状态">
<el-select
v-model="value4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
size="mini"
@click="checkDetails"
>申请数据变更</el-button>
</el-form-item>
</el-row>
<el-row
type="flex"
justify="space-between"
>
<el-form-item label="变更原因">
<el-checkbox-group v-model="checkList1">
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item>
<el-button
type="primary"
size="mini"
>查询</el-button>
<el-button
type="primary"
size="mini"
>下载</el-button>
<el-button
type="primary"
size="mini"
@click="delTable"
>删除</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
ref="multipleTable"
:data="tableData"
style="width: 100%"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
@selection-change="handleSelectionChange"
:default-sort="{prop: 'sqrq', order: 'descending'}"
>
<el-table-column
type="selection"
width="40"
>
</el-table-column>
<el-table-column
prop="id"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="sqrq"
label="申请日期"
sortable
width="105"
>
</el-table-column>
<el-table-column
prop="xtmc"
label="系统名称"
>
</el-table-column>
<el-table-column
prop="tcbm"
label="提出部门"
>
</el-table-column>
<el-table-column
prop="bgyy"
label="变更原因"
width="100"
>
</el-table-column>
<el-table-column
prop="spdbh"
label="审批单编号"
sortable
width="140"
>
<template slot-scope="scope">
<el-button
type="text"
@click="viewDetails"
>{{roleName==='张三'||roleName==='李四'?'':scope.row.spdbh}}</el-button>
</template>
</el-table-column>
<el-table-column
prop="lczt"
label="申请单状态"
width="95"
>
</el-table-column>
<el-table-column
prop="dqclbm"
label="当前处理部门"
width="105"
>
</el-table-column>
<el-table-column
label="操作"
width="130"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="viewDetails"
>
查看/编辑
</el-button>
<el-button
type="text"
size="small"
>
流程图
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="currentId === 3">
<SJBGRWBL :roleName="roleName"></SJBGRWBL>
</div>
<div v-if="currentId === 4">
<SJBGTZ></SJBGTZ>
</div>
<div v-if="currentId === 5">
<SJBGTJTB></SJBGTJTB>
</div>
<div v-if="currentId === 6">
<SJBGBG></SJBGBG>
</div>
</div>
</div>
<el-dialog
:visible.sync="centerDialogVisible"
width="90%"
center
>
<div class="top-bor">
<div class="top-left">
<el-button
type="text"
size="small"
>上传附件</el-button>
</div>
<div class="top-right">
<div>申请部门填写</div>
</div>
</div>
<div class="d-container">
<div class="left">
<div class="l-top">
<el-table
:data="dTableData1"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="wjmc"
label="文件名称"
></el-table-column>
<el-table-column
prop="wjms"
label="文件描述"
></el-table-column>
<el-table-column
prop="scr"
label="上传人"
></el-table-column>
<el-table-column
label="操作"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
>
删除
</el-button>
<el-button
type="text"
size="small"
>
下载
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="right">
<el-form
:model="dForm"
:inline="true"
label-width="70px"
>
<el-row class="name_style">
<el-form-item label="系统名称">
<el-select
v-model="nameValue"
placeholder="请选择"
>
<el-option
v-for="item in nameOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-form-item label="分行名称">
<el-input
v-model="input1"
disabled
></el-input>
</el-form-item>
<el-form-item label="提出部门">
<el-input
v-model="input2"
disabled
></el-input>
</el-form-item>
<el-form-item label="联系人">
<el-input
v-model="input3"
disabled
></el-input>
</el-form-item>
<el-form-item label="联系电话">
<el-input
v-model="input4"
disabled
></el-input>
</el-form-item>
<el-form-item
label="变更原因"
class="form-reason"
>
<el-checkbox-group v-model="checkList2">
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<el-form :model="rForm">
<el-form-item label="变更内容和原因说明:">
<el-input
type="textarea"
v-model="input5"
></el-input>
</el-form-item>
<el-form-item label="无法通过前台修改理由:">
<el-input
type="textarea"
v-model="input6"
></el-input>
</el-form-item>
<el-form-item label="变更是否紧急:">
<el-radio-group v-model="radio1">
<el-radio :label="0">是(当天需要完成)</el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
v-show="radio1===0"
label="紧急原因和时限说明:(紧急情况选择'是'时填写)"
>
<el-input
type="textarea"
v-model="input8"
></el-input>
</el-form-item>
<el-form-item label="是否业务归口管理部门:">
<el-radio-group v-model="radio2">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label="审批单编号"
class="num-input"
v-if="radio2===0"
>
<el-input
v-model="input9"
placeholder="建议以部门名称缩写首字母+日期+序号方式,如XD20210304-1"
></el-input>
</el-form-item>
<el-form-item v-if="radio2===0">
<label slot="label">解决时限&nbsp;&nbsp;&nbsp;</label>
<el-date-picker
v-model="offlineTime"
type="date"
placeholder="选择日期"
:picker-options="{
disabledDate: (time) =>
time.getTime() <
new Date(new Date().setHours(0, 0, 0, 0))
}"
>
</el-date-picker>
</el-form-item>
<el-form-item label="是否系统管理部门:">
<el-radio-group v-model="radio3">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<el-form
:inline="true"
:model="bForm"
>
<!-- <el-row
type="flex"
justify="space-between"
> -->
<el-form-item>
<el-button
size='mini'
type="primary"
@click="submDetails"
>提交</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>暂存</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>撤销</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>下载申请单</el-button>
</el-form-item>
<!-- </el-row> -->
</el-form>
</div>
</div>
</el-dialog>
<el-dialog
:visible.sync="submitDialog"
width="30%"
center
>
<div>
<span>审批部门:</span>
<el-select
v-model="bValue"
placeholder="请选择审批部门"
>
<el-option
v-for="item in bOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<span
slot="footer"
class="dialog-footer"
>
<el-button
type="primary"
@click="submitApprove"
size="mini"
>提 交</el-button>
<el-button
size="mini"
@click="closeSubmit"
>取 消</el-button>
</span>
</el-dialog>
<el-dialog
:visible.sync="detailsDialog"
width="90%"
center
>
<div class="top-bor">
<div class="top-left">
<el-button
type="text"
size="small"
>上传附件</el-button>
</div>
<div class="top-right">
<div>申请部门填写</div>
</div>
</div>
<div class="d-container">
<div class="left">
<div class="l-top">
<el-table
:data="dTableData2"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="wjmc"
label="文件名称"
>
<template slot-scope="scope">
<el-button type="text">
{{scope.row.wjmc}}
</el-button>
</template>
</el-table-column>
<el-table-column
prop="wjms"
label="文件描述"
></el-table-column>
<el-table-column
prop="scr"
label="上传人"
></el-table-column>
<el-table-column
label="操作"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
>
删除
</el-button>
<el-button
type="text"
size="small"
>
下载
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="title-mid">
审批流程
</div>
<div class="l-btm">
<el-table
:data="dTableData3"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="lcmc"
label="流程名称"
></el-table-column>
<el-table-column
prop="clrq"
label="处理日期"
></el-table-column>
<el-table-column
prop="clr"
label="处理人"
></el-table-column>
<el-table-column
prop="yj"
label="意见"
width="150"
>
</el-table-column>
</el-table>
</div>
</div>
<div class="right">
<div style="padding-left: 10px;">
<el-form
:model="dForm1"
:inline="true"
label-width="70px"
>
<el-row class="name_style">
<el-form-item label="系统名称">
<el-input v-model="nameValue1">
</el-input>
</el-form-item>
</el-row>
<el-form-item label="分行名称">
<el-input
v-model="input1"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="提出部门">
<el-input
v-model="input2"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="联系人">
<el-input
v-model="input3"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="联系电话">
<el-input
v-model="input4"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item
label="变更原因"
class="form-reason"
>
<el-checkbox-group v-model="checkList3">
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<el-form :model="rForm">
<el-form-item label="变更内容和原因说明:">
<el-input
type="textarea"
v-model="input55"
></el-input>
</el-form-item>
<el-form-item label="无法通过前台修改理由:">
<el-input
type="textarea"
v-model="input66"
></el-input>
</el-form-item>
<el-form-item label="变更是否紧急:">
<el-radio-group v-model="radio11">
<el-radio :label="0">是(当天需要完成)</el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label="紧急原因和时限说明:(紧急情况选择'是'时填写)"
v-if="radio11===0"
>
<el-input
type="textarea"
v-model="input8"
></el-input>
</el-form-item>
<el-form-item label="是否业务归口管理部门:">
<el-radio-group v-model="radio2">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否系统管理部门:">
<el-radio-group v-model="radio3">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<el-form
:inline="true"
:model="bForm"
>
<!-- <el-row
type="flex"
justify="space-between"
> -->
<el-form-item>
<el-button
size='mini'
type="primary"
@click="submDetails"
>提交</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>暂存</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>撤销</el-button>
</el-form-item>
<el-form-item>
<el-button
size='mini'
type="primary"
>下载申请单</el-button>
</el-form-item>
<!-- </el-row> -->
</el-form>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import SJBGRWBL from "@/components/SJBGRWBL.vue";
import SJBGTZ from "@/components/SJBGTZ.vue";
import SJBGBG from "@/components/SJBGBG.vue";
import SJBGTJTB from "@/components/SJBGTJTB.vue";
export default {
name: "SJBGGL",
components: {
SJBGRWBL,
SJBGTZ,
SJBGBG,
SJBGTJTB,
},
props: {
roleName: {
type: String,
required: true,
},
},
data() {
return {
treeData: [
{
id: 7,
label: "数据变更",
children: [
{
id: 1,
label: "数据变更管理",
children: [
{
id: 2,
label: "数据变更申请",
},
{
id: 3,
label: "数据变更任务办理",
},
],
},
// {
// id: 8,
// label: "数据变更视图统计分析",
// children: [
// {
// id: 4,
// label: "数据变更台账",
// },
// {
// id: 5,
// label: "数据变更统计图表",
// },
// {
// id: 6,
// label: "数据变更报告",
// },
// ],
// },
],
},
// {
// id: 1,
// label: "数据变更管理",
// children: [
// {
// id: 2,
// label: "数据变更申请",
// },
// {
// id: 3,
// label: "数据变更任务办理",
// },
// {
// id: 4,
// label: "数据变更台账",
// },
// {
// id: 5,
// label: "数据变更统计图表",
// },
// {
// id: 6,
// label: "数据变更报告",
// },
// ],
// },
],
currentLabel: "",
currentId: 2,
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
form: {},
value1: [],
options1: [
{
value: "选项1",
label: "全流程系统",
},
{
value: "选项2",
label: "新核心-客户组件",
},
{
value: "选项3",
label: "新核心-贷款组件",
},
{
value: "选项4",
label: "新核心-CP组件",
},
{
value: "选项5",
label: "评级器系统",
},
],
value2: [],
options2: [
{
value: "选项1",
label: "北京分行",
},
{
value: "选项2",
label: "天津分行",
},
{
value: "选项3",
label: "河北分行",
},
{
value: "选项4",
label: "山西分行",
},
{
value: "选项5",
label: "上海分行",
},
{
value: "选项6",
label: "浙江分行",
},
{
value: "选项7",
label: "深圳分行",
},
{
value: "选项8",
label: "安徽分行",
},
],
value3: [],
options3: [
{
value: "选项1",
label: "客户一处",
},
{
value: "选项2",
label: "客户二处",
},
{
value: "选项3",
label: "客户三处",
},
{
value: "选项4",
label: "经营管理处",
},
{
value: "选项5",
label: "信息科技处",
},
],
value4: [],
options4: [
{
value: "选项1",
label: "草稿",
},
{
value: "选项2",
label: "审批中",
},
{
value: "选项3",
label: "退回",
},
{
value: "选项4",
label: "待验证",
},
{
value: "选项5",
label: "结束",
},
],
checkList1: [],
tableData: [
{
id: 4,
spdbh: "XD20210304-1",
xtmc: "全流程",
tcbm: "北京分行客户一处",
sqrq: "2022/02/03",
bgyy: "系统缺陷",
lczt: "草稿",
lxdh: "133****2323",
lxr: "张三",
dqclbm: "数据质量归口管理部门",
},
{
id: 3,
spdbh: "XD20210304-2",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/05/06",
bgyy: "用户操作失误",
lczt: "审批中",
lxdh: "182****5523",
lxr: "李四",
dqclbm: "系统开发管理部门",
},
{
id: 1,
spdbh: "XD20210304-3",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/10/09",
bgyy: "历史数据",
lczt: "退回",
lxdh: "133****2323",
lxr: "张三",
dqclbm: "数据质量归口管理部门",
},
{
id: 5,
spdbh: "XD20210304-5",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/01/09",
bgyy: "历史数据",
lczt: "待验证",
lxdh: "133****2323",
lxr: "张三",
dqclbm: "业务归口管理部门",
},
{
id: 2,
spdbh: "XD20210304-4",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/09/14",
bgyy: "历史数据",
lczt: "结束",
lxdh: "133****2323",
lxr: "张三",
dqclbm: "科技部一把手",
},
],
multipleSelection: [],
centerDialogVisible: false,
dTableData1: [],
dTableData2: [
{ wjmc: "xx审批单", wjms: "", scr: "张三" },
{ wjmc: "xxxx上线脚本", wjms: "", scr: "张三" },
{ wjmc: "xxxx操作步骤", wjms: "", scr: "张三" },
],
dTableData3: [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
],
dForm: {},
dForm1: {},
nameValue: "",
nameValue1: "新核心-客户组件",
nameOptions: [
{
value: "选项1",
label: "全流程系统",
},
{
value: "选项2",
label: "新核心-客户组件",
},
{
value: "选项3",
label: "新核心-贷款组件",
},
{
value: "选项4",
label: "新核心-CP组件",
},
{
value: "选项5",
label: "评级器系统",
},
],
input1: "北京分行",
input2: "客户一处",
input3: "张三",
input4: "136****3468",
input5: "",
input55: "历史原因,合同签订日期无法修改",
input6: "",
input66: "合同状态为'已签订'时,无法通过前台修改",
input8: "",
checkList2: [],
checkList3: ["历史数据"],
rForm: {},
rForm1: {},
radio1: 1,
radio11: 1,
radio2: 1,
radio3: 1,
input9: "",
offlineTime: "",
bForm: {},
bOptions: [
{
value: "选项1",
label: "科技部开发一处",
},
{
value: "选项2",
label: "科技部开发二处",
},
{
value: "选项3",
label: "科技部开发三处",
},
],
bValue: "",
submitDialog: false,
detailsDialog: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
roleName: (n, o) => {
this.rolesName = n;
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
if (this.roleName === "田七") {
this.treeData = [
{
id: 7,
label: "数据变更",
children: [
{
id: 1,
label: "数据变更管理",
children: [
{
id: 2,
label: "数据变更申请",
},
{
id: 3,
label: "数据变更任务办理",
},
],
},
{
id: 8,
label: "数据变更视图统计分析",
children: [
{
id: 4,
label: "数据变更台账",
},
{
id: 5,
label: "数据变更统计图表",
},
{
id: 6,
label: "数据变更报告",
},
],
},
],
},
];
}
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
toggleSelection(rows) {
if (rows) {
rows.forEach((row) => {
this.$refs.multipleTable.toggleRowSelection(row);
});
} else {
this.$refs.multipleTable.clearSelection();
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
delTable() {
if (this.multipleSelection) {
this.multipleSelection.map((r) => {
if (r.lczt !== "草稿") {
this.$confirm('只可编辑或删除"草稿"状态申请单。', "提示", {
confirmButtonText: "确定",
showCancelButton: false,
type: "error",
});
}
});
}
},
checkDetails() {
this.centerDialogVisible = true;
},
submDetails() {
this.submitDialog = true;
},
submitApprove() {
this.submitDialog = false;
this.centerDialogVisible = false;
this.$message({
message: "提交审批成功",
type: "success",
});
this.bValue = "";
},
closeSubmit() {
this.submitDialog = false;
this.$message({
message: "取消提交",
type: "info",
});
this.bValue = "";
},
viewDetails() {
this.detailsDialog = true;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.num-input {
.el-input {
width: 450px;
.el-input__inner {
width: 450px;
}
}
}
/deep/.name_style {
.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 445px;
}
}
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
/deep/.form1 {
.el-form-item {
.el-form-item__content {
.el-input__inner {
width: 160px;
}
}
}
}
/deep/.el-input {
.el-input__inner {
width: 180px;
}
}
// /deep/.el-checkbox-group {
// display: flex;
// flex-direction: column;
// }
.top-bor {
display: flex;
border: 1px solid #ebeef5;
border-bottom: none;
height: 30px;
color: #606266;
background-color: whitesmoke;
.top-left {
padding-left: 5px;
width: 635px;
border-right: 1px solid #ebeef5;
// margin-right: 2px;
}
.top-right {
padding-left: 5px;
font-size: 14px;
line-height: 30px;
width: 648px;
display: flex;
justify-content: space-between;
}
}
.d-container {
display: flex;
.left {
margin-right: -1px;
flex: 1;
.title-mid {
background-color: whitesmoke;
color: #606266;
border: 1px solid #ebeef5;
border-top: none;
border-bottom: none;
height: 30px;
line-height: 30px;
font-size: 14px;
padding-left: 5px;
}
}
.right {
flex: 1;
border: 1px solid #ebeef5;
// border-left: none;
padding-left: 10px;
.form-reason {
/deep/.el-form-item__label {
margin-top: 30px;
}
}
}
.el-dialog {
.d-container {
.el-table {
.el-table--border::after {
width: 0;
}
}
}
}
// .submit-dia {
// display: flex;
// }
}
</style>
<template>
<div>
<el-form
:model="form"
:inline="true"
class="form1"
label-width="90px"
>
<el-row
type="flex"
justify="space-between"
>
<el-form-item label="系统名称">
<el-select
v-model="value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="提出部门">
<el-select
v-model="value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="联系人">
<el-select
v-model="value4"
placeholder="请选择"
>
<el-option
v-for="item in options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row
type="flex"
justify="space-between"
>
<div>
<el-form-item label="申请单状态">
<el-select v-model="value5">
<el-option
v-for="item in options5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="变更原因">
<el-checkbox-group v-model="checkList1">
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<el-form-item>
<el-button
type="primary"
size="mini"
>查询</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
:default-sort="{prop: 'sqrq', order: 'descending'}"
>
<el-table-column
prop="id"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="sqrq"
label="申请日期"
sortable
width="105"
>
</el-table-column>
<el-table-column
prop="xtmc"
label="系统名称"
>
</el-table-column>
<el-table-column
prop="tcbm"
label="提出部门"
>
</el-table-column>
<el-table-column
prop="bgyy"
label="变更原因"
>
</el-table-column>
<el-table-column
prop="lxr"
label="联系人"
width="70"
></el-table-column>
<el-table-column
prop="lxdh"
label="联系电话"
></el-table-column>
<el-table-column
prop="spdbh"
label="审批单编号"
sortable
width="120"
>
<template slot-scope="scope">
<el-button type="text" @click="checkDetails">{{scope.row.spdbh}}</el-button>
</template>
</el-table-column>
<el-table-column
prop="lczt"
label="申请单状态"
width="95"
>
</el-table-column>
<el-table-column
prop="dqclbm"
label="当前处理部门"
>
</el-table-column>
<el-table-column
label="操作"
width="130"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="checkDetails"
>
任务办理
</el-button>
<el-button
type="text"
size="small"
>
流程图
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
:visible.sync="centerDialogVisible"
width="90%"
center
>
<div class="top-bor">
<div class="top-left">
<el-button
type="text"
size="small"
>上传附件</el-button>
</div>
<div class="top-right">
<div>申请部门填写</div>
</div>
</div>
<div class="d-container">
<div class="left">
<div class="l-top">
<el-table
:data="dTableData1"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="wjmc"
label="文件名称"
>
<template slot-scope="scope">
<el-button type="text">
{{scope.row.wjmc}}
</el-button>
</template>
</el-table-column>
<el-table-column
prop="wjms"
label="文件描述"
></el-table-column>
<el-table-column
prop="scr"
label="上传人"
></el-table-column>
<el-table-column
label="操作"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
>
删除
</el-button>
<el-button
type="text"
size="small"
>
下载
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="title-mid">
审批流程
</div>
<div class="l-btm">
<el-table
:data="dTableData2"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="lcmc"
label="流程名称"
></el-table-column>
<el-table-column
prop="clrq"
label="处理日期"
></el-table-column>
<el-table-column
prop="clr"
label="处理人"
></el-table-column>
<el-table-column
prop="yj"
label="意见"
width="150"
>
</el-table-column>
</el-table>
</div>
</div>
<div class="right">
<div style="padding-left: 10px;">
<el-form
:model="dForm"
:inline="true"
label-width="70px"
>
<el-row class="name_style">
<el-form-item label="系统名称">
<el-input
v-model="nameValue"
:disabled="roleName!=='张三'"
>
</el-input>
</el-form-item>
</el-row>
<el-form-item label="分行名称">
<el-input
v-model="input1"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="提出部门">
<el-input
v-model="input2"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="联系人">
<el-input
v-model="input3"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="联系电话">
<el-input
v-model="input4"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item
label="变更原因"
class="form-reason"
>
<el-checkbox-group
v-model="checkList2"
:disabled="roleName!=='张三'"
>
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<el-form :model="rForm">
<el-form-item label="变更内容和原因说明:">
<el-input
type="textarea"
v-model="input5"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="无法通过前台修改理由:">
<el-input
type="textarea"
v-model="input6"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="变更是否紧急:">
<el-radio-group
v-model="radio1"
:disabled="roleName!=='张三'"
>
<el-radio :label="0">是(当天需要完成)</el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="紧急原因和时限说明:(紧急情况选择'是'时填写)">
<el-input
type="textarea"
v-model="input8"
:disabled="roleName!=='张三'"
></el-input>
</el-form-item>
<el-form-item label="是否业务归口管理部门:">
<el-radio-group
v-model="radio2"
:disabled="roleName!=='张三'"
>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否系统管理部门:">
<el-radio-group
v-model="radio3"
:disabled="roleName!=='张三'"
>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<div
class="right-title"
v-if="roleName!=='张三'"
>
<div v-if="roleName==='李四'">科技部门填写</div>
<div v-if="roleName==='王五'">业务归口部门填写</div>
<div v-if="roleName==='赵六'">系统管理部门审批意见:</div>
<div v-if="roleName==='田七'">数据质量归口管理部门审批意见:</div>
<div v-if="roleName==='黄八'">系统开发管理部门审批意见:</div>
<div v-if="roleName==='钟九'">科技部一把手审批意见:(若为重保期后台数据变更)</div>
<div v-if="roleName==='刘十'">系统运维管理部门审批意见:</div>
</div>
<div
v-if="roleName!=='张三'"
style="padding-left:10px"
>
<div v-if="roleName==='李四'">
<span>(提出分析建议:①请科技部明确涉及系统、组件和部门②开展影响性分析,提出对周边关联工作及系统数据的影响,提出解决方案和解决时限建议)</span>
</div>
<div v-if="roleName==='王五'">
<el-form
:inline="true"
:model="dialogForm"
>
<el-form-item label="审批单编号">
<el-input
v-model="numVal"
placeholder="如:XD20210304-1"
></el-input>
</el-form-item>
<el-form-item label="解决时限">
<el-input v-model="timeVal"></el-input>
</el-form-item>
</el-form>
<el-form :model="fiveForm">
<el-form-item label="业务管理部门审批意见:">
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="textarea2"
>
</el-input>
</el-form-item>
<el-form-item label="变更类型是否准确:">
<el-radio-group v-model="radio4">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="变更内容是否合理:">
<el-radio-group v-model="radio5">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="变更影响是否可控:">
<el-radio-group v-model="radio6">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="变更申请是否通过:">
<el-radio-group v-model="radio7">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="textarea1"
style="margin-top:5px"
v-if="roleName!=='王五'"
>
</el-input>
<el-form
:model="twoForm"
:inline="true"
v-if="roleName === '李四'"
>
<el-row>
<el-form-item label="涉及系统">
<el-select
v-model="twoValue"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in twoOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-form-item label="业务归口管理部门">
<el-select
v-model="twoValue1"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in twoOptions1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="系统管理部门">
<el-select
v-model="twoValue2"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in twoOptions2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="系统开发管理部门">
<el-select
v-model="twoValue3"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in twoOptions3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="系统运维管理部门">
<el-select
v-model="twoValue4"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in twoOptions4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否涉及重保期后台数据变更">
<el-radio-group v-model="radio8">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<el-form
:model="sevenForm"
v-if="roleName === '田七'"
>
<el-form-item label="是否触发数据质量考核">
<el-radio-group v-model="radio9">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<div style="margin:10px">
<el-button
size='mini'
type="primary"
@click="exitDetails"
>同意</el-button>
<el-button
size='mini'
type="primary"
@click="exitDetails"
>部门内驳回</el-button>
<el-button
size='mini'
type="primary"
@click="rejectDetails"
>跨部门驳回</el-button>
</div>
</div>
</div>
</el-dialog>
<el-dialog
:visible.sync="rejectDialog"
width="30%"
center
>
<div>
<span>审批部门:</span>
<el-select
v-model="rejectVal"
placeholder="请选择驳回部门"
>
<el-option
v-for="item in rejectOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<span
slot="footer"
class="dialog-footer"
>
<el-button
type="primary"
@click="submitReject"
size="mini"
>确 定</el-button>
<el-button
size="mini"
@click="closeReject"
>取 消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
name: "SJBGRWBL",
props: {
roleName: {
type: String,
required: true,
},
},
data() {
return {
form: {},
value1: [],
options1: [
{
value: "选项1",
label: "全流程系统",
},
{
value: "选项2",
label: "新核心-客户组件",
},
{
value: "选项3",
label: "新核心-贷款组件",
},
{
value: "选项4",
label: "新核心-CP组件",
},
{
value: "选项5",
label: "评级器系统",
},
],
value2: [],
options2: [
{
value: "选项1",
label: "北京分行",
},
{
value: "选项2",
label: "天津分行",
},
{
value: "选项3",
label: "河北分行",
},
{
value: "选项4",
label: "山西分行",
},
{
value: "选项5",
label: "上海分行",
},
{
value: "选项6",
label: "浙江分行",
},
{
value: "选项7",
label: "深圳分行",
},
{
value: "选项8",
label: "安徽分行",
},
],
value3: [],
options3: [
{
value: "选项1",
label: "客户一处",
},
{
value: "选项2",
label: "客户二处",
},
{
value: "选项3",
label: "客户三处",
},
{
value: "选项4",
label: "经营管理处",
},
{
value: "选项5",
label: "信息科技处",
},
],
value4: "",
options4: [
{
value: "选项1",
label: "张三",
},
{
value: "选项2",
label: "李四",
},
{
value: "选项3",
label: "王五",
},
{
value: "选项4",
label: "赵六",
},
],
value5: "",
options5: [
{
value: "选项1",
label: "草稿",
},
{
value: "选项2",
label: "审批中",
},
{
value: "选项3",
label: "退回",
},
{
value: "选项4",
label: "待验证",
},
{
value: "选项5",
label: "结束",
},
],
checkList1: [],
tableData: [
{
id: 4,
spdbh: "XD20210304-1",
xtmc: "全流程",
tcbm: "北京分行客户一处",
sqrq: "2022/02/03",
bgyy: "系统缺陷",
lczt: "草稿",
lxdh: "133****2323",
lxr: "张三",
dqclbm:'数据质量归口管理部门'
},
{
id: 3,
spdbh: "XD20210304-2",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/05/06",
bgyy: "用户操作失误",
lczt: "审批中",
lxdh: "182****5523",
lxr: "李四",
dqclbm:'系统开发管理部门'
},
{
id: 1,
spdbh: "XD20210304-3",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/10/09",
bgyy: "历史数据",
lczt: "退回",
lxdh: "133****2323",
lxr: "张三",
dqclbm:'数据质量归口管理部门'
},
{
id: 5,
spdbh: "XD20210304-5",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/01/09",
bgyy: "历史数据",
lczt: "待验证",
lxdh: "133****2323",
lxr: "张三",
dqclbm:'业务归口管理部门'
},
{
id: 2,
spdbh: "XD20210304-4",
xtmc: "新核心-客户组件",
tcbm: "北京分行客户一处",
sqrq: "2022/09/14",
bgyy: "历史数据",
lczt: "结束",
lxdh: "133****2323",
lxr: "张三",
dqclbm:'科技部一把手'
},
],
multipleSelection: [],
centerDialogVisible: false,
dTableData1: [
// { wjmc: "xx审批单", wjms: "", scr: "张三" },
// { wjmc: "xxxx上线脚本", wjms: "", scr: "张三" },
// { wjmc: "xxxx操作步骤", wjms: "", scr: "张三" },
],
multipleSelection: [],
centerDialogVisible: false,
dTableData1: [{ wjmc: "xx审批单", wjms: "", scr: "张三" }],
dTableData2: [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/12/11",
clr: "李xx",
yj: "涉及组件和部门",
},
],
dForm: {},
nameValue: "全流程",
input1: "北京分行",
input2: "客户一处",
input3: "张三",
input4: "010-64555798",
input5: "历史原因,合同签订日期无法修改",
input6: "合同状态为'已签订'时无法通过前台修改",
input8:
"数据管理系统数据质量考核提示指标'(2-107)合同起始日不早于合同签订日'问题,影响分行2季度考核绩效。",
checkList2: ["历史数据"],
rForm: {},
radio1: 0,
radio2: 1,
radio3: 1,
rolesName: "",
rejectDialog: false,
rejectVal: "",
rejectOptions: [],
textarea1: "",
dialogForm: {},
numVal: "",
timeVal: "",
fiveForm: {},
textarea2: "",
radio4: "",
radio5: "",
radio6: "",
radio7: "",
twoForm: {},
twoValue: [],
twoOptions: [
{
value: "选项1",
label: "全流程系统",
},
{
value: "选项2",
label: "新核心-客户组件",
},
{
value: "选项3",
label: "新核心-贷款组件",
},
{
value: "选项4",
label: "新核心-CP组件",
},
{
value: "选项5",
label: "评级器系统",
},
],
twoValue1: [],
twoValue2: [],
twoValue3: [],
twoValue4: [],
twoOptions1: [
{
value: "选项1",
label: "业务归口管理部门",
},
{
value: "选项2",
label: "系统管理部门",
},
{
value: "选项3",
label: "系统开发管理部门",
},
{
value: "选项4",
label: "系统运维管理部门",
},
],
twoOptions2: [
{
value: "选项1",
label: "业务归口管理部门",
},
{
value: "选项2",
label: "系统管理部门",
},
{
value: "选项3",
label: "系统开发管理部门",
},
{
value: "选项4",
label: "系统运维管理部门",
},
],
twoOptions3: [
{
value: "选项1",
label: "业务归口管理部门",
},
{
value: "选项2",
label: "系统管理部门",
},
{
value: "选项3",
label: "系统开发管理部门",
},
{
value: "选项4",
label: "系统运维管理部门",
},
],
twoOptions4: [
{
value: "选项1",
label: "业务归口管理部门",
},
{
value: "选项2",
label: "系统管理部门",
},
{
value: "选项3",
label: "系统开发管理部门",
},
{
value: "选项4",
label: "系统运维管理部门",
},
],
radio8: "",
sevenForm: {},
radio9: "",
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
roleName: (o, n) => {
this.rolesName = o;
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
checkDetails() {
this.centerDialogVisible = true;
switch (this.roleName) {
case "张三":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "涉及组件和部门",
},
];
break;
case "李四":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "涉及组件和部门",
},
];
break;
case "王五":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
];
break;
case "赵六":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
{
lcmc: "业务归口管理部门",
clrq: "2022/1/13",
clr: "王五",
yj: "通过,变更类型准确,内容合理",
},
];
break;
case "田七":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
{
lcmc: "业务归口管理部门",
clrq: "2022/1/13",
clr: "王五",
yj: "通过,变更类型准确,内容合理",
},
{
lcmc: "系统管理部门",
clrq: "2022/1/14",
clr: "赵六",
yj: "通过",
},
];
break;
case "黄八":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
{
lcmc: "业务归口管理部门",
clrq: "2022/1/13",
clr: "王五",
yj: "通过,变更类型准确,内容合理",
},
{
lcmc: "系统管理部门",
clrq: "2022/1/14",
clr: "赵六",
yj: "通过",
},
{
lcmc: "数据质量归口管理部门",
clrq: "2022/1/15",
clr: "田七",
yj: "通过,未触发数据质量考核",
},
];
break;
case "钟九":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
{
lcmc: "业务归口管理部门",
clrq: "2022/1/13",
clr: "王五",
yj: "通过,变更类型准确,内容合理",
},
{
lcmc: "系统管理部门",
clrq: "2022/1/14",
clr: "赵六",
yj: "通过",
},
{
lcmc: "数据质量归口管理部门",
clrq: "2022/1/15",
clr: "田七",
yj: "通过,未触发数据质量考核",
},
{
lcmc: "系统开发管理部门",
clrq: "2022/1/16",
clr: "黄八",
yj: "通过",
},
];
break;
case "刘十":
this.dTableData2 = [
{
lcmc: "北京分行客户一处(提出部门)",
clrq: "2022/1/11",
clr: "张三",
yj: "请审批",
},
{
lcmc: "科技部开发一处",
clrq: "2022/1/12",
clr: "李四",
yj: "通过,涉及新核心-客户组件系统",
},
{
lcmc: "业务归口管理部门",
clrq: "2022/1/13",
clr: "王五",
yj: "通过,变更类型准确,内容合理",
},
{
lcmc: "系统管理部门",
clrq: "2022/1/14",
clr: "赵六",
yj: "通过",
},
{
lcmc: "数据质量归口管理部门",
clrq: "2022/1/15",
clr: "田七",
yj: "通过,未触发数据质量考核",
},
{
lcmc: "系统开发管理部门",
clrq: "2022/1/16",
clr: "黄八",
yj: "通过",
},
{
lcmc: "科技部一把手",
clrq: "2022/1/17",
clr: "钟九",
yj: "通过",
},
];
break;
}
},
exitDetails() {
this.centerDialogVisible = false;
this.dTableData2 = [];
this.rejectVal = "";
this.numVal = "";
this.timeVal = "";
this.textarea1 = "";
this.textarea2 = "";
this.radio4 = "";
this.radio5 = "";
this.radio6 = "";
this.radio7 = "";
},
rejectDetails() {
this.rejectDialog = true;
switch (this.roleName) {
case "李四":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
];
break;
case "王五":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
];
break;
case "赵六":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
{
label: "业务归口管理部门",
value: "选项3",
},
];
break;
case "田七":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
{
label: "业务归口管理部门",
value: "选项3",
},
{
label: "系统管理部门",
value: "选项4",
},
];
break;
case "黄八":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
{
label: "业务归口管理部门",
value: "选项3",
},
{
label: "系统管理部门",
value: "选项4",
},
{
label: "数据质量归口管理部门",
value: "选项5",
},
];
break;
case "钟九":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
{
label: "业务归口管理部门",
value: "选项3",
},
{
label: "系统管理部门",
value: "选项4",
},
{
label: "数据质量归口管理部门",
value: "选项5",
},
{
label: "系统开发管理部门",
value: "选项6",
},
];
break;
case "刘十":
this.rejectOptions = [
{
label: "北京分行客户一处(提出部门)",
value: "选项1",
},
{
label: "科技部开发一处",
value: "选项2",
},
{
label: "业务归口管理部门",
value: "选项3",
},
{
label: "系统管理部门",
value: "选项4",
},
{
label: "数据质量归口管理部门",
value: "选项5",
},
{
label: "系统开发管理部门",
value: "选项6",
},
{
label: "科技部一把手",
value: "选项7",
},
];
break;
}
},
submitReject() {
this.centerDialogVisible = false;
this.rejectDialog = false;
this.$message({
message: "驳回成功",
type: "success",
});
this.rejectVal = "";
this.numVal = "";
this.timeVal = "";
this.textarea1 = "";
this.textarea2 = "";
this.radio4 = "";
this.radio5 = "";
this.radio6 = "";
this.radio7 = "";
this.radio8 = "";
this.radio9 = "";
},
closeReject() {
this.rejectDialog = false;
this.$message({
message: "取消驳回",
type: "info",
});
this.rejectVal = "";
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.name_style {
.el-input {
.el-input__inner {
height: 30px;
width: 445px;
}
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
/* .ek-Kdfkljl{
display: ;
font-display: aotuo;
display: flex: -moz-animation: -moz-animation: skhk;;;;
display: grid: -moz-animation: -moz-animation: ssss;;;;
}*/
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
/deep/.form1 {
.el-form-item {
.el-form-item__content {
.el-input__inner {
width: 170px;
}
}
}
}
/deep/.el-input {
.el-input__inner {
width: 180px;
}
}
// /deep/.el-checkbox-group {
// display: flex;
// flex-direction: column;
// }
.top-bor {
display: flex;
border: 1px solid #ebeef5;
border-bottom: none;
height: 30px;
color: #606266;
background-color: whitesmoke;
.top-left {
padding-left: 5px;
width: 635px;
border-right: 1px solid #ebeef5;
// margin-right: 2px;
}
.top-right {
padding-left: 5px;
font-size: 14px;
line-height: 30px;
width: 638px;
display: flex;
justify-content: space-between;
}
}
.d-container {
display: flex;
.left {
margin-right: -1px;
flex: 1;
.title-mid {
background-color: whitesmoke;
color: #606266;
border: 1px solid #ebeef5;
border-top: none;
border-bottom: none;
height: 30px;
line-height: 30px;
font-size: 14px;
padding-left: 5px;
}
}
.right {
flex: 1;
border: 1px solid #ebeef5;
// border-left: none;
.form-reason {
/deep/.el-form-item__label {
margin-top: 30px;
}
}
.right-title {
background-color: whitesmoke;
height: 30px;
line-height: 30px;
padding-left: 5px;
}
}
// /deep/.d-container {
// .el-select {
// .el-input__inner {
// width: 160px;
// }
// }
// }
}
</style>
<template>
<div>
<div v-show="!showTables">
<div
style="display:flex"
v-for="(v,i) in formList"
:key="i"
>
<el-form
:model="v.form1"
:inline="true"
label-width="110px"
>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item style="font-weight:bold">
<span slot="label">
<span>图表{{formList.length===1?"":i+1}}配置参数</span>
</span>
</el-form-item>
<el-form-item label="图表类型">
<el-select
v-model="v.form1.value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="v.form1.value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="v.form1.value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item
label="统计范围"
style="font-weight:bold"
></el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="v.form1.value4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="v.form1.value5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检核日期">
<el-date-picker
v-model="v.form1.value6"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-row>
</el-form>
<div class="add-btn-top">
<el-button
size="mini"
type="primary"
style="width:110px"
v-if="i===0"
>新增统计图表</el-button>
<div
v-else
style="margin-left:10px"
>
<el-button
size="mini"
type="primary"
@click="delConfig(i)"
>删除</el-button>
<el-button
size="mini"
type="primary"
>保存</el-button>
</div>
<el-button
size="mini"
type="primary"
>新增统计范围条件</el-button>
</div>
</div>
<div class="add-btn">
<el-button
size="mini"
type="primary"
@click="addConfig"
>新增图表默认配置</el-button>
<el-button
size="mini"
type="primary"
@click="showTable"
>生成图表</el-button>
</div>
</div>
<div v-show="showTables">
<div style="text-align:right ">
<el-button
type="primary"
size="mini"
>生成预览报告</el-button>
</div>
<el-table
:data="tableData1"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="数据变更问题统计">
<el-table-column
label="序号"
prop="id"
></el-table-column>
<el-table-column
label="统计项"
prop="tjx"
></el-table-column>
<el-table-column
label="上月"
prop="sy"
></el-table-column>
<el-table-column
label="上季度"
prop="sjd"
></el-table-column>
<el-table-column
label="近半年"
prop="jbn"
></el-table-column>
<el-table-column
label="近一年"
prop="jyn"
></el-table-column>
<el-table-column
label="上年"
prop="sn"
></el-table-column>
<el-table-column
label="环比"
prop="hb"
></el-table-column>
<el-table-column
label="同比"
prop="tb"
></el-table-column>
</el-table-column>
</el-table>
<div class="chart-flex">
<div
id="pieCharts"
style="width:290px;height:290px;"
v-show="showChart"
></div>
<div>
<el-table
:data="pieTable"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="汇总表">
<el-table-column
label="序号"
prop="id"
width="100"
></el-table-column>
<el-table-column
label="申请原因类型"
prop="sqyylx"
width="150"
></el-table-column>
<el-table-column
label="系统个数"
prop="xtgs"
width="100"
></el-table-column>
<el-table-column
label="数据补丁个数"
prop="sjbdgs"
width="150"
></el-table-column>
</el-table-column>
</el-table>
</div>
<div>
<div
class="chart-flex"
style="justify-content:flex-end"
>
<el-button
type="primary"
size="mini"
@click="showPie"
>生成</el-button>
<el-button
type="primary"
size="mini"
@click="delPie"
>删除</el-button>
</div>
<el-form
:model="pieForm"
:inline="true"
label-width="100px"
>
<el-row style="font-weight:600">
<el-form-item label="图表配置参数"></el-form-item>
</el-row>
<el-form-item label="图表类型">
<el-select
v-model="pieValue1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="pieValue2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="pieValue3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-row style="font-weight:650">
<el-form-item label="图表统计范围"></el-form-item>
</el-row>
<el-form-item label="系统名称">
<el-select
v-model="pieValue4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="pieValue5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="变更原因">
<el-select
v-model="pieValue6"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions6"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker
v-model="pieValue7"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "SJBGTJTB",
data() {
return {
currentLabel: "",
currentId: "",
filterText: "",
startDate: "",
endDate: "",
formList: [
{
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
},
],
showTables: false,
tableData1: [
{
id: 1,
tjx: "系统个数",
sy: "6",
sjd: "6",
jbn: "7",
jyn: "7",
sn: "7",
hb: "1%",
tb: "1%",
},
{
id: 2,
tjx: "数据补丁个数",
sy: "9",
sjd: "12",
jbn: "18",
jyn: "29",
sn: "32",
hb: "1%",
tb: "20%",
},
{
id: 3,
tjx: "分行个数",
sy: "6",
sjd: "8",
jbn: "9",
jyn: "12",
sn: "15",
hb: "1.50%",
tb: "2%",
},
],
pieTable: [
{
id: 1,
sqyylx: "用户操作失误",
xtgs: "4",
sjbdgs: "13",
},
{
id: 2,
sqyylx: "系统缺失",
xtgs: "3",
sjbdgs: "24",
},
{
id: 3,
sqyylx: "历史数据",
xtgs: "9",
sjbdgs: "7",
},
{
id: 4,
sqyylx: "历史数据",
xtgs: "4",
sjbdgs: "3",
},
],
pieForm: {},
pieValue1: [],
pieOptions1: [
{
label: "扇形图",
value: "选项1",
},
{
label: "柱状图",
value: "选项2",
},
{
label: "折线图",
value: "选项3",
},
],
pieValue2: [],
pieOptions2: [
{
label: "维度1",
value: "选项1",
},
{
label: "维度2",
value: "选项2",
},
{
label: "维度3",
value: "选项3",
},
],
pieValue3: [],
pieOptions3: [
{
label: "类型1",
value: "选项1",
},
{
label: "类型2",
value: "选项2",
},
{
label: "类型3",
value: "选项3",
},
],
pieValue4: [],
pieOptions4: [
{
label: "系统1",
value: "选项1",
},
{
label: "系统2",
value: "选项2",
},
{
label: "系统3",
value: "选项3",
},
],
pieValue5: [],
pieOptions5: [
{
label: "分行1",
value: "选项1",
},
{
label: "分行2",
value: "选项2",
},
{
label: "分行3",
value: "选项3",
},
],
pieValue6: [],
pieOptions6: [
{
label: "原因1",
value: "选项1",
},
{
label: "原因2",
value: "选项2",
},
{
label: "原因3",
value: "选项3",
},
],
pieValue7: "",
showChart: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
// this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {
this.drawPieCharts();
},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
addConfig() {
this.formList.push({
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
});
},
delConfig(index) {
this.formList.splice(this.formList.indexOf(index), 1);
},
showTable() {
this.showTables = true;
},
drawPieCharts() {
var chartDom = document.getElementById("pieCharts");
var myChart = echarts.init(chartDom);
var option;
option = {
title: {
text: "",
},
tooltip: {},
grid: {
left: "0",
top: "0",
right: "0",
bottom: "0",
borderWidth: 1,
borderColor: "#EBEEF5",
show: true,
},
series: [
{
name: "",
type: "pie",
radius: "90%",
data: [
{ value: 454, name: "其他" },
{ value: 613, name: "用户操作问题" },
{ value: 580, name: "历史数据问题" },
{ value: 500, name: "系统功能缺失" },
{ value: 658, name: "系统功能缺陷" },
],
label: {
normal: {
show: true,
position: "inner",
formatter: "{b}: \n {d}%",
},
},
itemStyle: {
normal: {
label: {
textStyle: {
color: "#ffffff",
},
},
},
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
};
option && myChart.setOption(option);
},
showPie() {
this.showChart = true;
},
delPie() {
this.showChart = false;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 180px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
\ No newline at end of file
<template>
<div>
<el-form
:model="form"
:inline="true"
class="form1"
label-width="80px"
>
<el-row type="flex">
<el-form-item label="系统名称">
<el-select
v-model="value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="提出部门">
<el-select
v-model="value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker
v-model="value4"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
</el-row>
<el-row
type="flex"
justify="space-between"
>
<el-form-item label="变更原因">
<el-checkbox-group v-model="checkList1">
<el-checkbox label="用户操作失误"></el-checkbox>
<el-checkbox label="系统缺陷"></el-checkbox>
<el-checkbox label="历史数据"></el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item>
<el-button
type="primary"
size="mini"
>查询</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
:data="tableData"
style="width: 100%"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="id"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="spdbh"
label="审批单编号"
>
<template slot-scope="scope">
<el-button type="text">{{scope.row.spdbh}}</el-button>
</template>
</el-table-column>
<el-table-column
prop="xtmc"
label="系统名称"
>
</el-table-column><el-table-column
prop="fhmc"
label="分行名称"
>
</el-table-column><el-table-column
prop="tcbm"
label="提出部门"
>
</el-table-column><el-table-column
prop="sqrq"
label="申请日期"
>
</el-table-column><el-table-column
prop="lxr"
label="联系人"
>
</el-table-column><el-table-column
prop="lxdh"
label="联系电话"
>
</el-table-column><el-table-column
prop="bgyy"
label="变更原因"
>
</el-table-column><el-table-column
prop="lczt"
label="流程状态"
>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "SJBGTZ",
data() {
return {
form: {},
value1: [],
options1: [
{
value: "选项1",
label: "全流程系统",
},
{
value: "选项2",
label: "新核心-客户组件",
},
{
value: "选项3",
label: "新核心-贷款组件",
},
{
value: "选项4",
label: "新核心-CP组件",
},
{
value: "选项5",
label: "评级器系统",
},
],
value2: [],
options2: [
{
value: "选项1",
label: "北京分行",
},
{
value: "选项2",
label: "天津分行",
},
{
value: "选项3",
label: "河北分行",
},
{
value: "选项4",
label: "山西分行",
},
{
value: "选项5",
label: "上海分行",
},
{
value: "选项6",
label: "浙江分行",
},
{
value: "选项7",
label: "深圳分行",
},
{
value: "选项8",
label: "安徽分行",
},
],
value3: [],
options3: [
{
value: "选项1",
label: "客户一处",
},
{
value: "选项2",
label: "客户二处",
},
{
value: "选项3",
label: "客户三处",
},
{
value: "选项4",
label: "经营管理处",
},
{
value: "选项5",
label: "信息科技处",
},
],
value4: "",
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
checkList1: [],
tableData: [
{
id: 1,
spdbh: "XD20210304-1",
xtmc: "全流程",
fhmc: "北京分行",
tcbm: "客户一处",
sqrq: "2022/2/3",
lxr: "张三",
lxdh: "136****3468",
bgyy: "系统缺陷",
lczt: "待系统开发管理部门审批",
},
{
id: 2,
spdbh: "XD20210304-2",
xtmc: "新核心-客户组件",
fhmc: "上海分行",
tcbm: "客户一处",
sqrq: "2022/5/6",
lxr: "李四",
lxdh: "136****3468",
bgyy: "用户操作失误",
lczt: "待系统开发管理部门审批",
},
],
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
// /deep/.el-input {
// .el-input__inner {
// height: 30px;
// width: 150px;
// }
// }
// /deep/.el-select {
// .el-input {
// .el-input__inner {
// height: 30px;
// width: 180px;
// }
// }
// }
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
/deep/.form1 {
.el-form-item {
.el-form-item__content {
.el-input__inner {
height: 35px;
width: 170px;
}
.el-date-editor {
width: 240px;
height: 40px;
}
}
}
}
/deep/.el-input {
.el-input__inner {
width: 180px;
}
}
// /deep/.el-checkbox-group {
// display: flex;
// flex-direction: column;
// }
.top-bor {
display: flex;
border: 1px solid #ebeef5;
border-bottom: none;
height: 30px;
color: #606266;
background-color: whitesmoke;
.top-left {
padding-left: 5px;
width: 635px;
border-right: 1px solid #ebeef5;
// margin-right: 2px;
}
.top-right {
padding-left: 5px;
font-size: 14px;
line-height: 30px;
width: 648px;
display: flex;
justify-content: space-between;
}
}
.d-container {
display: flex;
.left {
margin-right: -1px;
flex: 1;
.title-mid {
background-color: whitesmoke;
color: #606266;
border: 1px solid #ebeef5;
border-top: none;
border-bottom: none;
height: 30px;
line-height: 30px;
font-size: 14px;
padding-left: 5px;
}
}
.right {
flex: 1;
border: 1px solid #ebeef5;
// border-left: none;
padding-left: 10px;
.form-reason {
/deep/.el-form-item__label {
margin-top: 30px;
}
}
}
/deep/.d-container {
.el-select {
.el-input__inner {
width: 140px;
}
}
}
}
</style>
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div>
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div v-if="currentId === 5">
<el-form
:inline='true'
:model='fifthFormInline'
class="demo-form-inline"
>
<el-form-item label='涉及系统'>
<el-select
v-model="value1"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in aOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label='数据项名称'>
<el-select
v-model="value2"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in bOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label='粒度分类'>
<el-select
v-model="value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in cOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label='监测指标'>
<el-select
v-model="value4"
multiple
filterable
placeholder="请选择"
>
<el-option
v-for="item in dOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label='应用场景'>
<el-checkbox v-model="checked1">考核</el-checkbox>
<el-checkbox v-model="checked2">准考核</el-checkbox>
<el-checkbox v-model="checked3">日常监测</el-checkbox>
<el-checkbox v-model="checked4">数据探查</el-checkbox>
</el-form-item>
<el-form-item>
<el-button
type='primary'
size='mini'
>查询</el-button>
</el-form-item>
<el-form-item>
<el-button
type='primary'
size='mini'
>下载</el-button>
</el-form-item>
</el-form>
<el-table
:data="tableData_4"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
prop="id"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="sjxt"
label="涉及系统"
>
</el-table-column>
<el-table-column
prop="sjx"
label="数据项"
>
</el-table-column>
<el-table-column
prop="ldfl"
label="粒度分类"
>
</el-table-column>
<el-table-column
prop="gkwd"
label="管控维度"
>
</el-table-column>
<el-table-column
prop="gkyq"
label="管控要求"
>
</el-table-column>
<el-table-column
prop="cllj"
label="采录路径"
>
</el-table-column>
<el-table-column
prop="sjjjczb"
label="涉及及监测指标"
>
</el-table-column>
</el-table>
</div>
<div style="min-width:1100px">
<JHGZTJT v-if="currentId === 6"></JHGZTJT>
<CSPZB v-if="currentId === 7"></CSPZB>
<ZBQXPZ v-if="currentId === 8"></ZBQXPZ>
<JCSJSTGL v-if="currentId === 9"></JCSJSTGL>
<FHCJGXPZB v-if="currentId === 13"></FHCJGXPZB>
</div>
</div>
</div>
</div>
</template>
<script>
import JHGZTJT from "@/components/JHGZTJT.vue";
import CSPZB from "@/components/CSPZB.vue";
import ZBQXPZ from "@/components/ZBQXPZ.vue";
import JCSJSTGL from "@/components/JCSJSTGL.vue";
import FHCJGXPZB from "@/components/FHCJGXPZB.vue";
export default {
name: "SJZLGZK",
components: {
JHGZTJT,
CSPZB,
ZBQXPZ,
JCSJSTGL,
FHCJGXPZB
},
data() {
return {
treeData: [
{
id: 1,
label: "数据质量规则库",
children: [
{
id: 10,
label: "数据质量规则管理",
children: [
{
id: 2,
label: "质量规则管理",
},
{
id: 4,
label: "质量作业管理",
},
],
},
{
id: 11,
label: "数据质量规则统计分析",
children: [
{
id: 5,
label: "质量规则速查卡",
},
{
id: 6,
label: "检核规则统计图",
},
],
},
{
id: 12,
label: "参数配置管理",
children: [
{
id: 7,
label: "基础数据表配置",
},
{
id: 8,
label: "指标权限组配置",
},
// {
// id: 9,
// label: "基础数据视图管理",
// },
{
id: 13,
label: "分行层级关系配置表",
},
],
},
],
},
],
currentLabel: "",
currentId: 2,
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
tabTitle: "数据质量规则库",
tabName: "first",
editableTabsValue: "first",
editableTabs: [],
tabIndex: 1,
secondFormInline: {},
zbbh: "",
zbmc: "",
stateValue: "已发布",
configValue: "",
thirdFormInline: {},
forthFormInline: {},
fifthFormInline: {},
aOptions: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
bOptions: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
cOptions: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
dOptions: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
checked1: "",
checked2: "",
checked3: "",
checked4: "",
tableData_1: [],
tableData_4: [
{
id: "1",
sjxt: "新核心-客户信息管理组件",
sjx: "企业规模",
ldfl: "客户",
gkwd: "A-完整性,B-合理性",
gkyq: '非同业企业客户"企业规模不恩能够为空"',
cllj: "新核心对公客户管理系统->客户信息管理->对公客户信息->单一客户->基本信息->概况->摘要信息->企业规模",
sjjjczb: "非同业企业客户企业规模为空",
},
{
id: "2",
sjxt: "评级器系统",
sjx: "营业收入",
ldfl: "客户",
gkwd: "A-完整性,B-合理性",
gkyq: '非同业企业客户,企业规模为"小型"或"微型"时,营业收入≥100亿元的需预警;企业规模为"大型"或"中型"时,营业收入≥500亿元的需预警(最新年报 优先取母公司报表)',
cllj: "评级器->评级对象管理->客户评级对象管理->客户查看->财务报表信息",
sjjjczb: "非同业企业客户的营业收入异常预警",
},
],
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
.mr-form {
margin-right: 70px;
}
.icon-line {
border: 1px solid #d2d2d2;
width: 25px;
height: 10px;
padding: 10px;
line-height: 10px;
text-align: center;
color: #666;
font-size: 17px;
}
.c-handle {
cursor: pointer;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
</style>
<template>
<div>
<div style="display:flex;justify-content:space-between">
<span style="line-height:30px;margin-right:5px">检核日期</span>
<el-date-picker
v-model="value1"
type="date"
placeholder="开始日期"
>
</el-date-picker>
<el-date-picker
v-model="value1"
type="date"
placeholder="结束日期"
>
</el-date-picker>
<el-button
size="mini"
type="primary"
>生成数据质量报告</el-button>
<el-button
size="mini"
type="primary"
>生成上月报告</el-button>
<el-button
size="mini"
type="primary"
>生成上季度报告</el-button>
<el-button
size="mini"
type="primary"
>生成上年报告</el-button>
<el-button
size="mini"
type="primary"
>生成近一年报告</el-button>
<el-button
size="mini"
type="primary"
>删除</el-button>
</div>
<el-table
:data="tableData"
border
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="50"
></el-table-column>
<el-table-column
label="序号"
prop="id"
width="50"
></el-table-column>
<el-table-column
label="报告名称"
prop="bgmc"
></el-table-column>
<el-table-column
label="统计开始日期"
prop="tjksrq"
></el-table-column>
<el-table-column
label="统计结束日期"
prop="tjjsrq"
></el-table-column>
<el-table-column
label="报告频度"
prop="bgpd"
></el-table-column>
<el-table-column
label="问题数"
prop="wts"
></el-table-column>
<el-table-column
label="举证数"
prop="jzs"
></el-table-column>
<el-table-column
label="扣分机构"
prop="kfjg"
></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="mini"
>
下载
</el-button>
<el-button
type="text"
size="mini"
>
上传
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "SJZLJCBG",
data() {
return {
value1: "",
value2: "",
multipleSelection: [],
tableData: [
{
id: 1,
bgmc: "202203月度数据质量报告",
tjksrq: "2022/3/1",
tjjsrq: "2022/3/31",
bgpd: "月报",
wts: 265,
jzs: 12,
kfjg: 3,
},
{
id: 2,
bgmc: "202204月度数据质量报告",
tjksrq: "2022/4/1",
tjjsrq: "2022/4/30",
bgpd: "月报",
wts: 265,
jzs: 12,
kfjg: 3,
},
{
id: 3,
bgmc: "202205月度数据质量报告",
tjksrq: "2022/5/1",
tjjsrq: "2022/5/31",
bgpd: "月报",
wts: 265,
jzs: 12,
kfjg: 3,
},
{
id: 4,
bgmc: "2021年度数据质量报告",
tjksrq: "2021/1/1",
tjjsrq: "2021/12/31",
bgpd: "年报",
wts: 3369,
jzs: 166,
kfjg: 12,
},
],
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleSelectionChange(val) {
this.multipleSelection = val;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-date-editor {
width: 160px;
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
\ No newline at end of file
<template>
<div>
<div v-show="!showTables">
<div
style="display:flex"
v-for="(v,i) in formList"
:key="i"
>
<el-form
:model="v.form1"
:inline="true"
label-width="110px"
>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item style="font-weight:bold">
<span slot="label">
<span>图表{{formList.length===1?"":i+1}}配置参数</span>
</span>
</el-form-item>
<el-form-item label="图表类型">
<el-select
v-model="v.form1.value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="v.form1.value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="v.form1.value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item
label="统计范围"
style="font-weight:bold"
></el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="v.form1.value4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="v.form1.value5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检核日期">
<el-date-picker
v-model="v.form1.value6"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-row>
</el-form>
<div class="add-btn-top">
<el-button
size="mini"
type="primary"
style="width:110px"
v-if="i===0"
>新增统计图表</el-button>
<div
v-else
style="margin-left:10px"
>
<el-button
size="mini"
type="primary"
@click="delConfig(i)"
>删除</el-button>
<el-button
size="mini"
type="primary"
>保存</el-button>
</div>
<el-button
size="mini"
type="primary"
>新增统计范围条件</el-button>
</div>
</div>
<div class="add-btn">
<el-button
size="mini"
type="primary"
@click="addConfig"
>新增图表默认配置</el-button>
<el-button
size="mini"
type="primary"
@click="showTable"
>生成图表</el-button>
</div>
</div>
<div v-show="showTables">
<div style="text-align:right ">
<el-button
type="primary"
size="mini"
>生成预览报告</el-button>
<el-button
type="primary"
size="mini"
>生成上年报告</el-button>
<el-button
type="primary"
size="mini"
>生成上月报告</el-button>
<el-button
type="primary"
size="mini"
>生成近一年报告</el-button>
</div>
<el-table
:data="tableData2"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="举证情况汇总表">
<el-table-column
label="序号"
prop="id"
></el-table-column>
<el-table-column
label="统计项"
prop="tjx"
></el-table-column>
<el-table-column
label="xx年xx月"
prop="date"
></el-table-column>
<el-table-column
label="本季度/年度累计"
prop="lj"
></el-table-column>
<el-table-column
label="近半年"
prop="jbn"
></el-table-column>
<el-table-column
label="近一年"
prop="jyn"
></el-table-column>
<el-table-column
label="上年"
prop="sn"
></el-table-column>
<el-table-column
label="环比"
prop="hb"
></el-table-column>
<el-table-column
label="同比"
prop="tb"
></el-table-column>
</el-table-column>
</el-table>
<div class="chart-flex">
<div
id="pieCharts"
style="width:290px;height:290px;"
v-show="showChart"
></div>
<div>
<el-table
:data="pieTable"
:summary-method="getSummaries"
show-summary
>
<el-table-column label="汇总表">
<el-table-column
label="序号"
prop="id"
width="100"
></el-table-column>
<el-table-column
label="分行名称"
prop="fhmc"
width="200"
></el-table-column>
<el-table-column
label="举证问题数"
prop="jzwts"
width="250"
></el-table-column>
</el-table-column>
</el-table>
</div>
<div>
<div
class="chart-flex"
style="justify-content:flex-end"
>
<el-button
type="primary"
size="mini"
@click="showPie"
>生成</el-button>
<el-button
type="primary"
size="mini"
@click="delPie"
>删除</el-button>
</div>
<el-form
:model="pieForm"
:inline="true"
label-width="100px"
>
<el-row style="font-weight:600">
<el-form-item label="图表配置参数"></el-form-item>
</el-row>
<el-form-item label="图表类型">
<el-select
v-model="pieValue1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="pieValue2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="pieValue3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-row style="font-weight:650">
<el-form-item label="图表统计范围"></el-form-item>
</el-row>
<el-form-item label="系统名称">
<el-select
v-model="pieValue4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="pieValue5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="变更原因">
<el-select
v-model="pieValue6"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions6"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker
v-model="pieValue7"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "SJZLJZTB",
data() {
return {
formList: [
{
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
},
],
showTables: false,
tableData2: [
{
id: 1,
tjx: "问题数",
date: "15",
lj: "40",
jbn: "88",
jyn: "190",
sn: "188",
hb: "30%",
tb: "22%",
},
{
id: 2,
tjx: "分行数",
date: "9",
lj: "11",
jbn: "13",
jyn: "15",
sn: "15",
hb: "10%",
tb: "12%",
},
{
id: 3,
tjx: "指标数",
date: "6",
lj: "9",
jbn: "9",
jyn: "10",
sn: "12",
hb: "5%",
tb: "6%",
},
{
id: 4,
tjx: "客户数",
date: "12",
lj: "35",
jbn: "60",
jyn: "118",
sn: "123",
hb: "10%",
tb: "15",
},
{
id: 5,
zb: "计入扣分问题数",
sy: "3",
sjd: "12",
jbn: "20",
jyn: "40",
sn: "42",
hb: "-3%",
tb: "-2%",
},
{
id: 6,
zb: "计入扣分分行数",
sy: "3",
sjd: "9",
jbn: "16",
jyn: "35",
sn: "35",
hb: "2%",
tb: "3%",
},
],
pieTable: [
{
id: 1,
fhmc: "贵州分行",
jzwts: "10",
},
{
id: 2,
fhmc: "河南分行",
jzwts: "8",
},
{
id: 3,
fhmc: "湖北分行",
jzwts: "8",
},
{
id: 4,
fhmc: "江苏分行",
jzwts: "6",
},
],
pieForm: {},
pieValue1: [],
pieOptions1: [
{
label: "扇形图",
value: "选项1",
},
{
label: "柱状图",
value: "选项2",
},
{
label: "折线图",
value: "选项3",
},
],
pieValue2: [],
pieOptions2: [
{
label: "维度1",
value: "选项1",
},
{
label: "维度2",
value: "选项2",
},
{
label: "维度3",
value: "选项3",
},
],
pieValue3: [],
pieOptions3: [
{
label: "类型1",
value: "选项1",
},
{
label: "类型2",
value: "选项2",
},
{
label: "类型3",
value: "选项3",
},
],
pieValue4: [],
pieOptions4: [
{
label: "系统1",
value: "选项1",
},
{
label: "系统2",
value: "选项2",
},
{
label: "系统3",
value: "选项3",
},
],
pieValue5: [],
pieOptions5: [
{
label: "分行1",
value: "选项1",
},
{
label: "分行2",
value: "选项2",
},
{
label: "分行3",
value: "选项3",
},
],
pieValue6: [],
pieOptions6: [
{
label: "原因1",
value: "选项1",
},
{
label: "原因2",
value: "选项2",
},
{
label: "原因3",
value: "选项3",
},
],
pieValue7: "",
showChart: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {
this.drawPieCharts();
},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
addConfig() {
this.formList.push({
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
});
},
delConfig(index) {
this.formList.splice(this.formList.indexOf(index), 1);
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = "合计";
return;
}
const values = data.map((item) => Number(item[column.property]));
if (!values.every((value) => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += "";
} else {
sums[index] = "";
}
});
return sums;
},
showTable() {
this.showTables = true;
},
drawPieCharts() {
var chartDom = document.getElementById("pieCharts");
var myChart = echarts.init(chartDom);
var option;
option = {
legend: {},
tooltip: {},
dataset: {
source: [
["product", "贵州分行", "河南分行", "湖北分行", "江苏分行"],
["举证数(个)", 10, 8, 8, 6],
],
},
xAxis: { type: "category", gridIndex: 0 },
// [
// { type: "category", gridIndex: 0 },
// { type: "category", gridIndex: 1 },
// ],
yAxis: { gridIndex: 0 },
// [{ gridIndex: 0 }, { gridIndex: 1 }],
grid: { bottom: "15%" ,right:"0%"},
// [{ bottom: "55%" }, { top: "55%" }],
series: [
// These series are in the first grid.
{ type: "bar", seriesLayoutBy: "row" },
// { type: "bar", seriesLayoutBy: "row" },
// { type: "bar", seriesLayoutBy: "row" },
// // These series are in the second grid.
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
],
};
option && myChart.setOption(option);
},
showPie() {
this.showChart = true;
},
delPie() {
this.showChart = false;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 180px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
\ No newline at end of file
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div>
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "SJZLKH",
data() {
return {
treeData: [
{
id: 1,
label: "数据质量管理(v1.0)",
children: [
{
id: 2,
label: "基础数据项查询",
},
{
id: 3,
label: "数据质量问题台账",
},
{
id: 4,
label: "数据质量问题举证台账",
},
{
id: 5,
label: "数据质量问题通知单",
},
{
id: 6,
label: "数据质量问题举证跟踪",
},
],
},
],
currentLabel: "",
currentId: "",
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
</style>
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div>
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div style="min-width:1100px">
<SJZLTJTB v-if="currentId === 6"></SJZLTJTB>
<SJZLJZTB v-if="currentId === 7"></SJZLJZTB>
<SJZLJCBG v-if="currentId === 8"></SJZLJCBG>
</div>
</div>
</div>
</div>
</template>
<script>
import SJZLTJTB from "@/components/SJZLTJTB.vue";
import SJZLJZTB from "@/components/SJZLJZTB.vue";
import SJZLJCBG from "@/components/SJZLJCBG.vue";
export default {
name: "SJZLRCJC",
components: {
SJZLTJTB,
SJZLJZTB,
SJZLJCBG,
},
data() {
return {
treeData: [
{
id: 1,
label: "数据质量管理(v1.0)",
children: [
{
id: 2,
label: "基础数据项查询",
},
{
id: 3,
label: "数据质量问题台账",
},
{
id: 4,
label: "数据质量问题举证台账",
},
{
id: 5,
label: "数据质量问题举证跟踪",
},
{
id: 6,
label: "数据质量问题统计图",
},
{
id: 7,
label: "数据质量举证图表",
},
{
id: 8,
label: "数据质量监测报告",
},
],
},
],
currentLabel: "",
currentId: "",
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 180px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div>
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "SJZLTC",
data() {
return {
treeData: [
{
id: 1,
label: "数据质量管理(v1.0)",
children: [
{
id: 2,
label: "基础数据项查询",
},
{
id: 3,
label: "数据探查明细查询",
},
],
},
],
currentLabel: "",
currentId: "",
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
</style>
<template>
<div>
<div v-show="!showTables">
<div
style="display:flex"
v-for="(v,i) in formList"
:key="i"
>
<el-form
:model="v.form1"
:inline="true"
label-width="110px"
>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item style="font-weight:bold">
<span slot="label">
<span>图表{{formList.length===1?"":i+1}}配置参数</span>
</span>
</el-form-item>
<el-form-item label="图表类型">
<el-select
v-model="v.form1.value1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="v.form1.value2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="v.form1.value3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-row
type="flex"
class="row-bg"
justify="space-between"
>
<el-form-item
label="统计范围"
style="font-weight:bold"
></el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="v.form1.value4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="v.form1.value5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in v.form1.options5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检核日期">
<el-date-picker
v-model="v.form1.value6"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-row>
</el-form>
<div class="add-btn-top">
<el-button
size="mini"
type="primary"
style="width:110px"
v-if="i===0"
>新增统计图表</el-button>
<div
v-else
style="margin-left:10px"
>
<el-button
size="mini"
type="primary"
@click="delConfig(i)"
>删除</el-button>
<el-button
size="mini"
type="primary"
>保存</el-button>
</div>
<el-button
size="mini"
type="primary"
>新增统计范围条件</el-button>
</div>
</div>
<div class="add-btn">
<el-button
size="mini"
type="primary"
@click="addConfig"
>新增图表默认配置</el-button>
<el-button
size="mini"
type="primary"
@click="showTable"
>生成图表</el-button>
</div>
</div>
<div v-show="showTables">
<div style="text-align:right ">
<el-button
type="primary"
size="mini"
>生成预览报告</el-button>
<el-button
type="primary"
size="mini"
>生成上年报告</el-button>
<el-button
type="primary"
size="mini"
>生成上月报告</el-button>
<el-button
type="primary"
size="mini"
>生成近一年报告</el-button>
</div>
<el-table
:data="tableData1"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="上月扣分问题明细(根据台账自动生成)">
<el-table-column
label="序号"
prop="id"
></el-table-column>
<el-table-column
label="问题开始日期"
prop="wtkssj"
></el-table-column>
<el-table-column
label="整改日期"
prop="zgrq"
></el-table-column>
<el-table-column
label="机构名称"
prop="jgmc"
></el-table-column>
<el-table-column
label="指标名称"
prop="zbmc"
></el-table-column>
<el-table-column
label="客户"
prop="kh"
></el-table-column>
<el-table-column
label="扣分原因"
prop="kfyy"
></el-table-column>
</el-table-column>
</el-table>
<el-table
:data="tableData2"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="数据检核及扣分情况(自动生成,预先设置好指标)">
<el-table-column
label="序号"
prop="id"
></el-table-column>
<el-table-column
label="指标"
prop="zb"
></el-table-column>
<el-table-column
label="上月"
prop="sy"
></el-table-column>
<el-table-column
label="上季度"
prop="sjd"
></el-table-column>
<el-table-column
label="近半年"
prop="jbn"
></el-table-column>
<el-table-column
label="近一年"
prop="jyn"
></el-table-column>
<el-table-column
label="上年"
prop="sn"
></el-table-column>
<el-table-column
label="环比"
prop="hb"
></el-table-column>
<el-table-column
label="同比"
prop="tb"
></el-table-column>
</el-table-column>
</el-table>
<div class="chart-flex">
<div
id="pieCharts"
style="width:290px;height:290px;"
v-show="showChart"
></div>
<div>
<el-table
:data="pieTable"
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="汇总表">
<el-table-column
label="序号"
prop="id"
width="100"
></el-table-column>
<el-table-column
label="业务维度"
prop="ywwd"
width="100"
></el-table-column>
<el-table-column
label="检核数"
prop="jhs"
width="100"
></el-table-column>
<el-table-column
label="问题数"
prop="wts"
width="100"
></el-table-column>
<el-table-column
label="问题率"
prop="wtl"
width="100"
></el-table-column>
</el-table-column>
</el-table>
</div>
<div>
<div
class="chart-flex"
style="justify-content:flex-end"
>
<el-button
type="primary"
size="mini"
@click="showPie"
>生成</el-button>
<el-button
type="primary"
size="mini"
@click="delPie"
>删除</el-button>
</div>
<el-form
:model="pieForm"
:inline="true"
label-width="100px"
>
<el-row style="font-weight:600">
<el-form-item label="图表配置参数"></el-form-item>
</el-row>
<el-form-item label="图表类型">
<el-select
v-model="pieValue1"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计维度">
<el-select
v-model="pieValue2"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="统计数值类型">
<el-select
v-model="pieValue3"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions3"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-row style="font-weight:650">
<el-form-item label="图表统计范围"></el-form-item>
</el-row>
<el-form-item label="系统名称">
<el-select
v-model="pieValue4"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions4"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分行名称">
<el-select
v-model="pieValue5"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions5"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="变更原因">
<el-select
v-model="pieValue6"
multiple
placeholder="请选择"
>
<el-option
v-for="item in pieOptions6"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期">
<el-date-picker
v-model="pieValue7"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "SJZLTJTB",
data() {
return {
formList: [
{
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
},
],
showTables: false,
tableData1: [
{
id: 1,
wtkssj: "2022/5/31",
zgrq: "2022/6/1",
jgmc: "广东分行",
zbmc: "(11)非个人用户的基本账户开户行名称非空",
kh: "佛山区南海市水利投资建设有限公司",
kfyy: "当月未完成修改,蓝色预警,扣0.02分",
},
{
id: 2,
wtkssj: "2022/5/31",
zgrq: "2022/6/1",
jgmc: "广东分行",
zbmc: "(10)非个人用户的基本户账号非空",
kh: "佛山区南海市水利投资建设有限公司",
kfyy: "当月未完成修改,蓝色预警,扣0.02分",
},
{
id: 3,
wtkssj: "2022/5/24",
zgrq: "2022/5/24",
jgmc: "河北分行",
zbmc: "(2-13-)客户办公地址必须填写完整",
kh: "石家庄老年养护院",
kfyy: "同一指标当月问题数超过10个,黄色预警,扣0.03分",
},
{
id: 4,
wtkssj: "2022/5/1",
zgrq: "2022/5/11",
jgmc: "河南分行",
zbmc: "(2-191)贷款企业必须填写中征码",
kh: "中能建龙建路桥(驻马店)建设发展有限公司",
kfyy: "当月连续提示超过3次,蓝色预警,扣0.02分",
},
],
tableData2: [
{
id: 1,
zb: "检核数",
sy: "51029",
sjd: "162023",
jbn: "325529",
jyn: "650123",
sn: "721234",
hb: "13%",
tb: "70%",
},
{
id: 2,
zb: "问题数",
sy: "265",
sjd: "923",
jbn: "1345",
jyn: "260116",
sn: "297412",
hb: "-12%",
tb: "12%",
},
{
id: 3,
zb: "问题率",
sy: "0.52%",
sjd: "0.57%",
jbn: "0.41%",
jyn: "40.01%",
sn: "41.24%",
hb: "-11%",
tb: "11%",
},
{
id: 4,
zb: "平均整改时效",
sy: "1.84",
sjd: "2.63",
jbn: "2.65",
jyn: "2.23",
sn: "2.5",
hb: "-2%",
tb: "1%",
},
{
id: 5,
zb: "计入扣分问题数",
sy: "3",
sjd: "12",
jbn: "20",
jyn: "40",
sn: "42",
hb: "-3%",
tb: "-2%",
},
{
id: 6,
zb: "计入扣分分行数",
sy: "3",
sjd: "9",
jbn: "16",
jyn: "35",
sn: "35",
hb: "2%",
tb: "3%",
},
],
pieTable: [
{
id: 1,
ywwd: "客户",
jhs: "14020",
wts: "36",
wtl: "0.01",
},
{
id: 2,
ywwd: "合同",
jhs: "654",
wts: "20",
wtl: "0.02",
},
{
id: 3,
ywwd: "合约",
jhs: "15462",
wts: "21",
wtl: "0.03",
},
],
pieForm: {},
pieValue1: [],
pieOptions1: [
{
label: "扇形图",
value: "选项1",
},
{
label: "柱状图",
value: "选项2",
},
{
label: "折线图",
value: "选项3",
},
],
pieValue2: [],
pieOptions2: [
{
label: "维度1",
value: "选项1",
},
{
label: "维度2",
value: "选项2",
},
{
label: "维度3",
value: "选项3",
},
],
pieValue3: [],
pieOptions3: [
{
label: "类型1",
value: "选项1",
},
{
label: "类型2",
value: "选项2",
},
{
label: "类型3",
value: "选项3",
},
],
pieValue4: [],
pieOptions4: [
{
label: "系统1",
value: "选项1",
},
{
label: "系统2",
value: "选项2",
},
{
label: "系统3",
value: "选项3",
},
],
pieValue5: [],
pieOptions5: [
{
label: "分行1",
value: "选项1",
},
{
label: "分行2",
value: "选项2",
},
{
label: "分行3",
value: "选项3",
},
],
pieValue6: [],
pieOptions6: [
{
label: "原因1",
value: "选项1",
},
{
label: "原因2",
value: "选项2",
},
{
label: "原因3",
value: "选项3",
},
],
pieValue7: "",
showChart: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {
this.drawPieCharts();
},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
addConfig() {
this.formList.push({
form1: {
options1: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value4: [],
options5: [
{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
],
value5: [],
value6: "",
},
});
},
delConfig(index) {
this.formList.splice(this.formList.indexOf(index), 1);
},
showTable() {
this.showTables = true;
},
drawPieCharts() {
var chartDom = document.getElementById("pieCharts");
var myChart = echarts.init(chartDom);
var option;
option = {
legend: {},
tooltip: {},
dataset: {
source: [
["product", "客户", "合同", "合约"],
["检核数", 14, 20, 32],
["问题数", 3, 2, 2],
["问题率", 0.3, 0.5, 0.3],
],
},
xAxis: { type: "category", gridIndex: 0 },
// [
// { type: "category", gridIndex: 0 },
// { type: "category", gridIndex: 1 },
// ],
yAxis: { gridIndex: 0 },
// [{ gridIndex: 0 }, { gridIndex: 1 }],
grid: { bottom: "15%" },
// [{ bottom: "55%" }, { top: "55%" }],
series: [
// These series are in the first grid.
{ type: "bar", seriesLayoutBy: "row" },
{ type: "bar", seriesLayoutBy: "row" },
{ type: "bar", seriesLayoutBy: "row" },
// // These series are in the second grid.
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
// { type: "bar", xAxisIndex: 1, yAxisIndex: 1 },
],
};
option && myChart.setOption(option);
},
showPie() {
this.showChart = true;
},
delPie() {
this.showChart = false;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
.el-date-editor {
width: 180px;
}
}
.el-checkbox {
margin-right: 10px;
}
}
.add-btn {
text-align: right;
margin-top: 5px;
}
.add-btn-top {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
padding: 5px 0 12px 0;
}
.chart-flex {
display: flex;
}
</style>
\ No newline at end of file
<template>
<div>
<div style="display:flex">
<div style="padding-right:5px">
<el-input
placeholder="搜索..."
v-model="filterText"
>
</el-input>
<el-tree
:data="treeData"
:props="defaultProps"
default-expand-all
highlight-current
node-key='id'
:current-node-key='currentNodeKey'
@node-click="handleNodeClick"
:filter-node-method="filterNode"
ref="tree"
></el-tree>
</div>
<div>
<div class="d-header">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/' }">{{treeData[0].label}}</el-breadcrumb-item>
<el-breadcrumb-item>{{currentLabel}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "SJZLZKH",
data() {
return {
treeData: [
{
id: 1,
label: "数据质量管理(v1.0)",
children: [
{
id: 2,
label: "基础数据项查询",
},
{
id: 3,
label: "数据质量问题台账",
},
{
id: 4,
label: "数据质量问题举证台账",
},
{
id: 5,
label: "数据质量问题举证跟踪",
},
],
},
],
currentLabel: "",
currentId: "",
filterText: "",
defaultProps: {
children: "children",
label: "label",
},
currentNodeKey: 2,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
this.currentLabel = this.treeData[0].children[0].label;
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleNodeClick(res) {
this.currentLabel = res.label;
this.currentId = res.id;
},
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
},
};
</script>
<style lang='scss' scoped>
.d-header {
margin-bottom: 10px;
}
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 150px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
</style>
<template>
<div>
<el-form
:model="form1"
:inline="true"
>
<el-form-item label="指标权限组名称">
<el-select
v-model="value1"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options1"
:key="i"
:label="v.label"
:value="v .value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="value2"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options2"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="角色名称">
<el-select
v-model="value3"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options3"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="用户名称">
<el-select
v-model="value4"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in options4"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div style="text-align:right;margin-bottom:10px">
<el-button
size="mini"
type="primary"
>查询</el-button>
<el-button
size="mini"
type="primary"
>重置</el-button>
<el-button
size="mini"
type="primary"
@click="addTable"
>新建</el-button>
</div>
<el-table
:data="tableData1"
border
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column
label="序号"
prop="id"
width="50"
></el-table-column>
<el-table-column
label="指标权限组名称"
prop="zbqxzmc"
></el-table-column>
<el-table-column
label="指标名称"
prop="zbmc"
>
</el-table-column>
<el-table-column
label="关键指标数量"
prop="gjzbsl"
></el-table-column>
<el-table-column
label="角色名称"
prop="jsmc"
></el-table-column>
<el-table-column
label="授权用户"
prop="sqyh"
></el-table-column>
<el-table-column
label="操作"
width="250"
>
<template slot-scope="scope">
<el-button
type="text"
@click="viewData"
>修改</el-button>
<el-button
type="text"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新建指标权限组"
:visible.sync="addDialog"
width="40%"
>
<el-form
v-model="form2"
label-width="120px"
>
<el-form-item label="指标权限组名称">
<el-input
v-model="form2.value1"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="指标名称">
<el-select
v-model="form2.value2"
filterable
multiple
placeholder="请选择"
>
<el-option
v-for="(v,i) in form2.options"
:key="i"
:label="v.label"
:value="v.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div style="text-align:right;margin:10px 0">
<el-button
type="primary"
size="mini"
>提交</el-button>
<el-button
type="primary"
size="mini"
>重置</el-button>
<el-button
type="primary"
size="mini"
>返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、页面功能:创建指标权限组与指标的对应关系</div>
<div>2、数据项说明:"指标权限组名称"与"指标名称"为必填项,"指标名称"支持多选、模糊查询,至少选择一个指标</div>
</div>
</div>
</el-dialog>
<el-dialog
title="修改指标权限组"
:visible.sync="viewDialog"
width="40%"
>
<el-form
v-model="form3"
label-width="120px"
>
<el-form-item label="指标权限组名称">
<el-input v-model="form3.value1"></el-input>
</el-form-item>
<el-form-item label="指标名称">
<el-input v-model="form3.value2"></el-input>
</el-form-item>
</el-form>
<div style="text-align:right;margin:10px 0">
<el-button
type="primary"
size="mini"
>提交</el-button>
<el-button
type="primary"
size="mini"
>重置</el-button>
<el-button
type="primary"
size="mini"
>返回</el-button>
</div>
<div class="tips">
<span style="margin-right:5px">页面说明:</span>
<div>
<div>1、页面功能:创建指标权限组与指标的对应关系</div>
<div>2、数据项说明:"指标权限组名称"与"指标名称"为必填项,"指标名称"支持多选、模糊查询,至少选择一个指标</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "ZBQXPZ",
data() {
return {
form1: {},
options1: [
{
value: "选项1",
label: "信贷业务担保条线",
},
{
value: "选项2",
label: "分行数据质量监测",
},
{
value: "选项3",
label: "信贷业务贷款条线",
},
{
value: "选项4",
label: "存款业务条线",
},
],
value1: [],
options2: [
{
value: "选项1",
label: "担保人能力超千亿预警",
},
{
value: "选项2",
label: "信贷合同'主担保类型'非空",
},
{
value: "选项3",
label: "信贷合同'贷款用途'非空",
},
{
value: "选项4",
label: "(10)非个人客户的基本户账号一致性",
},
],
value2: [],
options3: [
{
value: "选项1",
label: "信贷业务质量管理",
},
{
value: "选项2",
label: "分行质量管理",
},
{
value: "选项3",
label: "信贷业务质量管理",
},
{
value: "选项4",
label: "存款业务质量管理",
},
],
value3: [],
options4: [
{
value: "选项1",
label: "张三",
},
{
value: "选项2",
label: "王五",
},
{
value: "选项3",
label: "赵六",
},
{
value: "选项4",
label: "吴一",
},
],
value4: [],
tableData1: [
{
id: 1,
zbqxzmc: "信贷业务担保条线",
zbmc: "担保人能力超千亿预警",
gjzbsl: "3",
jsmc: "信贷业务质量管理",
sqyh: "张三,李四",
},
{
id: 2,
zbqxzmc: "分行数据质量检测",
zbmc: "境内同业金融许可证号不规范",
gjzbsl: "87",
jsmc: "分行质量管理",
sqyh: "王五",
},
{
id: 3,
zbqxzmc: "信贷业务贷款条线",
zbmc: "信贷合同'合同生效日期'非空",
gjzbsl: "10",
jsmc: "信贷业务质量管理",
sqyh: "赵四",
},
{
id: 4,
zbqxzmc: "存款业务条线",
zbmc: "(10)非个人客户的基本户账号一致性",
gjzbsl: "4",
jsmc: "存款业务质量管理",
sqyh: "张三,李四",
},
],
addDialog: false,
form2: {
value1: "",
value2: [],
options: [
{
value: "选项1",
label: "担保人能力超千亿预警",
},
{
value: "选项2",
label: "信贷合同'主担保类型'非空",
},
{
value: "选项3",
label: "信贷合同'贷款用途'非空",
},
{
value: "选项4",
label: "(10)非个人客户的基本户账号一致性",
},
],
},
viewDialog: false,
form3: {
value1: "信贷业务担保条线",
value2: "(2-44)保证比例_非空",
},
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
addTable() {
this.addDialog = true;
},
viewData() {
this.viewDialog = true;
},
},
};
</script>
<style lang='scss' scoped>
/deep/.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 180px;
}
}
}
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
.tips {
font-size: 14px;
color: #606266;
margin: 10px 0;
display: flex;
}
</style>
<template>
<div style="position: relative">
<el-tabs
v-model="currentTab"
type="card"
closable
@edit="handleTabsEdit"
>
<el-tab-pane
v-for="t in tabsList"
:key="t.name"
:label='t.label'
:name='t.name'
>
<div
class="details-all"
v-if="t.name==='sjzlgl'"
>
<div class="d-left">
<div class="l-header">数据质量规则库</div>
<div class="l-btm">
<div class="d-logo">
<div
class="e-icon el-icon-document"
@click="checkRule"
></div>
<div class="d-title">数据质量规则库</div>
</div>
<div class="d-words">对质量考核指标进行管理,知悉数据质量考核的业务规则;对数据质量检核规则和检核作业进行管理</div>
</div>
</div>
<div class="d-right">
<div class="l-header">数据质量监控</div>
<div class="r-btm">
<div
class="l-btm"
v-for="(v,i) in dList"
:key="i"
>
<div class="d-logo">
<div
class="e-icon el-icon-tickets"
@click="checkIcon(v)"
></div>
<div class="d-title">{{v.title}}</div>
</div>
<div class="d-words">{{v.words}}</div>
</div>
</div>
</div>
<div
class="d-left"
style="margin-left:10px"
>
<div class="l-header">数据变更管理</div>
<div class="l-btm">
<div class="d-logo">
<div
class="e-icon el-icon-document"
@click="changeData"
></div>
<div class="d-title">数据变更管理</div>
</div>
<div class="d-words">后台数据变更管理模块</div>
</div>
</div>
</div>
<SJZLGZK v-if="currentTab==='sjzlgzk'"></SJZLGZK>
<SJZLKH v-if="currentTab==='sjzlkh'"></SJZLKH>
<SJZLZKH v-if="currentTab==='sjzlzkh'"></SJZLZKH>
<SJZLRCJC v-if="currentTab==='sjzlrcjc'"></SJZLRCJC>
<SJZLTC v-if="currentTab==='sjzltc'"></SJZLTC>
<SJBGGL
v-if="currentTab==='sjbggl'"
:roleName="value1"
></SJBGGL>
</el-tab-pane>
</el-tabs>
<div style="position: absolute;right:10px;top:5px;">
<div style="display:flex">
<el-select
v-model="value1"
class="role-xx"
@change="changeRole"
>
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.label"
>
</el-option>
</el-select>
<div style="color:#606266;font-size:14px;height:30px;line-height:30px;margin-left:5px">
所属部门:{{department}}</div>
</div>
</div>
</div>
</template>
<script>
import SJZLGZK from "@/components/SJZLGZK.vue";
import SJZLKH from "@/components/SJZLKH.vue";
import SJZLZKH from "@/components/SJZLZKH.vue";
import SJZLRCJC from "@/components/SJZLRCJC.vue";
import SJZLTC from "@/components/SJZLTC.vue";
import SJBGGL from "@/components/SJBGGL.vue";
export default {
components: {
SJZLGZK,
SJZLKH,
SJZLZKH,
SJZLRCJC,
SJZLTC,
SJBGGL,
},
data() {
return {
currentTab: "sjzlgl",
tabsList: [
{
label: "数据质量管理",
name: "sjzlgl",
},
],
dList: [
{
words: "对数据质量考核发现的问题进行总览,跟踪数据质量考核的全过程",
title: "数据质量考核",
name: "sjzlkh",
},
{
words:
"对数据质量准考核发现的问题进行总览,跟踪数据质量准考核的全过程",
title: "数据质量准考核",
name: "sjzlzkh",
},
{
words:
"对数据质量日常监测发现的问题进行总览,跟踪数据质量日常监测的全过程",
title: "数据质量日常监测",
name: "sjzlrcjc",
},
{
words: "对数据质量探查发现的问题进行总览,跟踪数据质量考探查的全过程",
title: "数据质量探查",
name: "sjzltc",
},
],
options1: [
{
value: 1,
label: "张三",
},
{
value: 2,
label: "李四",
},
{
value: 3,
label: "王五",
},
{
value: 4,
label: "赵六",
},
{
value: 5,
label: "田七",
},
{
value: 6,
label: "黄八",
},
{
value: 7,
label: "钟九",
},
{
value: 8,
label: "刘十",
},
],
value1: "张三",
department: "客户一处",
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
created() {},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
//如果页面有keep-alive缓存功能,这个函数会触发
activated() {},
//方法集合
methods: {
handleTabsEdit(targetName, action) {
if (action === "remove") {
let tabs = this.tabsList;
let activeName = this.currentTab;
if (activeName === targetName) {
tabs.forEach((tab, index) => {
if (tab.name === targetName) {
let nextTab = tabs[index + 1] || tabs[index - 1];
if (nextTab) {
activeName = nextTab.name;
}
}
});
}
this.currentTab = activeName;
this.tabsList = tabs.filter((tab) => tab.name !== targetName);
}
},
checkRule() {
let has = this.tabsList.find((v) => v.name === "sjzlgzk");
if (has) {
return (this.currentTab = "sjzlgzk");
}
this.tabsList.push({
label: "数据质量规则库",
name: "sjzlgzk",
});
this.currentTab = "sjzlgzk";
},
changeData() {
let has = this.tabsList.find((v) => v.name === "sjbggl");
if (has) {
return (this.currentTab = "sjbggl");
}
this.tabsList.push({
label: "数据变更管理",
name: "sjbggl",
});
this.currentTab = "sjbggl";
},
checkIcon(res) {
let has = this.tabsList.find((v) => v.name === res.name);
if (has) {
return (this.currentTab = res.name);
}
this.tabsList.push({
label: res.title,
name: res.name,
});
this.currentTab = res.name;
},
changeRole(val) {
switch (val) {
case '张三':
this.department = "客户一处";
break;
case '李四':
this.department = "科技部门";
break;
case '王五':
this.department = "业务归口管理部门";
break;
case '赵六':
this.department = "系统管理部门";
break;
case '田七':
this.department = "数据质量归口管理部门";
break;
case '黄八':
this.department = "系统开发管理部门";
break;
case '钟九':
this.department = "科技部一把手";
break;
case '刘十':
this.department = "系统运维管理部门";
break;
}
},
},
};
</script>
<style lang='scss' scoped>
.details-all {
margin-top: 100px;
display: flex;
.d-left {
width: 200px;
height: 240px;
background-color: #6facff;
border-radius: 5px;
margin-right: 10px;
padding: 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.l-header {
font-weight: 600;
color: #fff;
font-size: 15px;
}
.l-btm {
width: 200px;
height: 200px;
background-color: #fff;
display: flex;
flex-direction: column;
.d-logo {
background-color: #fff;
flex: 2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.e-icon {
width: 80px;
height: 80px;
background-color: #4177ce;
text-align: center;
line-height: 80px;
font-size: 60px;
color: #fff;
cursor: pointer;
}
.d-title {
color: #4177ce;
font-weight: 550;
font-size: 14px;
}
}
.d-words {
background-color: #efefef;
flex: 1;
font-size: 12px;
padding: 2px;
}
}
.d-right {
width: 860px;
height: 240px;
background-color: #6facff;
border-radius: 5px;
padding: 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
.r-btm {
display: flex;
justify-content: space-between;
}
}
}
.role-xx {
/deep/.el-select {
.el-input {
.el-input__inner {
height: 30px;
width: 80px;
}
}
}
}
// /deep/.el-input {
// .el-input__inner {
// height: 30px;
// width: 150px;
// }
// }
// /deep/.el-select {
// .el-input {
// .el-input__inner {
// height: 30px;
// width: 180px;
// }
// }
// }
/deep/.el-form {
.el-form-item {
margin-bottom: 5px;
}
.el-checkbox {
margin-right: 10px;
}
}
/deep/ .el-tabs__nav .el-tabs__item:first-child span {
display: none;
}
</style>
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: '<App/>'
// })
\ No newline at end of file
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'
},
]
})
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册