fangq преди 4 години
ревизия
98d54fd521
променени са 100 файла, в които са добавени 326 реда и са изтрити 0 реда
  1. 9 0
      .editorconfig
  2. 12 0
      .env.development
  3. 12 0
      .env.production
  4. 6 0
      .eslintignore
  5. 25 0
      .eslintrc.js
  6. 18 0
      .gitignore
  7. 8 0
      .postcssrc.js
  8. 3 0
      Dockerfile
  9. 11 0
      README.md
  10. 14 0
      babel.config.js
  11. 24 0
      jest.config.js
  12. 9 0
      jsconfig.json
  13. 17 0
      nginx.conf
  14. 71 0
      package.json
  15. 8 0
      postcss.config.js
  16. BIN
      public/favicon.ico
  17. 37 0
      public/index.html
  18. 30 0
      src/App.vue
  19. 11 0
      src/assets/css/global.css
  20. BIN
      src/assets/icon/699@2x.png
  21. BIN
      src/assets/icon/700@2x.png
  22. BIN
      src/assets/icon/access@2x.png
  23. BIN
      src/assets/icon/conversion@2x.png
  24. BIN
      src/assets/icon/data-nalysis-ideas@2x.png
  25. BIN
      src/assets/icon/downArrow@2x.png
  26. BIN
      src/assets/icon/slide-left-arrow@2x.png
  27. BIN
      src/assets/icon/slide-right-arrow@2x.png
  28. BIN
      src/assets/icon/tips-icon.png
  29. BIN
      src/assets/icon/upArrow@2x.png
  30. BIN
      src/assets/img/address.png
  31. BIN
      src/assets/img/avatar.png
  32. BIN
      src/assets/img/base_z36574a.png
  33. BIN
      src/assets/img/bg_mobile_foot_default2968da.png
  34. BIN
      src/assets/img/bg_mobile_head_default2968da.png
  35. BIN
      src/assets/img/buyer.png
  36. BIN
      src/assets/img/car.png
  37. BIN
      src/assets/img/customer-service.png
  38. BIN
      src/assets/img/data-tips.png
  39. BIN
      src/assets/img/deal.png
  40. BIN
      src/assets/img/def.png
  41. BIN
      src/assets/img/default-verify-error.jpg
  42. BIN
      src/assets/img/downArrow.png
  43. BIN
      src/assets/img/downArrow@2x.png
  44. BIN
      src/assets/img/example-img/Business-license.png
  45. BIN
      src/assets/img/example-img/idcard1.png
  46. BIN
      src/assets/img/example-img/idcard2.png
  47. BIN
      src/assets/img/home/afterSale.png
  48. BIN
      src/assets/img/home/audit-violations.png
  49. BIN
      src/assets/img/home/customerPrice.png
  50. BIN
      src/assets/img/home/distribution-withdrawals.png
  51. BIN
      src/assets/img/home/ic-arrow-narrow-down.png
  52. BIN
      src/assets/img/home/ic-arrow-narrow-up.png
  53. BIN
      src/assets/img/home/payCount.png
  54. BIN
      src/assets/img/home/payCustomers.png
  55. BIN
      src/assets/img/home/pendingDelivery.png
  56. BIN
      src/assets/img/home/pendingPayment.png
  57. BIN
      src/assets/img/home/pendingReview.png
  58. BIN
      src/assets/img/home/refundAmount.png
  59. BIN
      src/assets/img/home/stores-to-audited.png
  60. BIN
      src/assets/img/home/totalOrderAmount.png
  61. BIN
      src/assets/img/home/wait-after-sales-num.png
  62. BIN
      src/assets/img/home/wait-delivery-num.png
  63. BIN
      src/assets/img/home/wait-evaluate-num.png
  64. BIN
      src/assets/img/home/wait-payment-num.png
  65. BIN
      src/assets/img/home/wait-receiving-goods-num.png
  66. BIN
      src/assets/img/home/withdraw-cash.png
  67. BIN
      src/assets/img/horn.png
  68. BIN
      src/assets/img/index_z354723.png
  69. BIN
      src/assets/img/invoice.png
  70. BIN
      src/assets/img/line.png
  71. BIN
      src/assets/img/link-send.png
  72. BIN
      src/assets/img/login-bg.png
  73. BIN
      src/assets/img/login-logo.png
  74. BIN
      src/assets/img/message.png
  75. 1 0
      src/assets/img/message.svg
  76. BIN
      src/assets/img/micro-page/ad-1.png
  77. BIN
      src/assets/img/micro-page/ad-2.png
  78. BIN
      src/assets/img/micro-page/ad-3.png
  79. BIN
      src/assets/img/micro-page/ad-4.png
  80. BIN
      src/assets/img/micro-page/card.png
  81. BIN
      src/assets/img/micro-page/carousel-swiper-active.png
  82. BIN
      src/assets/img/micro-page/carousel-swiper.png
  83. BIN
      src/assets/img/micro-page/class.png
  84. BIN
      src/assets/img/micro-page/def.png
  85. BIN
      src/assets/img/micro-page/lateral-sliding-active.png
  86. BIN
      src/assets/img/micro-page/lateral-sliding.png
  87. BIN
      src/assets/img/micro-page/menu.png
  88. BIN
      src/assets/img/micro-page/micro-create-header.png
  89. BIN
      src/assets/img/micro-page/micro-create-header1.png
  90. BIN
      src/assets/img/micro-page/notice.png
  91. BIN
      src/assets/img/micro-page/one-line-one-active.png
  92. BIN
      src/assets/img/micro-page/one-line-one.png
  93. BIN
      src/assets/img/micro-page/p-ad-def.png
  94. BIN
      src/assets/img/micro-page/p-hotarea-active.png
  95. BIN
      src/assets/img/micro-page/p-hotarea.png
  96. BIN
      src/assets/img/micro-page/p-image-ad-active.png
  97. BIN
      src/assets/img/micro-page/p-image-ad.png
  98. BIN
      src/assets/img/micro-page/p-link-active.png
  99. BIN
      src/assets/img/micro-page/p-link.png
  100. BIN
      src/assets/img/micro-page/p-notice-active.png

