Commit 1f5b9cfc authored by 大麦及时雨's avatar 大麦及时雨

网站前端页面代码

parents
Pipeline #156 failed with stages
// {
// "presets": [
// ["env", {
// "modules": false,
// "targets": {
// "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
// }
// }],
// "stage-2"
// ],
// "plugins": ["transform-vue-jsx", "transform-runtime"]
// }
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}
# jstransfer
> 大麦及时雨作为一家中国第三方支付和信贷风险评估企业,针对电商卖家的服务,不仅专注于跨境收款领域,还专注于卖家的周转融资难题,依托强大的信贷风险评估技术,同合作的银行、小贷等机构一起为广大电商卖家提供专业、高效、便捷的融资服务。
## Build Setup
``` bash
# install dependencies
yarn
# serve with hot reload at localhost:8080
yarn start
# build for production with minification
yarn run build
```
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).
## 项目结构及注意事项
``` bash
|--build
| |----webpack.base.js(这里面可以关注一下resolve.alias,在这里定义后,可以简化require()或from后面的路径)
| |----webpack.dev.js
| |----webpack.prod.js
|
|--dist(构建生成的目录)
|--config
| |--index.js(配置接口访问路径)
|--src
| |--api
| |--login.js(建议按模块名拆分,里面的get,post请求有一定的格式规范,具体可参考login.js)
| |--......
|
| |--assets(静态资源)
|
| |--components
| |--common(公共组件存放目录)
| | |--xxComponents
| |--......
|
| |--const(常量)
|
| |--server
| |--http.js(基于axios的全局api配置,有请求拦截器及响应拦截器的更细致配置,可以自行参考)
|
| |--utils(工具类存放目录)
| |--pages
| |--home(官网首页)
| |--login(登录注册)
| |--portal(账户中心)
| |--center(个人中心)
| |--dailog(弹出框组件)
| |--guide(引导页面)
| |--payment(付款&缴税)
| |--query(交易查询)
| |--storeLoan(店铺贷)
| |--router
| |--store
| |--app.vue
| |--main.js(整个项目的入口)
|--index.html
|--package.json
|--README.md
|--.gitignore
|--.babelrc
|--postcss.config.js
```
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
})
})
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}
'use strict'
const path = require('path')
const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const packageConfig = require('../package.json')
exports.assetsPath = function (_path) {
const assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
exports.createNotifierCallback = () => {
const notifier = require('node-notifier')
return (severity, errors) => {
if (severity !== 'error') return
const error = errors[0]
const filename = error.file && error.file.split('!').pop()
notifier.notify({
title: packageConfig.name,
message: severity + ': ' + error.name,
subtitle: filename || '',
icon: path.join(__dirname, 'logo.png')
})
}
}
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap
module.exports = {
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction
}),
cssSourceMap: sourceMapEnabled,
cacheBusting: config.dev.cacheBusting,
transformToRequire: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
}
}
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ['babel-polyfill', './src/main.js']
},
externals: {
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex': 'Vuex',
},
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'),
'api': '@/api/',
'assets': '@/assets/',
'components': '@/components/',
'const': '@/const/',
'directives': '@/directives',
'pages': '@/pages/',
'router': '@/router/',
'server': '@/server/',
'store': '@/store/',
'utils': '@/utils/',
}
},
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'
}
}
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const path = require('path')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder')
const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.dev.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
module.exports = new Promise((resolve, reject) => {
portfinder.basePort = process.env.PORT || config.dev.port
portfinder.getPort((err, port) => {
if (err) {
reject(err)
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
// add port to devServer config
devWebpackConfig.devServer.port = port
// Add FriendlyErrorsPlugin
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
}))
resolve(devWebpackConfig)
}
})
})
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const env = require('../config/prod.env')
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
// Setting the following option to `false` will not extract CSS from codesplit chunks.
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
allChunks: true,
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: config.build.productionSourceMap
? { safe: true, map: { inline: false } }
: { safe: true }
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vendor modules does not change
new webpack.HashedModuleIdsPlugin(),
// enable scope hoisting
new webpack.optimize.ModuleConcatenationPlugin(),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
minChunks: Infinity
}),
// This instance extracts shared chunks from code splitted chunks and bundles them
// in a separate chunk, similar to the vendor chunk
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
//target: 'http://192.168.0.196:9010', // 赵颖杰
//target: 'http://192.168.0.184:9010', // 刘欢
target: 'http://114.55.171.170:9010/', // 开发环境
//target: 'http://172.16.243.230:9010', // 测试环境
// secure: false, // 如果是https接口,需要配置这个参数
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
pathRewrite: {
'^/api': ''
}
}
},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
//host: '192.168.8.112', // 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
}
}
'use strict'
module.exports = {
NODE_ENV: '"production"'
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="./static/favicon.ico" />
<title>大麦及时雨</title>
<link rel="icon" type="image/x-icon" href="./static/favicon.ico" />
<style>
.el-menu--horizontal ul.el-menu--popup {
min-width: 100px;
border-radius: 4px;
}
.el-button--primary.is-plain {
background: #fff !important;
}
.el-button--primary.is-plain:hover {
color: #3d86e9 !important;
}
.el-message {
top: 60px !important;
}
</style>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
<script>
function isLowIE() {
//判断是否是ie9以下的低版本ie浏览器
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
return true;
} else if (fIEVersion == 8) {
return true;
} else if (fIEVersion == 9) {
return false;
} else if (fIEVersion == 10) {
return false;
} else {
return true; //IE版本<=7
}
}
return false;
}
function appendTipDom() {
var cntr = document.createElement('div');
cntr.setAttribute('class', 'lower-ie-down-tip-cntr');
var cntr2 = document.createElement('div');
cntr2.setAttribute('class', 'lower-ie-down-tip-cntr2');
var text1 = document.createElement('div');
text1.setAttribute('class', 'lower-ie-down-tip-text');
var span1 = document.createElement('span');
span1.setAttribute('class', 'lower-ie-down-tip-circle');
var a = document.createElement('a');
a.setAttribute('class', 'lower-ie-down-tip-a');
// a.setAttribute('href', 'http://oa.gome.inc/HOWebApp/Gome.OA.IntranetPortal/tools/GoogleChromeframeStandaloneEnterprise.msi');
var t1 = document.createTextNode('当前浏览器版本过低,为了不影响您正常使用请');
var t4 = document.createTextNode('下载插件');
a.appendChild(t4);
text1.appendChild(span1);
text1.appendChild(t1);
text1.appendChild(a);
var text2 = document.createElement('div');
text2.setAttribute('class', 'lower-ie-down-tip-text');
var span2 = document.createElement('span');
span2.setAttribute('class', 'lower-ie-down-tip-circle');
var t2 = document.createTextNode('下载完成后,请双击下载文件根据步骤完成安装');
text2.appendChild(span2);
text2.appendChild(t2);
var text3 = document.createElement('div');
text3.setAttribute('class', 'lower-ie-down-tip-text');
var span3 = document.createElement('span');
span3.setAttribute('class', 'lower-ie-down-tip-circle');
var t3 = document.createTextNode('安装完成后请重新启动浏览器');
text3.appendChild(span3);
text3.appendChild(t3);
cntr2.appendChild(text1);
cntr2.appendChild(text2);
cntr2.appendChild(text3);
cntr.appendChild(cntr2);
document.body.appendChild(cntr);
}
window.onload = function () {
if (isLowIE()) {
appendTipDom();
}
}
</script>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/vue/2.5.2/vue.js"></script>
<!-- <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script> -->
<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
</body>
</html>
This diff is collapsed.
{
"name": "jstransfer",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "Barry <470369006@qq.com>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --hot --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"ajv": "^6.10.0",
"axios": "^0.18.0",
"babel-polyfill": "^6.26.0",
"babel-preset-es2015-ie": "^6.7.0",
"babel-runtime": "^6.26.0",
"bankbin": "^1.0.3",
"bankcardinfo": "^2.0.5",
"clipboard": "^2.0.4",
"element-ui": "^2.8.2",
"jsencrypt": "^3.0.0-rc.1",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vuex": "^3.1.1"
},
"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.23.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.7.0",
"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",
"less": "^3.9.0",
"less-loader": "^5.0.0",
"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",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"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"
]
}
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
import "babel-polyfill";
export default {
name: "App",
created() {
//在页面加载时读取localStorage里的状态信息
if (localStorage.getItem("initVuex")) {
this.$store.replaceState(
Object.assign(
{},
this.$store.state,
JSON.parse(localStorage.getItem("initVuex"))
)
);
}
//在页面刷新时将vuex里的信息保存到localStorage里
window.addEventListener("beforeunload", () => {
localStorage.setItem("initVuex", JSON.stringify(this.$store.state));
});
}
};
</script>
<style>
#app {
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #333;
}
</style>
import http from 'server/http'
let host = process.env.NODE_ENV == 'development' ? '/api' : '';
//获取当前登录用户银行卡列表接口
export const api_bankList = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/bankList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//添加银行卡页面初始化信息接口
export const api_initAddBank = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/initAddBank`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//添加银行卡接口
export const api_addBankCard = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/addBankCard`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//添加银行卡接口
export const api_disableBankCard = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/disableBankCard`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//获取地区省接口
export const api_getProvence = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/getProvence`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//获取地区省接口
export const api_getCity = (opt) => {
return http({
url: `${host}/api/v1/authc/jsKycBank/getCity`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//获取开户银行码值列表接口
export const api_findJsBankList = (opt) => {
return http({
url: `${host}/api/v1/authc/jsBank/findJsBankList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//个人中心-提现手续费费率-接口
export const api_showWithdrawCharge = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/showWithdrawCharge`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//修改密码接口
export const api_changePwd = (opt) => {
return http({
url: `${host}/api/v1/authc/password/changePwd`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//查询密保接口
export const api_findSecurityByKyc = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNaturalSecurity/findSecurityByKyc`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//添加/更新密保接口
export const api_saveSecurityByKyc = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNaturalSecurity/saveSecurityByKyc`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//更改手机号接口
export const api_changeMoblie = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNaturalSecurity/changeMoblie`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//修改邮箱接口
export const api_changeEmail = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNaturalSecurity/changeEmail`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//手机验证接口
export const api_sms = (opt) => {
return http({
url: `${host}/api/v1/anon/validateCode/sms`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//邮箱验证接口
export const api_validateEmail = (opt) => {
return http({
url: `${host}/api/v1/anon/validateCode/email`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
import http from 'server/http'
let host = process.env.NODE_ENV == 'development' ? '/api' : '';
//店铺贷->还款
export const api_loanSituation = (opt) => {
return http({
url: `${host}/api/v1/anon/repayment/loanSituation`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->还款->还款操作
export const api_operation = (opt) => {
return http({
url: `${host}/api/v1/anon/repayment/operation`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//还款试算(店铺贷->还款->还款操作)
export const api_trial = (opt) => {
return http({
url: `${host}/api/v1/anon/repayment/trial`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->还款->还款详情
export const api_detailed = (opt) => {
return http({
url: `${host}/api/v1/anon/repayment/detailed`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款申请->填写申请资料
export const api_loan_accessm = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/access`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->授权店铺
export const api_loan_condition = (opt) => {
return http({
url: `${host}/api/v1/anon/storeLoan/condition`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->店铺查询
export const api_loan_appstore = (opt) => {
return http({
url: `${host}/api/v1/anon/storeLoan/storeList`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->输入意向借款金额
export const api_loan_application = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/application`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->借款人信息
export const api_loan_getKeyNatural = (opt) => {
return http({
url: `${host}/api/v1/anon/storeLoan/getKeyNatural`,
method: 'get',
params: opt.params,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->借款记录
export const api_queryLoan = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/queryLoan`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->借款记录->详情
export const api_loanDetailed = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/loanDetailed`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->资金明细
export const api_capitalDetailed = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/capitalDetailed`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->资金明细->详情
export const api_capitalDetailedDetails = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/capitalDetailedDetails`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->申请记录
export const api_queryAccess = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/queryAccess`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->记录查询->申请记录->详情
export const api_queryAccessDetails = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/queryAccessDetails`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//还款店铺账户查询(店铺贷->还款->还款操作)
export const api_queryStoreList = (opt) => {
return http({
url: `${host}/api/v1/anon/repayment/queryStoreAccount`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//对账文件申请查询(店铺贷->记录查询->对账单下载)
export const api_applyQuery = (opt) => {
return http({
url: `${host}/api/v1/anon/loanBill/applyQuery`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//对账文件申请(店铺贷->记录查询->对账单下载)
export const api_applyOperation = (opt) => {
return http({
url: `${host}/api/v1/anon/loanBill/applyOperation`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//对账文件下载(店铺贷->记录查询->对账单下载)
export const api_download = (opt) => {
return http({
url: `${host}/api/v1/anon/loanBill/download`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom,
responseType: 'blob' //下载才用这个字段
});
}
//合同详情查询(店铺贷->记录查询->借款记录->详情->合同)
export const api_queryContract = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/queryContract`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom,
});
}
//店铺贷->借款申请->输入意向借款金额->银行卡信息查询
export const api_loan_query = (opt) => {
return http({
url: `${host}/api/v1/anon/loanBank/query`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款申请->输入意向借款金额->绑定银行卡信息
export const api_loan_add = (opt) => {
return http({
url: `${host}/api/v1/anon/loanBank/add`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->签署支用合同
export const api_loan_loanContract = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/loanContract`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款->获取图片
export const api_loan_downLoad = (opt) => {
return http({
url: `${host}/api/v1/authc/jsFile/downLoad`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom,
responseType: 'blob'
});
}
//店铺贷->借款->修改
export const api_loan_queryLoanRisk = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/queryLoanRisk`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom,
});
}
//店铺贷->借款申请->修改提交
export const api_loan_updateLoanRisk = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/updateLoanRisk`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款申请->合同签署
export const api_loan_signContract = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/signContract`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款申请->合同归档
export const api_loan_signVerification = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/signVerification`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺贷->借款申请->等待放款
export const api_loan_loanApplicationDetailed = (opt) => {
return http({
url: `${host}/api/v1/anon/loan/loanApplicationDetailed`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
import http from 'server/http'
// console.log(process.env.NODE_ENV);
let host = process.env.NODE_ENV == 'development' ? '/api' : '';
//校验邮箱是否存在
export const api_verifyEmailExists = (opt) => {
return http({
url: `${host}/api/v1/anon/register/verifyEmailExists`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//校验手机号是否存在
export const api_verifyMobileExists = (opt) => {
return http({
url: `${host}/api/v1/anon/register/verifyMobileExists`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//获取密码传输加密Key
export const api_getPwdKey = (opt) => {
return http({
url: `${host}/api/v1/anon/password/getPwdKey`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//用户注册
export const api_register = (opt) => {
return http({
url: `${host}/api/v1/anon/register/submit`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//发送邮箱验证码
export const api_email = (opt) => {
return http({
url: `${host}/api/v1/anon/code/email`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//邮箱激活
export const api_emailValidate = (opt) => {
return http({
url: `${host}/api/v1/authc/register/emailValidate`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//登录
export const api_login = (opt) => {
return http({
url: `${host}/api/v1/anon/login/pwd`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//登出
export const api_logOut = (opt) => {
return http({
url: `${host}/api/v1/authc/logOut`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//发送短信验证码
export const api_code = (opt) => {
return http({
url: `${host}/api/v1/anon/code/sms`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//获取字典表接口(店铺主要经营类别、企业性质、店铺所在站点、证件类型、证件类型)
export const api_findDictionary = (opt) => {
return http({
url: `${host}/api/v1/authc/dictionary/findDictionary`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//实名认证接口-大陆个人
export const api_addPersonal = (opt) => {
return http({
url: `${host}/api/v1/authc/certiMainLand/addPersonal`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//实名认证接口-大陆企业
export const api_addCompany = (opt) => {
return http({
url: `${host}/api/v1/authc/certiMainLand/addCompany`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//实名认证接口-香港个人
export const api_addHKPersonal = (opt) => {
return http({
url: `${host}/api/v1/authc/certiHK/addPersonal`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//实名认证接口-香港企业
export const api_addHKCompany = (opt) => {
return http({
url: `${host}/api/v1/authc/certiHK/addCompany`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//发送图形验证码
export const api_iamgeCode = (opt) => {
return http({
url: `${host}/api/v1/anon/code/image`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//图形验证码验证接口
export const api_validateImage = (opt) => {
return http({
url: `${host}/api/v1/anon/validateCode/image`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//设置新密码接口
export const api_changeNewPwd = (opt) => {
return http({
url: `${host}/api/v1/anon/password/changeNewPwd`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//修改实名认证资料接口
export const api_getCertiInfo = (opt) => {
return http({
url: `${host}/api/v1/authc/certi/getCertiInfo`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//汉字换拼音
export const api_convertToPinYin = (opt) => {
return http({
url: `${host}/api/v1/anon/jsPinYin/convertToPinYin`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//查询企业股东占股25%
export const api_getEnterprisePartners = (opt) => {
return http({
url: `${host}/api/v1/anon/jsPayEnterpriseInfo/getEnterprisePartners`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//kyc添加联系人接口/kycCertiContacts/getContacts
export const api_addContacts = (opt) => {
return http({
url: `${host}/api/v1/authc/kycCertiContacts/addContacts`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//kyc修改联系人接口
export const api_getContacts = (opt) => {
return http({
url: `${host}/api/v1/authc/kycCertiContacts/getContacts`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//kyc状态更改接口
export const api_updateKycNatural = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNatural/updateKycNatural`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
import http from 'server/http'
let host = process.env.NODE_ENV == 'development' ? '/api' : '';
//获取当前登录用户各个站点申请账户数量&实时汇率接口
export const api_findApplyCountNum = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/findApplyCountNum`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺列表接口
export const api_storeList = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/storeList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//交易明细列表接口
export const api_tradeList = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/tradeList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//交易列表下拉框初始化接口
export const api_showTradeInit = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/showTradeInit`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//根据平台站点查询店铺列表接口
export const api_showStoreListByCondition = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/showStoreListByCondition`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//入账详情接口
export const api_tradeDetail = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/tradeDetail`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//资金明细列表接口
export const api_fundDetailList = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/fundDetailList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//资金明细列表-提现详情
export const api_fundDetail = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/fundDetail`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//申请境外收款账户接口
export const api_addStore = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/addStore`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//店铺详情接口
export const api_findStoreDetailInfo = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/findStoreDetailInfo`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//提现列表接口
export const api_findCanWithdrawStoreList = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/findCanWithdrawStoreList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//提现接口数据初始化接口
export const api_initWithdrawInfo = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/initWithdrawInfo`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//查询用户信息
export const api_findNaturalInfo = (opt) => {
return http({
url: `${host}/api/v1/authc/kycNatural/findNaturalInfo`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//店铺编辑保存接口
export const api_editStore = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/editStore`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//申请提现接口
export const api_applyWithdraw = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/applyWithdraw`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//文件生成记录表查询
export const api_generateFileRecordList = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/generateFileRecordList`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom
});
}
//生成交易记录、回执单、资金明细接口
export const api_generateTradeRecord = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/generateTradeRecord`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
//下载交易记录接口
export const api_downloadGenerateRecord = (opt) => {
return http({
url: `${host}/api/v1/authc/payTrade/downloadGenerateRecord`,
method: 'get',
params: opt.params,
loadingDom: opt.loadingDom,
responseType: 'blob' //下载才用这个字段
});
}
//编辑店铺名称接口
export const api_editStoreName = (opt) => {
return http({
url: `${host}/api/v1/authc/jsStore/editStoreName`,
method: 'post',
data: opt.data,
useResWithCode: true,
loadingDom: opt.loadingDom
});
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment