wang hou sheng 8 months ago
parent 41e3fcbdc6
commit c80e3ab20f
  1. 3
      .browserslistrc
  2. 39
      .editorconfig
  3. 3
      .env
  4. 3
      .env.development
  5. 3
      .env.preview
  6. 75
      .eslintrc.js
  7. 35
      .gitignore
  8. 5
      .prettierrc
  9. 7
      .travis.yml
  10. 21
      LICENSE
  11. 46
      config/plugin.config.js
  12. 31
      docs/add-page-loading-animate.md
  13. 95
      docs/load-on-demand.md
  14. 28
      docs/multi-tabs.md
  15. 40
      docs/webpack-bundle-analyzer.md
  16. 23
      jest.config.js
  17. 11
      jsconfig.json
  18. 195
      npminstall-debug.log
  19. 19892
      package-lock.json
  20. 63
      package.json
  21. 5
      postcss.config.js
  22. 18
      public/config.js
  23. 32
      public/index.html
  24. 1
      public/loading/loading.css
  25. 1
      public/loading/loading.html
  26. 5
      public/loading/option2/html_code_segment.html
  27. 1
      public/loading/option2/loading.css
  28. 1
      public/loading/option2/loading.svg
  29. 43
      src/App.vue
  30. 27
      src/api/admin/user.js
  31. 91
      src/api/api.config.js
  32. 71
      src/api/bargain/active.js
  33. 28
      src/api/bargain/setting.js
  34. 45
      src/api/bargain/task.js
  35. 54
      src/api/category/index.js
  36. 13
      src/api/cloud/authorize.js
  37. 37
      src/api/cloud/upgrade.js
  38. 54
      src/api/files/group.js
  39. 54
      src/api/files/index.js
  40. 41
      src/api/goods/collector.js
  41. 51
      src/api/goods/comment/index.js
  42. 41
      src/api/goods/import.js
  43. 144
      src/api/goods/index.js
  44. 64
      src/api/goods/service.js
  45. 64
      src/api/goods/source.js
  46. 15
      src/api/goods/spec.js
  47. 64
      src/api/groupon/goods.js
  48. 54
      src/api/groupon/robot.js
  49. 28
      src/api/groupon/setting.js
  50. 25
      src/api/groupon/task.js
  51. 27
      src/api/login.js
  52. 114
      src/api/market/active.js
  53. 87
      src/api/market/coupon.js
  54. 15
      src/api/market/points.js
  55. 24
      src/api/market/presale.js
  56. 54
      src/api/market/recharge/plan.js
  57. 24
      src/api/market/settle.js
  58. 24
      src/api/region.js
  59. 193
      src/api/server/index.js
  60. 159
      src/api/server/recovery.js
  61. 14
      src/api/setting/cache.js
  62. 74
      src/api/setting/delivery.js
  63. 14
      src/api/setting/queue.js
  64. 13
      src/api/setting/science.js
  65. 14
      src/api/setting/timer.js
  66. 71
      src/api/sharp/active/index.js
  67. 102
      src/api/sharp/active/time.js
  68. 84
      src/api/sharp/goods.js
  69. 28
      src/api/sharp/setting.js
  70. 123
      src/api/store.js
  71. 50
      src/api/store/api.js
  72. 74
      src/api/store/menu.js
  73. 38
      src/api/store/module.js
  74. 64
      src/api/store/shop/clerk.js
  75. 54
      src/api/store/shop/comment.js
  76. 83
      src/api/store/shop/index.js
  77. 15
      src/api/store/shop/order.js
  78. 15
      src/api/user/balance.js
  79. 64
      src/api/user/grade.js
  80. 65
      src/api/user/identity.js
  81. 64
      src/api/user/index.js
  82. 15
      src/api/user/recharge.js
  83. 69
      src/assets/background.svg
  84. 1
      src/assets/icons/access.svg
  85. 1
      src/assets/icons/bx-analyse.svg
  86. 1
      src/assets/icons/menu.svg
  87. 1
      src/assets/icons/setting.svg
  88. 1
      src/assets/icons/shop.svg
  89. BIN
      src/assets/img/default-avatar.png
  90. BIN
      src/assets/logo.png
  91. 29
      src/assets/logo.svg
  92. 13
      src/common/enum/Client.js
  93. 10
      src/common/enum/coupon/ApplyRange.js
  94. 10
      src/common/enum/coupon/CouponType.js
  95. 10
      src/common/enum/coupon/ExpireType.js
  96. 5
      src/common/enum/coupon/index.js
  97. 11
      src/common/enum/dealer/apply/ApplyStatus.js
  98. 10
      src/common/enum/dealer/apply/ApplyType.js
  99. 4
      src/common/enum/dealer/apply/index.js
  100. 12
      src/common/enum/dealer/withdraw/ApplyStatus.js
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,3 @@
> 1%
last 2 versions
not ie <= 10

@ -0,0 +1,39 @@
[*]
charset=utf-8
end_of_line=lf
insert_final_newline=false
indent_style=space
indent_size=2
[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}]
indent_style=space
indent_size=2
[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}]
indent_style=space
indent_size=2
[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}]
indent_style=space
indent_size=2
[*.svg]
indent_style=space
indent_size=2
[*.js.map]
indent_style=space
indent_size=2
[*.less]
indent_style=space
indent_size=2
[*.vue]
indent_style=space
indent_size=2
[{.analysis_options,*.yml,*.yaml}]
indent_style=space
indent_size=2

@ -0,0 +1,3 @@
NODE_ENV=production
VUE_APP_PREVIEW=false
VUE_APP_API_BASE_URL=/api

@ -0,0 +1,3 @@
NODE_ENV=development
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=/api

@ -0,0 +1,3 @@
NODE_ENV=production
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=/api

@ -0,0 +1,75 @@
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/strongly-recommended',
'@vue/standard'
],
rules: {
'no-console': 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'generator-star-spacing': 'off',
'no-mixed-operators': 0,
'vue/max-attributes-per-line': [
2,
{
'singleline': 5,
'multiline': {
'max': 1,
'allowFirstLine': false
}
}
],
'vue/attribute-hyphenation': 0,
'vue/html-self-closing': 0,
'vue/component-name-in-template-casing': 0,
'vue/html-closing-bracket-spacing': 0,
'vue/singleline-html-element-content-newline': 0,
'vue/no-unused-components': 0,
'vue/multiline-html-element-content-newline': 0,
'vue/no-use-v-if-with-v-for': 0,
'vue/html-closing-bracket-newline': 0,
'vue/no-parsing-error': 0,
'no-tabs': 0,
'quotes': [
2,
'single',
{
'avoidEscape': true,
'allowTemplateLiterals': true
}
],
'semi': [
2,
'never',
{
'beforeStatementContinuationChars': 'never'
}
],
'no-delete-var': 2,
'prefer-const': [
2,
{
'ignoreReadBeforeAssign': false
}
],
'template-curly-spacing': 'off',
'indent': 'off'
},
parserOptions: {
parser: 'babel-eslint'
},
overrides: [
{
files: [
'**/__tests__/*.{j,t}s?(x)',
'**/tests/unit/**/*.spec.{j,t}s?(x)'
],
env: {
jest: true
}
}
]
}

35
.gitignore vendored

@ -1,20 +1,21 @@
# ---> Vue
# gitignore template for Vue.js projects
#
# Recommended template: Node.gitignore
.DS_Store
node_modules
/dist
# TODO: where does this rule come from?
docs/_book
# local env files
.env.local
.env.*.local
# TODO: where does this rule come from?
test/
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# ---> ThinkPHP
# gitignore template for ThinkPHP v3.2.3
# website: http://www.thinkphp.cn/
# Logs and Cache files
/Application/Runtime/
# Common configure file
/Application/Common/Conf/config.php
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

@ -0,0 +1,5 @@
{
"printWidth": 120,
"semi": false,
"singleQuote": true
}

@ -0,0 +1,7 @@
language: node_js
node_js:
- 10.15.0
cache: yarn
script:
- yarn
- yarn run lint --no-fix && yarn run build

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 Anan Yang
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -0,0 +1,46 @@
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const generate = require('@ant-design/colors/lib/generate').default
const getAntdSerials = (color) => {
// 淡化(即less的tint)
const lightens = new Array(9).fill().map((t, i) => {
return ThemeColorReplacer.varyColor.lighten(color, i / 10)
})
const colorPalettes = generate(color)
const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',')
return lightens.concat(colorPalettes).concat(rgb)
}
const themePluginOption = {
fileName: 'css/theme-colors-[contenthash:8].css',
matchColors: getAntdSerials('#1890ff'), // 主色系列
// 改变样式选择器,解决样式覆盖问题
changeSelector (selector) {
switch (selector) {
case '.ant-calendar-today .ant-calendar-date':
return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector
case '.ant-btn:focus,.ant-btn:hover':
return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)'
case '.ant-btn.active,.ant-btn:active':
return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)'
case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon':
case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon':
return ':not(.ant-steps-item-process)' + selector
case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover':
case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover':
return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover'
case '.ant-menu-horizontal > .ant-menu-item-selected > a':
case '.ant-menu-horizontal>.ant-menu-item-selected>a':
return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a'
case '.ant-menu-horizontal > .ant-menu-item > a:hover':
case '.ant-menu-horizontal>.ant-menu-item>a:hover':
return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover'
default :
return selector
}
}
}
const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption)
module.exports = createThemeColorReplacerPlugin