+ 9 - 0
.editorconfig

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

+ 12 - 0
.env.development

@@ -0,0 +1,12 @@
+# just a flag
+ENV = 'development'
+
+// api接口请求地址
+VUE_APP_BASE_API = 'https://b2b2c-platform.mall4j.com/apis'
+
+// 客服api接口请求地址
+VUE_APP_IM_API = 'https://b2b2c-im.mall4j.com'
+// 客服webstock接口请求地址
+VUE_APP_WS_IM_API = 'wss://b2b2c-im.mall4j.com'
+// 静态资源文件url
+VUE_APP_RESOURCES_URL = 'https://img.mall4j.com/'

+ 12 - 0
.env.production

@@ -0,0 +1,12 @@
+# just a flag
+ENV = 'production'
+
+// api接口请求地址
+VUE_APP_BASE_API = 'https://b2b2c-platform.mall4j.com/apis'
+// 客服api接口请求地址
+VUE_APP_IM_API = 'https://b2b2c-im.mall4j.com'
+// 客服webstock接口请求地址
+VUE_APP_WS_IM_API = 'wss://b2b2c-im.mall4j.com'
+
+# 静态资源文件url
+VUE_APP_RESOURCES_URL = 'https://img.mall4j.com/'

+ 6 - 0
.eslintignore

