Browse Source

调整文件结构

master
453530270@qq.com 1 year ago
parent
commit
4cd880e861
  1. 6
      .idea/inspectionProfiles/Project_Default.xml
  2. 8
      .idea/kline_vue.iml
  3. 6
      .idea/misc.xml
  4. 8
      .idea/modules.xml
  5. 6
      .idea/vcs.xml
  6. 245
      .idea/workspace.xml
  7. 0
      v1/.gitignore
  8. 0
      v1/README.md
  9. 0
      v1/babel.config.js
  10. 0
      v1/jsconfig.json
  11. 0
      v1/package-lock.json
  12. 0
      v1/package.json
  13. 0
      v1/public/config.js
  14. 0
      v1/public/favicon.ico
  15. 0
      v1/public/index.html
  16. 0
      v1/public/layui/css/layui.css
  17. 0
      v1/public/layui/css/modules/code.css
  18. 0
      v1/public/layui/css/modules/laydate/default/laydate.css
  19. 0
      v1/public/layui/css/modules/layer/default/icon-ext.png
  20. 0
      v1/public/layui/css/modules/layer/default/icon.png
  21. 0
      v1/public/layui/css/modules/layer/default/layer.css
  22. 0
      v1/public/layui/css/modules/layer/default/loading-0.gif
  23. 0
      v1/public/layui/css/modules/layer/default/loading-1.gif
  24. 0
      v1/public/layui/css/modules/layer/default/loading-2.gif
  25. 0
      v1/public/layui/font/iconfont.eot
  26. 0
      v1/public/layui/font/iconfont.svg
  27. 0
      v1/public/layui/font/iconfont.ttf
  28. 0
      v1/public/layui/font/iconfont.woff
  29. 0
      v1/public/layui/font/iconfont.woff2
  30. 0
      v1/public/layui/layui.js
  31. 0
      v1/public/static/kline/font/iconfont.woff2
  32. 0
      v1/public/static/kline/index.html
  33. 0
      v1/public/static/kline/src/cache.js
  34. 0
      v1/public/static/kline/src/common.js
  35. 0
      v1/public/static/kline/src/css/modules/layer/default/layer.css
  36. 0
      v1/public/static/kline/src/iconfont.css
  37. 0
      v1/public/static/kline/src/iconfont.js
  38. 0
      v1/public/static/kline/src/index.css
  39. 0
      v1/public/static/kline/src/index.js
  40. 0
      v1/public/static/kline/src/jquery-3.4.1.min.js
  41. 0
      v1/public/static/kline/src/kline.css
  42. 0
      v1/public/static/kline/src/klineCharts.js
  43. 0
      v1/public/static/kline/src/klinecharts.min.js
  44. 0
      v1/public/static/kline/src/lang.js
  45. 0
      v1/public/static/kline/src/lay/modules/element.js
  46. 0
      v1/public/static/kline/src/lay/modules/form.js
  47. 0
      v1/public/static/kline/src/lay/modules/iconfont.woff2
  48. 0
      v1/public/static/kline/src/lay/modules/iconfont.woff2 2
  49. 0
      v1/public/static/kline/src/lay/modules/layer.js
  50. 0
      v1/public/static/kline/src/layer.css
  51. 0
      v1/public/static/kline/src/layui.css
  52. 0
      v1/public/static/kline/src/layui.js
  53. 0
      v1/public/static/kline/src/public(1).css
  54. 0
      v1/public/static/kline/src/public.css
  55. 0
      v1/public/static/kline/src/soulTable.css
  56. 0
      v1/src/App.vue
  57. 0
      v1/src/assets/logo.png
  58. 0
      v1/src/components/PytnUsdt.vue
  59. 0
      v1/src/main.js
  60. 0
      v1/src/router/index.js
  61. 0
      v1/src/store/index.js
  62. 0
      v1/src/utils/config/defaultconfig.js
  63. 0
      v1/src/utils/config/index.js
  64. 0
      v1/src/views/HomeView.vue
  65. 0
      v1/vue.config.js
  66. 12
      v4/.babelrc
  67. 16
      v4/.editorconfig
  68. 5
      v4/.eslintignore
  69. 29
      v4/.eslintrc.js
  70. 41
      v4/.gitignore
  71. 10
      v4/.postcssrc.js
  72. 21
      v4/LICENSE
  73. 21
      v4/README.md
  74. BIN
      v4/build/55.lnk
  75. 41
      v4/build/build.js
  76. 52
      v4/build/check-versions.js
  77. BIN
      v4/build/logo.png
  78. 142
      v4/build/utils.js
  79. 28
      v4/build/vue-loader.conf.js
  80. 110
      v4/build/webpack.base.conf.js
  81. 166
      v4/build/webpack.dev.conf.js
  82. 177
      v4/build/webpack.prod.conf.js
  83. 9
      v4/config/dev.env.js
  84. 107
      v4/config/index.js
  85. 4
      v4/config/prod.env.js
  86. 7
      v4/icomoon/Read Me.txt
  87. 152
      v4/icomoon/demo-files/demo.css
  88. 30
      v4/icomoon/demo-files/demo.js
  89. 472
      v4/icomoon/demo.html
  90. BIN
      v4/icomoon/fonts/icomoon.eot
  91. 44
      v4/icomoon/fonts/icomoon.svg
  92. BIN
      v4/icomoon/fonts/icomoon.ttf
  93. BIN
      v4/icomoon/fonts/icomoon.woff
  94. 1
      v4/icomoon/selection.json
  95. 164
      v4/icomoon/style.css
  96. 14
      v4/jsconfig.json
  97. 33227
      v4/package-lock.json
  98. 114
      v4/package.json
  99. 100
      v4/src/App.vue
  100. 251
      v4/src/api/assets.js

6
.idea/inspectionProfiles/Project_Default.xml

@ -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>

8
.idea/kline_vue.iml

@ -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>

6
.idea/misc.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml

@ -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>

6
.idea/vcs.xml

@ -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>

245
.idea/workspace.xml

@ -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>

0
.gitignore → v1/.gitignore

0
README.md → v1/README.md

0
babel.config.js → v1/babel.config.js

0
jsconfig.json → v1/jsconfig.json

0
package-lock.json → v1/package-lock.json

0
package.json → v1/package.json

0
public/config.js → v1/public/config.js

0
public/favicon.ico → v1/public/favicon.ico

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
public/index.html → v1/public/index.html

0
public/layui/css/layui.css → v1/public/layui/css/layui.css

0
public/layui/css/modules/code.css → v1/public/layui/css/modules/code.css

0
public/layui/css/modules/laydate/default/laydate.css → v1/public/layui/css/modules/laydate/default/laydate.css

0
public/layui/css/modules/layer/default/icon-ext.png → v1/public/layui/css/modules/layer/default/icon-ext.png

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