@ -0,0 +1,31 @@
为首屏增加 加载动画
====
## 需求
> 为了缓解用户第一次访问时,加载 JS 过大所导致用户等待白屏时间过长导致的用户体验不好,进行的一个优化动效。
## 实现方案
1. 将 动画加载 dom 元素放在 #app 内,Vue 生命周期开始时,会自动清掉 #app 下的所有元素。
2. 将 动画加载 dom 元素放在 body 下,Vue 生命周期开始时 App.vue (created, mounted) 调用 `@/utils/utll` 下的 removeLoadingAnimate(#id, timeout) 则会移除加载动画
最后一步:
将样式插入到 `public/index.html` 文件的 `<head></head>` 最好写成内联 `<style>动画样式</style>`
----
目前提供有两个样式,均在 `public/loading` 文件夹内。且 pro 已经默认使用了一套 loading 动画方案,可以直接参考 `public/index.html`
## 写在最后
目前 pro 有页面 overflow 显示出浏览器滚动条时,页面会抖动一下的问题。
欢迎各位提供能解决的方案和实现 demo。如果在条件允许的情况下,建议请直接使用 pro 进行改造,也欢迎直接 PR 到 pro 的仓库

@ -0,0 +1,95 @@
按需加载 减小打包
====
## 按需引入组件依赖
`Ant Design Pro Vue` 默认编码工作并不支持按需引入,不过可以通过以下操作结合 [Ant Design Of Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/) 官方文档来进行按需引入。
- 增加项目按需引入依赖
- 修改引入组件方式
1. 增加按需引入所需依赖 `babel-plugin-import`
并且修改文件 `babel.config.js`
```ecmascript 6
module.exports = {
presets: [
'@vue/app'
],
plugins: [
[ "import", {
"libraryName": "ant-design-vue",
"libraryDirectory": "es",
"style": "css"
} ]
]
}
```
2. 修改引入组件方式 (注意,这只是一个例子,请完整引入你所需要的组件)
文件 `@/core/lazy_lib/component_use.js`
```javascript
import Vue from 'vue'
import {
Input,
Button,
Select,
Card,
Form,
Row,
Col,
Modal,
Table,
notification
} from 'ant-design-vue'
Vue.use(Input)
Vue.use(Button)
Vue.use(Select)
Vue.use(Card)
Vue.use(Form)
Vue.use(Row)
Vue.use(Col)
Vue.use(Modal)
Vue.use(Table)
Vue.use(notification)
Vue.prototype.$notification = notification;
```
3. 最后在 `main.js` 中引入 `@/core/lazy_use.js` 文件即可,如下
```javascript
import Vue from 'vue'
import App from './App'
// 引入 按需组件的统一引入文件
import './core/lazy_use'
import './style/index.less'
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
```
## 其他 减少打包大小
1. Ant Design Vue 1.2.x 版本起,采用的 ant-design 官方方案 svg Icon 组件,整个项目打包会变大很多,图标进行按需加载可参考 https://github.com/HeskeyBaozi/reduce-antd-icons-bundle-demo
2. moment 按需加载 可参考 https://github.com/jmblog/how-to-optimize-momentjs-with-webpack

@ -0,0 +1,28 @@
多(页签)标签 模式
====
## 让框架支持打开的页面增加多标签,可随时切换
### 关于如何移除该功能 组件
1. 移除 `/src/layouts/BasicLayout.vue` L44, L69, L80
```vue
// L44
<multi-tab v-if="multiTab"></multi-tab>
// L69
import MultiTab from '@/components/MultiTab'
// L80
MultiTab,
```
2. 移除 `/src/config/defaultSettings.js` L25
3. 移除 `src/store/modules/app.js` L27, L76-L79, L118-L120
4. 移除 `src/utils/mixin.js` L21
5. 删除组件目录 `src/components/MultiTab`
> 以上 `L x` 均代表行N ,如 L3 = 行3

@ -0,0 +1,40 @@
先增加依赖
```bash
// npm
$ npm install --save-dev webpack-bundle-analyzer
// or yarn
$ yarn add webpack-bundle-analyzer -D
```
配置文件 `vue.config.js` 增加 `configureWebpack.plugins` 参数
```
const path = require('path')
const webpack = require('webpack')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
function resolve (dir) {
return path.join(__dirname, dir)
}
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
// Ignore all locale files of moment.js
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
// 依赖大小分析工具
new BundleAnalyzerPlugin(),
]
},
...
}
```
启动 `cli``build` 命令进行项目编译,编译完成时,会自动运行一个 http://localhost:8888 的地址,完整显示了支持库依赖

@ -0,0 +1,23 @@
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)'
],
testURL: 'http://localhost/'
}

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

@ -0,0 +1,195 @@
{
root: '/Users/wanghousheng/www/yanzong_vue_admin',
registry: 'https://registry.npm.taobao.org',
pkgs: [],
production: false,
cacheStrict: false,
cacheDir: '/Users/wanghousheng/.npminstall_tarball',
env: {
npm_config_registry: 'https://registry.npm.taobao.org',
npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=/Users/wanghousheng/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npm.taobao.org"],"original":["--fix-bug-versions","--china","--userconfig=/Users/wanghousheng/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npm.taobao.org"]}',
npm_config_user_agent: 'npminstall/7.12.0 npm/? node/v18.20.0 darwin arm64',
npm_config_cache: '/Users/wanghousheng/.npminstall_tarball',
NODE: '/Users/wanghousheng/.nvm/versions/node/v18.20.0/bin/node',
npm_node_execpath: '/Users/wanghousheng/.nvm/versions/node/v18.20.0/bin/node',
npm_execpath: '/opt/homebrew/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js',
npm_config_userconfig: '/Users/wanghousheng/.cnpmrc',
npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node',
npm_config_r: 'https://registry.npm.taobao.org',
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
RE2_DOWNLOAD_SKIP_PATH: 'true',
PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
npm_rootpath: '/Users/wanghousheng/www/yanzong_vue_admin',
INIT_CWD: '/Users/wanghousheng/www/yanzong_vue_admin'
},
binaryMirrors: {
ENVS: {
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
RE2_DOWNLOAD_SKIP_PATH: 'true',
PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs'
},
'@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
'@tensorflow/tfjs-node': {
replaceHostFiles: [Array],
replaceHostRegExpMap: [Object],
replaceHostMap: [Object]
},
cypress: {
host: 'https://cdn.npmmirror.com/binaries/cypress',
newPlatforms: [Object]
},
'utf-8-validate': {
host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}'
},
xprofiler: {
remote_path: './xprofiler/v{version}/',
host: 'https://cdn.npmmirror.com/binaries'
},
leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' },
couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' },
gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' },
sqlite3: {
host: 'https://cdn.npmmirror.com/binaries/sqlite3',
remote_path: 'v{version}'
},
'@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' },
grpc: {
host: 'https://cdn.npmmirror.com/binaries',
remote_path: '{name}/v{version}'
},
'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' },
wrtc: {
host: 'https://cdn.npmmirror.com/binaries',
remote_path: '{name}/v{version}'
},
fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' },
'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
'flow-bin': {
replaceHost: 'https://github.com/facebook/flow/releases/download/v',
host: 'https://cdn.npmmirror.com/binaries/flow/v'
},
'jpegtran-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin'
},
'cwebp-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/cwebp-bin'
},
'zopflipng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin'
},
'optipng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/optipng-bin'
},
mozjpeg: {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin'
},
gifsicle: {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin'
},
'pngquant-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngquant-bin',
replaceHostMap: [Object]
},
'pngcrush-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin'
},
'jpeg-recompress-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin'
},
'advpng-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/advpng-bin'
},
'pngout-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/pngout-bin'
},
'jpegoptim-bin': {
replaceHost: [Array],
host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin'
},
argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' },
'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' },
'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' },
'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' },
'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' }
},
forbiddenLicenses: null,
flatten: false,
proxy: undefined,
prune: false,
disableFallbackStore: false,
workspacesMap: Map(0) {},
enableWorkspace: false,
workspaceRoot: '/Users/wanghousheng/www/yanzong_vue_admin',
isWorkspaceRoot: true,
isWorkspacePackage: false,
offline: false,
strictSSL: true,
ignoreScripts: false,
foregroundScripts: false,
ignoreOptionalDependencies: false,
detail: false,
forceLinkLatest: false,
trace: false,
engineStrict: false,
registryOnly: false,
client: false,
autoFixVersion: [Function: autoFixVersion]
}

19892
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,63 @@
{
"name": "vue-antd-pro",
"version": "3.0.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"lint": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service lint",
"build:preview": "vue-cli-service build --mode preview",
"lint:nofix": "vue-cli-service lint --no-fix"
},
"dependencies": {
"@antv/data-set": "^0.10.2",
"ant-design-vue": "1.7.8",
"axios": "^0.19.0",
"core-js": "^3.1.2",
"element-ui": "^2.15.14",
"enquire.js": "^2.1.6",
"lodash.clonedeep": "^4.5.0",
"lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0",
"md5": "^2.2.1",
"nprogress": "^0.2.0",
"store": "^2.0.12",
"viser-vue": "^2.4.6",
"vue": "^2.6.10",
"vue-clipboard2": "^0.2.1",
"vue-ls": "^3.2.1",
"vue-router": "^3.1.2",
"vue-svg-component-runtime": "^1.0.1",
"vue-ueditor-wrap": "^2.5.6",
"vuedraggable": "^2.24.3",
"vuex": "^3.1.1"
},
"devDependencies": {
"@ant-design/colors": "^3.2.1",
"@vue/cli-plugin-babel": "^4.0.4",
"@vue/cli-plugin-eslint": "^4.0.4",
"@vue/cli-plugin-router": "^4.0.4",
"@vue/cli-plugin-unit-jest": "^4.0.4",
"@vue/cli-plugin-vuex": "^4.0.4",
"@vue/cli-service": "^4.0.4",
"@vue/eslint-config-standard": "^4.0.0",
"@vue/test-utils": "^1.0.0-beta.29",
"babel-eslint": "^10.0.1",
"babel-plugin-import": "^1.12.2",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-remove-console": "^6.9.4",
"eslint": "^5.16.0",
"eslint-plugin-html": "^5.0.0",
"eslint-plugin-vue": "^5.2.3",
"git-revision-webpack-plugin": "^3.0.6",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"node": "^10.24.1",
"opencollective": "^1.0.3",
"opencollective-postinstall": "^2.0.2",
"vue-svg-icon-loader": "^2.1.1",
"vue-template-compiler": "^2.6.10",
"webpack-theme-color-replacer": "^1.3.12"
}
}

@ -0,0 +1,5 @@
module.exports = {
plugins: {
autoprefixer: {}
}
}

@ -0,0 +1,18 @@
window.serverConfig = {
// 系统名称
APP_NAME: '萤火商城系统2.0',
// 必填: api地址, 换成自己的域名即可
// 例如: https://www.你的域名.com/index.php?s=/admin
// BASE_API: 'https://www.saas.njrenzhou.com/index.php?s=/admin',
BASE_API: 'https://wholesaler.royaum.com.cn/index.php?s=/admin',
// 必填: store模块的入口地址
// 例如: https://www.你的域名.com/store
// STORE_URL: 'https://www.saas.njrenzhou.com/store',
STORE_URL: 'https://wholesaler.royaum.com.cn/store',
// 图片文件上传大小 (单位mb)
uploadImageSize: 2,
// 视频文件上传大小 (单位mb)
uploadVideoSize: 20,
}

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>超级管理后台</title>
<style>#loading-mask{position:fixed;left:0;top:0;height:100%;width:100%;background:#fff;user-select:none;z-index:9999;overflow:hidden}.loading-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%)}.loading-dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:64px;width:64px;height:64px;box-sizing:border-box}.loading-dot i{width:22px;height:22px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.loading-dot i:nth-child(1){top:0;left:0}.loading-dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.loading-dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.loading-dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style>
<!-- require cdn assets css -->
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %>
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
<% } %>
</head>
<body>
<noscript>
<strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app">
<div id="loading-mask">
<div class="loading-wrapper">
<span class="loading-dot loading-dot-spin"><i></i><i></i><i></i><i></i></span>
</div>
</div>
</div>
<script type="text/javascript" src="config.js"></script>
<!-- require cdn assets js -->
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
<script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
<% } %>
<!-- built files will be auto injected -->
</body>
</html>

