@ -0,0 +1,6 @@ |
|||
<component name="InspectionProjectProfileManager"> |
|||
<profile version="1.0"> |
|||
<option name="myName" value="Project Default" /> |
|||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" /> |
|||
</profile> |
|||
</component> |
|||
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<module type="WEB_MODULE" version="4"> |
|||
<component name="NewModuleRootManager"> |
|||
<content url="file://$MODULE_DIR$" /> |
|||
<orderEntry type="inheritedJdk" /> |
|||
<orderEntry type="sourceFolder" forTests="false" /> |
|||
</component> |
|||
</module> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="JavaScriptSettings"> |
|||
<option name="languageLevel" value="ES6" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="ProjectModuleManager"> |
|||
<modules> |
|||
<module fileurl="file://$PROJECT_DIR$/.idea/kline_vue.iml" filepath="$PROJECT_DIR$/.idea/kline_vue.iml" /> |
|||
</modules> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="VcsDirectoryMappings"> |
|||
<mapping directory="$PROJECT_DIR$" vcs="Git" /> |
|||
</component> |
|||
</project> |
|||
@ -0,0 +1,245 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="ChangeListManager"> |
|||
<list default="true" id="c5de7095-e14a-4ebd-9038-78211d4f11f7" name="Default Changelist" comment="" /> |
|||
<ignored path="$PROJECT_DIR$/dist/" /> |
|||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
|||
<option name="SHOW_DIALOG" value="false" /> |
|||
<option name="HIGHLIGHT_CONFLICTS" value="true" /> |
|||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
|||
<option name="LAST_RESOLUTION" value="IGNORE" /> |
|||
</component> |
|||
<component name="ComposerSettings"> |
|||
<execution> |
|||
<executable /> |
|||
</execution> |
|||
</component> |
|||
<component name="FileEditorManager"> |
|||
<leaf> |
|||
<file pinned="false" current-in-tab="false"> |
|||
<entry file="file://$PROJECT_DIR$/src/views/HomeView.vue"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="-58"> |
|||
<caret line="28" column="103" lean-forward="true" selection-start-line="28" selection-start-column="103" selection-end-line="28" selection-end-column="103" /> |
|||
<folding> |
|||
<element signature="e#1935#1958#0" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
</file> |
|||
<file pinned="false" current-in-tab="true"> |
|||
<entry file="file://$PROJECT_DIR$/src/components/PytnUsdt.vue"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="285"> |
|||
<caret line="33" column="46" selection-start-line="33" selection-start-column="37" selection-end-line="33" selection-end-column="46" /> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
</file> |
|||
<file pinned="false" current-in-tab="false"> |
|||
<entry file="file://$PROJECT_DIR$/src/main.js"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="348"> |
|||
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" /> |
|||
<folding> |
|||
<element signature="e#0#22#0" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
</file> |
|||
<file pinned="false" current-in-tab="false"> |
|||
<entry file="file://$PROJECT_DIR$/src/utils/config/defaultconfig.js"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state> |
|||
<folding> |
|||
<element signature="n#!!doc" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
</file> |
|||
<file pinned="false" current-in-tab="false"> |
|||
<entry file="file://$PROJECT_DIR$/src/utils/config/index.js"> |
|||
<provider selected="true" editor-type-id="text-editor" /> |
|||
</entry> |
|||
</file> |
|||
</leaf> |
|||
</component> |
|||
<component name="Git.Settings"> |
|||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
|||
</component> |
|||
<component name="ProjectFrameBounds"> |
|||
<option name="width" value="1376" /> |
|||
<option name="height" value="838" /> |
|||
</component> |
|||
<component name="ProjectView"> |
|||
<navigator proportions="" version="1"> |
|||
<foldersAlwaysOnTop value="true" /> |
|||
</navigator> |
|||
<panes> |
|||
<pane id="ProjectPane"> |
|||
<subPane> |
|||
<expand> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="components" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="router" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="utils" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="utils" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="config" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
<path> |
|||
<item name="kline_vue" type="b2602c69:ProjectViewProjectNode" /> |
|||
<item name="kline_vue" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="src" type="462c0819:PsiDirectoryNode" /> |
|||
<item name="views" type="462c0819:PsiDirectoryNode" /> |
|||
</path> |
|||
</expand> |
|||
<select /> |
|||
</subPane> |
|||
</pane> |
|||
<pane id="Scope" /> |
|||
</panes> |
|||
</component> |
|||
<component name="PropertiesComponent"> |
|||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> |
|||
<property name="WebServerToolWindowFactoryState" value="false" /> |
|||
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> |
|||
<property name="node.js.detected.package.eslint" value="true" /> |
|||
<property name="node.js.detected.package.tslint" value="true" /> |
|||
<property name="node.js.path.for.package.eslint" value="project" /> |
|||
<property name="node.js.path.for.package.tslint" value="project" /> |
|||
<property name="node.js.selected.package.eslint" value="(autodetect)" /> |
|||
<property name="node.js.selected.package.tslint" value="(autodetect)" /> |
|||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> |
|||
<property name="nodejs_npm_path_reset_for_default_project" value="true" /> |
|||
<property name="nodejs_package_manager_path" value="yarn" /> |
|||
</component> |
|||
<component name="RunDashboard"> |
|||
<option name="ruleStates"> |
|||
<list> |
|||
<RuleState> |
|||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" /> |
|||
</RuleState> |
|||
<RuleState> |
|||
<option name="name" value="StatusDashboardGroupingRule" /> |
|||
</RuleState> |
|||
</list> |
|||
</option> |
|||
</component> |
|||
<component name="SvnConfiguration"> |
|||
<configuration /> |
|||
</component> |
|||
<component name="TaskManager"> |
|||
<task active="true" id="Default" summary="Default task"> |
|||
<changelist id="c5de7095-e14a-4ebd-9038-78211d4f11f7" name="Default Changelist" comment="" /> |
|||
<created>1722219937491</created> |
|||
<option name="number" value="Default" /> |
|||
<option name="presentableId" value="Default" /> |
|||
<updated>1722219937491</updated> |
|||
<workItem from="1722219939501" duration="3880000" /> |
|||
</task> |
|||
<servers /> |
|||
</component> |
|||
<component name="TimeTrackingManager"> |
|||
<option name="totallyTimeSpent" value="3880000" /> |
|||
</component> |
|||
<component name="ToolWindowManager"> |
|||
<frame x="0" y="0" width="1376" height="838" extended-state="0" /> |
|||
<editor active="true" /> |
|||
<layout> |
|||
<window_info id="npm" side_tool="true" /> |
|||
<window_info id="Favorites" side_tool="true" /> |
|||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.31534955" /> |
|||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> |
|||
<window_info anchor="bottom" id="Docker" show_stripe_button="false" /> |
|||
<window_info anchor="bottom" id="Database Changes" /> |
|||
<window_info anchor="bottom" id="Version Control" /> |
|||
<window_info anchor="bottom" id="Terminal" /> |
|||
<window_info anchor="bottom" id="Event Log" side_tool="true" /> |
|||
<window_info anchor="bottom" id="Message" order="0" /> |
|||
<window_info anchor="bottom" id="Find" order="1" /> |
|||
<window_info anchor="bottom" id="Run" order="2" /> |
|||
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> |
|||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> |
|||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> |
|||
<window_info anchor="bottom" id="TODO" order="6" /> |
|||
<window_info anchor="right" id="Database" /> |
|||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> |
|||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> |
|||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> |
|||
</layout> |
|||
</component> |
|||
<component name="TypeScriptGeneratedFilesManager"> |
|||
<option name="version" value="1" /> |
|||
</component> |
|||
<component name="editorHistoryManager"> |
|||
<entry file="file://$PROJECT_DIR$/src/main.js"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="348"> |
|||
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" /> |
|||
<folding> |
|||
<element signature="e#0#22#0" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
<entry file="file://$PROJECT_DIR$/src/utils/config/defaultconfig.js"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state> |
|||
<folding> |
|||
<element signature="n#!!doc" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
<entry file="file://$PROJECT_DIR$/src/utils/config/index.js"> |
|||
<provider selected="true" editor-type-id="text-editor" /> |
|||
</entry> |
|||
<entry file="file://$PROJECT_DIR$/src/views/HomeView.vue"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="-58"> |
|||
<caret line="28" column="103" lean-forward="true" selection-start-line="28" selection-start-column="103" selection-end-line="28" selection-end-column="103" /> |
|||
<folding> |
|||
<element signature="e#1935#1958#0" expanded="true" /> |
|||
</folding> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
<entry file="file://$PROJECT_DIR$/src/components/PytnUsdt.vue"> |
|||
<provider selected="true" editor-type-id="text-editor"> |
|||
<state relative-caret-position="285"> |
|||
<caret line="33" column="46" selection-start-line="33" selection-start-column="37" selection-end-line="33" selection-end-column="46" /> |
|||
</state> |
|||
</provider> |
|||
</entry> |
|||
</component> |
|||
</project> |
|||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 701 B After Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 299 KiB After Width: | Height: | Size: 299 KiB |
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
@ -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"] |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
root = true |
|||
|
|||
[*] |
|||
# 字符编码 |
|||
charset = utf-8 |
|||
# 以空格形式缩进 |
|||
indent_style = space |
|||
# 缩进的大小为4个空格 |
|||
indent_size = 4 |
|||
tab_width = 4 |
|||
# 定义换行符 |
|||
end_of_line = lf |
|||
# 文件结尾处插入新行 |
|||
insert_final_newline = true |
|||
# 除去换行行首的任意空白字符 |
|||
# trim_trailing_whitespace = true |
|||
@ -0,0 +1,5 @@ |
|||
/build/ |
|||
/config/ |
|||
/dist/ |
|||
/*.js |
|||
/src |
|||
@ -0,0 +1,29 @@ |
|||
// https://eslint.org/docs/user-guide/configuring
|
|||
|
|||
module.exports = { |
|||
root: true, |
|||
parserOptions: { |
|||
parser: 'babel-eslint' |
|||
}, |
|||
env: { |
|||
browser: true, |
|||
}, |
|||
extends: [ |
|||
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
|
|||
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
|
|||
'plugin:vue/essential', |
|||
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
|
|||
'standard' |
|||
], |
|||
// required to lint *.vue files
|
|||
plugins: [ |
|||
'vue' |
|||
], |
|||
// add your custom rules here
|
|||
rules: { |
|||
// allow async-await
|
|||
'generator-star-spacing': 'off', |
|||
// allow debugger during development
|
|||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' |
|||
} |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
# ---> Vue |
|||
# gitignore template for Vue.js projects |
|||
# |
|||
# Recommended template: Node.gitignore |
|||
|
|||
# TODO: where does this rule come from? |
|||
docs/_book |
|||
|
|||
# TODO: where does this rule come from? |
|||
test/ |
|||
|
|||
# ---> macOS |
|||
# General |
|||
.DS_Store |
|||
.AppleDouble |
|||
.LSOverride |
|||
|
|||
|
|||
# Thumbnails |
|||
._* |
|||
|
|||
# Files that might appear in the root of a volume |
|||
.DocumentRevisions-V100 |
|||
.fseventsd |
|||
.Spotlight-V100 |
|||
.TemporaryItems |
|||
.Trashes |
|||
.VolumeIcon.icns |
|||
.com.apple.timemachine.donotpresent |
|||
|
|||
# Directories potentially created on remote AFP share |
|||
.AppleDB |
|||
.AppleDesktop |
|||
Network Trash Folder |
|||
Temporary Items |
|||
.apdisk |
|||
|
|||
.idea/ |
|||
node_modules/ |
|||
dist/ |
|||
.history/ |
|||
@ -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": {} |
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
MIT License |
|||
|
|||
Copyright (c) 2020 lautin |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
|||
in the Software without restriction, including without limitation the rights |
|||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
copies of the Software, and to permit persons to whom the Software is |
|||
furnished to do so, subject to the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be included in all |
|||
copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|||
SOFTWARE. |
|||
@ -0,0 +1,21 @@ |
|||
# 新版k线预览 |
|||
|
|||
k线预览图 vue版本 |
|||
|
|||
1、在config中配置 币的名称就可以查看对应的咯 |
|||
|
|||
## 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 |
|||
``` |
|||
@ -0,0 +1,41 @@ |
|||
'use strict' |
|||
require('./check-versions')() |
|||
// 构建时 将环境变量设为production
|
|||
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, |
|||
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' |
|||
)) |
|||
}) |
|||
}) |
|||
@ -0,0 +1,52 @@ |
|||
'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) |
|||
} |
|||
} |
|||
|
After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,142 @@ |
|||
'use strict' |
|||
const path = require('path') |
|||
const config = require('../config') |
|||
|
|||
const packageConfig = require('../package.json') |
|||
|
|||
// 将构建时内嵌的css 提取为一个独立文件
|
|||
const ExtractTextPlugin = require('extract-text-webpack-plugin') |
|||
|
|||
// 配置资源文件路径
|
|||
exports.assetsPath = function(_path) { |
|||
const assetsSubDirectory = process.env.NODE_ENV === 'production' ? |
|||
config.build.assetsSubDirectory : |
|||
config.dev.assetsSubDirectory |
|||
|
|||
return path.posix.join(assetsSubDirectory, _path) |
|||
} |
|||
|
|||
/** |
|||
* 加载各型css loader的封装函数 |
|||
* { usePostCSS, sourceMap, extract } |
|||
* |
|||
*/ |
|||
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', |
|||
publicPath: '../../' |
|||
}) |
|||
} else { // 最后加载vue-style-loader 解析.vue中的css代码
|
|||
return ['vue-style-loader'].concat(loaders) |
|||
} |
|||
} |
|||
|
|||
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
|
|||
return { |
|||
css: generateLoaders(), |
|||
postcss: generateLoaders(), |
|||
|
|||
less: generateLoaders('less'), |
|||
|
|||
// 给scss文件增加loader以支持全局导入文件,
|
|||
// 所有扩展的loader通过concat写入
|
|||
// resource-loader确保变量、混入类和函数在每个文件中都有效
|
|||
sass: generateLoaders('sass', { |
|||
indentedSyntax: true |
|||
}), |
|||
scss: generateLoaders('sass').concat({ |
|||
loader: 'style-resources-loader', |
|||
options: { |
|||
patterns: [ |
|||
// 全局配置函数 此处的_不能省略
|
|||
path.resolve(__dirname, "../src/assets/scss/_settings.scss"), |
|||
|
|||
path.resolve(__dirname, "../src/assets/scss/_mixin.scss"), |
|||
|
|||
// 加载基础样式
|
|||
// path.resolve(__dirname, '../src/assets/scss/base/_base.scss'),
|
|||
|
|||
// 加载布局样式
|
|||
path.resolve(__dirname, '../src/assets/scss/layout/_layout.scss'), |
|||
|
|||
// 加载模块样式
|
|||
// path.resolve(__dirname, '../src/assets/scss/module/_module.scss'),
|
|||
|
|||
// 加载主题样式
|
|||
path.resolve(__dirname, '../src/assets/scss/theme/_theme.scss'), |
|||
] |
|||
} |
|||
}), |
|||
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') |
|||
}) |
|||
} |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
'use strict' |
|||
const utils = require('./utils') |
|||
const config = require('../config') |
|||
const isProduction = process.env.NODE_ENV === 'production' |
|||
|
|||
// 默认情况下不启用它们,因为它们会导致运行时的额外开销,并增加了 bundle 大小
|
|||
// (JS source map 不会)
|
|||
const sourceMapEnabled = isProduction ? |
|||
config.build.productionSourceMap : |
|||
config.dev.cssSourceMap |
|||
|
|||
// 管理loader配置的文件
|
|||
module.exports = { |
|||
|
|||
loaders: utils.cssLoaders({ |
|||
sourceMap: sourceMapEnabled, |
|||
// 如果是产品模式 则将css从vue中提取出来
|
|||
extract: false, |
|||
}), |
|||
cssSourceMap: sourceMapEnabled, |
|||
cacheBusting: config.dev.cacheBusting, |
|||
transformToRequire: { |
|||
video: ['src', 'poster'], |
|||
source: 'src', |
|||
img: 'src', |
|||
image: 'xlink:href' |
|||
} |
|||
} |
|||
@ -0,0 +1,110 @@ |
|||
'use strict' |
|||
|
|||
// 通用的webapck基础配置,主要是一些loader的支持
|
|||
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); |
|||
} |
|||
|
|||
const createLintingRule = () => ({ |
|||
test: /\.(js|vue)$/, |
|||
loader: 'eslint-loader', |
|||
enforce: 'pre', |
|||
include: [resolve('src'), resolve('test')], |
|||
options: { |
|||
formatter: require('eslint-friendly-formatter'), |
|||
emitWarning: !config.dev.showEslintErrorsInOverlay |
|||
} |
|||
}) |
|||
|
|||
module.exports = { |
|||
|
|||
context: path.resolve(__dirname, '../'), |
|||
|
|||
// 模块的入口文件 - 单页应用
|
|||
entry: { |
|||
app: './src/main.js', |
|||
}, |
|||
|
|||
// 输出路径 - /dist/app.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'], |
|||
|
|||
// 路径标识,用于require解析路径 默认@为src
|
|||
alias: { |
|||
'vue$': 'vue/dist/vue.esm.js', // $为严格匹配
|
|||
'@': resolve('src'), |
|||
'~': resolve('static') |
|||
} |
|||
}, |
|||
|
|||
// 加载的loader
|
|||
module: { |
|||
rules: [ |
|||
...(config.dev.useEslint ? [createLintingRule()] : []), |
|||
{ |
|||
test: /\.vue$/, |
|||
loader: 'vue-loader', |
|||
options: vueLoaderConfig // 分离vue中的css代码,
|
|||
// 编译为css代码块,
|
|||
// 提取为独立的文件,
|
|||
}, |
|||
{ |
|||
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' |
|||
} |
|||
} |
|||
@ -0,0 +1,166 @@ |
|||
'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 BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin |
|||
|
|||
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', |
|||
// 404 页面配置
|
|||
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 BundleAnalyzerPlugin(),
|
|||
|
|||
// 自动加载模块,而不必到处 import 或 require
|
|||
new webpack.ProvidePlugin({ |
|||
// marked: "marked",
|
|||
// $: 'jquery',
|
|||
// jQuery: 'jquery',
|
|||
_: 'lodash', |
|||
Popper: ['popper.js', 'default'], |
|||
utils: [path.join(__dirname, '..', 'src/utils'), 'default'], |
|||
}), |
|||
|
|||
// 允许创建一个在编译时可以配置的全局常量
|
|||
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
|
|||
// 自动更新html中的入口文件
|
|||
new HtmlWebpackPlugin({ |
|||
filename: 'index.html', // html生成的文件 `/index.html`
|
|||
template: 'src/index.html', // webpack模板 默认为src/index.ejs
|
|||
inject: true, // 开启自动注入模块入口文件
|
|||
favicon: path.resolve(__dirname, '../src/favicon.ico'), |
|||
title: 'Crypto | Exchange | Market', |
|||
isProduct : process.env.NODE_ENV == 'production' ? true : false, |
|||
}), |
|||
|
|||
// 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.dev.assetsSubDirectory, |
|||
ignore: ['.*'] |
|||
}]), |
|||
|
|||
new CopyWebpackPlugin([{ |
|||
from: path.resolve(__dirname, '../static/newProduct'), |
|||
to: config.dev.newProductRoot, |
|||
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) |
|||
} |
|||
}) |
|||
}) |
|||
@ -0,0 +1,177 @@ |
|||
'use strict' |
|||
// 打包构建dist时 使用配置文件
|
|||
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 BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin |
|||
|
|||
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: [ |
|||
|
|||
new BundleAnalyzerPlugin(), |
|||
|
|||
// 自动加载模块,而不必到处 import 或 require
|
|||
new webpack.ProvidePlugin({ |
|||
// marked: "marked",
|
|||
// $: 'jquery',
|
|||
// jQuery: 'jquery',
|
|||
_: 'lodash', |
|||
Popper: ['popper.js', 'default'], |
|||
utils: [path.join(__dirname, '..', 'src/utils'), 'default'], |
|||
}), |
|||
|
|||
|
|||
// 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: 'src/index.html', |
|||
inject: true, |
|||
favicon: path.resolve(__dirname, '../src/favicon.ico'), |
|||
title: 'Crypto', |
|||
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', |
|||
isProduct : process.env.NODE_ENV == 'production' ? true : false, |
|||
}), |
|||
|
|||
// 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: ['.*'] |
|||
}]), |
|||
|
|||
|
|||
new CopyWebpackPlugin([{ |
|||
from: path.resolve(__dirname, '../static/newProduct'), |
|||
to: config.build.newProductRoot, |
|||
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 |
|||
@ -0,0 +1,9 @@ |
|||
'use strict' |
|||
|
|||
const merge = require('webpack-merge') |
|||
const prodEnv = require('./prod.env') |
|||
|
|||
// 编译时的全局常量
|
|||
module.exports = merge(prodEnv, { |
|||
NODE_ENV: '"development"' |
|||
}) |
|||
@ -0,0 +1,107 @@ |
|||
'use strict' |
|||
// Template version: 1.3.1
|
|||
// see http://vuejs-templates.github.io/webpack for documentation.
|
|||
|
|||
|
|||
// 用户配置的入口文件 接入脚手架中的配置
|
|||
const path = require('path'); |
|||
|
|||
module.exports = { |
|||
|
|||
// 开发相关配置
|
|||
dev: { |
|||
|
|||
// 打包资源根地址
|
|||
assetsPublicPath: '/', |
|||
|
|||
// 静态资源目录
|
|||
assetsSubDirectory: 'static', |
|||
|
|||
newProductRoot: path.resolve(__dirname, '../dist/newProduct'), |
|||
|
|||
// 代理服务器基础配置 可在 process.env 中修改
|
|||
proxyTable: { |
|||
'/api': { |
|||
// target: 'http://qkladmin2.ruanmeng.top/',
|
|||
// target: 'https://guanli.coin.amatak.net/',
|
|||
target: 'https://sbga.sbdccoin.com/', |
|||
changeOrigin: true, |
|||
// pathRewrite: {
|
|||
// // 请求时 将api替换成实际的apis等
|
|||
// // '^/api': '/api'
|
|||
// },
|
|||
}, |
|||
// bypass(req) { console.log(req) }
|
|||
}, |
|||
|
|||
// 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-
|
|||
|
|||
// Use Eslint Loader?
|
|||
// If true, your code will be linted during bundling and
|
|||
// linting errors and warnings will be shown in the console.
|
|||
useEslint: true, |
|||
|
|||
// If true, eslint errors and warnings will also be shown in the error overlay
|
|||
// in the browser.
|
|||
showEslintErrorsInOverlay: false, |
|||
|
|||
/** |
|||
* 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: false, // default true
|
|||
}, |
|||
|
|||
// 打包生产环境的配置
|
|||
build: { |
|||
|
|||
// bundle的生成地址
|
|||
assetsRoot: path.resolve(__dirname, '../dist'), |
|||
|
|||
newProductRoot: path.resolve(__dirname, '../dist/newProduct'), |
|||
|
|||
// bundle生成的文件
|
|||
index: path.resolve(__dirname, '../dist/index.html'), |
|||
|
|||
// 打包资源根地址
|
|||
assetsPublicPath: './', |
|||
|
|||
// 静态资源目录
|
|||
assetsSubDirectory: 'static', |
|||
|
|||
/** |
|||
* Source Maps |
|||
*/ |
|||
productionSourceMap: false, |
|||
|
|||
// 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 |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
'use strict' |
|||
module.exports = { |
|||
NODE_ENV: '"production"' |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. |
|||
|
|||
To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts |
|||
|
|||
You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. |
|||
|
|||
You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. |
|||
@ -0,0 +1,152 @@ |
|||
body { |
|||
padding: 0; |
|||
margin: 0; |
|||
font-family: sans-serif; |
|||
font-size: 1em; |
|||
line-height: 1.5; |
|||
color: #555; |
|||
background: #fff; |
|||
} |
|||
h1 { |
|||
font-size: 1.5em; |
|||
font-weight: normal; |
|||
} |
|||
small { |
|||
font-size: .66666667em; |
|||
} |
|||
a { |
|||
color: #e74c3c; |
|||
text-decoration: none; |
|||
} |
|||
a:hover, a:focus { |
|||
box-shadow: 0 1px #e74c3c; |
|||
} |
|||
.bshadow0, input { |
|||
box-shadow: inset 0 -2px #e7e7e7; |
|||
} |
|||
input:hover { |
|||
box-shadow: inset 0 -2px #ccc; |
|||
} |
|||
input, fieldset { |
|||
font-family: sans-serif; |
|||
font-size: 1em; |
|||
margin: 0; |
|||
padding: 0; |
|||
border: 0; |
|||
} |
|||
input { |
|||
color: inherit; |
|||
line-height: 1.5; |
|||
height: 1.5em; |
|||
padding: .25em 0; |
|||
} |
|||
input:focus { |
|||
outline: none; |
|||
box-shadow: inset 0 -2px #449fdb; |
|||
} |
|||
.glyph { |
|||
font-size: 16px; |
|||
width: 15em; |
|||
padding-bottom: 1em; |
|||
margin-right: 4em; |
|||
margin-bottom: 1em; |
|||
float: left; |
|||
overflow: hidden; |
|||
} |
|||
.liga { |
|||
width: 80%; |
|||
width: calc(100% - 2.5em); |
|||
} |
|||
.talign-right { |
|||
text-align: right; |
|||
} |
|||
.talign-center { |
|||
text-align: center; |
|||
} |
|||
.bgc1 { |
|||
background: #f1f1f1; |
|||
} |
|||
.fgc1 { |
|||
color: #999; |
|||
} |
|||
.fgc0 { |
|||
color: #000; |
|||
} |
|||
p { |
|||
margin-top: 1em; |
|||
margin-bottom: 1em; |
|||
} |
|||
.mvm { |
|||
margin-top: .75em; |
|||
margin-bottom: .75em; |
|||
} |
|||
.mtn { |
|||
margin-top: 0; |
|||
} |
|||
.mtl, .mal { |
|||
margin-top: 1.5em; |
|||
} |
|||
.mbl, .mal { |
|||
margin-bottom: 1.5em; |
|||
} |
|||
.mal, .mhl { |
|||
margin-left: 1.5em; |
|||
margin-right: 1.5em; |
|||
} |
|||
.mhmm { |
|||
margin-left: 1em; |
|||
margin-right: 1em; |
|||
} |
|||
.mls { |
|||
margin-left: .25em; |
|||
} |
|||
.ptl { |
|||
padding-top: 1.5em; |
|||
} |
|||
.pbs, .pvs { |
|||
padding-bottom: .25em; |
|||
} |
|||
.pvs, .pts { |
|||
padding-top: .25em; |
|||
} |
|||
.unit { |
|||
float: left; |
|||
} |
|||
.unitRight { |
|||
float: right; |
|||
} |
|||
.size1of2 { |
|||
width: 50%; |
|||
} |
|||
.size1of1 { |
|||
width: 100%; |
|||
} |
|||
.clearfix:before, .clearfix:after { |
|||
content: " "; |
|||
display: table; |
|||
} |
|||
.clearfix:after { |
|||
clear: both; |
|||
} |
|||
.hidden-true { |
|||
display: none; |
|||
} |
|||
.textbox0 { |
|||
width: 3em; |
|||
background: #f1f1f1; |
|||
padding: .25em .5em; |
|||
line-height: 1.5; |
|||
height: 1.5em; |
|||
} |
|||
#testDrive { |
|||
display: block; |
|||
padding-top: 24px; |
|||
line-height: 1.5; |
|||
} |
|||
.fs0 { |
|||
font-size: 16px; |
|||
} |
|||
.fs1 { |
|||
font-size: 16px; |
|||
} |
|||
|
|||
@ -0,0 +1,30 @@ |
|||
if (!('boxShadow' in document.body.style)) { |
|||
document.body.setAttribute('class', 'noBoxShadow'); |
|||
} |
|||
|
|||
document.body.addEventListener("click", function(e) { |
|||
var target = e.target; |
|||
if (target.tagName === "INPUT" && |
|||
target.getAttribute('class').indexOf('liga') === -1) { |
|||
target.select(); |
|||
} |
|||
}); |
|||
|
|||
(function() { |
|||
var fontSize = document.getElementById('fontSize'), |
|||
testDrive = document.getElementById('testDrive'), |
|||
testText = document.getElementById('testText'); |
|||
function updateTest() { |
|||
testDrive.innerHTML = testText.value || String.fromCharCode(160); |
|||
if (window.icomoonLiga) { |
|||
window.icomoonLiga(testDrive); |
|||
} |
|||
} |
|||
function updateSize() { |
|||
testDrive.style.fontSize = fontSize.value + 'px'; |
|||
} |
|||
fontSize.addEventListener('change', updateSize, false); |
|||
testText.addEventListener('input', updateTest, false); |
|||
testText.addEventListener('change', updateTest, false); |
|||
updateSize(); |
|||
}()); |
|||
@ -0,0 +1,472 @@ |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>IcoMoon Demo</title> |
|||
<meta name="description" content="An Icon Font Generated By IcoMoon.io"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|||
<link rel="stylesheet" href="demo-files/demo.css"> |
|||
<link rel="stylesheet" href="style.css"></head> |
|||
<body> |
|||
<div class="bgc1 clearfix"> |
|||
<h1 class="mhmm mvm"><span class="fgc1">Font Name:</span> icomoon <small class="fgc1">(Glyphs: 31)</small></h1> |
|||
</div> |
|||
<div class="clearfix mhl ptl"> |
|||
<h1 class="mvm mtn fgc1">Grid Size: Unknown</h1> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Addmore"></span> |
|||
<span class="mls"> icon-Icon-Addmore</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e900" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Address"></span> |
|||
<span class="mls"> icon-Icon-Address</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e901" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Android"></span> |
|||
<span class="mls"> icon-Icon-Android</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e902" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-App"></span> |
|||
<span class="mls"> icon-Icon-App</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e903" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-apple"></span> |
|||
<span class="mls"> icon-Icon-apple</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e904" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Close"></span> |
|||
<span class="mls"> icon-Icon-Close</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e905" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Commission"></span> |
|||
<span class="mls"> icon-Icon-Commission</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e906" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Copy"></span> |
|||
<span class="mls"> icon-Icon-Copy</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e907" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Delete"></span> |
|||
<span class="mls"> icon-Icon-Delete</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e908" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-EmailAddress"><span class="path1"></span><span class="path2"></span></span> |
|||
<span class="mls"> icon-Icon-EmailAddress</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e909" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Export"></span> |
|||
<span class="mls"> icon-Icon-Export</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e90b" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-eye"><span class="path1"></span><span class="path2"></span></span> |
|||
<span class="mls"> icon-Icon-eye</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e90c" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-eyec"><span class="path1"></span><span class="path2"></span></span> |
|||
<span class="mls"> icon-Icon-eyec</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e90e" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-History"></span> |
|||
<span class="mls"> icon-Icon-History</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e910" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Increase"></span> |
|||
<span class="mls"> icon-Icon-Increase</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e911" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-leftarrow-small"></span> |
|||
<span class="mls"> icon-Icon-leftarrow-small</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e912" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Playstore"></span> |
|||
<span class="mls"> icon-Icon-Playstore</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e913" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Reset"></span> |
|||
<span class="mls"> icon-Icon-Reset</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e914" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-rightarrow-small"></span> |
|||
<span class="mls"> icon-Icon-rightarrow-small</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e915" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-select20"></span> |
|||
<span class="mls"> icon-Icon-select20</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e916" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-select100"></span> |
|||
<span class="mls"> icon-Icon-select100</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e917" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-fb"></span> |
|||
<span class="mls"> icon-Icon-social-fb</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e918" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-ins"></span> |
|||
<span class="mls"> icon-Icon-social-ins</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e919" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-linkedin"></span> |
|||
<span class="mls"> icon-Icon-social-linkedin</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91a" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-medium"></span> |
|||
<span class="mls"> icon-Icon-social-medium</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91b" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-twitter"></span> |
|||
<span class="mls"> icon-Icon-social-twitter</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91c" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-social-youtube"></span> |
|||
<span class="mls"> icon-Icon-social-youtube</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91d" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Triangle"></span> |
|||
<span class="mls"> icon-Icon-Triangle</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91e" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-TriangleTop"></span> |
|||
<span class="mls"> icon-Icon-TriangleTop</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e91f" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-Uploadimage"></span> |
|||
<span class="mls"> icon-Icon-Uploadimage</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e920" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
<div class="glyph fs1"> |
|||
<div class="clearfix bshadow0 pbs"> |
|||
<span class="icon-Icon-User"></span> |
|||
<span class="mls"> icon-Icon-User</span> |
|||
</div> |
|||
<fieldset class="fs0 size1of1 clearfix hidden-false"> |
|||
<input type="text" readonly value="e921" class="unit size1of2" /> |
|||
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" /> |
|||
</fieldset> |
|||
<div class="fs0 bshadow0 clearfix hidden-true"> |
|||
<span class="unit pvs fgc1">liga: </span> |
|||
<input type="text" readonly value="" class="liga unitRight" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!--[if gt IE 8]><!--> |
|||
<div class="mhl clearfix mbl"> |
|||
<h1>Font Test Drive</h1> |
|||
<label> |
|||
Font Size: <input id="fontSize" type="number" class="textbox0 mbm" |
|||
min="8" value="48" /> |
|||
px |
|||
</label> |
|||
<input id="testText" type="text" class="phl size1of1 mvl" |
|||
placeholder="Type some text to test..." value=""/> |
|||
<div id="testDrive" class="icon-" style="font-family: icomoon"> |
|||
</div> |
|||
</div> |
|||
<!--<![endif]--> |
|||
<div class="bgc1 clearfix"> |
|||
<p class="mhl">Generated by <a href="https://icomoon.io/app">IcoMoon</a></p> |
|||
</div> |
|||
|
|||
<script src="demo-files/demo.js"></script> |
|||
</body> |
|||
</html> |
|||
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,164 @@ |
|||
@font-face { |
|||
font-family: 'icomoon'; |
|||
src: url('fonts/icomoon.eot?rce6ue'); |
|||
src: url('fonts/icomoon.eot?rce6ue#iefix') format('embedded-opentype'), |
|||
url('fonts/icomoon.ttf?rce6ue') format('truetype'), |
|||
url('fonts/icomoon.woff?rce6ue') format('woff'), |
|||
url('fonts/icomoon.svg?rce6ue#icomoon') format('svg'); |
|||
font-weight: normal; |
|||
font-style: normal; |
|||
font-display: block; |
|||
} |
|||
|
|||
[class^="icon-"], [class*=" icon-"] { |
|||
/* use !important to prevent issues with browser extensions that change fonts */ |
|||
font-family: 'icomoon' !important; |
|||
speak: none; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
font-variant: normal; |
|||
text-transform: none; |
|||
line-height: 1; |
|||
|
|||
/* Better Font Rendering =========== */ |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
|
|||
.icon-Icon-Addmore:before { |
|||
content: "\e900"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Address:before { |
|||
content: "\e901"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Android:before { |
|||
content: "\e902"; |
|||
color: #fff; |
|||
} |
|||
.icon-Icon-App:before { |
|||
content: "\e903"; |
|||
color: #fff; |
|||
} |
|||
.icon-Icon-apple:before { |
|||
content: "\e904"; |
|||
color: #fff; |
|||
} |
|||
.icon-Icon-Close:before { |
|||
content: "\e905"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Commission:before { |
|||
content: "\e906"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Copy:before { |
|||
content: "\e907"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Delete:before { |
|||
content: "\e908"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-EmailAddress .path1:before { |
|||
content: "\e909"; |
|||
color: rgb(0, 0, 0); |
|||
} |
|||
.icon-Icon-EmailAddress .path2:before { |
|||
content: "\e90a"; |
|||
margin-left: -1em; |
|||
color: rgb(255, 255, 255); |
|||
} |
|||
.icon-Icon-Export:before { |
|||
content: "\e90b"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-eye .path1:before { |
|||
content: "\e90c"; |
|||
color: rgb(23, 16, 33); |
|||
opacity: 0.8; |
|||
} |
|||
.icon-Icon-eye .path2:before { |
|||
content: "\e90d"; |
|||
margin-left: -1em; |
|||
color: rgb(255, 255, 255); |
|||
opacity: 0.8; |
|||
} |
|||
.icon-Icon-eyec .path1:before { |
|||
content: "\e90e"; |
|||
color: rgb(23, 16, 33); |
|||
opacity: 0.8; |
|||
} |
|||
.icon-Icon-eyec .path2:before { |
|||
content: "\e90f"; |
|||
margin-left: -1em; |
|||
color: rgb(255, 255, 255); |
|||
opacity: 0.8; |
|||
} |
|||
.icon-Icon-History:before { |
|||
content: "\e910"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Increase:before { |
|||
content: "\e911"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-leftarrow-small:before { |
|||
content: "\e912"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-Playstore:before { |
|||
content: "\e913"; |
|||
color: #fff; |
|||
} |
|||
.icon-Icon-Reset:before { |
|||
content: "\e914"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-rightarrow-small:before { |
|||
content: "\e915"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-select20:before { |
|||
content: "\e916"; |
|||
color: #e5c5e5; |
|||
} |
|||
.icon-Icon-select100:before { |
|||
content: "\e917"; |
|||
color: #e5c5e5; |
|||
} |
|||
.icon-Icon-social-fb:before { |
|||
content: "\e918"; |
|||
} |
|||
.icon-Icon-social-ins:before { |
|||
content: "\e919"; |
|||
} |
|||
.icon-Icon-social-linkedin:before { |
|||
content: "\e91a"; |
|||
} |
|||
.icon-Icon-social-medium:before { |
|||
content: "\e91b"; |
|||
} |
|||
.icon-Icon-social-twitter:before { |
|||
content: "\e91c"; |
|||
} |
|||
.icon-Icon-social-youtube:before { |
|||
content: "\e91d"; |
|||
} |
|||
.icon-Icon-Triangle:before { |
|||
content: "\e91e"; |
|||
color: #fff; |
|||
} |
|||
.icon-Icon-TriangleTop:before { |
|||
content: "\e91f"; |
|||
color: #949494; |
|||
} |
|||
.icon-Icon-Uploadimage:before { |
|||
content: "\e920"; |
|||
color: #c1bbf2; |
|||
} |
|||
.icon-Icon-User:before { |
|||
content: "\e921"; |
|||
color: #fff; |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
{ |
|||
"compilerOptions": { |
|||
"baseUrl": "./", |
|||
"target": "es6", |
|||
"paths": { |
|||
"@/*": [ |
|||
"src/*" |
|||
], |
|||
} |
|||
}, |
|||
"include": [ |
|||
"src/**/*", "config/config.js" |
|||
] |
|||
} |
|||
@ -0,0 +1,114 @@ |
|||
{ |
|||
"name": "e-learn", |
|||
"version": "1.0.0", |
|||
"description": "A Vue.js project", |
|||
"author": "lautin <1538731090@qq.com>", |
|||
"private": true, |
|||
"scripts": { |
|||
"dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js", |
|||
"start": "npm run dev", |
|||
"lint": "eslint --ext .js,.vue src", |
|||
"build": "node build/build.js" |
|||
}, |
|||
"dependencies": { |
|||
"art-template": "^4.13.2", |
|||
"assets": "^3.0.1", |
|||
"axios": "^0.19.2", |
|||
"bootstrap": "^3.4.1", |
|||
"clipboard": "^2.0.6", |
|||
"core-js": "^3.25.2", |
|||
"element-ui": "^2.15.10", |
|||
"eslint": "^4.19.1", |
|||
"highcharts": "^8.1.2", |
|||
"http": "^0.0.0", |
|||
"http-proxy-middleware": "^0.20.0", |
|||
"https": "^1.0.0", |
|||
"jquery": "^3.5.1", |
|||
"lautin-pagination": "^2.1.2", |
|||
"less": "^3.10.3", |
|||
"lodash": "^4.17.15", |
|||
"marked": "^0.7.0", |
|||
"md5": "^2.2.1", |
|||
"pako": "^2.0.2", |
|||
"popper.js": "^1.16.0", |
|||
"pygmentize-bundled": "^2.3.0", |
|||
"qs": "^6.11.1", |
|||
"sass": "^1.70.0", |
|||
"swiper": "^6.0.4", |
|||
"vue": "^2.5.2", |
|||
"vue-awesome-swiper": "^3.1.3", |
|||
"vue-clipboard2": "^0.3.1", |
|||
"vue-echarts": "^6.0.2", |
|||
"vue-qr": "^2.2.1", |
|||
"vue-router": "^3.0.1", |
|||
"vuex": "^3.5.1" |
|||
}, |
|||
"devDependencies": { |
|||
"autoprefixer": "^7.1.2", |
|||
"babel-core": "^6.22.1", |
|||
"babel-eslint": "^8.2.1", |
|||
"babel-helper-vue-jsx-merge-props": "^2.0.3", |
|||
"babel-loader": "^7.1.1", |
|||
"babel-plugin-component": "^1.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.11", |
|||
"d3": "^7.3.0", |
|||
"eslint": "^4.15.0", |
|||
"eslint-config-standard": "^10.2.1", |
|||
"eslint-friendly-formatter": "^3.0.0", |
|||
"eslint-loader": "^1.7.1", |
|||
"eslint-plugin-import": "^2.7.0", |
|||
"eslint-plugin-node": "^5.2.0", |
|||
"eslint-plugin-promise": "^3.4.0", |
|||
"eslint-plugin-standard": "^3.0.1", |
|||
"eslint-plugin-vue": "^4.0.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", |
|||
"http-proxy-middleware": "^0.20.0", |
|||
"less": "^3.10.3", |
|||
"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", |
|||
"prettier": "^1.12.1", |
|||
"rimraf": "^2.6.0", |
|||
"sass-loader": "^7.3.1", |
|||
"sass-resources-loader": "^2.0.3", |
|||
"semver": "^5.3.0", |
|||
"shelljs": "^0.7.6", |
|||
"style-loader": "^1.0.0", |
|||
"style-resources-loader": "^1.3.3", |
|||
"uglifyjs-webpack-plugin": "^1.1.1", |
|||
"url-loader": "^0.5.8", |
|||
"vue-i18n": "^8.28.2", |
|||
"vue-loader": "^13.3.0", |
|||
"vue-style-loader": "^3.1.2", |
|||
"vue-template-compiler": "^2.5.2", |
|||
"webpack": "^3.12.0", |
|||
"webpack-bundle-analyzer": "^2.13.1", |
|||
"webpack-cli": "^4.10.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" |
|||
] |
|||
} |
|||
@ -0,0 +1,100 @@ |
|||
<template> |
|||
<div> |
|||
<common-header :class="{'home-bg' : isHome}"></common-header> |
|||
<main> |
|||
<router-view></router-view> |
|||
</main> |
|||
<common-footer></common-footer> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapState, mapActions } from "vuex"; |
|||
import Member from "@/api/member"; |
|||
export default { |
|||
name: "App", |
|||
data() { |
|||
return { |
|||
oldTheme: "" |
|||
}; |
|||
}, |
|||
computed: { |
|||
isHome() { |
|||
return this.$route.path == "/home"; |
|||
}, |
|||
...mapState({ |
|||
theme: "theme", |
|||
appConfig: "appConfig" |
|||
}), |
|||
|
|||
currentTheme() { |
|||
let current = this.$route.name; |
|||
// 需要切换主题的页面 |
|||
let paths = ["option", "exchange","contract"]; |
|||
if (paths.includes(current)) { |
|||
return this.theme + "-app"; |
|||
} else { |
|||
return ""; |
|||
} |
|||
} |
|||
}, |
|||
watch: { |
|||
currentTheme() { |
|||
this.setAppTheme(); |
|||
} |
|||
}, |
|||
methods: { |
|||
...mapActions({ |
|||
setAppConfig: "setAppConfig" |
|||
}), |
|||
// 移除旧主题 并设置新 |
|||
setAppTheme() { |
|||
let $body = $(document.body); |
|||
$body.removeClass(this.oldTheme); |
|||
$body.addClass(this.currentTheme); |
|||
this.oldTheme = this.currentTheme; |
|||
}, |
|||
// 获取应用配置 |
|||
getLogo() { |
|||
Member.getLogo().then(res => { |
|||
// console.info(res) |
|||
this.setAppConfig(res); |
|||
this.setConfig(); |
|||
}); |
|||
}, |
|||
// 设置应用配置 |
|||
setConfig() { |
|||
document.getElementById("appTitle").innerText = this.appConfig.name; |
|||
document.getElementById("appIcon").href = this.appConfig.titles_logo; |
|||
} |
|||
}, |
|||
created() { |
|||
this.getLogo(); |
|||
}, |
|||
mounted() { |
|||
this.setAppTheme(); |
|||
} |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
@import './assets/scss/base/_base.scss'; |
|||
@import './assets/scss/module/_module.scss'; |
|||
.home-bg { |
|||
// background: #172636 !important; |
|||
background: #fefff2 !important; |
|||
border: none !important; |
|||
// height: 100px; |
|||
.nav-link { |
|||
// color: #fff; |
|||
color:#172636; |
|||
@include fs(14); |
|||
} |
|||
|
|||
.profile-nav { |
|||
a { |
|||
color: #18214d !important; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,251 @@ |
|||
import server from './server' |
|||
|
|||
console.dir(server); |
|||
class Assets { |
|||
/** |
|||
* 数字货币提现 |
|||
* @param {Object} data |
|||
*/ |
|||
static cryptocurrenciesWithdrawal(data) { |
|||
|
|||
return server.post(`/withdraw/cryptocurrenciesWithdrawal`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
/** |
|||
* assets页面 |
|||
* @param {Object} data |
|||
*/ |
|||
static assets(data) { |
|||
|
|||
return server.post(`/userCoin/assets`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* assets页面 |
|||
* @param {Object} data |
|||
*/ |
|||
static getAllList(data) { |
|||
|
|||
return server.get(`coin/getAllList`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 币币用户历史委托 |
|||
* @param {Object} data |
|||
*/ |
|||
static history(data) { |
|||
|
|||
return server.post(`/coin/orders/history`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 资金划转记录 |
|||
* @param {Object} data |
|||
*/ |
|||
static fundsTransferRecordPageList(data) { |
|||
|
|||
return server.post(`/fundsTransferRecord/pageList`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 资金划转 |
|||
* @param {Object} data |
|||
*/ |
|||
static transfer(data) { |
|||
|
|||
return server.post(`/userCoin/transfer`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 数字货币充值 |
|||
* @param {int} params |
|||
*/ |
|||
static cryptocurrenciesRecharge(coinId) { |
|||
|
|||
return server.get(`/recharge/cryptocurrenciesRecharge/${coinId}`); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 数字货币充值记录 |
|||
* @param {Object} data |
|||
*/ |
|||
static cryptocurrenciesRechargeRecords(data) { |
|||
|
|||
return server.post(`/recharge/cryptocurrenciesRechargeRecords`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* 用户数字货币提现记录 |
|||
* @param {Object} data |
|||
*/ |
|||
static cryptocurrenciesWithdrawRecords(data) { |
|||
|
|||
return server.post(`/withdraw/cryptocurrenciesWithdrawRecords`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 删除提现地址 |
|||
* @param {Object} data |
|||
*/ |
|||
static deleteById(data) { |
|||
|
|||
return server.post(`/withdrawAddress/deleteById`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 编辑提现地址 |
|||
* @param {Object} data |
|||
*/ |
|||
static editById(data) { |
|||
|
|||
return server.post(`/withdrawAddress/editById`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 移除添加地址 |
|||
* @param {Object} data |
|||
*/ |
|||
static addRemove(data) { |
|||
|
|||
return server.post(`/withdrawAddress/addOrRemoveWhiteList`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* 提现地址分页列表 |
|||
* @param {Object} data |
|||
*/ |
|||
static pageList(data) { |
|||
|
|||
return server.post(`/withdrawAddress/pageList`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* 添加提现地址 |
|||
* @param {Object} data |
|||
*/ |
|||
static save(data) { |
|||
|
|||
return server.post(`/withdrawAddress/save`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
/** |
|||
* 费率列表(手续费) |
|||
* @param {Object} data |
|||
*/ |
|||
static getList(data) { |
|||
|
|||
return server.get(`/transferFee/getList`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 用户合约资金 |
|||
* @param {Object} data |
|||
*/ |
|||
static contractsAccount(data) { |
|||
|
|||
return server.get(`/futuresUserCoin/contractsAccount`, data); |
|||
|
|||
} |
|||
/** |
|||
* 用户合约资金(详情) |
|||
* @param {number} accountId |
|||
*/ |
|||
static contractsAccountDetail(accountId) { |
|||
|
|||
return server.get(`/futuresUserCoin/contractsAccountDetail/${accountId}`); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 用户资金历史记录 |
|||
* @param {Object} data |
|||
*/ |
|||
static transactionHistory(data) { |
|||
|
|||
return server.post(`/futuresUserCoin/transactionHistory`, data); |
|||
|
|||
} |
|||
/** |
|||
* 确认是否白名单地址 |
|||
* @param {Object} data |
|||
*/ |
|||
static checkIsWhiteList(data) { |
|||
|
|||
return server.post(`/withdrawAddress/checkIsWhiteList`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 用户已实现盈亏列表 |
|||
* @param {Object} data |
|||
*/ |
|||
static realisedPnlLog(data) { |
|||
|
|||
return server.post(`/realisedPnlLog/list`, data); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* 定期宝列表 |
|||
* @param {Object} data |
|||
*/ |
|||
static financeList(data) { |
|||
|
|||
return server.post(`/finance/list`, data); |
|||
|
|||
} |
|||
/** |
|||
* 理财订单列表 |
|||
* @param {Object} data |
|||
*/ |
|||
static financeOrderList(data) { |
|||
|
|||
return server.post(`/finance/order/list`, data); |
|||
|
|||
} |
|||
/** |
|||
* 定期宝列表 |
|||
* @param {Object} data |
|||
*/ |
|||
static financeApply(data) { |
|||
|
|||
return server.post(`/finance/apply`, data); |
|||
|
|||
} |
|||
/** |
|||
* 定期理财账户资产 |
|||
* @param {Object} data |
|||
*/ |
|||
static financeAccount(data) { |
|||
|
|||
return server.post(`/finance/account`, data); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
export default Assets; |
|||