0
public/layui/css/modules/layer/default/icon.png → v1/public/layui/css/modules/layer/default/icon.png

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
public/layui/css/modules/layer/default/layer.css → v1/public/layui/css/modules/layer/default/layer.css

0
public/layui/css/modules/layer/default/loading-0.gif → v1/public/layui/css/modules/layer/default/loading-0.gif

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

0
public/layui/css/modules/layer/default/loading-1.gif → v1/public/layui/css/modules/layer/default/loading-1.gif

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 701 B

0
public/layui/css/modules/layer/default/loading-2.gif → v1/public/layui/css/modules/layer/default/loading-2.gif

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
public/layui/font/iconfont.eot → v1/public/layui/font/iconfont.eot

0
public/layui/font/iconfont.svg → v1/public/layui/font/iconfont.svg

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 299 KiB

0
public/layui/font/iconfont.ttf → v1/public/layui/font/iconfont.ttf

0
public/layui/font/iconfont.woff → v1/public/layui/font/iconfont.woff

0
public/layui/font/iconfont.woff2 → v1/public/layui/font/iconfont.woff2

0
public/layui/layui.js → v1/public/layui/layui.js

0
public/static/kline/font/iconfont.woff2 → v1/public/static/kline/font/iconfont.woff2

0
public/static/kline/index.html → v1/public/static/kline/index.html

0
public/static/kline/src/cache.js → v1/public/static/kline/src/cache.js

0
public/static/kline/src/common.js → v1/public/static/kline/src/common.js

0
public/static/kline/src/css/modules/layer/default/layer.css → v1/public/static/kline/src/css/modules/layer/default/layer.css

0
public/static/kline/src/iconfont.css → v1/public/static/kline/src/iconfont.css

0
public/static/kline/src/iconfont.js → v1/public/static/kline/src/iconfont.js

0
public/static/kline/src/index.css → v1/public/static/kline/src/index.css

0
public/static/kline/src/index.js → v1/public/static/kline/src/index.js

0
public/static/kline/src/jquery-3.4.1.min.js → v1/public/static/kline/src/jquery-3.4.1.min.js

0
public/static/kline/src/kline.css → v1/public/static/kline/src/kline.css

0
public/static/kline/src/klineCharts.js → v1/public/static/kline/src/klineCharts.js

0
public/static/kline/src/klinecharts.min.js → v1/public/static/kline/src/klinecharts.min.js

0
public/static/kline/src/lang.js → v1/public/static/kline/src/lang.js

0
public/static/kline/src/lay/modules/element.js → v1/public/static/kline/src/lay/modules/element.js

0
public/static/kline/src/lay/modules/form.js → v1/public/static/kline/src/lay/modules/form.js

0
public/static/kline/src/lay/modules/iconfont.woff2 → v1/public/static/kline/src/lay/modules/iconfont.woff2

0
public/static/kline/src/lay/modules/iconfont.woff2 2 → v1/public/static/kline/src/lay/modules/iconfont.woff2 2

0
public/static/kline/src/lay/modules/layer.js → v1/public/static/kline/src/lay/modules/layer.js

0
public/static/kline/src/layer.css → v1/public/static/kline/src/layer.css

0
public/static/kline/src/layui.css → v1/public/static/kline/src/layui.css

0
public/static/kline/src/layui.js → v1/public/static/kline/src/layui.js

0
public/static/kline/src/public(1).css → v1/public/static/kline/src/public(1).css

0
public/static/kline/src/public.css → v1/public/static/kline/src/public.css

0
public/static/kline/src/soulTable.css → v1/public/static/kline/src/soulTable.css

0
src/App.vue → v1/src/App.vue

0
src/assets/logo.png → v1/src/assets/logo.png

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

0
src/components/PytnUsdt.vue → v1/src/components/PytnUsdt.vue

0
src/main.js → v1/src/main.js

0
src/router/index.js → v1/src/router/index.js

0
src/store/index.js → v1/src/store/index.js

0
src/utils/config/defaultconfig.js → v1/src/utils/config/defaultconfig.js

0
src/utils/config/index.js → v1/src/utils/config/index.js

0
src/views/HomeView.vue → v1/src/views/HomeView.vue

0
vue.config.js → v1/vue.config.js

12
v4/.babelrc

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

16
v4/.editorconfig

@ -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

5
v4/.eslintignore