@ -0,0 +1 @@
#preloadingAnimation{position:fixed;left:0;top:0;height:100%;width:100%;background:#ffffff;user-select:none;z-index: 9999;overflow: hidden}.lds-roller{display:inline-block;position:relative;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;}.lds-roller div{animation:lds-roller 1.2s cubic-bezier(0.5,0,0.5,1) infinite;transform-origin:32px 32px;}.lds-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#13c2c2;margin:-3px 0 0 -3px;}.lds-roller div:nth-child(1){animation-delay:-0.036s;}.lds-roller div:nth-child(1):after{top:50px;left:50px;}.lds-roller div:nth-child(2){animation-delay:-0.072s;}.lds-roller div:nth-child(2):after{top:54px;left:45px;}.lds-roller div:nth-child(3){animation-delay:-0.108s;}.lds-roller div:nth-child(3):after{top:57px;left:39px;}.lds-roller div:nth-child(4){animation-delay:-0.144s;}.lds-roller div:nth-child(4):after{top:58px;left:32px;}.lds-roller div:nth-child(5){animation-delay:-0.18s;}.lds-roller div:nth-child(5):after{top:57px;left:25px;}.lds-roller div:nth-child(6){animation-delay:-0.216s;}.lds-roller div:nth-child(6):after{top:54px;left:19px;}.lds-roller div:nth-child(7){animation-delay:-0.252s;}.lds-roller div:nth-child(7):after{top:50px;left:14px;}.lds-roller div:nth-child(8){animation-delay:-0.288s;}.lds-roller div:nth-child(8):after{top:45px;left:10px;}#preloadingAnimation .load-tips{color: #13c2c2;font-size:2rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:80px;text-align:center;width:400px;height:64px;} @keyframes lds-roller{0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);}}

@ -0,0 +1 @@
<div id="preloadingAnimation"><div class=lds-roller><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div><div class=load-tips>Loading</div></div>

@ -0,0 +1,5 @@
<div class="preloading-animate">
<div class="preloading-wrapper">
<svg class="preloading-balls" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="67.802" cy="59.907" r="6" fill="#51CACC"><animate attributeName="cx" values="75;57.72542485937369" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="50;73.77641290737884" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#51CACC;#9DF871" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="46.079" cy="69.992" r="6" fill="#9DF871"><animate attributeName="cx" values="57.72542485937369;29.774575140626318" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="73.77641290737884;64.69463130731182" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#9DF871;#E0FF77" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="29.775" cy="52.449" r="6" fill="#E0FF77"><animate attributeName="cx" values="29.774575140626318;29.774575140626315" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="64.69463130731182;35.30536869268818" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#E0FF77;#DE9DD6" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="41.421" cy="31.521" r="6" fill="#DE9DD6"><animate attributeName="cx" values="29.774575140626315;57.72542485937368" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="35.30536869268818;26.22358709262116" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#DE9DD6;#FF708E" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="64.923" cy="36.13" r="6" fill="#FF708E"><animate attributeName="cx" values="57.72542485937368;75" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="26.22358709262116;49.99999999999999" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#FF708E;#51CACC" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle></svg>
</div>
</div>

@ -0,0 +1 @@
.preloading-animate{background:#ffffff;width:100%;height:100%;position:fixed;left:0;top:0;z-index:299;}.preloading-animate .preloading-wrapper{position:absolute;width:5rem;height:5rem;left:50%;top:50%;transform:translate(-50%,-50%);}.preloading-animate .preloading-wrapper .preloading-balls{font-size:5rem;}

@ -0,0 +1 @@
<svg class="preloading-balls" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="67.802" cy="59.907" r="6" fill="#51CACC"><animate attributeName="cx" values="75;57.72542485937369" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="50;73.77641290737884" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#51CACC;#9DF871" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="46.079" cy="69.992" r="6" fill="#9DF871"><animate attributeName="cx" values="57.72542485937369;29.774575140626318" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="73.77641290737884;64.69463130731182" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#9DF871;#E0FF77" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="29.775" cy="52.449" r="6" fill="#E0FF77"><animate attributeName="cx" values="29.774575140626318;29.774575140626315" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="64.69463130731182;35.30536869268818" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#E0FF77;#DE9DD6" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="41.421" cy="31.521" r="6" fill="#DE9DD6"><animate attributeName="cx" values="29.774575140626315;57.72542485937368" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="35.30536869268818;26.22358709262116" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#DE9DD6;#FF708E" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle><circle cx="64.923" cy="36.13" r="6" fill="#FF708E"><animate attributeName="cx" values="57.72542485937368;75" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="cy" values="26.22358709262116;49.99999999999999" keyTimes="0;1" dur="1s" repeatCount="indefinite"/><animate attributeName="fill" values="#FF708E;#51CACC" keyTimes="0;1" dur="1s" repeatCount="indefinite"/></circle></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,43 @@
<template>
<a-config-provider :locale="locale">
<div id="app">
<router-view />
</div>
</a-config-provider>
</template>
<script>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
import { AppDeviceEnquire } from '@/utils/mixin'
export default {
mixins: [AppDeviceEnquire],
data() {
return {
locale: zhCN,
}
},
mounted() {},
}
</script>
<style>
.ant-layout {
/* width: 100% !important; */
/* margin: 0 50px !important; */
}
.container {
max-width: 100% !important;
margin: 0 50px !important;
}
.ant-table-body {
overflow-x: scroll;
max-width: calc(100% - 50px);
}
.ant-layout-content{
width: calc(100% - 200px) !important;
}
.content{
width: 100% !important;
/* width: calc(100% - 230px) !important; */
}
</style>

@ -0,0 +1,27 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取超管用户信息
*/
export function info () {
return axios({
url: api.admin.user.detail,
method: 'get',
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
})
}
/**
* 更新当前管理员信息api
* @param {*} data
*/
export function renew (data = {}) {
return axios({
url: api.admin.user.renew,
method: 'post',
data: data
})
}

@ -0,0 +1,91 @@
export default {
// 用户认证
passport: {
login: '/passport/login'
// logout: '/passport/logout'
},
// 超管模块
admin: {
user: {
detail: '/admin.user/detail',
renew: 'admin.user/renew'
}
},
// 商家模块
store: {
list: 'store/index',
superLogin: 'store/superLogin',
recycle: 'store/recycle',
add: 'store/add',
recovery: 'store/recovery',
delete: 'store/delete',
move: 'store/move',
// 商家功能模块管理
module: {
default: 'store.module/default',
detail: 'store.module/detail',
edit: 'store.module/edit',
dataList:'store/platformList',
getStorePlatform:'store/getStorePlatform',
setStorePlatform:'store/auth',
getGoodsList:'/goods/index',
},
// 商家后台api权限
api: {
list: 'store.api/index',
add: 'store.api/add',
edit: 'store.api/edit',
delete: 'store.api/delete'
},
// 商家后台菜单
menu: {
list: 'store.menu/index',
info: 'store.menu/info',
add: 'store.menu/add',
edit: 'store.menu/edit',
delete: 'store.menu/delete',
setApis: 'store.menu/setApis',
// 商家后台菜单操作权限
action: {
list: 'store.menu.action/index',
add: 'store.menu.action/add',
edit: 'store.menu.action/edit',
delete: 'store.menu.action/delete'
}
},
},
// 系统管理
setting: {
cache: {
clear: 'setting.cache/clear'
},
science: 'setting.science/info',
queue: {
test: 'setting.queue/test'
},
timer: {
test: 'setting.timer/test'
}
},
// 云服务
cloud: {
authorize: {
info: 'cloud.authorize/info'
},
upgrade: {
info: 'cloud.upgrade/info',
update: 'cloud.upgrade/update',
download: 'cloud.upgrade/download'
},
},
}

@ -0,0 +1,71 @@
import { axios } from '@/utils/request'
const api = {
list: '/bargain.active/list',
detail: '/bargain.active/detail',
add: '/bargain.active/add',
edit: '/bargain.active/edit',
delete: '/bargain.active/delete'
}
/**
* 砍价活动列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 砍价活动详情
* @param {*} params
*/
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 新增砍价活动
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑砍价活动
* @param {*} activeId
* @param {*} data
*/
export function edit (activeId, data) {
return axios({
url: api.edit,
method: 'post',
data: { activeId, ...data }
})
}
/**
* 删除砍价活动
* @param {*} activeId
* @param {*} data
*/
export function deleted (activeId, data) {
return axios({
url: api.delete,
method: 'post',
data: { activeId, ...data }
})
}

@ -0,0 +1,28 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
detail: '/bargain.setting/detail',
update: '/bargain.setting/update'
}
// 获取设置
export function detail (key) {
return axios({
url: api.detail,
method: 'get',
params: { key }
})
}
/**
* 更新设置
* @param {*} data
*/
export function update (key, data) {
return axios({
url: api.update,
method: 'post',
data: { key, ...data }
})
}