@@ -0,0 +1,6 @@
+/build/
+/config/
+/dist/
+/*.js
+/test/unit/coverage/
+/src/icons/iconfont.js

+ 25 - 0
.eslintrc.js

@@ -0,0 +1,25 @@
+// https://eslint.org/docs/user-guide/configuring
+
+module.exports = {
+  root: true,
+  parser: 'babel-eslint',
+  parserOptions: {
+    sourceType: 'module'
+  },
+  env: {
+    browser: true,
+  },
+  // https://github.com/standard/standard/blob/master/docs/RULES-en.md
+  extends: 'standard',
+  // required to lint *.vue files
+  plugins: [
+    'html'
+  ],
+  // 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'
+  }
+}

+ 18 - 0
.gitignore

@@ -0,0 +1,18 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+/test/unit/coverage/
+/test/e2e/reports/
+selenium-debug.log
+
+package-lock.json
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln

+ 8 - 0
.postcssrc.js

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

+ 3 - 0
Dockerfile

@@ -0,0 +1,3 @@
+FROM nginx:1.20
+COPY ./dist /usr/share/nginx/html/dist
+COPY ./nginx.conf /etc/nginx/conf.d

+ 11 - 0
README.md

@@ -0,0 +1,11 @@
+## 协议和授权
+
+`mall4vp-bbc` 并非一个开源软件,作者保留全部的权利。 擅自窃用,即属严重侵权行为,与盗窃无异。产生的一切任何后果责任由侵权者自负。
+
+## 商业使用
+
+商用请联系 **广州蓝海创新科技有限公司** 获取授权,否则产生的一切任何后果责任由侵权者自负。
+
+## 🚫禁止
+
+将本项目的部分或全部代码和资源进行任何形式的再发行(上传GitHub、Gitee等任何公开发行的地方)

+ 14 - 0
babel.config.js

@@ -0,0 +1,14 @@
+module.exports = {
+  presets: [
+    // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
+    '@vue/cli-plugin-babel/preset'
+  ],
+  'env': {
+    'development': {
+      // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
+      // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
+      // https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
+      'plugins': ['dynamic-import-node']
+    }
+  }
+}

+ 24 - 0
jest.config.js

@@ -0,0 +1,24 @@
+module.exports = {
+  moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
+  transform: {
+    '^.+\\.vue$': 'vue-jest',
+    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
+      'jest-transform-stub',
+    '^.+\\.jsx?$': 'babel-jest'
+  },
+  moduleNameMapper: {
+    '^@/(.*)$': '<rootDir>/src/$1'
+  },
+  snapshotSerializers: ['jest-serializer-vue'],
+  testMatch: [
+    '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
+  ],
+  collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
+  coverageDirectory: '<rootDir>/tests/unit/coverage',
+  // 'collectCoverage': true,
+  'coverageReporters': [
+    'lcov',
+    'text-summary'
+  ],
+  testURL: 'http://localhost/'
+}

+ 9 - 0
jsconfig.json

@@ -0,0 +1,9 @@
+{
+  "compilerOptions": {
+    "baseUrl": "./",
+    "paths": {
+        "@/*": ["src/*"]
+    }
+  },
+  "exclude": ["node_modules", "dist"]
+}

+ 17 - 0
nginx.conf

@@ -0,0 +1,17 @@
+server {
+    listen 80;
+    server_name b2b2c-platform.mall4j.com;
+
+    location / {
+        root /usr/share/nginx/html/dist;
+    }
+
+    error_page 404 /404.html;
+        location = /404-light.html {
+    }
+
+    error_page 500 502 503 504 /50x.html;
+        location = /50x.html {
+    }
+}
+

+ 71 - 0
package.json

@@ -0,0 +1,71 @@
+{
+  "name": "admin-vue",
+  "version": "1.0.0",
+  "private": true,
+  "scripts": {
+    "dev": "vue-cli-service serve",
+    "lint": "eslint --ext .js,.vue src",
+    "build:prod": "vue-cli-service build"
+  },
+  "dependencies": {
+    "axios": "0.18.1",
+    "big.js": "^5.2.2",
+    "core-js": "3.6.5",
+    "dompurify": "^2.3.3",
+    "echarts": "^5.2.0",
+    "element-resize-detector": "^1.2.3",
+    "element-ui": "2.15.7",
+    "js-base64": "^3.6.1",
+    "lodash": "4.17.5",
+    "moment": "^2.29.1",
+    "qrcode": "^1.4.4",
+    "vue": "2.6.14",
+    "vue-baidu-map": "^0.21.22",
+    "vue-clipboard2": "^0.3.1",
+    "vue-cookie": "1.1.4",
+    "vue-i18n": "8.24.5",
+    "vue-router": "3.5.2",
+    "vue-slicksort": "^1.1.3",
+    "vuedraggable": "2.23.2",
+    "vuex": "3.6.2"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "4.5.13",
+    "@vue/cli-plugin-unit-jest": "4.5.13",
+    "@vue/cli-service": "4.5.13",
+    "autoprefixer": "9.8.6",
+    "babel-eslint": "7.1.1",
+    "babel-jest": "^23.6.0",
+    "babel-plugin-dynamic-import-node": "^2.3.3",
+    "chalk": "^2.4.2",
+    "connect": "^3.6.6",
+    "crypto-js": "^4.1.1",
+    "eslint": "3.19.0",
+    "eslint-config-standard": "10.2.1",
+    "eslint-friendly-formatter": "3.0.0",
+    "eslint-loader": "1.7.1",
+    "eslint-plugin-html": "3.0.0",
+    "eslint-plugin-import": "2.7.0",
+    "eslint-plugin-node": "5.2.0",
+    "eslint-plugin-promise": "3.5.0",
+    "eslint-plugin-standard": "3.0.1",
+    "html-webpack-plugin": "^3.2.0",
+    "runjs": "^4.3.2",
+    "sass": "1.49.9",
+    "sass-loader": "10.2.0",
+    "script-ext-html-webpack-plugin": "^2.1.3",
+    "serve-static": "^1.13.2",
+    "svg-sprite-loader": "^4.1.3",
+    "svgo": "^1.2.2",
+    "vue-template-compiler": "2.6.14"
+  },
+  "engines": {
+    "node": ">= 8.11.1",
+    "npm": ">= 5.6.0"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not ie <= 8"
+  ]
+}

+ 8 - 0
postcss.config.js

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

BIN
public/favicon.ico


+ 37 - 0
public/index.html

@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+    <title></title>
+    <script>
+      var webConfigData = JSON.parse(localStorage.getItem('webConfigData'))
+      if (webConfigData) {
+        let lang = localStorage.getItem('lang')
+        if (lang !== 'en') {
+          document.title = webConfigData.bsTitleContentCn || ''
+        } else {
+          document.title = webConfigData.bsTitleContentEn || ''
+        }
+
+        let facicon = document.querySelector('link[rel="icon"]')
+        if (facicon !== null) {
+          facicon.href = webConfigData.bsTitleImg
+        } else {
+          facicon = document.createElement('link')
+          facicon.rel = 'icon'
+          facicon.href = webConfigData.bsTitleImg
+          document.head.appendChild(facicon)
+        }
+      }
+    </script>
+  </head>
+  <body>
+    <noscript>
+      <strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 30 - 0
src/App.vue

@@ -0,0 +1,30 @@
+<template>
+  <transition name="fade">
+    <router-view></router-view>
+  </transition>
+</template>
+
+<script>
+export default {
+  mounted () {
+    // 检测浏览器路由改变页面不刷新问题,hash模式的工作原理是hashchange事件
+    window.addEventListener('hashchange', () => {
+      let currentPath = window.location.hash.slice(1)
+      if (this.$route.path !== currentPath) {
+        this.$router.push(currentPath)
+      }
+    }, false)
+  },
+  computed: {
+    key () {
+      return this.$route.path + Math.random()
+    }
+  }
+}
+</script>
+
+<style>
+.maxindex {
+  z-index: 99999!important;
+}
+</style>

+ 11 - 0
src/assets/css/global.css

@@ -0,0 +1,11 @@
+input::-webkit-outer-spin-button,
+input::-webkit-inner-spin-button {
+  -webkit-appearance: none;
+}
+input[type="number"] {
+  -moz-appearance: textfield;
+}
+/* el-dialog__footer{padding:10px 20px 20px;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box} */
+.el-dialog__body {
+  padding: 30px 20px 0;
+}

