Browse Source

初始化提交

master
torsenli 4 years ago
commit
11469f83a0
  1. 12
      .babelrc
  2. 9
      .editorconfig
  3. 14
      .gitignore
  4. 10
      .postcssrc.js
  5. 21
      README.md
  6. 41
      build/build.js
  7. 54
      build/check-versions.js
  8. BIN
      build/logo.png
  9. 101
      build/utils.js
  10. 22
      build/vue-loader.conf.js
  11. 82
      build/webpack.base.conf.js
  12. 95
      build/webpack.dev.conf.js
  13. 145
      build/webpack.prod.conf.js
  14. 7
      config/dev.env.js
  15. 96
      config/index.js
  16. 4
      config/prod.env.js
  17. 12
      index.html
  18. 12695
      package-lock.json
  19. 70
      package.json
  20. 26
      src/App.vue
  21. 94
      src/assets/css/main.css
  22. 6
      src/assets/icons/svg/layout.svg
  23. 1
      src/assets/icons/svg/user.svg
  24. 1
      src/assets/icons/svg/yingyong.svg
  25. BIN
      src/assets/img/accountList.png
  26. BIN
      src/assets/img/test.png
  27. 70
      src/components/Header.vue
  28. 49
      src/components/Home.vue
  29. 0
      src/components/Operation.vue
  30. 104
      src/components/Sidebar.vue
  31. 304
      src/components/dateSelect/index.vue
  32. 58
      src/components/operationRecords/index.vue
  33. 58
      src/components/orderDetails/index.vue
  34. 250
      src/components/page/Home/index.vue
  35. 204
      src/components/page/admission/index.vue
  36. 204
      src/components/page/afterService/invoice.vue
  37. 196
      src/components/page/classification/Category.vue
  38. 204
      src/components/page/classification/DataQuery.vue
  39. 185
      src/components/page/fundSettlement/index.vue
  40. 50
      src/components/page/fundSettlement/paymentMethod.vue
  41. 165
      src/components/page/fundSettlement/splitProportion.vue
  42. 179
      src/components/page/layout/index.vue
  43. 204
      src/components/page/order/closed.vue
  44. 204
      src/components/page/order/completed.vue
  45. 223
      src/components/page/order/index.vue
  46. 204
      src/components/page/order/pendingPayment.vue
  47. 204
      src/components/page/order/toBeDelivered.vue
  48. 204
      src/components/page/order/toBeSettled.vue
  49. 24
      src/main.js
  50. 96
      src/router/index.js
  51. 0
      static/.gitkeep

12
.babelrc

@ -0,0 +1,12 @@
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-vue-jsx", "transform-runtime"]
}

9
.editorconfig

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

14
.gitignore

@ -0,0 +1,14 @@
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

10
.postcssrc.js

@ -0,0 +1,10 @@
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}

21
README.md