@ -0,0 +1,45 @@
import { axios } from '@/utils/request'
const api = {
list: '/bargain.task/list',
help: '/bargain.task/help',
delete: '/bargain.task/delete'
}
/**
* 砍价任务列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 砍价榜
* @param {*} taskId
* @param {*} params
*/
export function help (taskId, params) {
return axios({
url: api.help,
method: 'get',
params: { taskId, ...params }
})
}
/**
* 删除砍价任务
* @param {*} taskId
* @param {*} data
*/
export function deleted (taskId, data) {
return axios({
url: api.delete,
method: 'post',
data: { taskId, ...data }
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/category/list',
add: '/category/add',
edit: '/category/edit',
delete: '/category/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,13 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取授权用户信息
* @param {*} data
*/
export function info () {
return axios({
url: api.cloud.authorize.info,
method: 'get'
})
}

@ -0,0 +1,37 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取在线更新信息
*/
export function info () {
return axios({
url: api.cloud.upgrade.info,
method: 'get'
})
}
/**
* 在线升级
* @param {Number} versionId
*/
export function update (versionId) {
return axios({
url: api.cloud.upgrade.update,
method: 'post',
params: { versionId }
})
}
/**
* 下载指定版本
* @param {Number} versionId
* @param {String} module
*/
export function download (versionId, module) {
return axios({
url: api.cloud.upgrade.download,
method: 'get',
params: { versionId, module }
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/files.group/list',
add: '/files.group/add',
edit: '/files.group/edit',
delete: '/files.group/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/files/list',
edit: '/files/edit',
delete: '/files/delete',
moveGroup: '/files/moveGroup'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}
/**
* 移动分组
* @param {*} data
*/
export function moveGroup (data) {
return axios({
url: api.moveGroup,
method: 'post',
data: data
})
}

@ -0,0 +1,41 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.collector/list',
batch: '/goods.collector/batch',
delete: '/goods.collector/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 执行商品采集
* @param {*} data
*/
export function batch (data) {
return axios({
url: api.batch,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,51 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.comment/list',
detail: '/goods.comment/detail',
edit: '/goods.comment/edit',
delete: '/goods.comment/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 详情信息
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,41 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.import/list',
batch: '/goods.import/batch',
delete: '/goods.import/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 执行批量导入
* @param {*} data
*/
export function batch (data) {
return axios({
url: api.batch,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,144 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods/list',
listByIds: '/goods/listByIds',
detail: '/goods/detail',
basic: '/goods/basic',
add: '/goods/add',
edit: '/goods/edit',
delete: '/goods/delete',
state: '/goods/state',
category: '/goods/category',
sale: '/goods/sale',
addPrice:'/goods/addPrice',
exportData:'/goods/import',
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 根据商品ID集获取列表记录
export function listByIds (goodsIds, params) {
return axios({
url: api.listByIds,
method: 'get',
params: { goodsIds, ...params }
})
}
// 商品详情(详细信息)
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
// 商品详情(基础信息)
export function basic (goodsId, params) {
return axios({
url: api.basic,
method: 'get',
params: { goodsId, ...params }
})
}
/**
* 更新状态
* @param {*} data
*/
export function state (data) {
return axios({
url: api.state,
method: 'post',
data
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}
/**
* 归类
* @param {*} data
*/
export function category (data) {
return axios({
url: api.category,
method: 'post',
data: data
})
}
/**
* 归类
* @param {*} data
*/
export function sale (data) {
return axios({
url: api.sale,
method: 'post',
data: data
})
}
/**
* 加价率
* @param {*} data
*/
export function addPrice (data) {
return axios({
url: api.addPrice,
method: 'post',
data: data
})
}/**
* 导出
* @param {*} data
*/
export function exportData (data) {
return axios({
url: api.exportData,
method: 'post',
data: data
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.service/list',
all: '/goods.service/all',
add: '/goods.service/add',
edit: '/goods.service/edit',
delete: '/goods.service/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.source/list',
all: '/goods.source/all',
add: '/goods.source/add',
edit: '/goods.source/edit',
delete: '/goods.source/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,15 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/goods.spec/list'
}
// 列表记录
export function list (goodsId, params) {
return axios({
url: api.list,
method: 'get',
params: { goodsId, params }
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/groupon.goods/list',
detail: '/groupon.goods/detail',
add: '/groupon.goods/add',
edit: '/groupon.goods/edit',
delete: '/groupon.goods/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 商品详情
export function detail (grouponGoodsId, params) {
return axios({
url: api.detail,
method: 'get',
params: { grouponGoodsId, ...params }
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (grouponGoodsId, data) {
return axios({
url: api.edit,
method: 'post',
data: { grouponGoodsId, ...data }
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/groupon.robot/list',
add: '/groupon.robot/add',
edit: '/groupon.robot/edit',
delete: '/groupon.robot/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,28 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
detail: '/groupon.setting/detail',
update: '/groupon.setting/update'
}
// 获取设置
export function detail (key) {
return axios({
url: api.detail,
method: 'get',
params: { key }
})
}
/**
* 更新设置
* @param {*} data
*/
export function update (key, data) {
return axios({
url: api.update,
method: 'post',
data: { key, ...data }
})
}

@ -0,0 +1,25 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/groupon.task/list',
users: '/groupon.task/users'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 拼单成员列表
export function users (taskId, params) {
return axios({
url: api.users,
method: 'get',
params: { taskId, ...params }
})
}

@ -0,0 +1,27 @@
import api from './api.config'
import { axios } from '@/utils/request'
/**
* 超管用户登录
* @param {*} parameter
*/
export function login (parameter) {
return axios({
url: api.passport.login,
method: 'post',
data: parameter
})
}
/**
* 超管用户退出登录
*/
// export function logout () {
// return axios({
// url: api.passport.logout,
// method: 'post',
// headers: {
// 'Content-Type': 'application/json; charset=utf-8'
// }
// })
// }

@ -0,0 +1,114 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/market.active/list',
detail: '/market.active/detail',
add: '/market.active/add',
edit: '/market.active/edit',
delete: '/market.active/delete',
colList: '/market.active/colList',
colAdd: '/market.active/colAdd',
colEdit: '/market.active/colEdit',
colDelete: '/market.active/colDelete',
goodsList: '/market.active/goodsList'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}
// 模块列表记录
export function colList (params) {
return axios({
url: api.colList,
method: 'get',
params
})
}
/**
* 新增模块记录
* @param {*} data
*/
export function colAdd (data) {
return axios({
url: api.colAdd,
method: 'post',
data
})
}
/**
* 编辑模块记录
* @param {*} data
*/
export function colEdit (data) {
return axios({
url: api.colEdit,
method: 'post',
data
})
}
/**
* 删除模块记录
* @param {*} data
*/
export function colDelete (data) {
return axios({
url: api.colDelete,
method: 'post',
data: data
})
}
// 商品列表记录
export function goodsList (params) {
return axios({
url: api.goodsList,
method: 'get',
params
})
}

@ -0,0 +1,87 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/market.coupon/list',
detail: '/market.coupon/detail',
receive: '/market.coupon/receive',
add: '/market.coupon/add',
edit: '/market.coupon/edit',
delete: '/market.coupon/delete',
give: '/market.coupon/give'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 详情记录
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
// 领取记录
export function receive (params) {
return axios({
url: api.receive,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}
/**
* 手动发放优惠券
* @param {*} data
*/
export function give (data) {
return axios({
url: api.give,
method: 'post',
data: data
})
}

@ -0,0 +1,15 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
log: '/market.points/log'
}
// 积分明细
export function log (params) {
return axios({
url: api.log,
method: 'get',
params
})
}

@ -0,0 +1,24 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/presale/list',
log: '/presale/log'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
export function log (params) {
return axios({
url: api.log,
method: 'get',
params
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/market.recharge.plan/list',
add: '/market.recharge.plan/add',
edit: '/market.recharge.plan/edit',
delete: '/market.recharge.plan/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,24 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/store/settleList',
detail: '/store/settleDetail'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}

@ -0,0 +1,24 @@
import { axios } from '@/utils/request'
const api = {
all: '/region/all',
tree: '/region/tree'
}
// 获取所有地区
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
// 获取所有地区(树状)
export function tree (params) {
return axios({
url: api.tree,
method: 'get',
params
})
}

@ -0,0 +1,193 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
categoryList: '/server/categoryList',
addCategory: '/server/addCategory',
editCategory: '/server/editCategory',
deleteCategory: '/server/deleteCategory',
serverList: '/server/serverList',
addServer: '/server/addServer',
editServer: '/server/editServer',
deleteServer: '/server/deleteServer',
serverStatus: '/server/serverStatus',
ServerDetail: '/server/ServerDetail',
orderList: '/server/orderList',
cancelOrder: '/server/cancelOrder',
getEngineer: '/dealer.user/getEngineer',
dispatchOrders: '/server/dispatchOrders',
OrderStatus: '/server/OrderStatus',
listByIds: '/server/listByIds',
}
/**
* 服务列表记录
* @param {*} data
*/
export function serverList(data) {
return axios({
url: api.serverList,
method: 'post',
data,
})
}
// 根据服务ID集获取列表记录
export function listByIds(serverIds, params) {
return axios({
url: api.listByIds,
method: 'post',
params: { serverIds, ...params },
})
}
/**
* 删除服务记录
* @param {*} data
*/
export function ServerDetail(data) {
return axios({
url: api.ServerDetail,
method: 'post',
data: data,
})
}
/**
* 新增服务
* @param {*} data
*/
export function addServer(data) {
return axios({
url: api.addServer,
method: 'post',
data,
})
}
/**
* 编辑服务
* @param {*} data
*/
export function editServer(data) {
return axios({
url: api.editServer,
method: 'post',
data,
})
}
/**
* 删除服务记录
* @param {*} data
*/
export function deleteServer(data) {
return axios({
url: api.deleteServer,
method: 'post',
data: data,
})
}
/**
* 服务状态设置
* @param {*} data
*/
export function serverStatus(data) {
return axios({
url: api.serverStatus,
method: 'post',
data: data,
})
}
// 分类列表
export function categoryList(params) {
return axios({
url: api.categoryList,
method: 'post',
params,
})
}
/**
* 新增分类
* @param {*} data
*/
export function addCategory(data) {
return axios({
url: api.addCategory,
method: 'post',
data,
})
}
/**
* 编辑分类
* @param {*} data
*/
export function editCategory(data) {
return axios({
url: api.editCategory,
method: 'post',
data,
})
}
/**
* 删除分类记录
* @param {*} data
*/
export function deleteCategory(data) {
return axios({
url: api.deleteCategory,
method: 'post',
data: data,
})
}
/**
* 服务订单
* @param {*} data
*/
export function orderList(data) {
return axios({
url: api.orderList,
method: 'post',
data,
})
}
/**
* 服务订单
* @param {*} data
*/
export function cancelOrder(data) {
return axios({
url: api.cancelOrder,
method: 'post',
data,
})
}
/**
* 服务订单
* @param {*} data
*/
export function getEngineer(data) {
return axios({
url: api.getEngineer,
method: 'post',
data,
})
}
/**
* 派单
* @param {*} data
*/
export function dispatchOrders(data) {
return axios({
url: api.dispatchOrders,
method: 'post',
data,
})
}
/**
* 派单
* @param {*} data
*/
export function orderStatusList(data) {
return axios({
url: api.OrderStatus,
method: 'post',
data,
})
}

@ -0,0 +1,159 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
categoryList: '/recovery/categoryList',
addCategory: '/recovery/addCategory',
editCategory: '/recovery/editCategory',
deleteCategory: '/recovery/deleteCategory',
recoveryList: '/recovery/recoveryList',
addRecovery: '/recovery/addRecovery',
editRecovery: '/recovery/editRecovery',
deleteRecovery: '/recovery/deleteRecovery',
recoveryStatus: '/recovery/recoveryStatus',
recoveryDetail: '/recovery/recoveryDetail',
orderList: '/recovery/orderList',
cancelOrder: '/recovery/cancelOrder',
orderStatus: '/recovery/orderStatus',
}
/**
* 回收列表记录
* @param {*} data
*/
export function recoveryList(data) {
return axios({
url: api.recoveryList,
method: 'post',
data,
})
}
/**
* 详情记录
* @param {*} data
*/
export function recoveryDetail(data) {
return axios({
url: api.recoveryDetail,
method: 'post',
data: data,
})
}
/**
* 新增回收
* @param {*} data
*/
export function addRecovery(data) {
return axios({
url: api.addRecovery,
method: 'post',
data,
})
}
/**
* 编辑回收
* @param {*} data
*/
export function editRecovery(data) {
return axios({
url: api.editRecovery,
method: 'post',
data,
})
}
/**
* 删除回收记录
* @param {*} data
*/
export function deleteRecovery(data) {
return axios({
url: api.deleteRecovery,
method: 'post',
data: data,
})
}
/**
* 回收状态设置
* @param {*} data
*/
export function recoveryStatus(data) {
return axios({
url: api.recoveryStatus,
method: 'post',
data: data,
})
}
// 分类列表
export function categoryList(params) {
return axios({
url: api.categoryList,
method: 'post',
params,
})
}
/**
* 新增分类
* @param {*} data
*/
export function addCategory(data) {
return axios({
url: api.addCategory,
method: 'post',
data,
})
}
/**
* 编辑分类
* @param {*} data
*/
export function editCategory(data) {
return axios({
url: api.editCategory,
method: 'post',
data,
})
}
/**
* 删除分类记录
* @param {*} data
*/
export function deleteCategory(data) {
return axios({
url: api.deleteCategory,
method: 'post',
data: data,
})
}
/**
* 回收订单
* @param {*} data
*/
export function orderList(data) {
return axios({
url: api.orderList,
method: 'post',
data,
})
}
/**
* 服务订单
* @param {*} data
*/
export function cancelOrder(data) {
return axios({
url: api.cancelOrder,
method: 'post',
data,
})
}
/**
* 订单状态
* @param {*} data
*/
export function orderStatusList(data) {
return axios({
url: api.orderStatus,
method: 'post',
data,
})
}

@ -0,0 +1,14 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 清理缓存api
* @param {*} data
*/
export function clear (data) {
return axios({
url: api.setting.cache.clear,
method: 'post',
data: data
})
}

@ -0,0 +1,74 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/setting.delivery/list',
all: '/setting.delivery/all',
detail: '/setting.delivery/detail',
add: '/setting.delivery/add',
edit: '/setting.delivery/edit',
delete: '/setting.delivery/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
// 详情记录
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,14 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 测试队列服务是否开启
* @param {*} data
*/
export function test (data) {
return axios({
url: api.setting.queue.test,
method: 'post',
data
})
}

@ -0,0 +1,13 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 清理缓存api
* @param {*} data
*/
export function info () {
return axios({
url: api.setting.science,
method: 'get'
})
}

@ -0,0 +1,14 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 测试定时任务是否开启
* @param {*} data
*/
export function test (data) {
return axios({
url: api.setting.timer.test,
method: 'post',
data
})
}

@ -0,0 +1,71 @@
import { axios } from '@/utils/request'
const api = {
list: '/sharp.active/list',
detail: '/sharp.active/detail',
state: '/sharp.active/state',
add: '/sharp.active/add',
delete: '/sharp.active/delete'
}
/**
* 秒杀活动会场列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 秒杀活动会场详情
* @param {*} params
*/
export function detail (activeId, params) {
return axios({
url: api.detail,
method: 'get',
params: { activeId, ...params }
})
}
/**
* 修改活动状态
* @param {*} data
* @param {int} state
*/
export function state (activeId, state) {
return axios({
url: api.state,
method: 'post',
data: { activeId, state }
})
}
/**
* 新增秒杀活动会场
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 删除秒杀活动会场
* @param {*} activeId
* @param {*} data
*/
export function deleted (activeId, data) {
return axios({
url: api.delete,
method: 'post',
data: { activeId, ...data }
})
}

@ -0,0 +1,102 @@
import { axios } from '@/utils/request'
const api = {
list: '/sharp.activeTime/list',
existTimes: '/sharp.activeTime/existTimes',
detail: '/sharp.activeTime/detail',
state: '/sharp.activeTime/state',
add: '/sharp.activeTime/add',
edit: '/sharp.activeTime/edit',
delete: '/sharp.activeTime/delete'
}
/**
* 活动会场场次列表
* @param {*} activeId
* @param {*} params
*/
export function list (activeId, params) {
return axios({
url: api.list,
method: 'get',
params: { activeId, ...params }
})
}
/**
* 获取已存在的活动场次
* @param {*} activeId
* @param {*} params
*/
export function existTimes (activeId, params) {
return axios({
url: api.existTimes,
method: 'get',
params: { activeId, ...params }
})
}
/**
* 获取活动场次详情
* @param {*} activeTimeId
* @param {*} params
*/
export function detail (activeTimeId, params) {
return axios({
url: api.detail,
method: 'get',
params: { activeTimeId, ...params }
})
}
/**
* 修改活动场次状态
* @param {*} data
* @param {int} state
*/
export function state (activeTimeId, state) {
return axios({
url: api.state,
method: 'post',
data: { activeTimeId, state }
})
}
/**
* 新增活动会场场次
* @param {*} activeId
* @param {*} data
*/
export function add (activeId, data) {
return axios({
url: api.add,
method: 'post',
data: { activeId, ...data }
})
}
/**
* 新增活动会场场次
* @param {*} activeTimeId
* @param {*} data
*/
export function edit (activeTimeId, data) {
return axios({
url: api.edit,
method: 'post',
data: { activeTimeId, ...data }
})
}
/**
* 删除秒杀活动会场
* @param {*} activeTimeId
* @param {*} data
*/
export function deleted (activeTimeId, data) {
return axios({
url: api.delete,
method: 'post',
data: { activeTimeId, ...data }
})
}

@ -0,0 +1,84 @@
import { axios } from '@/utils/request'
const api = {
list: '/sharp.goods/list',
existGoods: '/sharp.goods/existGoods',
detail: '/sharp.goods/detail',
add: '/sharp.goods/add',
edit: '/sharp.goods/edit',
delete: '/sharp.goods/delete'
}
/**
* 秒杀商品列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 秒杀商品详情
* @param {*} params
*/
export function existGoods (goodsId, params) {
return axios({
url: api.detail,
method: 'get',
params: { goodsId, ...params }
})
}
/**
* 秒杀商品详情
* @param {*} params
*/
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 新增秒杀商品
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑秒杀商品
* @param {*} sharpGoodsId
* @param {*} data
*/
export function edit (sharpGoodsId, data) {
return axios({
url: api.edit,
method: 'post',
data: { sharpGoodsId, ...data }
})
}
/**
* 删除秒杀商品
* @param {*} sharpGoodsId
* @param {*} data
*/
export function deleted (sharpGoodsId, data) {
return axios({
url: api.delete,
method: 'post',
data: { sharpGoodsId, ...data }
})
}

@ -0,0 +1,28 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
detail: '/sharp.setting/detail',
update: '/sharp.setting/update'
}
// 获取设置
export function detail (key) {
return axios({
url: api.detail,
method: 'get',
params: { key }
})
}
/**
* 更新设置
* @param {*} data
*/
export function update (key, data) {
return axios({
url: api.update,
method: 'post',
data: { key, ...data }
})
}

@ -0,0 +1,123 @@
import api from './api.config'
import { axios } from '@/utils/request'
/**
* 获取列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.store.list,
method: 'get',
params
})
}
/**
* 获取商城登录token
* @param {*} params
*/
export function superLogin ({ storeId }) {
return axios({
url: api.store.superLogin,
method: 'get',
params: { storeId }
})
}
/**
* 回收站列表
* @param {*} params
*/
export function recycle (params) {
return axios({
url: api.store.recycle,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.store.add,
method: 'post',
data: data
})
}
/**
* 移入回收站
* @param {*} data
*/
export function recovery (data) {
return axios({
url: api.store.recovery,
method: 'post',
data: data
})
}
/**
* 删除记录
* @param {*} data
*/
export function del (data) {
return axios({
url: api.store.delete,
method: 'post',
data: data
})
}
/**
* 移出回收站
* @param {*} data
*/
export function move (data) {
return axios({
url: api.store.move,
method: 'post',
data: data
})
}
/**
* 获取数据授权
* @param {*} data
*/
export function getDataList (data) {
return axios({
url: api.store.module.dataList,
method: 'post',
data: data
})
}
/**
* 获取数据授权平台列表
* @param {*} data
*/
export function getStorePlatform (params) {
return axios({
url: api.store.module.getStorePlatform,
method: 'get',
params
})
}
export function setStorePlatform (data) {
return axios({
url: api.store.module.setStorePlatform,
method: 'post',
data: data
})
}
export function getGoodsList (params) {
return axios({
url: api.store.module.getGoodsList,
method: 'get',
params
})
}

@ -0,0 +1,50 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.store.api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.store.api.add,
method: 'post',
data: data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.store.api.edit,
method: 'post',
data: data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.store.api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,74 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取列表
* @param {*} params
*/
export function list (params) {
return axios({
url: api.store.menu.list,
method: 'get',
params
})
}
/**
* 获取单条记录信息
* @param {*} params
*/
export function info (params) {
return axios({
url: api.store.menu.info,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.store.menu.add,
method: 'post',
data: data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.store.menu.edit,
method: 'post',
data: data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function setApis (data) {
return axios({
url: api.store.menu.setApis,
method: 'post',
data: data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.store.menu.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,38 @@
import api from '../api.config'
import { axios } from '@/utils/request'
/**
* 获取系统默认的功能模块
* @param {*} params
*/
export function getDefault (params) {
return axios({
url: api.store.module.default,
method: 'get',
params
})
}
/**
* 获取指定商家的功能模块
* @param {*} params
*/
export function detail (params) {
return axios({
url: api.store.module.detail,
method: 'get',
params
})
}
/**
* 设置指定商家的功能模块
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.store.module.edit,
method: 'post',
data: data
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/shop.clerk/list',
all: '/shop.clerk/all',
add: '/shop.clerk/add',
edit: '/shop.clerk/edit',
delete: '/shop.clerk/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,54 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/shop.comment/list',
add: '/shop.comment/add',
edit: '/shop.comment/edit',
delete: '/shop.comment/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,83 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/shop/list',
all: '/shop/all',
detail: '/shop/detail',
add: '/shop/add',
edit: '/shop/edit',
updateParking: '/shop/updateParking',
delete: '/shop/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
// 详情记录
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
export function updateParking (data) {
return axios({
url: api.updateParking,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,15 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/shop.order/list'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}

@ -0,0 +1,15 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
log: '/user.balance/log'
}
// 列表记录
export function log (params) {
return axios({
url: api.log,
method: 'get',
params
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/user.grade/list',
all: '/user.grade/all',
add: '/user.grade/add',
edit: '/user.grade/edit',
delete: '/user.grade/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 全部记录
export function all (params) {
return axios({
url: api.all,
method: 'get',
params
})
}
/**
* 新增记录
* @param {*} data
*/
export function add (data) {
return axios({
url: api.add,
method: 'post',
data
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit (data) {
return axios({
url: api.edit,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,65 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/user.identity/list',
add: '/user.identity/add',
edit: '/user.identity/edit',
delete: '/user.identity/delete',
typeList: '/user.identity/typeList',
}
/**
* 列表
* @param {*} data
*/
export function list(data) {
return axios({
url: api.list,
method: 'post',
data,
})
}
/**
* 新增记录
* @param {*} data
*/
export function add(data) {
return axios({
url: api.add,
method: 'post',
data,
})
}
/**
* 编辑记录
* @param {*} data
*/
export function edit(data) {
return axios({
url: api.edit,
method: 'post',
data,
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted(data) {
return axios({
url: api.delete,
method: 'post',
data: data,
})
}
// 列表记录
export function typeList(params) {
return axios({
url: api.typeList,
method: 'post',
params,
})
}

@ -0,0 +1,64 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
list: '/user/list',
detail: '/user/detail',
recharge: '/user/recharge',
grade: '/user/grade',
delete: '/user/delete'
}
// 列表记录
export function list (params) {
return axios({
url: api.list,
method: 'get',
params
})
}
// 详情记录
export function detail (params) {
return axios({
url: api.detail,
method: 'get',
params
})
}
/**
* 会员充值
* @param {*} data
*/
export function recharge (data) {
return axios({
url: api.recharge,
method: 'post',
data
})
}
/**
* 修改会员等级
* @param {*} data
*/
export function grade (data) {
return axios({
url: api.grade,
method: 'post',
data
})
}
/**
* 删除记录
* @param {*} data
*/
export function deleted (data) {
return axios({
url: api.delete,
method: 'post',
data: data
})
}

@ -0,0 +1,15 @@
import { axios } from '@/utils/request'
// api接口列表
const api = {
order: '/user.recharge/order'
}
// 列表记录
export function order (params) {
return axios({
url: api.order,
method: 'get',
params
})
}

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1361px" height="609px" viewBox="0 0 1361 609" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
<title>Group 21</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Ant-Design-Pro-3.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="账户密码登录-校验" transform="translate(-79.000000, -82.000000)">
<g id="Group-21" transform="translate(77.000000, 73.000000)">
<g id="Group-18" opacity="0.8" transform="translate(74.901416, 569.699158) rotate(-7.000000) translate(-74.901416, -569.699158) translate(4.901416, 525.199158)">
<ellipse id="Oval-11" fill="#CFDAE6" opacity="0.25" cx="63.5748792" cy="32.468367" rx="21.7830479" ry="21.766008"></ellipse>
<ellipse id="Oval-3" fill="#CFDAE6" opacity="0.599999964" cx="5.98746479" cy="13.8668601" rx="5.2173913" ry="5.21330997"></ellipse>
<path d="M38.1354514,88.3520215 C43.8984227,88.3520215 48.570234,83.6838647 48.570234,77.9254015 C48.570234,72.1669383 43.8984227,67.4987816 38.1354514,67.4987816 C32.3724801,67.4987816 27.7006688,72.1669383 27.7006688,77.9254015 C27.7006688,83.6838647 32.3724801,88.3520215 38.1354514,88.3520215 Z" id="Oval-3-Copy" fill="#CFDAE6" opacity="0.45"></path>
<path d="M64.2775582,33.1704963 L119.185836,16.5654915" id="Path-12" stroke="#CFDAE6" stroke-width="1.73913043" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M42.1431708,26.5002681 L7.71190162,14.5640702" id="Path-16" stroke="#E0B4B7" stroke-width="0.702678964" opacity="0.7" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<path d="M63.9262187,33.521561 L43.6721326,69.3250951" id="Path-15" stroke="#BACAD9" stroke-width="0.702678964" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<g id="Group-17" transform="translate(126.850922, 13.543654) rotate(30.000000) translate(-126.850922, -13.543654) translate(117.285705, 4.381889)" fill="#CFDAE6">
<ellipse id="Oval-4" opacity="0.45" cx="9.13482653" cy="9.12768076" rx="9.13482653" ry="9.12768076"></ellipse>
<path d="M18.2696531,18.2553615 C18.2696531,13.2142826 14.1798519,9.12768076 9.13482653,9.12768076 C4.08980114,9.12768076 0,13.2142826 0,18.2553615 L18.2696531,18.2553615 Z" id="Oval-4" transform="translate(9.134827, 13.691521) scale(-1, -1) translate(-9.134827, -13.691521) "></path>
</g>
</g>
<g id="Group-14" transform="translate(216.294700, 123.725600) rotate(-5.000000) translate(-216.294700, -123.725600) translate(106.294700, 35.225600)">
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.25" cx="29.1176471" cy="29.1402439" rx="29.1176471" ry="29.1402439"></ellipse>
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.3" cx="29.1176471" cy="29.1402439" rx="21.5686275" ry="21.5853659"></ellipse>
<ellipse id="Oval-2-Copy" stroke="#CFDAE6" opacity="0.4" cx="179.019608" cy="138.146341" rx="23.7254902" ry="23.7439024"></ellipse>
<ellipse id="Oval-2" fill="#BACAD9" opacity="0.5" cx="29.1176471" cy="29.1402439" rx="10.7843137" ry="10.7926829"></ellipse>
<path d="M29.1176471,39.9329268 L29.1176471,18.347561 C23.1616351,18.347561 18.3333333,23.1796097 18.3333333,29.1402439 C18.3333333,35.1008781 23.1616351,39.9329268 29.1176471,39.9329268 Z" id="Oval-2" fill="#BACAD9"></path>
<g id="Group-9" opacity="0.45" transform="translate(172.000000, 131.000000)" fill="#E6A1A6">
<ellipse id="Oval-2-Copy-2" cx="7.01960784" cy="7.14634146" rx="6.47058824" ry="6.47560976"></ellipse>
<path d="M0.549019608,13.6219512 C4.12262681,13.6219512 7.01960784,10.722722 7.01960784,7.14634146 C7.01960784,3.56996095 4.12262681,0.670731707 0.549019608,0.670731707 L0.549019608,13.6219512 Z" id="Oval-2-Copy-2" transform="translate(3.784314, 7.146341) scale(-1, 1) translate(-3.784314, -7.146341) "></path>
</g>
<ellipse id="Oval-10" fill="#CFDAE6" cx="218.382353" cy="138.685976" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy-2" fill="#E0B4B7" opacity="0.35" cx="179.558824" cy="175.381098" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy" fill="#E0B4B7" opacity="0.35" cx="180.098039" cy="102.530488" rx="2.15686275" ry="2.15853659"></ellipse>
<path d="M28.9985381,29.9671598 L171.151018,132.876024" id="Path-11" stroke="#CFDAE6" opacity="0.8"></path>
</g>
<g id="Group-10" opacity="0.799999952" transform="translate(1054.100635, 36.659317) rotate(-11.000000) translate(-1054.100635, -36.659317) translate(1026.600635, 4.659317)">
<ellipse id="Oval-7" stroke="#CFDAE6" stroke-width="0.941176471" cx="43.8135593" cy="32" rx="11.1864407" ry="11.2941176"></ellipse>
<g id="Group-12" transform="translate(34.596774, 23.111111)" fill="#BACAD9">
<ellipse id="Oval-7" opacity="0.45" cx="9.18534718" cy="8.88888889" rx="8.47457627" ry="8.55614973"></ellipse>
<path d="M9.18534718,17.4450386 C13.8657264,17.4450386 17.6599235,13.6143199 17.6599235,8.88888889 C17.6599235,4.16345787 13.8657264,0.332739156 9.18534718,0.332739156 L9.18534718,17.4450386 Z" id="Oval-7"></path>
</g>
<path d="M34.6597385,24.809694 L5.71666084,4.76878945" id="Path-2" stroke="#CFDAE6" stroke-width="0.941176471"></path>
<ellipse id="Oval" stroke="#CFDAE6" stroke-width="0.941176471" cx="3.26271186" cy="3.29411765" rx="3.26271186" ry="3.29411765"></ellipse>
<ellipse id="Oval-Copy" fill="#F7E1AD" cx="2.79661017" cy="61.1764706" rx="2.79661017" ry="2.82352941"></ellipse>
<path d="M34.6312443,39.2922712 L5.06366663,59.785082" id="Path-10" stroke="#CFDAE6" stroke-width="0.941176471"></path>
</g>
<g id="Group-19" opacity="0.33" transform="translate(1282.537219, 446.502867) rotate(-10.000000) translate(-1282.537219, -446.502867) translate(1142.537219, 327.502867)">
<g id="Group-17" transform="translate(141.333539, 104.502742) rotate(275.000000) translate(-141.333539, -104.502742) translate(129.333539, 92.502742)" fill="#BACAD9">
<circle id="Oval-4" opacity="0.45" cx="11.6666667" cy="11.6666667" r="11.6666667"></circle>
<path d="M23.3333333,23.3333333 C23.3333333,16.8900113 18.1099887,11.6666667 11.6666667,11.6666667 C5.22334459,11.6666667 0,16.8900113 0,23.3333333 L23.3333333,23.3333333 Z" id="Oval-4" transform="translate(11.666667, 17.500000) scale(-1, -1) translate(-11.666667, -17.500000) "></path>
</g>
<circle id="Oval-5-Copy-6" fill="#CFDAE6" cx="201.833333" cy="87.5" r="5.83333333"></circle>
<path d="M143.5,88.8126685 L155.070501,17.6038544" id="Path-17" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M17.5,37.3333333 L127.466252,97.6449735" id="Path-18" stroke="#BACAD9" stroke-width="1.16666667"></path>
<polyline id="Path-19" stroke="#CFDAE6" stroke-width="1.16666667" points="143.902597 120.302281 174.935455 231.571342 38.5 147.510847 126.366941 110.833333"></polyline>
<path d="M159.833333,99.7453842 L195.416667,89.25" id="Path-20" stroke="#E0B4B7" stroke-width="1.16666667" opacity="0.6"></path>
<path d="M205.333333,82.1372105 L238.719406,36.1666667" id="Path-24" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M266.723424,132.231988 L207.083333,90.4166667" id="Path-25" stroke="#CFDAE6" stroke-width="1.16666667"></path>
<circle id="Oval-5" fill="#C1D1E0" cx="156.916667" cy="8.75" r="8.75"></circle>
<circle id="Oval-5-Copy-3" fill="#C1D1E0" cx="39.0833333" cy="148.75" r="5.25"></circle>
<circle id="Oval-5-Copy-2" fill-opacity="0.6" fill="#D1DEED" cx="8.75" cy="33.25" r="8.75"></circle>
<circle id="Oval-5-Copy-4" fill-opacity="0.6" fill="#D1DEED" cx="243.833333" cy="30.3333333" r="5.83333333"></circle>
<circle id="Oval-5-Copy-5" fill="#E0B4B7" cx="175.583333" cy="232.75" r="5.25"></circle>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

@ -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="1593669819500" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3532" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"><defs><style type="text/css"></style></defs><path d="M947.432727 127.627636a32.116364 32.116364 0 0 0-24.669091-8.005818c-2.327273 0.279273-248.133818 23.877818-388.794181-110.778182a31.930182 31.930182 0 0 0-44.264728 0.139637C351.278545 143.453091 103.517091 119.808 101.050182 119.621818a31.837091 31.837091 0 0 0-35.095273 31.604364v238.964363c0 516.933818 434.176 627.293091 438.597818 628.270546a30.813091 30.813091 0 0 0 14.848 0.093091c4.421818-1.024 438.597818-111.429818 438.597818-628.317091V151.272727a31.744 31.744 0 0 0-10.565818-23.645091zM862.952727 400.430545c0 399.592727-299.938909 503.342545-350.952727 518.097455-51.153455-14.801455-351.045818-118.644364-351.045818-518.097455V212.014545c69.259636 2.001455 234.170182-4.887273 351.092363-101.515636 117.992727 96.488727 282.018909 103.377455 350.859637 101.515636v188.416z" p-id="3533"></path><path d="M502.737455 572.695273c-90.018909 0-163.188364-73.216-163.188364-163.141818s73.216-163.141818 163.188364-163.141819c89.972364 0 163.141818 73.216 163.141818 163.141819s-73.216 163.141818-163.141818 163.141818z m0-239.569455c-42.170182 0-76.474182 34.257455-76.474182 76.381091s34.257455 76.381091 76.474182 76.381091c42.077091 0 76.334545-34.257455 76.334545-76.381091a76.520727 76.520727 0 0 0-76.334545-76.381091z" p-id="3534"></path><path d="M557.568 745.704727a41.053091 41.053091 0 0 1-40.96 41.006546 41.053091 41.053091 0 0 1-40.96-41.006546v-197.12a40.96 40.96 0 1 1 81.92 0v197.12z" p-id="3535"></path><path d="M664.296727 647.168a38.493091 38.493091 0 0 1-38.586182 38.446545h-75.170909a38.539636 38.539636 0 0 1 0-76.986181h75.170909c21.271273 0 38.586182 17.221818 38.586182 38.539636z" p-id="3536"></path></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -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="1551058675966" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7872" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M85.333333 512h85.333334a340.736 340.736 0 0 1 99.712-241.621333 337.493333 337.493333 0 0 1 108.458666-72.96 346.453333 346.453333 0 0 1 261.546667-1.749334A106.154667 106.154667 0 0 0 746.666667 298.666667C805.802667 298.666667 853.333333 251.136 853.333333 192S805.802667 85.333333 746.666667 85.333333c-29.397333 0-55.978667 11.776-75.221334 30.933334-103.722667-41.514667-222.848-40.874667-325.76 2.517333a423.594667 423.594667 0 0 0-135.68 91.264 423.253333 423.253333 0 0 0-91.306666 135.637333A426.88 426.88 0 0 0 85.333333 512z m741.248 133.205333c-17.109333 40.618667-41.685333 77.141333-72.96 108.416s-67.797333 55.850667-108.458666 72.96a346.453333 346.453333 0 0 1-261.546667 1.749334A106.154667 106.154667 0 0 0 277.333333 725.333333C218.197333 725.333333 170.666667 772.864 170.666667 832S218.197333 938.666667 277.333333 938.666667c29.397333 0 55.978667-11.776 75.221334-30.933334A425.173333 425.173333 0 0 0 512 938.666667a425.941333 425.941333 0 0 0 393.258667-260.352A426.325333 426.325333 0 0 0 938.666667 512h-85.333334a341.034667 341.034667 0 0 1-26.752 133.205333z" p-id="7873"></path><path d="M512 318.378667c-106.752 0-193.621333 86.869333-193.621333 193.621333S405.248 705.621333 512 705.621333s193.621333-86.869333 193.621333-193.621333S618.752 318.378667 512 318.378667z m0 301.909333c-59.690667 0-108.288-48.597333-108.288-108.288S452.309333 403.712 512 403.712s108.288 48.597333 108.288 108.288-48.597333 108.288-108.288 108.288z" p-id="7874"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -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="1593669930802" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5011" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"><defs><style type="text/css"></style></defs><path d="M380.744 480.94H100.196A100.196 100.196 0 0 1 0 380.743V100.196A100.196 100.196 0 0 1 100.196 0h280.548a100.196 100.196 0 0 1 100.195 100.196v280.548a100.196 100.196 0 0 1-100.195 100.195zM100.196 80.156a20.04 20.04 0 0 0-20.04 20.039v280.548a20.04 20.04 0 0 0 20.04 20.039h280.548a20.04 20.04 0 0 0 20.039-20.04V100.197a20.04 20.04 0 0 0-20.04-20.04z m823.608 400.782H643.256a100.196 100.196 0 0 1-100.195-100.195V100.196A100.196 100.196 0 0 1 643.256 0h280.548A100.196 100.196 0 0 1 1024 100.196v280.548a100.196 100.196 0 0 1-100.196 100.195zM643.256 80.157a20.04 20.04 0 0 0-20.039 20.039v280.548a20.04 20.04 0 0 0 20.04 20.039h280.547a20.04 20.04 0 0 0 20.04-20.04V100.197a20.04 20.04 0 0 0-20.04-20.04zM380.744 1024H100.196A100.196 100.196 0 0 1 0 923.804V643.256a100.196 100.196 0 0 1 100.196-100.195h280.548a100.196 100.196 0 0 1 100.195 100.195v280.548A100.196 100.196 0 0 1 380.744 1024zM100.196 623.217a20.04 20.04 0 0 0-20.04 20.04v280.547a20.04 20.04 0 0 0 20.04 20.04h280.548a20.04 20.04 0 0 0 20.039-20.04V643.256a20.04 20.04 0 0 0-20.04-20.039zM827.616 1024h-184.36a100.196 100.196 0 0 1-100.195-100.196V643.256a100.196 100.196 0 0 1 100.195-100.195h280.548A100.196 100.196 0 0 1 1024 643.256V818.6a40.078 40.078 0 0 1-80.157 0V643.256a20.04 20.04 0 0 0-20.039-20.039H643.256a20.04 20.04 0 0 0-20.039 20.04v280.547a20.04 20.04 0 0 0 20.04 20.04h184.36a40.078 40.078 0 0 1 0 80.156z" p-id="5012"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -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="1589945310459" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6402" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"><defs><style type="text/css"></style></defs><path d="M911.183259 547.501843c1.109326-11.690589 1.877321-23.551843 1.877321-35.49843 0-11.946587-0.767995-23.807841-1.877321-35.49843l93.268711-71.252858a49.919667 49.919667 0 0 0 12.458584-65.108899l-99.498003-168.105546a53.588976 53.588976 0 0 0-65.194232-22.015853l-109.311272 42.837047a395.43203 395.43203 0 0 0-62.719582-35.49843L663.632909 43.270538A52.564983 52.564983 0 0 0 611.49459 0.006827H412.413251a52.138319 52.138319 0 0 0-52.138319 43.690375l-16.554557 113.663242c-21.674522 9.813268-42.666382 21.674522-62.719582 35.49843L171.518857 149.851161a54.783635 54.783635 0 0 0-64.852901 22.186519L7.082619 340.228558a50.005 50.005 0 0 0 12.799915 65.450231l92.927381 70.826194A354.813635 354.813635 0 0 0 110.847261 512.003413c0 11.946587 0.767995 23.893174 1.962654 35.49843l-93.439377 71.252859a50.005 50.005 0 0 0-12.287919 65.023566L106.665956 851.969147a53.759642 53.759642 0 0 0 65.108899 22.015853l109.311271-42.92238c20.138532 13.909241 41.130392 25.855828 62.719582 35.49843l16.554556 114.260571a52.052986 52.052986 0 0 0 52.052987 43.178379h198.996006a52.906314 52.906314 0 0 0 52.308985-43.690375l16.469223-113.663243c21.674522-9.813268 42.666382-21.674522 62.719582-35.583762l109.56727 43.093046a53.930307 53.930307 0 0 0 64.938234-22.186519l99.327337-168.020213a50.175665 50.175665 0 0 0-12.799914-65.706229l-92.756715-70.740862z m-62.378251 253.438311l-115.540563-45.0557a26.623823 26.623823 0 0 0-25.770495 3.413311c-22.869181 16.895887-47.189019 30.634462-72.53285 40.703728-8.533276 3.413311-14.50657 10.922594-15.786561 19.626536l-17.066553 116.479224-180.137466 2.559983-17.407884-119.039207a25.258498 25.258498 0 0 0-15.786561-19.626536 322.301851 322.301851 0 0 1-72.53285-40.789061 27.050486 27.050486 0 0 0-25.599829-3.327978l-111.529923 46.079693L85.332764 649.55983l97.962014-74.154173a24.575836 24.575836 0 0 0 9.727935-22.783848A292.691382 292.691382 0 0 1 189.950734 512.003413c0-13.823908 1.194659-27.306485 2.986646-40.618396a24.319838 24.319838 0 0 0-9.642602-22.783848L86.186092 377.604309l88.746075-154.537636 115.45523 44.970367c8.533276 3.413311 18.431877 2.133319 25.770495-3.413311 22.869181-16.895887 47.359684-30.719795 72.618183-40.789061 8.533276-3.413311 14.50657-10.837261 15.786561-19.626536l14.50657-116.308558L601.766655 85.339591l17.407884 119.039206c1.279991 8.703942 7.253285 16.127892 15.786561 19.541204 25.173166 10.069266 49.578336 23.807841 72.53285 40.789061a27.050486 27.050486 0 0 0 25.770495 3.413311l111.44459-46.079693L938.660409 374.446997l-98.047346 74.239505a24.490503 24.490503 0 0 0-9.727936 22.783848c1.706655 13.311911 3.07198 26.879821 3.07198 40.618396 0 13.823908-1.279991 27.306485-3.07198 40.703729a24.490503 24.490503 0 0 0 9.727936 22.698515l96.93802 70.911527-88.746075 154.622969z" p-id="6403"></path><path d="M511.996587 341.337884c-94.122039 0-170.665529 76.54349-170.665529 170.665529 0 94.036706 76.54349 170.665529 170.665529 170.665529s170.665529-76.54349 170.665529-170.665529-76.54349-170.665529-170.665529-170.665529z m0 255.998294a85.418097 85.418097 0 0 1 0-170.665529 85.418097 85.418097 0 0 1 0 170.665529z" p-id="6404"></path></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

@ -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="1589945277187" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5986" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"><defs><style type="text/css"></style></defs><path d="M1010.67776 346.82368a10.86976 10.86976 0 0 0-0.29696-1.49504 32.33792 32.33792 0 0 0-1.86368-6.12352l-85.8112-212.736c-14.85824-44.11904-57.53856-71.168-107.4688-71.27552H212.93056c-50.59072 0-89.9072 26.79808-104.14592 69.16096L16.53248 341.43232a44.96384 44.96384 0 0 0-1.31584 5.10464 201.17504 201.17504 0 0 0-10.06592 62.63296c0.0768 74.23488 40.96 142.00832 106.68032 176.90624 0 0 0 0.03584 0.03584 0.03584s0.03584 0 0.03584 0.04096c0 0 0.03584 0 0.03584 0.0512 27.05408 14.3616 58.86464 21.65248 94.70464 21.65248 60.07808-0.1792 115.72224-26.47552 153.64096-71.45984 37.74464 44.6208 92.9536 70.72256 152.9088 71.0912 59.48928-0.48128 114.56-26.68032 152.10496-71.2704 37.91872 44.98944 93.63968 71.15776 153.99936 71.15776 36.5312-0.1792 68.97152-7.83872 96.28672-22.73792 64.72704-35.23072 104.87296-102.73792 104.84736-176.21504a195.31264 195.31264 0 0 0-9.7536-61.59872z m-144.07168 148.20352c-12.27264 6.69184-28.27264 10.14272-47.55456 10.2656-33.75616 0-64.78848-17.03424-83.1488-45.65504-2.28864-4.82304-6.50752-12.93824-13.9008-21.0176-13.87008-15.50848-34.05824-24.18688-56.59648-24.18688-22.75328 0-44.16 9.42592-57.38496 25.23648-6.73792 7.6544-10.66496 15.14496-12.96896 19.85024-18.23232 28.50304-48.80896 45.62944-82.11968 45.88032-33.34656-0.19968-64.2304-17.39776-82.5088-46.07488-2.28864-4.608-6.07744-11.79648-12.15488-18.66752-13.65504-16-34.93376-25.17504-58.46528-25.17504-22.53312 0-43.45344 8.75008-56.12544 23.43424-6.9632 7.68512-11.1616 15.31392-14.05952 21.46816-18.42176 28.34944-49.36192 45.29152-83.10272 45.40928-18.78528-0.00512-34.42688-3.25632-46.4896-9.67168l-2.5088-1.33632c-30.91968-17.49504-50.0224-50.02752-50.04288-85.57568 0-10.82368 1.83296-21.69856 5.45792-32.29184 0.36352-1.09056 0.70656-2.19648 1.00864-3.32288l90.3936-212.8384s0.6656-1.95584 0.80384-2.29376c0.71168-0.32256 2.94912-1.11104 7.71584-1.11104h601.5744c10.97728 0.73728 11.58144 2.51392 12.032 3.82464l0.26112 0.74752 84.55168 209.67936c0.32768 1.34656 0.70144 2.60608 1.02912 3.72736l0.34304 1.08032c3.6352 10.59328 5.48352 21.38624 5.48352 32.09216 0.05632 36.03968-19.6864 69.1712-51.52256 86.52288zM162.11968 988.72832c-63.7696 0-115.65056-51.61984-115.65056-115.09248l-0.25088-195.33824c-0.06144-32.14848 26.12224-58.36288 58.34752-58.42944 32.29696 0 58.52672 26.12224 58.58304 58.20928l0.25088 194.01728 686.19776-0.43008-0.0768-197.5808c0-32.17408 26.22976-58.33728 58.46016-58.33728 32.24576 0 58.48576 26.14784 58.48576 58.32704l0.07168 198.87104c0 63.46752-51.80416 115.22048-115.49184 115.3536l-688.92672 0.43008z" p-id="5987"></path></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
<title>Vue</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="69.644116%" y1="0%" x2="69.644116%" y2="100%" id="linearGradient-1">
<stop stop-color="#29CDFF" offset="0%"></stop>
<stop stop-color="#148EFF" offset="37.8600687%"></stop>
<stop stop-color="#0A60FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="-19.8191553%" y1="-36.7931464%" x2="138.57919%" y2="157.637507%" id="linearGradient-2">
<stop stop-color="#29CDFF" offset="0%"></stop>
<stop stop-color="#0F78FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="68.1279872%" y1="-35.6905737%" x2="30.4400914%" y2="114.942679%" id="linearGradient-3">
<stop stop-color="#FA8E7D" offset="0%"></stop>
<stop stop-color="#F74A5C" offset="51.2635191%"></stop>
<stop stop-color="#F51D2C" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Vue" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group" transform="translate(19.000000, 9.000000)">
<path d="M89.96,90.48 C78.58,93.48 68.33,83.36 67.62,82.48 L46.6604487,62.2292258 C45.5023849,61.1103236 44.8426845,59.5728835 44.8296987,57.9626396 L44.5035564,17.5209948 C44.4948861,16.4458744 44.0537714,15.4195095 43.2796864,14.6733517 L29.6459999,1.53153737 C28.055475,-0.00160504005 25.5232423,0.0449126588 23.9900999,1.63543756 C23.2715121,2.38092066 22.87,3.37600834 22.87,4.41143746 L22.87,64.3864751 C22.87,67.0807891 23.9572233,69.6611067 25.885409,71.5429748 L63.6004615,108.352061 C65.9466323,110.641873 69.6963584,110.624605 72.0213403,108.313281" id="Path-Copy" fill="url(#linearGradient-1)" fill-rule="nonzero" transform="translate(56.415000, 54.831157) scale(-1, 1) translate(-56.415000, -54.831157) "></path>
<path d="M68,90.1163122 C56.62,93.1163122 45.46,83.36 44.75,82.48 L23.7904487,62.2292258 C22.6323849,61.1103236 21.9726845,59.5728835 21.9596987,57.9626396 L21.6335564,17.5209948 C21.6248861,16.4458744 21.1837714,15.4195095 20.4096864,14.6733517 L6.7759999,1.53153737 C5.185475,-0.00160504005 2.65324232,0.0449126588 1.12009991,1.63543756 C0.401512125,2.38092066 3.90211878e-13,3.37600834 3.90798505e-13,4.41143746 L3.94351218e-13,64.3864751 C3.94681177e-13,67.0807891 1.08722326,69.6611067 3.01540903,71.5429748 L40.7807092,108.401101 C43.1069304,110.671444 46.8180151,110.676525 49.1504445,108.412561" id="Path" fill="url(#linearGradient-2)" fill-rule="nonzero"></path>
<path d="M43.2983488,19.0991931 L27.5566079,3.88246244 C26.7624281,3.11476967 26.7409561,1.84862177 27.5086488,1.05444194 C27.8854826,0.664606611 28.4044438,0.444472651 28.9466386,0.444472651 L60.3925021,0.444472651 C61.4970716,0.444472651 62.3925021,1.33990315 62.3925021,2.44447265 C62.3925021,2.9858375 62.1730396,3.50407742 61.7842512,3.88079942 L46.0801285,19.0975301 C45.3051579,19.8484488 44.0742167,19.8491847 43.2983488,19.0991931 Z" id="Path" fill="url(#linearGradient-3)"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -0,0 +1,13 @@
import Enum from './enum'
/**
* 枚举类客户端类型
* ClientEnum
*/
export default new Enum([
{ key: 'APP', name: 'APP端', value: 'APP' },
{ key: 'H5', name: 'H5端', value: 'H5' },
{ key: 'WXOFFICIAL', name: '微信公众号端', value: 'WXOFFICIAL' },
{ key: 'MP_WEIXIN', name: '微信小程序端', value: 'MP-WEIXIN' },
{ key: 'MP_ALIPAY', name: '支付宝小程序端', value: 'MP-ALIPAY' },
])

@ -0,0 +1,10 @@
import Enum from '../enum'
/**
* 枚举类优惠券适用范围
* ApplyRangeEnum
*/
export default new Enum([
{ key: 'ALL', name: '全部商品', value: 10 },
{ key: 'SOME_GOODS', name: '指定商品', value: 20 }
])

@ -0,0 +1,10 @@
import Enum from '../enum'
/**
* 枚举类优惠券类型
* CouponTypeEnum
*/
export default new Enum([
{ key: 'FULL_DISCOUNT', name: '满减券', value: 10 },
{ key: 'DISCOUNT', name: '折扣券', value: 20 }
])

@ -0,0 +1,10 @@
import Enum from '../enum'
/**
* 枚举类优惠券到期类型
* ExpireTypeEnum
*/
export default new Enum([
{ key: 'RECEIVE', name: '领取后', value: 10 },
{ key: 'FIXED_TIME', name: '固定时间', value: 20 }
])

@ -0,0 +1,5 @@
import ApplyRangeEnum from './ApplyRange'
import ExpireTypeEnum from './ExpireType'
import CouponTypeEnum from './CouponType'
export { ApplyRangeEnum, CouponTypeEnum, ExpireTypeEnum }

@ -0,0 +1,11 @@
import Enum from '../../enum'
/**
* 枚举类分销商审核状态
* ApplyStatusEnum
*/
export default new Enum([
{ key: 'WAIT', name: '待审核', value: 10 },
{ key: 'PASSED', name: '审核通过', value: 20 },
{ key: 'REJECT', name: '驳回', value: 30 }
])

@ -0,0 +1,10 @@
import Enum from '../../enum'
/**
* 枚举类分销商申请方式
* ApplyTypeEnum
*/
export default new Enum([
{ key: 'AUDIT', name: '需后台审核', value: 10 },
{ key: 'PASS', name: '无需审核', value: 20 }
])

@ -0,0 +1,4 @@
import ApplyStatusEnum from './ApplyStatus'
import ApplyTypeEnum from './ApplyType'
export { ApplyStatusEnum, ApplyTypeEnum }

@ -0,0 +1,12 @@
import Enum from '../../enum'
/**
* 枚举类分销商提现申请状态
* ApplyStatusEnum
*/
export default new Enum([
{ key: 'WAIT', name: '待审核', value: 10 },
{ key: 'PASSED', name: '审核通过', value: 20 },
{ key: 'REJECT', name: '驳回', value: 30 },
{ key: 'PAYMENT', name: '已打款', value: 40 }
])

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

Loading…
Cancel
Save