BIN
src/assets/icon/699@2x.png


BIN
src/assets/icon/700@2x.png


BIN
src/assets/icon/access@2x.png


BIN
src/assets/icon/conversion@2x.png


BIN
src/assets/icon/data-nalysis-ideas@2x.png


BIN
src/assets/icon/downArrow@2x.png


BIN
src/assets/icon/slide-left-arrow@2x.png


BIN
src/assets/icon/slide-right-arrow@2x.png


BIN
src/assets/icon/tips-icon.png


BIN
src/assets/icon/upArrow@2x.png


BIN
src/assets/img/address.png


BIN
src/assets/img/avatar.png


BIN
src/assets/img/base_z36574a.png


BIN
src/assets/img/bg_mobile_foot_default2968da.png


BIN
src/assets/img/bg_mobile_head_default2968da.png


BIN
src/assets/img/buyer.png


BIN
src/assets/img/car.png


BIN
src/assets/img/customer-service.png


BIN
src/assets/img/data-tips.png


BIN
src/assets/img/deal.png


BIN
src/assets/img/def.png


BIN
src/assets/img/default-verify-error.jpg


BIN
src/assets/img/downArrow.png


BIN
src/assets/img/downArrow@2x.png


BIN
src/assets/img/example-img/Business-license.png


BIN
src/assets/img/example-img/idcard1.png


BIN
src/assets/img/example-img/idcard2.png


BIN
src/assets/img/home/afterSale.png


BIN
src/assets/img/home/audit-violations.png


BIN
src/assets/img/home/customerPrice.png


BIN
src/assets/img/home/distribution-withdrawals.png


BIN
src/assets/img/home/ic-arrow-narrow-down.png


BIN
src/assets/img/home/ic-arrow-narrow-up.png


BIN
src/assets/img/home/payCount.png