@ -0,0 +1,5 @@
/build/
/config/
/dist/
/*.js
/src

29
v4/.eslintrc.js

@ -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'
}
}

41
v4/.gitignore

@ -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/

10
v4/.postcssrc.js

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

21
v4/LICENSE

@ -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.

21
v4/README.md

@ -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
```

BIN
v4/build/55.lnk

Binary file not shown.

41
v4/build/build.js

@ -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'
))
})
})

52
v4/build/check-versions.js

@ -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)
}
}

BIN
v4/build/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

142
v4/build/utils.js

@ -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')
})
}
}

28
v4/build/vue-loader.conf.js

@ -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'
}
}

110
v4/build/webpack.base.conf.js

@ -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'
}
}

166
v4/build/webpack.dev.conf.js

@ -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)
}
})
})

177
v4/build/webpack.prod.conf.js

@ -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

9
v4/config/dev.env.js

@ -0,0 +1,9 @@
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
// 编译时的全局常量
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})

107
v4/config/index.js

@ -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
}
}

4
v4/config/prod.env.js

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

7
v4/icomoon/Read Me.txt

@ -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.

152
v4/icomoon/demo-files/demo.css

@ -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;
}

30
v4/icomoon/demo-files/demo.js

@ -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();
}());

472
v4/icomoon/demo.html

@ -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:&nbsp;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="&#xe900;" 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="&#xe901;" 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="&#xe902;" 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="&#xe903;" 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="&#xe904;" 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="&#xe905;" 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="&#xe906;" 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="&#xe907;" 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="&#xe908;" 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="&#xe909;" 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="&#xe90b;" 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="&#xe90c;" 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="&#xe90e;" 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="&#xe910;" 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="&#xe911;" 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="&#xe912;" 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="&#xe913;" 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="&#xe914;" 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="&#xe915;" 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="&#xe916;" 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="&#xe917;" 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="&#xe918;" 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="&#xe919;" 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="&#xe91a;" 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="&#xe91b;" 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="&#xe91c;" 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="&#xe91d;" 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="&#xe91e;" 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="&#xe91f;" 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="&#xe920;" 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="&#xe921;" 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">&nbsp;
</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>

BIN
v4/icomoon/fonts/icomoon.eot

Binary file not shown.

44
v4/icomoon/fonts/icomoon.svg

@ -0,0 +1,44 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="Icon-Addmore" d="M512 960c282.325 0 512-229.675 512-512s-229.675-512-512-512c-282.325 0-512 229.675-512 512s229.675 512 512 512zM512 874.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667zM512 688c24.301 0 44.383-18.058 47.562-41.487l0.438-6.513v-144h144c26.51 0 48-21.49 48-48 0-24.301-18.058-44.383-41.487-47.562l-6.513-0.438h-144v-144c0-26.51-21.49-48-48-48-24.301 0-44.383 18.058-47.562 41.487l-0.438 6.513v144h-144c-26.51 0-48 21.49-48 48 0 24.301 18.058 44.383 41.487 47.562l6.513 0.438h144v144c0 26.51 21.49 48 48 48z" />
<glyph unicode="&#xe901;" glyph-name="Icon-Address" d="M507.799 589.016l17.857-0.696c31.037-2.354 54.345-28.881 51.977-59.135-2.36-30.302-29.494-53.108-60.491-50.809-16.695 1.224-33.659-0.5-50.366-5.043-0.189-0.051-0.387-0.102-0.58-0.154-35.149-9.311-66.194-30.152-87.569-58.765-3.774-4.933-6.907-9.574-9.904-14.684-21.371-36.42-26.937-78.866-15.672-119.514 11.269-40.652 37.997-74.544 75.261-95.436v0l209.623-117.526c37.232-20.865 80.356-26.345 121.49-15.448 0.411 0.106 0.801 0.209 1.188 0.315 41.384 10.96 75.881 36.998 97.236 73.386 21.367 36.416 26.929 78.862 15.664 119.506-11.269 40.656-37.997 74.552-75.261 95.444-26.969 15.117-36.329 48.864-20.855 75.225 15.47 26.365 49.991 35.51 76.964 20.389 63.359-35.514 108.799-93.129 127.954-162.229 19.16-69.095 9.695-141.253-26.643-203.179-36.362-61.962-95.061-106.298-165.351-124.919-0.528-0.138-1.059-0.28-1.587-0.417-70.053-18.562-143.509-9.228-206.904 26.31v0l-209.623 117.526c-130.999 73.437-176.451 237.367-101.312 365.408 5.224 8.905 10.79 17.204 17.017 25.369 36.378 48.714 89.426 84.232 149.14 99.775 29.023 7.822 58.844 10.795 88.604 8.606zM235.194 950.678c70.049 18.554 143.509 9.224 206.896-26.318v0l209.627-117.522c63.359-35.518 108.799-93.133 127.958-162.229 19.152-69.091 9.695-141.249-26.651-203.179-5.264-8.98-10.834-17.271-17.017-25.333-36.172-48.447-88.798-83.795-148.205-99.531-0.834-0.213-1.671-0.445-2.509-0.669-28.512-7.551-57.809-10.303-87.033-8.157-30.993 2.287-54.313 28.802-51.985 59.107 2.352 30.294 29.494 53.068 60.479 50.793 16.715-1.236 33.707 0.484 50.39 5.027 35.214 9.307 66.662 30.148 88.149 58.915 3.77 4.921 6.899 9.563 9.908 14.692 21.379 36.427 26.945 78.874 15.676 119.518s-38.001 74.536-75.269 95.429v0l-209.623 117.522c-37.405 20.971-80.871 26.247-122.082 15.298-0.193-0.051-0.391-0.102-0.588-0.154-41.388-10.964-75.885-37.006-97.24-73.394-44.195-75.319-17.464-171.748 59.593-214.95 26.973-15.113 36.329-48.864 20.859-75.229-15.466-26.361-49.999-35.51-76.964-20.389-130.999 73.445-176.447 237.367-101.312 365.412 36.362 61.962 95.057 106.302 165.343 124.915 0.532 0.142 1.063 0.283 1.599 0.425z" />
<glyph unicode="&#xe902;" glyph-name="Icon-Android" d="M801.237 616.625v-409.896c0-18.867-6.688-34.859-20.108-47.99-13.492-13.088-29.639-19.675-48.572-19.675v0h-47.266v-139.72c0-17.592-6.282-32.579-18.918-44.916-12.593-12.309-27.942-18.428-45.96-18.428-18.091 0-33.44 6.119-46.018 18.428-12.636 12.337-18.933 27.324-18.933 44.916v0 139.72h-86.988v-139.72c0-17.592-6.296-32.579-18.874-44.916-12.636-12.309-27.942-18.428-46.018-18.428-17.627 0-32.758 6.119-45.395 18.428-12.578 12.337-18.918 27.324-18.918 44.916v0l-0.624 139.72h-46.642c-19.324 0-35.703 6.587-49.138 19.675-13.492 13.131-20.166 29.123-20.166 48.046v0 409.84h578.537zM133.16 628.294c17.67 0 32.802-6.147 45.395-18.428 12.636-12.337 18.918-27.111 18.918-44.321v0-264.638c0-17.663-6.224-32.593-18.584-44.93-12.404-12.281-27.652-18.428-45.728-18.428-18.033 0-33.382 6.147-45.96 18.428-12.636 12.337-18.933 27.267-18.933 44.93v0 264.638c0 17.21 6.296 31.984 18.933 44.321 12.578 12.281 27.927 18.428 45.96 18.428zM890.782 628.294c18.077 0 33.44-6.034 46.018-18.145 12.636-12.125 18.933-27.012 18.933-44.604v0-264.638c0-17.663-6.296-32.593-18.933-44.93-12.578-12.281-27.942-18.428-46.018-18.428-17.627 0-32.758 6.147-45.337 18.428-12.636 12.337-18.933 27.267-18.933 44.93v0 264.638c0 17.592 6.296 32.48 18.933 44.604 12.578 12.111 27.71 18.145 45.337 18.145zM684.055 955.073c2.945 4.927 7.138 6.147 12.636 3.711 5.034-2.875 6.064-6.969 3.105-12.337v0l-44.713-80.625c44.945-22.564 80.88-54.052 107.734-94.45 26.926-40.44 40.346-84.591 40.346-132.623v0h-582.962c0 48.032 13.42 92.183 40.346 132.623 26.854 40.398 63.021 71.886 108.416 94.45v0l-44.771 80.625c-2.945 5.368-1.93 9.405 3.105 12.337 5.498 2.436 9.691 1.216 12.651-3.711v0l45.38-81.22c39.896 17.21 82.128 25.836 126.667 25.836s86.77-8.626 126.725-25.836v0zM645.001 789.531c-6.746 0-12.52-2.38-17.337-7.082-4.875-4.703-7.254-10.354-7.254-16.941 0-6.572 2.379-12.167 7.254-16.87 4.817-4.759 10.591-7.139 17.337-7.139 6.688 0 12.361 2.38 17.003 7.139 4.584 4.703 6.92 10.34 6.92 16.87 0 6.587-2.336 12.238-6.92 16.941-4.642 4.703-10.315 7.082-17.003 7.082zM378.988 789.531c-6.688 0-12.419-2.38-17.003-7.082-4.642-4.703-6.906-10.354-6.906-16.941 0-6.572 2.263-12.167 6.906-16.87 4.584-4.759 10.257-7.139 17.003-7.139s12.52 2.38 17.337 7.139c4.817 4.703 7.254 10.34 7.254 16.87 0 6.587-2.437 12.238-7.254 16.941s-10.591 7.082-17.337 7.082z" />
<glyph unicode="&#xe903;" glyph-name="Icon-App" d="M791.537 960c63.032 0 114.309-49.344 114.309-110v0-804c0-60.656-51.277-110-114.309-110v0h-559.075c-63.032 0-114.309 49.344-114.309 110v0 804c0 60.656 51.277 110 114.309 110v0zM843.496 132.8h-662.992v-86.8c0-27.573 23.305-50 51.959-50v0h559.074c28.653 0 51.959 22.427 51.959 50v0 86.8zM512 106.729c24.294 0 43.986-18.949 43.986-42.328 0-21.82-17.154-39.784-39.193-42.082l-4.793-0.248c-24.294 0-43.986 18.952-43.986 42.331s19.692 42.328 43.986 42.328zM791.537 900h-559.074c-28.653 0-51.959-22.427-51.959-50v0-657.2h662.992v657.2c0 27.573-23.305 50-51.959 50v0zM354.722 625.595c5.631 0 10.419-3.96 11.265-9.317l43.545-276.229c1.025-6.509-4.209-12.371-11.051-12.371h-21.191c-5.6 0-10.336 3.989-11.079 9.331l-6.094 43.821h-49.955l-5.492-43.688c-0.682-5.403-5.442-9.464-11.098-9.464h-22.59c-6.8 0-12.027 5.797-11.065 12.275l40.935 276.227c0.801 5.403 5.609 9.416 11.278 9.416h42.592zM525.724 625.596c24.040 0 40.483-7.027 49.337-21.075 8.857-14.051 13.515-35.013 13.986-62.885v-6.261c0-29.568-4.37-51.995-13.102-67.285-8.737-15.293-24.951-22.939-48.639-22.939h-25.508v-106.344c0-6.144-5.179-11.131-11.567-11.131h-24.006c-6.39 0-11.569 4.987-11.569 11.131v275.005c0 6.509 5.484 11.784 12.246 11.784h58.823zM702.58 625.596c24.040 0 40.483-7.027 49.337-21.075 8.857-14.051 13.515-35.013 13.986-62.885v-6.261c0-29.568-4.37-51.995-13.102-67.285-8.737-15.293-24.951-22.939-48.639-22.939h-25.505v-105.453c0-6.637-5.595-12.021-12.492-12.021h-22.158c-6.9 0-12.492 5.384-12.492 12.021v274.115c0 6.509 5.481 11.784 12.243 11.784h58.823zM334.438 566.859h-0.704l-18.999-149.635h40.458l-20.756 149.635zM518.336 590.727h-16.538v-108.165h16.186c9.968 0 16.447 3.696 19.434 11.088 2.996 7.389 4.489 21.467 4.489 42.232v5.755c-0.119 17.605-1.732 30.187-4.838 37.749-3.109 7.557-9.353 11.341-18.733 11.341zM695.192 590.727h-16.535v-108.165h16.183c9.968 0 16.447 3.696 19.437 11.088 2.993 7.389 4.486 21.467 4.486 42.232v5.755c-0.119 17.605-1.732 30.187-4.838 37.749-3.109 7.557-9.353 11.341-18.733 11.341zM597.212 840c17.223 0 31.175-13.427 31.175-30s-13.953-30-31.175-30v0h-170.424c-17.223 0-31.175 13.427-31.175 30s13.953 30 31.175 30v0z" />
<glyph unicode="&#xe904;" glyph-name="Icon-apple" d="M730.653 710.557c76.59-11.692 130.768-46.409 164.299-99.773-64.59-41.912-115.827-105.169-107.062-213.156 7.765-98.094 63.884-155.535 133.71-189.232v-2.099c-20.236-62.058-48.707-115.002-83.649-164.409-31.942-44.73-71.002-104.929-140.769-104.929-60.531 0-100.473 39.573-162.299 40.473-65.296 1.199-101.356-33.038-161.122-41.432h-20.412c-43.884 6.356-79.296 41.912-105.003 73.75-76.061 94.436-134.886 216.214-145.945 372.228v45.629c4.588 111.705 57.884 202.363 128.474 246.374 37.413 23.444 88.708 43.351 145.887 34.477 24.354-3.777 49.413-12.412 71.473-20.866 20.706-8.214 46.648-22.485 71.237-21.765 16.765 0.48 33.295 9.354 50.178 15.649 49.296 18.048 97.591 38.914 161.005 29.080zM712.488 960c5.765-72.131-21.354-126.215-54.237-165.368-32.177-38.614-76.473-76.328-147.71-70.752-4.824 71.232 22.295 121.358 55.119 160.212 30.354 36.335 86.179 68.654 139.71 75.909h7.118z" />
<glyph unicode="&#xe905;" glyph-name="Icon-Close" d="M995.386 931.409c-38.144 38.121-99.979 38.121-138.124 0l-345.277-345.31-345.277 345.31c-38.112 38.121-99.979 38.121-138.099 0-38.144-38.145-38.144-99.982 0-138.127l345.277-345.286-345.277-345.286c-38.144-38.145-38.144-99.982 0-138.127 19.044-19.044 44.069-28.583 69.054-28.583s49.969 9.506 69.046 28.583l345.277 345.31 345.277-345.31c19.076-19.044 44.061-28.583 69.046-28.583s50.010 9.506 69.078 28.583c38.12 38.145 38.12 99.982 0 138.127l-345.269 345.286 345.269 345.286c38.152 38.145 38.152 99.982 0 138.127z" />
<glyph unicode="&#xe906;" glyph-name="Icon-Commission" d="M512 960c282.325 0 512-229.675 512-512s-229.675-512-512-512c-282.325 0-512 229.675-512 512s229.675 512 512 512zM512 874.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667zM532.832 768c23.219 0 42.043-18.824 42.043-42.043v0-28.115c61.645-18.187 106.781-75.269 106.781-142.739 0-23.219-18.824-42.043-42.043-42.043s-42.043 18.824-42.043 42.043c0 57.291-69.832 86.459-110.509 45.781-29.989-30.043-18.344-80.501 20.416-96.552v0l82.885-34.333c94.075-38.968 120.24-161.949 47.157-234.24-17.699-17.509-39.189-30.032-62.645-36.864v0-28.208c0-23.219-18.824-42.043-42.043-42.043s-42.053 18.824-42.053 42.043v0 28.144c-63.352 18.459-106.779 77.021-106.779 142.709 0 23.219 18.832 42.053 42.051 42.053s42.043-18.835 42.043-42.053c0-58.781 72.373-86.709 112.165-44.061 27.731 29.76 16.261 78.957-22.072 94.832v0l-82.885 34.333c-43.792 18.136-75.949 56.688-86 103.115-16.333 75.437 29.875 147.176 101.488 168.157v0 28.040c0 23.219 18.824 42.043 42.043 42.043z" />
<glyph unicode="&#xe907;" glyph-name="Icon-Copy" d="M731.427 777.144c60.594 0 109.714-49.121 109.714-109.714v0-621.715c0-60.594-49.121-109.714-109.714-109.714v0h-621.713c-60.594 0-109.714 49.121-109.714 109.714v0 621.715c0 60.594 49.121 109.714 109.714 109.714v0zM731.427 703.999h-621.713c-20.199 0-36.572-16.374-36.572-36.57v0-621.715c0-20.196 16.374-36.57 36.572-36.57v0h621.713c20.199 0 36.572 16.374 36.572 36.57v0 621.715c0 20.196-16.374 36.57-36.572 36.57v0zM914.286 960c60.594 0 109.714-49.121 109.714-109.714v0-658.285c0-60.594-49.121-109.714-109.714-109.714-20.199 0-36.572 16.374-36.572 36.572 0 20.196 16.374 36.57 36.572 36.57l5.932 0.479c17.376 2.834 30.638 17.915 30.638 36.093v0 658.285c0 20.199-16.374 36.572-36.57 36.572v0h-658.285c-20.199 0-36.572-16.374-36.572-36.572l-0.479-5.932c-2.834-17.377-17.915-30.64-36.093-30.64-20.196 0-36.57 16.374-36.57 36.572 0 60.594 49.121 109.714 109.714 109.714v0z" />
<glyph unicode="&#xe908;" glyph-name="Icon-Delete" d="M512 960c282.325 0 512-229.675 512-512s-229.675-512-512-512c-282.325 0-512 229.675-512 512s229.675 512 512 512zM512 874.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667zM270.304 689.705c19.060 19.060 49.994 19.060 69.050 0v0l172.639-172.655 172.639 172.655c19.072 19.060 49.99 19.060 69.062 0 19.076-19.073 19.076-49.991 0-69.064v0l-172.634-172.643 172.634-172.643c19.060-19.073 19.060-49.991 0-69.064-9.534-9.538-22.047-14.291-34.539-14.291s-24.985 4.769-34.523 14.291v0l-172.639 172.655-172.639-172.655c-9.538-9.538-22.030-14.291-34.523-14.291s-25.005 4.769-34.527 14.291c-19.072 19.073-19.072 49.991 0 69.064v0l172.639 172.643-172.639 172.643c-19.072 19.073-19.072 49.991 0 69.064z" />
<glyph unicode="&#xe909;" d="M0 960h1024v-1024h-1024v1024z" />
<glyph unicode="&#xe90a;" d="M768.933 671.256c-15.428 15.431-37.56 19.859-57.753 11.551l-405.18-166.727c-20.683-8.548-33.599-28.453-32.907-50.652 0.461-22.259 14.474-41.368 35.714-48.682l138.479-47.321c8.103-2.843 16.94-1.191 23.67 4.439l175.045 148.494c10.235 8.623 11.517 24.007 2.858 34.299-8.628 10.239-24.014 11.521-34.313 2.844l-164.522-139.586-125.445 42.885c-0.799 0.271-2.92 0.991-3.073 4.167-0.145 2.972 2.017 3.828 2.799 4.14l405.17 166.821c0.691 0.284 2.788 1.144 4.924-0.998 2.146-2.147 1.288-4.236 1.006-4.921l-166.72-405.167c-0.565-1.365-1.515-2.759-4.288-2.803-2.686 0.169-3.517 1.56-4.024 3.080l-37.767 110.628c-4.302 12.643-18.161 19.442-30.914 15.137-12.639-4.301-19.434-18.159-15.14-30.918l37.774-110.649c7.277-21.119 26.362-35.212 48.621-35.908h1.728c21.546 0 40.813 12.917 49.092 32.919l166.718 405.175c8.309 20.189 3.884 42.32-11.551 57.754z" />
<glyph unicode="&#xe90b;" glyph-name="Icon-Export" d="M363.636 925.867v-147.036h-218.182v-661.662h654.545v291.793h145.455v-365.311c0-40.655-32.509-73.518-72.727-73.518v0h-800c-40.145 0-72.727 32.863-72.727 73.518v0 808.697c0 40.582 32.582 73.518 72.727 73.518v0h290.909zM712.568 880.609c11.144 5.499 24.595 4.335 34.486-3.041v0l263.758-194.085c8.308-6.081 13.188-15.721 13.188-25.878s-4.88-19.797-13.188-25.878v0l-263.758-194.085c-9.957-7.375-23.408-8.54-34.552-3.041s-18.199 16.691-18.199 28.919v0 97.042h-65.939c-113.152 0-214.831-61.719-265.406-161.026v0l-7.781-15.203c-5.671-11.128-17.21-17.856-29.475-17.856-2.506 0-5.077 0.259-7.583 0.841-14.836 3.429-25.387 16.497-25.387 31.506 0 196.22 162.672 355.822 362.667 355.822v0h38.904v97.042c0 12.227 7.056 23.42 18.265 28.919z" />
<glyph unicode="&#xe90c;" d="M27.69 925.867h955.733v-955.733h-955.733v955.733z" />
<glyph unicode="&#xe90d;" d="M508.422 148.062c-167.327 0-323.48 90.063-407.335 235.137-9.073 15.759-3.725 35.91 12.034 44.984s35.91 3.725 44.984-12.034c72.203-124.731 206.39-202.187 350.318-202.187s278.21 77.456 350.318 202.187c9.073 15.759 29.225 21.107 44.984 12.034s21.107-29.225 12.034-44.984c-83.855-145.074-240.008-235.137-407.335-235.137zM887.296 472.020c-11.365 0-22.444 5.921-28.556 16.427-72.203 124.731-206.39 202.187-350.318 202.187s-278.115-77.456-350.318-202.187c-9.073-15.759-29.225-21.107-44.984-12.034s-21.107 29.225-12.034 44.984c83.855 145.074 240.008 235.137 407.335 235.137s323.48-90.063 407.335-235.137c9.073-15.759 3.725-35.91-12.034-44.984-5.157-2.961-10.888-4.393-16.427-4.393zM508.422 272.125c-98.276 0-178.12 79.939-178.12 178.12s79.939 178.12 178.12 178.12c98.181 0 178.12-79.939 178.12-178.12s-79.843-178.12-178.12-178.12zM508.422 562.56c-61.888 0-112.316-50.332-112.316-112.316s50.332-112.316 112.316-112.316c61.984 0 112.316 50.427 112.316 112.316s-50.427 112.316-112.316 112.316z" />
<glyph unicode="&#xe90e;" d="M20.48 925.867h954.801v-954.801h-954.801v954.801z" />
<glyph unicode="&#xe90f;" d="M497.901 416.374c-171.732 0-343.198 52.143-465.386 156.216-7.028 6.127-11.323 14.803-11.935 24.107s2.509 18.468 8.673 25.463c12.883 14.602 35.144 16.048 49.809 3.236 215.467-185.391 623.14-185.391 837.679 0 14.664 12.812 36.925 11.366 49.809-3.236 12.837-14.587 11.405-36.786-3.262-49.597-122.188-104.047-293.654-156.19-465.386-156.19zM370.382 262.97c-2.089-0.23-4.197-0.23-6.286 0-9.628 1.326-18.3 6.631-23.817 14.587-5.543 7.983-7.426 17.929-5.251 27.371l23.26 136.722c3.395 19.228 21.715 32.078 40.95 28.724 9.243-1.569 17.481-6.752 22.895-14.406s7.559-17.148 5.961-26.386l-23.26-136.696c-2.452-17.149-17.129-29.894-34.452-29.917v0zM893.48 332.511c-9.283 0-18.194 3.766-24.666 10.423l-114.709 115.849c-9.933 8.539-14.205 21.948-11.041 34.659s13.223 22.554 26 25.44c12.759 2.959 26.103-1.451 34.585-11.431l114.735-115.849c13.606-13.579 13.606-35.566 0-49.146-6.737-6.365-15.648-9.919-24.931-9.946h0.027zM102.322 332.51c-8.694 0.425-16.947 3.954-23.26 9.946-6.538 6.506-10.214 15.349-10.214 24.573s3.676 18.067 10.214 24.573l114.709 115.849c8.038 11.438 22.113 16.992 35.796 14.125s24.344-13.604 27.115-27.306c2.684-13.72-3.13-27.71-14.746-35.487l-114.709-115.849c-6.541-6.713-15.532-10.475-24.904-10.424v0zM627.038 262.97c-16.857 0.048-31.263 12.153-34.214 28.75l-23.26 136.722c-4.279 12.809-0.729 26.938 9.097 36.203 9.839 9.291 24.152 12.079 36.76 7.161 12.625-4.96 21.218-16.709 22.093-30.156l23.26-136.722c1.697-9.071-0.318-18.433-5.623-26.018s-13.394-12.731-22.544-14.322c-1.798-0.717-3.664-1.25-5.57-1.591v-0.027z" />
<glyph unicode="&#xe910;" glyph-name="Icon-History" d="M515.233 647.11v-248.887l217.751-126.436 36.631 60.48-178.067 103.29v211.554h-76.315zM108.218 448h-108.218l160.374-167.861c1.087-1.257 1.922-1.885 2.506-1.885s1.331 0.628 2.24 1.885l155.445 167.861h-110.592c0 192.39 159.499 348.444 356.137 348.444s356.137-156.053 356.137-348.444c0-192.39-159.499-348.444-356.137-348.444-98.447 0-187.227 39.324-251.585 102.293l-71.991-70.436c82.676-81.137 196.893-131.413 323.321-131.413 253.114 0 458.146 200.604 458.146 448s-205.033 448-458.146 448c-253.111 0-457.636-200.604-457.636-448z" />
<glyph unicode="&#xe911;" glyph-name="Icon-Increase" d="M512 960c282.325 0 512-229.675 512-512s-229.675-512-512-512c-282.325 0-512 229.675-512 512s229.675 512 512 512zM512 874.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667zM512 448c22.805 0 44.224-8.896 60.352-25.003v0l140.096-136.448c16.875-16.427 17.237-43.435 0.789-60.331-8.363-8.576-19.456-12.885-30.571-12.885-10.731 0-21.461 4.011-29.781 12.117v0l-140.501 136.832-141.291-136.832c-16.875-16.448-43.904-16.085-60.331 0.789-16.448 16.875-16.085 43.883 0.789 60.331v0l140.501 136.832c15.723 15.701 37.141 24.597 59.947 24.597zM512 682.667c22.805 0 44.224-8.896 60.352-25.003v0l140.096-136.448c16.875-16.427 17.237-43.435 0.789-60.331-8.363-8.576-19.456-12.885-30.571-12.885-10.731 0-21.461 4.011-29.781 12.117v0l-140.501 136.832-141.291-136.832c-16.875-16.469-43.904-16.085-60.331 0.789-16.448 16.875-16.085 43.883 0.789 60.331v0l140.501 136.832c15.723 15.701 37.141 24.597 59.947 24.597z" />
<glyph unicode="&#xe912;" glyph-name="Icon-leftarrow-small" d="M225.494 397.308l434.499-440.308c27.699-27.999 72.521-27.999 100.135 0 27.563 27.999 27.563 73.419 0 101.401l-384.465 389.608 384.398 389.539c27.631 27.999 27.631 73.402 0 101.401-27.614 28.068-72.436 28.068-100.067 0l-434.499-440.308c-13.824-13.991-20.694-32.286-20.694-50.632s6.87-36.778 20.694-50.701z" />
<glyph unicode="&#xe913;" glyph-name="Icon-Playstore" d="M895.248 524.927c-0.176 0.115-0.387 0.24-0.563 0.344l-145.717 84.853-161.544-162.304 161.637-161.979c0 0 146.011 85.125 146.187 85.219 27.093 16.459 43.28 45.219 43.28 76.939 0 31.728-16.187 60.491-43.28 76.928v0zM545.101 405.279l-459-461.176c12.176-5.645 25.136-8.104 38.072-8.104 15.981 0 31.928 3.821 46.365 12.499l524.928 306.085-150.365 150.696zM43.059 908.386c-5.8-12.272-8.925-25.939-8.925-40v-842.763c0-14.125 3.144-27.584 9-39.603l459.563 461.739-459.637 460.627zM170.539 946.946c-26.384 15.885-57.821 17.304-85.24 4.085l459.741-460.731 150.323 151.021-524.824 305.624z" />
<glyph unicode="&#xe914;" glyph-name="Icon-Reset" d="M705.839 590.926c-6.82-22.963 5.916-47.215 28.459-54.173l140.804-43.442c4.071-1.26 8.238-1.868 12.377-1.868 12.039 0 23.776 5.217 32.011 14.749l93.878 108.606c15.57 18.003 13.831 45.466-3.847 61.319-17.682 15.878-44.697 14.097-60.21-3.903l-43.083-49.865c-69.849 182.791-241.459 303.518-436.891 303.518-258.793 0-469.336-214.37-469.336-477.867s210.543-477.867 469.336-477.867c222.419 0 415.85 160.802 459.946 382.355 4.697 23.531-10.237 46.469-33.348 51.208-23.207 4.793-45.611-10.408-50.276-33.954-36.071-181.209-194.319-312.724-376.322-312.724-211.738 0-384.002 175.395-384.002 390.982s172.264 390.982 384.002 390.982c156.527 0 294.32-94.621 353.67-238.807l-63.961 19.741c-22.485 6.929-46.361-6.010-53.206-28.991z" />
<glyph unicode="&#xe915;" glyph-name="Icon-rightarrow-small" d="M760.106 397.308l-434.499-440.308c-27.699-27.999-72.521-27.999-100.135 0-27.563 27.999-27.563 73.419 0 101.401l384.465 389.608-384.398 389.539c-27.631 27.999-27.631 73.402 0 101.401 27.614 28.068 72.436 28.068 100.067 0l434.499-440.308c13.824-13.991 20.694-32.286 20.694-50.632s-6.87-36.778-20.694-50.701z" />
<glyph unicode="&#xe916;" glyph-name="Icon-select20" d="M512 82.286l512 731.429h-1024z" />
<glyph unicode="&#xe917;" glyph-name="Icon-select100" d="M512 82.286l512 731.429h-1024z" />
<glyph unicode="&#xe918;" glyph-name="Icon-social-fb" d="M638.611 615.234h-57.177c-11.319 0-22.748-11.696-22.748-20.405v-58.298h79.807c-3.206-44.7-9.804-85.577-9.804-85.577h-70.414v-253.328h-104.916v253.354h-51.072v85.251h51.072v69.692c0 12.745-2.578 98.077 107.503 98.077h77.749v-88.766z" />
<glyph unicode="&#xe919;" glyph-name="Icon-social-ins" d="M516.319 228.571c-1.453 0-2.907 0-4.37 0.007-34.399-0.084-66.183 0.79-97.095 2.672-28.339 1.725-54.207 11.517-74.812 28.319-19.881 16.212-33.459 38.133-40.353 65.146-6 23.517-6.318 46.604-6.623 68.933-0.221 16.021-0.448 35.006-0.495 54.311 0.047 19.386 0.274 38.371 0.495 54.392 0.305 22.326 0.623 45.412 6.623 68.933 6.894 27.014 20.471 48.934 40.353 65.146 20.605 16.802 46.473 26.595 74.816 28.319 30.91 1.878 62.702 2.756 97.175 2.672 34.41 0.074 66.184-0.794 97.095-2.672 28.34-1.725 54.208-11.517 74.813-28.319 19.885-16.212 33.459-38.133 40.353-65.146 6-23.517 6.318-46.607 6.622-68.933 0.221-16.021 0.453-35.006 0.495-54.311v-0.081c-0.043-19.305-0.274-38.29-0.495-54.311-0.304-22.326-0.619-45.412-6.622-68.933-6.894-27.014-20.468-48.934-40.353-65.146-20.605-16.802-46.473-26.595-74.813-28.319-29.601-1.802-60.009-2.679-92.809-2.679zM511.949 262.864c33.841-0.081 64.912 0.773 95.097 2.608 21.429 1.302 40.007 8.257 55.228 20.668 14.069 11.475 23.759 27.305 28.798 47.053 4.995 19.576 5.283 40.597 5.561 60.924 0.218 15.914 0.446 34.764 0.492 53.883-0.046 19.122-0.274 37.969-0.492 53.883-0.278 20.327-0.566 41.348-5.561 60.927-5.039 19.748-14.729 35.578-28.798 47.053-15.221 12.408-33.8 19.363-55.228 20.665-30.184 1.839-61.256 2.685-95.016 2.612-33.834 0.081-64.908-0.773-95.092-2.612-21.429-1.302-40.008-8.257-55.229-20.665-14.069-11.475-23.759-27.305-28.798-47.053-4.995-19.58-5.283-40.597-5.561-60.927-0.218-15.927-0.445-34.788-0.492-53.923 0.047-19.051 0.274-37.915 0.492-53.842 0.278-20.327 0.566-41.348 5.561-60.924 5.039-19.748 14.729-35.578 28.798-47.053 15.221-12.408 33.801-19.363 55.229-20.665 30.184-1.839 61.265-2.696 95.012-2.612zM511.133 340.857c-59.076 0-107.143 48.063-107.143 107.143s48.067 107.143 107.143 107.143c59.079 0 107.143-48.063 107.143-107.143s-48.063-107.143-107.143-107.143zM511.133 520.857c-40.172 0-72.857-32.685-72.857-72.857s32.685-72.857 72.857-72.857c40.175 0 72.857 32.685 72.857 72.857s-32.682 72.857-72.857 72.857zM630.275 589.429c-14.199 0-25.714-11.511-25.714-25.714s11.515-25.714 25.714-25.714c14.204 0 25.714 11.511 25.714 25.714s-11.511 25.714-25.714 25.714z" />
<glyph unicode="&#xe91a;" glyph-name="Icon-social-linkedin" d="M390.685 533.119v-278.606h-92.605v278.606h92.605zM618.040 539.658c60.961 0 106.652-39.812 106.652-125.378v-159.767h-92.634v149.055c0 37.439-13.382 62.99-46.905 62.99-25.607 0-40.818-17.206-47.521-33.875-2.436-5.952-3.071-14.225-3.071-22.578v-155.6h-92.648l0.008 1.747c0.106 22.347 1.168 252.005-0.008 276.866h92.648v-39.483c12.31 18.942 34.273 46.022 83.479 46.022zM344.993 667.429c31.694 0 51.18-20.791 51.787-48.127 0-26.752-20.092-48.158-52.394-48.158h-0.615c-31.065 0-51.2 21.406-51.2 48.158 0 27.336 20.727 48.127 52.421 48.127z" />
<glyph unicode="&#xe91b;" glyph-name="Icon-social-medium" d="M314.267 551.278c0.611 6.031-1.692 11.995-6.193 16.054l-45.881 55.27v8.256h142.456l110.112-241.488 96.807 241.488h135.802v-8.256l-39.227-37.61c-3.383-2.581-5.060-6.815-4.359-11.009v-276.345c-0.701-4.194 0.975-8.432 4.359-11.009l38.312-37.61v-8.256h-192.696v8.256l39.685 38.526c3.901 3.901 3.901 5.045 3.901 11.009v223.371l-110.341-280.246h-14.91l-128.465 280.246v-187.823c-1.073-7.896 1.553-15.848 7.112-21.557l51.613-62.61v-8.256h-146.353v8.256l51.616 62.61c5.518 5.72 7.986 13.725 6.65 21.557v217.178z" />
<glyph unicode="&#xe91c;" glyph-name="Icon-social-twitter" d="M710.53 564.941c0.201-4.454 0.302-8.934 0.302-13.439 0-137.286-104.49-295.585-295.585-295.585-58.666 0-113.273 17.196-159.247 46.676 8.13-0.962 16.393-1.455 24.782-1.455 48.672 0 93.464 16.603 129.023 44.475-45.463 0.836-83.828 30.869-97.048 72.146 6.347-1.215 12.854-1.867 19.543-1.867 9.478 0 18.654 1.271 27.377 3.642-47.523 9.553-83.341 51.533-83.341 101.868 0 0.435 0 0.87 0.009 1.307 14.007-7.778 30.024-12.451 47.054-12.995-27.873 18.628-46.207 50.427-46.207 86.473 0 19.040 5.123 36.881 14.065 52.228 51.24-62.852 127.79-104.213 214.13-108.551-1.777 7.611-2.696 15.54-2.696 23.678 0 57.37 46.518 103.888 103.885 103.888 29.883 0 56.885-12.618 75.831-32.804 23.661 4.655 45.898 13.304 65.978 25.21-7.761-24.263-24.231-44.617-45.682-57.477 21.016 2.512 41.035 8.096 59.672 16.36-13.923-20.832-31.54-39.134-51.844-53.777z" />
<glyph unicode="&#xe91d;" glyph-name="Icon-social-youtube" d="M714.32 567.776c-15.836 18.83-45.084 26.51-100.942 26.51h-202.763c-57.131 0-86.876-8.177-102.657-28.223-15.387-19.549-15.387-48.354-15.387-88.217v-75.975c0-77.225 18.255-116.432 118.044-116.432h202.763c48.442 0 75.283 6.774 92.648 23.39 17.806 17.046 25.402 44.87 25.402 93.041v75.975c0 42.042-1.189 71.012-17.108 89.93zM574.323 429.367l-92.073-48.117c-2.062-1.078-4.314-1.61-6.562-1.61-2.543 0-5.088 0.685-7.333 2.046-4.238 2.564-6.824 7.162-6.824 12.111v95.931c0 4.942 2.58 9.533 6.809 12.097 4.231 2.571 9.485 2.745 13.874 0.464l92.073-47.807c4.681-2.433 7.625-7.266 7.632-12.546s-2.925-10.12-7.597-12.568z" />
<glyph unicode="&#xe91e;" glyph-name="Icon-Triangle" d="M512 82.286l512 731.429h-1024z" />
<glyph unicode="&#xe91f;" glyph-name="Icon-TriangleTop" d="M512 813.714l512-731.429h-1024z" />
<glyph unicode="&#xe920;" glyph-name="Icon-Uploadimage" d="M908.935 960c63.449 0 115.065-51.619 115.065-115.065v0-793.867c0-63.449-51.616-115.068-115.065-115.068v0h-793.869c-63.449 0-115.065 51.619-115.065 115.068v0 793.867c0 63.446 51.616 115.065 115.065 115.065v0zM743.052 493.041l-288.001-288.001c-13.31-13.31-34.969-13.315-48.281 0v0l-156.653 156.653-181.762-181.769v-128.856c0-25.764 20.954-46.724 46.711-46.724v0h793.869c25.764 0 46.724 20.959 46.724 46.724v0 229.375l-212.607 212.598zM908.935 891.646h-793.869c-25.757 0-46.711-20.954-46.711-46.711v0-568.241l157.516 157.516c13.31 13.315 34.969 13.315 48.281 0v0l156.653-156.645 288.001 288.003c13.31 13.307 34.969 13.307 48.279 0v0l188.574-188.381v467.748c0 25.757-20.96 46.711-46.724 46.711v0zM320.827 801.865c75.575 0 137.058-61.483 137.058-137.058s-61.483-137.058-137.058-137.058c-75.572 0-137.055 61.483-137.055 137.058s61.483 137.058 137.055 137.058zM320.827 733.511c-37.882 0-68.704-30.821-68.704-68.703 0-37.89 30.821-68.714 68.704-68.714 37.89 0 68.717 30.824 68.717 68.714 0 37.882-30.826 68.703-68.717 68.703z" />
<glyph unicode="&#xe921;" glyph-name="Icon-User" d="M824.143 169.25c-25.362 85.18-84.346 155.965-161.32 196.564 50.075 42.607 81.923 105.905 81.923 176.554 0 127.923-104.383 232.025-232.729 232.025-128.311 0-232.729-104.102-232.729-232.025 0-70.649 31.813-133.947 81.923-176.554-77.007-40.599-135.958-111.384-161.354-196.564-66.357 74.46-106.773 172.743-106.773 280.281 0 230.289 187.944 417.665 418.932 417.665s418.932-187.376 418.932-417.665c0-107.539-40.415-205.821-106.807-280.281zM372.373 542.369c0 76.74 62.671 139.222 139.644 139.222s139.61-62.481 139.61-139.222c0-76.774-62.637-139.222-139.61-139.222s-139.644 62.447-139.644 139.222zM512.017 28.803c-85.541 0-165.177 25.898-231.568 70.275 11.879 118.463 111.244 211.266 231.568 211.266s219.655-92.803 231.568-211.266c-66.392-44.377-146.027-70.275-231.568-70.275zM512.017 960c-282.326 0-512.017-228.996-512.017-510.469 0-164.813 77.861-311.726 198.594-405.788 3.755-4.050 8.226-7.419 13.21-9.937 84.415-61.494 188.149-97.806 300.213-97.806s215.798 36.311 300.179 97.806c5.018 2.518 9.489 5.887 13.244 9.937 120.734 94.062 198.56 240.975 198.56 405.788 0 281.472-229.657 510.469-511.983 510.469z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 28 KiB

BIN
v4/icomoon/fonts/icomoon.ttf

Binary file not shown.

BIN
v4/icomoon/fonts/icomoon.woff

Binary file not shown.

1
v4/icomoon/selection.json

File diff suppressed because one or more lines are too long

164
v4/icomoon/style.css

@ -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;
}

14
v4/jsconfig.json

@ -0,0 +1,14 @@
{
"compilerOptions": {
"baseUrl": "./",
"target": "es6",
"paths": {
"@/*": [
"src/*"
],
}
},
"include": [
"src/**/*", "config/config.js"
]
}

33227
v4/package-lock.json

File diff suppressed because it is too large

114
v4/package.json

@ -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"
]
}

100
v4/src/App.vue

@ -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>

251
v4/src/api/assets.js

@ -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;

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save