@ -0,0 +1,21 @@
# wenhuadate_admin
> A Vue.js project
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
```
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

41
build/build.js

@ -0,0 +1,41 @@
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
})
})

54
build/check-versions.js

@ -0,0 +1,54 @@
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}

BIN
build/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

101
build/utils.js

@ -0,0 +1,101 @@
'use strict'
const path = require('path')
const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const packageConfig = require('../package.json')
exports.assetsPath = function (_path) {
const assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
exports.createNotifierCallback = () => {
const notifier = require('node-notifier')
return (severity, errors) => {
if (severity !== 'error') return
const error = errors[0]
const filename = error.file && error.file.split('!').pop()
notifier.notify({
title: packageConfig.name,
message: severity + ': ' + error.name,
subtitle: filename || '',
icon: path.join(__dirname, 'logo.png')
})
}
}

22
build/vue-loader.conf.js

@ -0,0 +1,22 @@
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap
module.exports = {
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction
}),
cssSourceMap: sourceMapEnabled,
cacheBusting: config.dev.cacheBusting,
transformToRequire: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
}
}

82
build/webpack.base.conf.js

@ -0,0 +1,82 @@
'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]')
}
}
]
},
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'
}
}

95
build/webpack.dev.conf.js

@ -0,0 +1,95 @@
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const path = require('path')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder')
const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.dev.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
module.exports = new Promise((resolve, reject) => {
portfinder.basePort = process.env.PORT || config.dev.port
portfinder.getPort((err, port) => {
if (err) {
reject(err)
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
// add port to devServer config
devWebpackConfig.devServer.port = port
// Add FriendlyErrorsPlugin
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
}))
resolve(devWebpackConfig)
}
})
})

145
build/webpack.prod.conf.js

@ -0,0 +1,145 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const env = require('../config/prod.env')
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
// Setting the following option to `false` will not extract CSS from codesplit chunks.
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
allChunks: true,
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: config.build.productionSourceMap
? { safe: true, map: { inline: false } }
: { safe: true }
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vendor modules does not change
new webpack.HashedModuleIdsPlugin(),
// enable scope hoisting
new webpack.optimize.ModuleConcatenationPlugin(),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
minChunks: Infinity
}),
// This instance extracts shared chunks from code splitted chunks and bundles them
// in a separate chunk, similar to the vendor chunk
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig

7
config/dev.env.js

@ -0,0 +1,7 @@
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})

96
config/index.js

@ -0,0 +1,96 @@
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
// configureWebpack: {
// name:"wenhua",
// resolve: {
// alias: {
// '@': resolve('src'),
// 'views': resolve('src/views')
// }
// }
// },
chainWebpack: config => {
// ......
config.module
.rule('svg')
.exclude.add(resolve('../src/assets/icons/svg'))
.end();
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('../src/assets/icons/svg'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]',
})
.end()
},
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',
// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/',
/**
* Source Maps
*/
productionSourceMap: true,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}

4
config/prod.env.js

@ -0,0 +1,4 @@
'use strict'
module.exports = {
NODE_ENV: '"production"'
}

12
index.html

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>wenhuadate_admin</title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

12695
package-lock.json

File diff suppressed because it is too large

70
package.json

@ -0,0 +1,70 @@
{
"name": "wenhuadate_admin",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "ltlzx <942659938@qq.com>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"ant-design-vue": "^1.7.8",
"less": "^4.1.2",
"less-loader": "^10.2.0",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vue-schart": "^2.0.0"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass": "^1.49.7",
"sass-loader": "^12.4.0",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"svg-sprite-loader": "^6.0.11",
"svgo-loader": "^3.0.0",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}

26
src/App.vue

@ -0,0 +1,26 @@
<template>
<a-locale-provider :locale="zh_CN">
<div id="app">
<router-view/>
</div>
</a-locale-provider>
</template>
<script>
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';
import moment from 'moment';
import 'moment/locale/zh-cn';
moment.locale('zh-cn');
export default {
name: 'App',
data(){
return{
zh_CN
}
}
}
</script>
<style>
@import "./assets/css/main.css";
</style>

94
src/assets/css/main.css

@ -0,0 +1,94 @@
* {
margin: 0;
padding: 0;
}
html,
body,
#app,
.wrapper {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif;
font-size: 14px;
line-height: 21px;
color: #4E5969;
}
/* 面包屑 */
.breadcrumb{
width: 100%;
background: white;
height: 60px;
display: flex;
align-items: center;
padding-left: 26px;
}
.body{
padding: 0 20px;
padding-top: 20px;
}
.query{
height: 105px;
background-color: white;
padding-left: 36px;
padding-right: 30px;
}
.f_title{
font-size:16px
}
.query_item{
display: flex;
align-items: center;
margin-top: 14px;
}
.query_item .ant-input,.query_item .ant-select{
width: 160px;
}
.query_item2 .ant-input{
width: 213px;
}
.query_item >span{
display: inline-block;
/* min-width: 96px; */
min-width: 85px;
/* padding: 10px; */
}
.query_item1{
justify-content: flex-end;
}
.query_button{
width: 70px;
}
.table{
height: 620px;
background-color: white;
margin-top: 20px;
padding-left: 20px;
padding-top: 15px;
padding-right: 30px;
box-sizing: border-box;
}
.table_title{
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
font-size: 16px;
margin-bottom: 13px;
}
.table_title_right_del{
margin-left: 15px;
}
.table_operation{
color: #1890FF;
text-decoration: underline;
cursor: pointer;
}
.pagination{
text-align: right;
margin-top: 21px;
}

6
src/assets/icons/svg/layout.svg

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="77px" height="77px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -66 -98 )">
<path d="M 17.875 50 L 45.9765625 50 L 59.125 27 L 31.0234375 27 L 17.875 50 Z M 73.94921875 23.546875 C 75.9830729166667 28.3020833333333 77 33.2864583333333 77 38.5 C 77 43.7135416666667 75.9830729166667 48.6979166666667 73.94921875 53.453125 C 71.9153645833333 58.2083333333333 69.1796875 62.3046875 65.7421875 65.7421875 C 62.3046875 69.1796875 58.2083333333333 71.9153645833333 53.453125 73.94921875 C 48.6979166666667 75.9830729166667 43.7135416666667 77 38.5 77 C 33.2864583333333 77 28.3020833333333 75.9830729166667 23.546875 73.94921875 C 18.7916666666667 71.9153645833333 14.6953125 69.1796875 11.2578125 65.7421875 C 7.8203125 62.3046875 5.08463541666667 58.2083333333333 3.05078125 53.453125 C 1.01692708333333 48.6979166666667 0 43.7135416666667 0 38.5 C 0 33.2864583333333 1.01692708333333 28.3020833333333 3.05078125 23.546875 C 5.08463541666667 18.7916666666667 7.8203125 14.6953125 11.2578125 11.2578125 C 14.6953125 7.8203125 18.7916666666667 5.08463541666666 23.546875 3.05078125 C 28.3020833333333 1.01692708333333 33.2864583333333 0 38.5 0 C 43.7135416666667 0 48.6979166666667 1.01692708333333 53.453125 3.05078125 C 58.2083333333333 5.08463541666666 62.3046875 7.8203125 65.7421875 11.2578125 C 69.1796875 14.6953125 71.9153645833333 18.7916666666667 73.94921875 23.546875 Z " fill-rule="nonzero" fill="#404761" stroke="none" transform="matrix(1 0 0 1 66 98 )" />
</g>
</svg>

1
src/assets/icons/svg/user.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1639452097083" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16042" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 320.3584m-197.888 0a197.888 197.888 0 1 0 395.776 0 197.888 197.888 0 1 0-395.776 0Z" fill="#E7CC98" p-id="16043"></path><path d="M512 542.0544c-178.176 0-332.6976 102.0416-409.9584 251.4944l10.2912 29.3376a27.4944 27.4944 0 0 1 9.2672 11.4176l189.7984 131.1744 1.8944-4.1984 89.2416 39.8336-1.792 3.9936c1.536 1.1776 2.8672 2.56 4.096 4.0448 1.024 0.3072 1.9968 0.6656 2.9696 1.0752h205.5168c4.5056-3.2256 10.24-5.2736 17.3056-5.2736 1.3824 0 2.6624 0.1024 3.9424 0.256l88.9856-33.1264c20.6336-20.9408 46.08-39.7312 75.5712-54.6304 3.328-1.6896 6.7072-3.328 10.0864-4.864l113.5104-117.5552c-77.0048-150.272-231.936-252.9792-410.7264-252.9792z" fill="#E7CC98" p-id="16044"></path><path d="M512 1020.6208C231.5264 1020.6208 3.328 792.4224 3.328 511.9488 3.328 231.4752 231.5264 3.2768 512 3.2768c280.4736 0 508.672 228.1984 508.672 508.672 0 280.4736-228.1984 508.672-508.672 508.672z m0-996.3008c-268.9024 0-487.6288 218.7264-487.6288 487.6288s218.7264 487.6288 487.6288 487.6288c268.9024 0 487.6288-218.7264 487.6288-487.6288S780.9024 24.32 512 24.32z" fill="#E7CC98" p-id="16045"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
src/assets/icons/svg/yingyong.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1639451990189" class="icon" viewBox="0 0 1026 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15047" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.390625" height="200"><defs><style type="text/css"></style></defs><path d="M448.512 0q26.624 0 45.568 18.944t18.944 45.568l0 319.488q0 26.624-18.944 45.568t-45.568 18.944l-319.488 0q-26.624 0-45.568-18.944t-18.944-45.568l0-319.488q0-26.624 18.944-45.568t45.568-18.944l319.488 0zM961.536 0q26.624 0 45.056 18.944t18.432 45.568l0 319.488q0 26.624-18.432 45.568t-45.056 18.944l-320.512 0q-26.624 0-45.568-18.944t-18.944-45.568l0-319.488q0-26.624 18.944-45.568t45.568-18.944l320.512 0zM448.512 512q26.624 0 45.568 18.944t18.944 45.568l0 320.512q0 26.624-18.944 45.056t-45.568 18.432l-319.488 0q-26.624 0-45.568-18.432t-18.944-45.056l0-320.512q0-26.624 18.944-45.568t45.568-18.944l319.488 0zM961.536 512q26.624 0 45.056 18.944t18.432 45.568l0 320.512q0 26.624-18.432 45.056t-45.056 18.432l-320.512 0q-26.624 0-45.568-18.432t-18.944-45.056l0-320.512q0-26.624 18.944-45.568t45.568-18.944l320.512 0z" p-id="15048" fill="#E7CC98"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/assets/img/accountList.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
src/assets/img/test.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 KiB

70
src/components/Header.vue

@ -0,0 +1,70 @@
<template>
<div class="header">
<div class="header_left">
<router-link to="Home">
<h1 class="header_left_h1">全国文化大数据交易中心</h1>
</router-link>
<span>| 交易结算</span>
</div>
<div class="header_right">
<div class="header_right_item">
<img src="../assets/icons/svg/user.svg" alt="" >
<span class="f_title">王甜甜</span>
</div>
<div class="header_right_item">
<img src="../assets/icons/svg/yingyong.svg" alt="" >
<span class="f_title">我的应用</span>
</div>
</div>
</div>
</template>
<script>
import "../assets/icons/svg/user.svg"
export default {
data() {
return{
}
},
}
</script>
<style scoped>
.header{
width: 100%;
height: 65px;
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 25px;
padding-right: 77px;
background-color: rgba(26, 26, 52, 1);
box-sizing: border-box;
}
.header_left{
color: #E3CA97;
font-size: 23px;
display: flex;
align-items: center;
}
.header_left_h1{
font-size: 28px;
font-weight: 700;
color: #E3CA97;
margin-bottom: 0;
margin-right: 19px;
}
.header_right{
color: white;
display: flex;
}
.header_right_item{
display: flex;
align-items: center;
margin-right: 30px;
}
.header_right_item img{
width:24px;
height:24px;
margin-right:15px
}
</style>

49
src/components/Home.vue

@ -0,0 +1,49 @@
<template>
<div class="wrapper">
<v-head></v-head>
<div class="bootm">
<v-sidebar></v-sidebar>
<div class="content-box">
<div class="content">
<transition name="move" mode="out-in">
<router-view></router-view>
</transition>
</div>
</div>
</div>
</div>
</template>
<script>
import vHead from './Header.vue';
import vSidebar from './Sidebar.vue';
export default {
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
components: {
vHead,
vSidebar,
},
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.content-box{
width: 100%;
border-top: 2px solid #9A9A9A;
border-left: 2px solid #9A9A9A;
background: #F0F2F5;
box-sizing: border-box;
}
.content{
}
.bootm{
display: flex;
height: 100%;
}
</style>

0
src/components/Operation.vue

104
src/components/Sidebar.vue

@ -0,0 +1,104 @@
<template>
<div class="sidebar_body">
<a-menu theme="dark" mode="inline" :default-selected-keys="['1']" class="sidebar">
<template v-for="item in items">
<a-menu-item v-if="!item.children" :key="item.key">
<router-link :to="item.url">
<!-- <a-icon :type="item.icon" /> -->
<span class="f_title">{{ item.title }}</span>
</router-link>
</a-menu-item>
<a-sub-menu :key="item.key" v-bind="$props" v-on="$listeners" v-else>
<span slot="title">
<!-- <a-icon :type="item.icon" /> -->
<span class="f_title">{{ item.title }}</span>
</span>
<template v-for="item1 in item.children">
<a-menu-item v-if="!item1.children" :key="item1.key">
<router-link :to="item1.url">
<!-- <a-icon :type="item1.icon" /> -->
<span>{{ item1.title }}</span>
</router-link>
</a-menu-item>
</template>
</a-sub-menu>
</template>
</a-menu>
</div>
</template>
<script>
export default {
data() {
return{
items:[
{
icon:'',
url:'',
key:'1',
title:'文化数据分类管理',
children:[
{icon:'',url:"DataQuery",title:"全部文化数据查询"},
{icon:'',url:"Category",title:"文化数据类别管理"},
]
},
{
icon:'',
url:'admission',
key:'2',
title:'文化数据入场管理',
},
{
icon:'',
url:'',
key:'3',
title:'交易订单管理',
children:[
{icon:'',url:"allOrder",title:"全部交易订单"},
{icon:'',url:"pendingPayment",title:"待付款订单"},
{icon:'',url:"toBeDelivered",title:"待交付订单"},
{icon:'',url:"toBeSettled",title:"待结算订单"},
{icon:'',url:"completed",title:"已完成订单"},
{icon:'',url:"closed",title:"已关闭订单"},
]
},
{
icon:'',
url:'',
key:'4',
title:'交易订单售后服务管理',
children:[
{icon:'',url:"invoice",title:"服务发票"},
]
},
{
icon:'',
url:'',
key:'5',
title:'资金结算分账管理',
children:[
{icon:'',url:"fundSettlement",title:"资金结算对账单"},
{icon:'',url:"splitProportion",title:"分账比例设置"},
{icon:'',url:"paymentMethod",title:"支付方式设置"},
]
},
{
icon:'',
url:'layout',
key:'6',
title:'数据展示布局管理',
},
]
}
},
}
</script>
<style scoped>
.sidebar_body{
width: 200px;
height: 100%;
}
.sidebar{
height: 100%;
background: #001529;
}
</style>

304
src/components/dateSelect/index.vue

@ -0,0 +1,304 @@
<template>
<div class="component_body">
<a-modal v-model="newVisible" title="数据查看" :afterClose="onClose" width="1350px" :bodyStyle="modeStyle">
<a-tabs default-active-key="1" tab-position="left" :tabBarStyle="tabsStyle">
<a-tab-pane key="1">
<span slot="tab">
<span class="tab_span">*</span>
委托方信息
</span>
<p>委托方信息</p>
<div class="tab_body">
<p class="tab_body_p">注册时间2021-02-16 10:00:00</p>
<p class="tab_body_p">认证时间2021-02-16 10:00:00</p>
<p class="tab_body_p">认证类型机构</p>
<p class="tab_body_p">认证状态已认证</p>
<p class="tab_body_p">基本信息新疆生产建设兵团军垦博物馆</p>
<p class="tab_body_p">统一社会信用代码12990800H41793127X</p>
<p class="tab_body_p">账户ISLI标识码010002-000000000090000117259999-8</p>
</div>
</a-tab-pane>
<a-tab-pane key="2" force-render>
<span slot="tab">
<span class="tab_span">*</span>
数据信息
</span>
<div class="tab_body">
<div class="tab_body_title">
<p class="tab_body_title_bg"></p>
<div>文化资源数据-基本信息</div>
</div>
<div class="tab_content ">
<div class="tab_content_infoImg">
<img src="../../assets/img/test.png" class="tab_content_img">
</div>
<div class="tab_content_right">
<div class="content_right_title">标的名称第一犁塞边新乐章</div>
<div class="content_info">
<div class="content_info_left">
<p>标志码010002-000000000090000117259999-8</p>
<p>文件MD5FGHJE45GHJKJH325BNM5JHG</p>
<p>标签</p>
<p>尺寸10*10</p>
<p>文化标识文化素材</p>
<p>完成发布时间2021-02-02</p>
<p>组件数量10</p>
<p>现状完好</p>
</div>
<div>
<p>字段</p>
<p>语种汉语</p>
<p>材质纸质</p>
<p>版本清彩绘本</p>
<p>创作者国家图书馆出版社有限公司</p>
<p>所属收藏机构国家图书馆出版社有限公司</p>
<p>拥有者国家图书馆出版社有限公司</p>
<p>确权时间</p>
</div>
</div>
</div>
</div>
<div class="tab_body_title">
<p class="tab_body_title_bg"></p>
<div>文化资源数据-关联资源</div>
</div>
<div class="tab_content">
<p class="tab_content_title">图片</p>
</div>
<div class="content_table">
<a-table :columns="columns" :data-source="data" bordered :pagination="false"></a-table>
</div>
<div class="tab_content">
<p class="tab_content_title">视频</p>
</div>
<div class="content_table">
<a-table :columns="columns" :data-source="data" bordered :pagination="false"></a-table>
</div>
<div class="tab_content">
<p class="tab_content_title">音频</p>
</div>
<div class="content_table">
<a-table :columns="columns" :data-source="data" bordered :pagination="false"></a-table>
</div>
</div>
</a-tab-pane>
<a-tab-pane key="3" tab="资产评价报告">
Content of Tab Pane 3
</a-tab-pane>
</a-tabs>
<template slot="footer">
<div>
<a-button type="white" @click="onClose"> </a-button>
</div>
</template>
</a-modal>
</div>
</template>
<script>
export default {
name:'dataSelect',
props:{
visible:{
type:Boolean,
require: true
}
},
data(){
return{
newVisible:false,
modeStyle:{
'height':'530px'
},
tabsStyle:{
'height':'500px'
},
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '资源名称',
className: 'table_column',
dataIndex: 'id',
width:'144px',
align:'center'
},
{
title: 'ISLI标志码',
dataIndex: 'money',
width:'242px',
align:'center'
},
{
title: 'ISLI关联编码',
dataIndex: 'name',
width:'259px',
align:'center'
},
{
title: '大小',
dataIndex: '',
width:'70px',
align:'center'
},
{
title: '格式',
dataIndex: '',
width:'70px',
align:'center'
},
{
title: '时间',
dataIndex: '',
width:'148px',
align:'center'
},
]
}
},
methods:{
onClose() {
this.newVisible=false
this.$emit('update:visible', false)
}
},
watch:{
visible(val){
this.newVisible=val
}
}
}
</script>
<style scoped>
.tab_span{
color: red;
}
/deep/ .ant-modal-header{
border-bottom: none;
}
/deep/ .ant-modal-footer{
border-top: none;
padding: 20px 16px;
}
.tab_body{
width: 100%;
height: 476px;
overflow-y: auto;
border: 1px solid #9A9A9A;
border-top-width: 2px;
border-left-width: 2px;
border-right-color: #EEEEEE;
border-bottom-color: #EEEEEE;
padding:20px 15px;
box-sizing: border-box;
}
.tab_body_p{
margin-bottom: 5px;
}
.tab_body_title{
font-size: 19px;
position: relative;
margin-bottom: 28px;
}
.tab_body_title div{
/* display: inline-block; */
position: relative;
z-index: 100;
}
.tab_body_title_bg{
width: 198px;
background: #AAAAAA;
margin-bottom: 0;
height: 10px;
position: absolute;
top: 50%;
margin-top: -5px;
z-index: 99;
}
.tab_content{
padding-left: 40px;
margin-bottom: 28px;
display: flex;
align-items: center;
}
.tab_content_infoImg{
width: 254px;
height: 260px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid rgba(215, 215, 215, 1);
box-shadow: 2px 2px 5px rgb(0 0 0 / 35%);
margin-right: 15px;
}
.tab_content_img{
width: 242px;
height: 194px;
}
.content_right_title{
font-size: 16px;
margin-bottom: 30px;
}
.content_info{
display: flex;
font-size: 14px;
}
.content_info p{
margin-bottom: 0px;
}
.content_info_left{
margin-right: 36px;
}
.tab_content_title{
position: relative;
padding-left: 20px;
}
.tab_content_title::before{
content: '';
width: 7px;
height: 25px;
background-color: #374AA5;
border: 1px solid #9AA4D1;
position: absolute;
left: 0;
top: 50%;
margin-top: -12.5px;
}
.content_table{
padding-left: 90px;
margin-bottom: 30px;
}
/deep/ .ant-table-tbody > tr > td {
padding: 5px 16px;
}
/deep/ .ant-table-thead > tr > th {
padding: 5px 16px;
}
</style>

58
src/components/operationRecords/index.vue

@ -0,0 +1,58 @@
<template>
<div>
<a-modal v-model="newVisible" title="操作记录" :afterClose="onClose" width="800px" :bodyStyle="modeStyle">
<p>1. 2021-02-16 10:00:00 委托方申请委托</p>
<p>2. 2021-02-16 13:00:00 总区域中心王甜甜 委托审核通过</p>
<template slot="footer">
<div>
<a-button type="white" @click="onClose"> </a-button>
</div>
</template>
</a-modal>
</div>
</template>
<script>
export default {
props:{
visible:{
type:Boolean,
require: true
}
},
data(){
return{
newVisible:false,
modeStyle:{
'min-height':'311px',
'padding-top':'15px'
},
}
},
methods:{
onClose() {
this.newVisible=false
this.$emit('update:visible1', false)
}
},
watch:{
visible(val){
this.newVisible=val
}
}
}
</script>
<style scoped>
/deep/ .ant-modal-header{
border-bottom: none;
}
/deep/ .ant-modal-footer{
border-top: none;
padding: 20px 16px;
}
p{
margin-bottom: 0;
}
</style>

58
src/components/orderDetails/index.vue

@ -0,0 +1,58 @@
<template>
<div>
<a-modal v-model="newVisible" title="订单详情" :afterClose="onClose" width="800px" :bodyStyle="modeStyle">
<p>订单当前状态等待购买方付款</p>
<template slot="footer">
<div>
<a-button type="white" @click="onClose"> </a-button>
</div>
</template>
</a-modal>
</div>
</template>
<script>
export default {
props:{
visible:{
type:Boolean,
require: true
}
},
data(){
return{
newVisible:false,
modeStyle:{
'min-height':'311px',
'padding-top':'15px'
},
}
},
methods:{
onClose() {
this.newVisible=false
this.$emit('update:visible2', false)
}
},
watch:{
visible(val){
this.newVisible=val
}
}
}
</script>
<style scoped>
/deep/ .ant-modal-header{
border-bottom: none;
}
/deep/ .ant-modal-footer{
border-top: none;
padding: 20px 16px;
}
p{
margin-bottom: 0;
}
</style>

250
src/components/page/Home/index.vue

@ -0,0 +1,250 @@
<template>
<div class="content">
<a-row class="tab">
<a-col :span="4" class="tab_item" v-for="(item,index) in tabList" :key="index">
<img src="../../../assets/img/accountList.png" alt="">
<span>{{item.name}}</span>
</a-col>
</a-row>
<div class="tab tadayWork">
<p class="tadayWork_title">昨日工作</p>
<div>
</div>
<a-row justify="space-between">
<a-col :span="index==0 ?4:index==1?4:index==2?4:3" class="tadayWork_item" v-for="(item,index) in tadayWorkList" :key="index">
<p class="tadayWork_price">{{item.price}}</p>
<span>{{item.name}}</span>
</a-col>
</a-row>
</div>
<a-row class="statistics" type="flex" justify="space-between" :gutter="15">
<a-col :span="12" >
<a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}" class="statistics_item">
<div class="salesCard">
<a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
<div class="extra-wrapper" slot="tabBarExtraContent">
<div class="extra-item">
<a>今日</a>
<a>本周</a>
<a>本月</a>
<a>全年</a>
</div>
<a-range-picker class="picker"/>
</div>
<a-tab-pane loading="true" tab="销售额" key="1">
<schart class="schart" canvasId="bar" :options="options1"></schart>
</a-tab-pane>
<a-tab-pane tab="访问量" key="2">
<schart class="schart" canvasId="bar" :options="options1"></schart>
</a-tab-pane>
</a-tabs>
</div>
</a-card>
</a-col>
<a-col :span="12">
<a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}" class="statistics_item">
<div class="salesCard">
<a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
<div class="extra-wrapper" slot="tabBarExtraContent">
<div class="extra-item">
<a>今日</a>
<a>本周</a>
<a>本月</a>
<a>全年</a>
</div>
<a-range-picker :style="{width: '256px'}" />
</div>
<a-tab-pane tab="访问量" key="1">
<a-row>
<a-col>
<div class="rank">
<ul class="list">
<li :key="index" v-for="(item, index) in rankList">
<span :class="index < 3 ? 'active' : null">{{ index + 1 }}</span>
<span>{{ item.name }}</span>
<span>{{ item.total }}</span>
</li>
</ul>
</div>
</a-col>
</a-row>
</a-tab-pane>
</a-tabs>
</div>
</a-card>
</a-col>
</a-row>
</div>
</template>
<script>
import Schart from 'vue-schart';
export default {
data() {
return{
tabList:[
{name:'全部文化数据查询(12,1212)',url:''},
{name:'待付款订单(123)',url:''},
{name:'待交付订单(123)',url:''},
{name:'待结算订单(123)',url:''},
{name:'已完成订单(123)',url:''},
{name:'已关闭订单(123)',url:''},
],
tadayWorkList:[
{name:'交易总额',price:'¥845,256,996.30'},
{name:'订单总额',price:'¥672,356,258.70'},
{name:'交易文化数据',price:'1,888'},
{name:'上架文化数据',price:'99'},
{name:'下架文化数据',price:'9'},
{name:'新增订单',price:'2,169'},
{name:'已完成订单',price:'1,169'},
],
loading: false,
barData:[],
barData2:[],
rankList:[],
options1: {
type: 'bar',
title: {
text: '最近一周各品类销售图'
},
bgColor: '#fbfbfb',
labels: ['周一', '周二', '周三', '周四', '周五'],
datasets: [
{
label: '家电',
fillColor: 'rgba(241, 49, 74, 0.5)',
data: [234, 278, 270, 190, 230]
},
{
label: '百货',
data: [164, 178, 190, 135, 160]
},
{
label: '食品',
data: [144, 198, 150, 235, 120]
}
]
},
}
},
components:{
Schart
},
created(){
for (let i = 0; i < 7; i++) {
this.rankList.push({
name: '白鹭岛 ' + (i + 1) + ' 号店',
total: 1234.56 - i * 100
})
}
console.info(this.rankList)
}
}
</script>
<style scoped >
.tab{
background-color: white;
height: 180px;
width: 100%;
margin-top: 20px;
}
.tadayWork{
height: 147px;
}
.content{
padding: 0 20px;
}
.tab_item{
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.tab_item img{
width: 50px;
height: 50px;
margin-bottom: 15px;
}
.tadayWork_title{
font-weight: 700;
font-size: 16px;
color: #4E5969;
padding-left: 20px;
padding-top: 22px;
margin-bottom: 28px;
}
.tadayWork_item{
text-align: center;
color: #4E5969;
}
.tadayWork_price{
font-size: 16px;
color: #00AAFF;
margin-bottom:15px ;
}
.statistics{
height: 400px;
margin-top: 20px;
}
.statistics_item{
height: 100%;
}
.picker{
width: 200px;
}
.extra-item{
display: inline-block;
margin-right: 24px;
}
.extra-wrapper{
padding-right: 10px;
}
.extra-wrapper .extra-item a{
margin-left: 24px;
}
.rank {
padding: 0 32px 32px 72px;
}
.list {
margin: 25px 0 0;
padding: 0;
list-style: none;
}
.list li {
margin-top: 16px;
}
.list li span {
color: rgba(0, 0, 0, .65);
font-size: 14px;
line-height: 22px;
}
.list li span:first-child {
background-color: #f5f5f5;
border-radius: 20px;
display: inline-block;
font-size: 12px;
font-weight: 600;
margin-right: 24px;
height: 20px;
line-height: 20px;
width: 20px;
text-align: center;
}
.list li span.active {
background-color: #314659;
color: #fff;
}
.list li span:last-child {
float: right;
}
.mobile .rank {
padding: 0 32px 32px 32px;
}
.schart{
height: 340px;
}
</style>

204
src/components/page/admission/index.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>文化数据入场管理</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>ISLI标识码</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称:</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>标的类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="4" class="query_item" >
<span>数据状态</span>
<a-select default-value="全部文化数据" @change="handleChange">
<a-select-option value="全部文化数据">
全部文化数据
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="14" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation" @click="selectRecords()">操作记录</span>
<span class="table_operation">关联订单</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
<operationRecords :visible.sync="visible1"></operationRecords>
</div>
</template>
<script>
import dataSelect from '../../dateSelect/index.vue'
import operationRecords from '../../operationRecords/index.vue'
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
visible1:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: 'ISLI标识码',
dataIndex: 'name',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '委托方',
dataIndex: '',
align:'center'
},
{
title: '标的类型',
dataIndex: '',
align:'center'
},
{
title: '数据状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect,
operationRecords
},
created(){
},
methods:{
selectRecords(){
this.visible1=true
},
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/afterService/invoice.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单售后服务管理</a-breadcrumb-item>
<a-breadcrumb-item>服务发票</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>发票编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>销方纳税人</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购方纳税人</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>订单状态</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation">发票详情</span>
<span class="table_operation">下载发票</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '生成时间',
dataIndex: 'money',
align:'center'
},
{
title: '发票编号',
dataIndex: 'name',
align:'center'
},
{
title: '销方纳税人名称',
dataIndex: '',
align:'center'
},
{
title: '订单编号',
dataIndex: '',
align:'center'
},
{
title: '纳税人识别号',
dataIndex: '',
align:'center'
},
{
title: '购方纳税人名称',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '发票金额',
dataIndex: '',
align:'center'
},
{
title: '交易状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation
},
created(){
console.info(this.$route)
},
methods:{
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

196
src/components/page/classification/Category.vue

@ -0,0 +1,196 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>文化数据分类管理</a-breadcrumb-item>
<a-breadcrumb-item>文化数据类别管理</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>一级分类</span>
<a-select default-value="文化资源数据" @change="handleChange">
<a-select-option value="文化资源数据">
文化资源数据
</a-select-option>
<a-select-option value="文化数字内容">
文化数字内容
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>二级分类</span>
<a-select default-value="图片" @change="handleChange">
<a-select-option value="图片">
图片
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>创建人员</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item" >
<span>使用状态</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="19" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation">禁用</span>
<span class="table_operation" @click="selectRecords()">操作记录</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<operationRecords :visible.sync="visible1"></operationRecords>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
import operationRecords from '../../operationRecords/index.vue'
export default {
data() {
return{
visible1:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: 'ISLI标识码',
dataIndex: 'name',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '委托方',
dataIndex: '',
align:'center'
},
{
title: '标的类型',
dataIndex: '',
align:'center'
},
{
title: '数据状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
operationRecords
},
created(){
console.info(this.$route)
},
methods:{
selectRecords(){
this.visible1=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/classification/DataQuery.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>文化数据分类管理</a-breadcrumb-item>
<a-breadcrumb-item>全部文化数据查询</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>ISLI标识码</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称:</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>标的类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="4" class="query_item" >
<span>数据状态</span>
<a-select default-value="全部文化数据" @change="handleChange">
<a-select-option value="全部文化数据">
全部文化数据
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="14" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation" @click="selectRecords()">操作记录</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
<operationRecords :visible.sync="visible1"></operationRecords>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
import dataSelect from '../../dateSelect/index.vue'
import operationRecords from '../../operationRecords/index.vue'
export default {
data() {
return{
visible:false,
visible1:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: 'ISLI标识码',
dataIndex: 'name',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '委托方',
dataIndex: '',
align:'center'
},
{
title: '标的类型',
dataIndex: '',
align:'center'
},
{
title: '数据状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect,
operationRecords
},
created(){
console.info(this.$route)
},
methods:{
selectRecords(){
this.visible1=true
},
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

185
src/components/page/fundSettlement/index.vue

@ -0,0 +1,185 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>资金结算分账管理</a-breadcrumb-item>
<a-breadcrumb-item>资金结算对账单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>客户名称</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>结算账户</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>银行账号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>结算状态</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>用户类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="19" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation">账户详情</span>
<span class="table_operation">账单明细</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '用户编码',
dataIndex: 'money',
align:'center'
},
{
title: '客户名称',
dataIndex: 'name',
align:'center'
},
{
title: '结算账户',
dataIndex: '',
align:'center'
},
{
title: '银行账号',
dataIndex: '',
align:'center'
},
{
title: '银行名称',
dataIndex: '',
align:'center'
},
{
title: '用户类型',
dataIndex: '',
align:'center'
},
{
title: '结算状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation
},
created(){
console.info(this.$route)
},
methods:{
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

50
src/components/page/fundSettlement/paymentMethod.vue

@ -0,0 +1,50 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>资金结算分账管理</a-breadcrumb-item>
<a-breadcrumb-item>支付方式设置</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body ">
<div class="body1">
<p class="f_title">请选择可用支付方式</p>
<a-radio-group v-model="value" name="radioGroup">
<a-radio :value="1">
微信
</a-radio>
<a-radio :value="2">
支付宝
</a-radio>
<a-radio :value="3">
网银支付
</a-radio>
</a-radio-group>
<a-button type="primary" class="query_button"> </a-button>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return{
value:1
}
}
}
</script>
<style scoped>
.body1{
background-color: white;
height:185px;
box-sizing: border-box;
padding:20px 20px;
display:flex;
flex-direction: column;
justify-content: space-between;
}
</style>

165
src/components/page/fundSettlement/splitProportion.vue

@ -0,0 +1,165 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>资金结算分账管理</a-breadcrumb-item>
<a-breadcrumb-item>分账比例设置</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>规则名称</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>创建人员</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>使用状态</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="19" class="query_item ">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation">禁用</span>
<span class="table_operation">查看</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '规则名称',
dataIndex: 'name',
align:'center'
},
{
title: '使用状态',
dataIndex: '',
align:'center'
},
{
title: '创建人员',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation
},
created(){
console.info(this.$route)
},
methods:{
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

179
src/components/page/layout/index.vue

@ -0,0 +1,179 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>数据展示布局管理</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<div class="layout_item" v-for="(item,index) in layoutList">
<img src="../../../assets/icons/svg/layout.svg" >
<div :class="active==index?'active':''">{{item.text}}</div>
</div>
</div>
<div class="table">
<div class="table_title">
<span>平台推荐展示</span>
<div class="table_title_right">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button table_title_right_del"> </a-button>
</div>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation">上移</span>
<span class="table_operation">下移</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
active:0,
layoutList:[
{text:'平台推荐展示'},
{text:'热门推荐展示'},
{text:'热卖推荐展示'},
],
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: 'ISLI标识码',
dataIndex: 'name',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '委托方',
dataIndex: '',
align:'center'
},
{
title: '标的类型',
dataIndex: '',
align:'center'
},
{
title: '数据状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation
},
created(){
console.info(this.$route)
},
methods:{
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
.query{
height: 154px;
display: flex;
align-items: center;
}
.layout_item{
width: 120px;
text-align: center;
margin-right: 40px;
}
.layout_item img{
width: 77px;
height: 77px;
margin-bottom: 10px;
}
.layout_item >div{
width: 100%;
color: #4E5969;
text-align: center;
}
.active{
color: white !important;
background-color: #4E5969;
}
</style>

204
src/components/page/order/closed.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>已关闭订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/order/completed.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>已完成订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

223
src/components/page/order/index.vue

@ -0,0 +1,223 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>全部交易订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称:</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item" >
<span>交易状态</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="4" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation" @click="SelectOrder()">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
<orderDetails :visible.sync="visible2"></orderDetails>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
visible2:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '交易状态',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
orderDetails: () => import('../../orderDetails/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectOrder(){
this.visible2=true
},
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/order/pendingPayment.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>待付款订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称:</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/order/toBeDelivered.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>待交付订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

204
src/components/page/order/toBeSettled.vue

@ -0,0 +1,204 @@
<template>
<div>
<div class="breadcrumb">
<a-breadcrumb>
<a-breadcrumb-item>交易订单管理</a-breadcrumb-item>
<a-breadcrumb-item>待结算订单</a-breadcrumb-item>
</a-breadcrumb>
</div>
<div class="body">
<div class="query">
<a-row justify="space-between" >
<a-col :span="5" class="query_item">
<span>订单编号</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>委托方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>购买方</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item">
<span>标的名称:</span>
<a-input/>
</a-col>
<a-col :span="5" class="query_item" >
<span>订单类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item">
<span>委托类型</span>
<a-select default-value="全部" @change="handleChange">
<a-select-option value="全部">
全部
</a-select-option>
</a-select>
</a-col>
<a-col :span="5" class="query_item query_item2">
<span>创建时间</span>
<a-range-picker @change="onChange" />
</a-col>
<a-col :span="9" class="query_item query_item1">
<a-space :size="21">
<a-button type="primary" class="query_button"> </a-button>
<a-button class="query_button"> </a-button>
</a-space>
</a-col>
</a-row>
</div>
<div class="table">
<div class="table_title">
<span>查询结果</span>
<a-button type="primary" class="query_button"> </a-button>
</div>
<a-table :columns="columns" :data-source="data" bordered :pagination="false">
<template slot="operation">
<a-space :size="24">
<span class="table_operation" @click="SelectDate()">数据查看</span>
<span class="table_operation">订单详情</span>
</a-space>
</template>
</a-table>
<a-pagination
class="pagination"
size="small"
:total="total"
v-model="current"
:page-size="pageSize"
:show-total="total => `第 ${current} / ${pageSize} 条 / 总共 ${total} 条`"
:page-size-options="pageSizeOptions"
@showSizeChange="onShowSizeChange"
show-size-changer >
<template slot="buildOptionText" slot-scope="props">
<span >{{ props.value }}/</span>
</template>
</a-pagination>
</div>
</div>
<dataSelect :visible.sync="visible"></dataSelect>
</div>
</template>
<script>
import Operation from '../../Operation.vue'
export default {
data() {
return{
visible:false,
pageSizeOptions: ['10', '20', '30', '40', '50'],
//
pageSize:10,
total:500,
//
current: 1,
data:[
{
key: '1',
name: 'John Brown',
money: '¥300,000.00',
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
money: '¥1,256,000.00',
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
money: '¥120,000.00',
address: 'Sidney No. 1 Lake Park',
},
],
columns:[
{
title: '序号',
className: 'table_column',
dataIndex: 'id',
width:'65px',
align:'center'
},
{
title: '创建时间',
dataIndex: 'money',
align:'center'
},
{
title: '订单编号',
dataIndex: 'name',
align:'center'
},
{
title: '委托方/收款方',
dataIndex: '',
align:'center'
},
{
title: '标的名称',
dataIndex: '',
align:'center'
},
{
title: '购买方/付款方',
dataIndex: '',
align:'center'
},
{
title: '订单类型',
dataIndex: '',
align:'center'
},
{
title: '委托类型',
dataIndex: '',
align:'center'
},
{
title: '交易总额',
dataIndex: '',
align:'center'
},
{
title: '操作',
scopedSlots: { customRender: 'operation' },
align:'center'
},
]
}
},
components:{
Operation,
dataSelect: () => import('../../dateSelect/index.vue'),
},
created(){
console.info(this.$route)
},
methods:{
SelectDate(){
this.visible=true
},
//
onShowSizeChange(current, pageSize){
this.pageSize = pageSize;
},
handleChange(){
},
onChange(){
}
}
}
</script>
<style scoped>
</style>

24
src/main.js

@ -0,0 +1,24 @@
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
//引入svg组件
// import IconSvg from './components/svgIcon'
// //全局注册svg-icon
// Vue.component('svg-icon', IconSvg)
Vue.use(Antd);
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})

96
src/router/index.js

@ -0,0 +1,96 @@
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
redirect: '/Home'
},
{
path: '/',
component: () => import(/* webpackChunkName: "home" */ '../components/Home.vue'),
meta: { title: '自述文件' },
children: [
{
path: '/Home',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/Home/index.vue'),
meta: { title: '系统首页' }
},
{
path: '/DataQuery',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/classification/DataQuery.vue'),
meta: { title: '全部文化数据查询' }
},
{
path: '/Category',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/classification/Category.vue'),
meta: { title: '文化数据类别管理' }
},
{
path: '/admission',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/admission/index.vue'),
meta: { title: '文化数据入场管理' }
},
{
path: '/allOrder',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/index.vue'),
meta: { title: '全部交易订单' }
},
{
path: '/pendingPayment',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/pendingPayment.vue'),
meta: { title: '待付款订单' }
},
{
path: '/toBeDelivered',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/toBeDelivered.vue'),
meta: { title: '待交付订单' }
},
{
path: '/toBeSettled',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/toBeSettled.vue'),
meta: { title: '待结算订单' }
},
{
path: '/completed',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/completed.vue'),
meta: { title: '已完成订单' }
},
{
path: '/closed',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/order/closed.vue'),
meta: { title: '已关闭订单' }
},
{
path: '/invoice',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/afterService/invoice.vue'),
meta: { title: '服务发票' }
},
{
path: '/fundSettlement',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/fundSettlement/index.vue'),
meta: { title: '资金结算对账单' }
},
{
path: '/splitProportion',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/fundSettlement/splitProportion.vue'),
meta: { title: '分账比例设置' }
},
{
path: '/paymentMethod',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/fundSettlement/paymentMethod.vue'),
meta: { title: '支付方式设置' }
},
{
path: '/layout',
component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/layout/index.vue'),
meta: { title: '数据展示布局管理' }
},
]
}
]
})

0
static/.gitkeep

Loading…
Cancel
Save