BIN
src/assets/img/home/payCustomers.png


BIN
src/assets/img/home/pendingDelivery.png


BIN
src/assets/img/home/pendingPayment.png


BIN
src/assets/img/home/pendingReview.png


BIN
src/assets/img/home/refundAmount.png


BIN
src/assets/img/home/stores-to-audited.png


BIN
src/assets/img/home/totalOrderAmount.png


BIN
src/assets/img/home/wait-after-sales-num.png


BIN
src/assets/img/home/wait-delivery-num.png


BIN
src/assets/img/home/wait-evaluate-num.png


BIN
src/assets/img/home/wait-payment-num.png


BIN
src/assets/img/home/wait-receiving-goods-num.png


BIN
src/assets/img/home/withdraw-cash.png


BIN
src/assets/img/horn.png


BIN
src/assets/img/index_z354723.png


BIN
src/assets/img/invoice.png


BIN
src/assets/img/line.png


BIN
src/assets/img/link-send.png


BIN
src/assets/img/login-bg.png


BIN
src/assets/img/login-logo.png


BIN
src/assets/img/message.png


+ 1 - 0
src/assets/img/message.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1541150803210" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17693" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M776.704 436.736H291.84c-13.824 0-20.48 6.656-20.48 13.824 0 6.656 6.656 20.48 20.48 20.48h484.864c6.656 0 20.48-6.656 20.48-20.48-7.168-6.656-13.824-13.824-20.48-13.824zM701.44 600.576H359.936c-6.656 0-13.824 6.656-13.824 13.824 0 6.656 6.656 20.48 20.48 20.48h341.504c6.656 0 20.48-6.656 20.48-20.48-6.656-6.656-13.312-13.824-27.136-13.824z" p-id="17694" fill="#8a8a8a"></path><path d="M879.104 252.416H189.44c-47.616 0-81.92 34.304-81.92 75.264v416.256c0 40.96 34.304 81.92 81.92 81.92h225.28l95.744 122.88c6.656 6.656 13.824 13.824 20.48 13.824 6.656 0 20.48-6.656 20.48-13.824l95.744-122.88h225.28c20.48 0 34.304-6.656 54.784-20.48 20.48-13.824 27.136-34.304 27.136-61.44V327.68c-0.512-40.96-34.304-75.264-75.264-75.264z m27.136 498.688c0 6.656-6.656 13.824-6.656 20.48-6.656 0-6.656 6.656-20.48 6.656H640c-6.656 0-20.48 6.656-20.48 13.824l-81.92 116.224-81.92-116.224c-6.656-6.656-13.824-13.824-20.48-13.824H182.784c-13.824 0-27.136-13.824-27.136-27.136v-430.08c0-13.824 13.824-27.136 27.136-27.136H885.76c13.824 0 27.136 13.824 27.136 27.136l-6.656 430.08z" p-id="17695" fill="#8a8a8a"></path></svg>

BIN
src/assets/img/micro-page/ad-1.png


BIN
src/assets/img/micro-page/ad-2.png


BIN
src/assets/img/micro-page/ad-3.png


BIN
src/assets/img/micro-page/ad-4.png


BIN
src/assets/img/micro-page/card.png


BIN
src/assets/img/micro-page/carousel-swiper-active.png


BIN
src/assets/img/micro-page/carousel-swiper.png


BIN
src/assets/img/micro-page/class.png


BIN
src/assets/img/micro-page/def.png


BIN
src/assets/img/micro-page/lateral-sliding-active.png


BIN
src/assets/img/micro-page/lateral-sliding.png


BIN
src/assets/img/micro-page/menu.png


BIN
src/assets/img/micro-page/micro-create-header.png


BIN
src/assets/img/micro-page/micro-create-header1.png


BIN
src/assets/img/micro-page/notice.png


BIN
src/assets/img/micro-page/one-line-one-active.png


BIN
src/assets/img/micro-page/one-line-one.png


BIN
src/assets/img/micro-page/p-ad-def.png


BIN
src/assets/img/micro-page/p-hotarea-active.png


BIN
src/assets/img/micro-page/p-hotarea.png


BIN
src/assets/img/micro-page/p-image-ad-active.png


BIN
src/assets/img/micro-page/p-image-ad.png


BIN
src/assets/img/micro-page/p-link-active.png


BIN
src/assets/img/micro-page/p-link.png


BIN
src/assets/img/micro-page/p-notice-active.png


Някои файлове не бяха показани, защото твърде много файлове са промени