commit 3ea71d330ca4b51162e4a393a12769376f6dee6d Author: leonZ Date: Sat Aug 3 19:40:14 2024 +0800 init diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..7034f9b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +# 告诉EditorConfig插件,这是根文件,不用继续往上查找 +root = true + +# 匹配全部文件 +[*] +# 设置字符集 +charset = utf-8 +# 缩进风格,可选space、tab +indent_style = space +# 缩进的空格数 +indent_size = 2 +# 结尾换行符,可选lf、cr、crlf +end_of_line = lf +# 在文件结尾插入新行 +insert_final_newline = true +# 删除一行中的前后空格 +trim_trailing_whitespace = true + +# 匹配md结尾的文件 +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..d7d14a3 --- /dev/null +++ b/.env.development @@ -0,0 +1,14 @@ +# 页面标题 +VUE_APP_TITLE = 会员管理系统 + +# 开发环境配置 +ENV = 'development' + +# 会员管理系统/开发环境 +VUE_APP_BASE_API = '/clientApi/' + +# 发布目录 +VUE_APP_PUBLIC_PATH = '/' + +# 后端接口地址 +VUE_APP_SERVER_URL = 'http://127.0.0.1:8080/' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..d25228b --- /dev/null +++ b/.env.production @@ -0,0 +1,14 @@ +# 页面标题 +VUE_APP_TITLE = 会员管理系统 + +# 生产环境配置 +ENV = 'production' + +# 会员管理系统/生产环境 +VUE_APP_BASE_API = '/api/' + +# 发布目录 +VUE_APP_PUBLIC_PATH = '/' + +# 后端接口地址 +VUE_APP_SERVER_URL = 'https://mc.keyelement.cn/' diff --git a/.env.staging b/.env.staging new file mode 100644 index 0000000..da006d4 --- /dev/null +++ b/.env.staging @@ -0,0 +1,14 @@ +# 页面标题 +VUE_APP_TITLE = 会员管理系统 + +# 测试环境配置 +ENV = 'staging' + +# 会员管理系统/测试环境 +VUE_APP_BASE_API = '/api' + +# 发布目录 +VUE_APP_PUBLIC_PATH = '/' + +# 后端接口地址 +VUE_APP_SERVER_URL = 'https://mc.keyelement.cn' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..89be6f6 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,10 @@ +# 忽略build目录下类型为js的文件的语法检查 +build/*.js +# 忽略src/assets目录下文件的语法检查 +src/assets +# 忽略public目录下文件的语法检查 +public +# 忽略当前目录下为js的文件的语法检查 +*.js +# 忽略当前目录下为vue的文件的语法检查 +*.vue \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..82bbdee --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,199 @@ +// ESlint 检查配置 +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78a752d --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +**/*.log + +tests/**/coverage/ +tests/e2e/reports +selenium-debug.log + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.local + +package-lock.json +yarn.lock diff --git a/README.md b/README.md new file mode 100644 index 0000000..030de53 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +## 开发 + +```bash + +# 进入项目目录 +cd server-fe + +# 安装依赖 +npm install + +# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 +npm install --registry=https://registry.npmmirror.com + +# 启动服务 +npm run dev +``` + +浏览器访问 http://localhost:8081 + +## 发布 + +```bash +# 构建测试环境 +npm run build:stage + +# 构建生产环境 +npm run build:prod +``` \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..b99f001 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: [ + // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app + '@vue/cli-plugin-babel/preset' + ], + 'env': { + 'development': { + // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). + // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. + 'plugins': ['dynamic-import-node'] + } + } +} diff --git a/bin/build.bat b/bin/build.bat new file mode 100644 index 0000000..dda590d --- /dev/null +++ b/bin/build.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo [Ϣ] Weḅdistļ +echo. + +%~d0 +cd %~dp0 + +cd .. +npm run build:prod + +pause \ No newline at end of file diff --git a/bin/package.bat b/bin/package.bat new file mode 100644 index 0000000..0e5bc0f --- /dev/null +++ b/bin/package.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo [Ϣ] װWeḅnode_modulesļ +echo. + +%~d0 +cd %~dp0 + +cd .. +npm install --registry=https://registry.npmmirror.com + +pause \ No newline at end of file diff --git a/bin/run-web.bat b/bin/run-web.bat new file mode 100644 index 0000000..d30deae --- /dev/null +++ b/bin/run-web.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo [Ϣ] ʹ Vue CLI Web ̡ +echo. + +%~d0 +cd %~dp0 + +cd .. +npm run dev + +pause \ No newline at end of file diff --git a/build/index.js b/build/index.js new file mode 100644 index 0000000..0c57de2 --- /dev/null +++ b/build/index.js @@ -0,0 +1,35 @@ +const { run } = require('runjs') +const chalk = require('chalk') +const config = require('../vue.config.js') +const rawArgv = process.argv.slice(2) +const args = rawArgv.join(' ') + +if (process.env.npm_config_preview || rawArgv.includes('--preview')) { + const report = rawArgv.includes('--report') + + run(`vue-cli-service build ${args}`) + + const port = 9526 + const publicPath = config.publicPath + + var connect = require('connect') + var serveStatic = require('serve-static') + const app = connect() + + app.use( + publicPath, + serveStatic('./dist', { + index: ['index.html', '/'] + }) + ) + + app.listen(port, function () { + console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) + if (report) { + console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) + } + + }) +} else { + run(`vue-cli-service build ${args}`) +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3b07ed8 --- /dev/null +++ b/package.json @@ -0,0 +1,87 @@ +{ + "name": "admin", + "version": "1.2.0", + "description": "会员管理系统后台管理端", + "author": "KEYELEMENT", + "license": "MIT", + "scripts": { + "dev": "vue-cli-service serve", + "build:prod": "vue-cli-service build", + "build:stage": "vue-cli-service build --mode staging", + "preview": "node build/index.js --preview", + "lint": "eslint --ext .js,.vue src" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "src/**/*.{js,vue}": [ + "eslint --fix", + "git add" + ] + }, + "keywords": [ + "vue", + "admin", + "dashboard", + "element-ui", + "boilerplate", + "admin-template", + "management-system" + ], + "dependencies": { + "@riophae/vue-treeselect": "0.4.0", + "axios": "0.24.0", + "clipboard": "2.0.8", + "core-js": "3.25.3", + "echarts": "4.9.0", + "element-ui": "2.15.12", + "file-saver": "2.0.5", + "fuse.js": "6.4.3", + "highlight.js": "9.18.5", + "js-beautify": "1.13.0", + "js-cookie": "3.0.1", + "jsencrypt": "3.0.0-rc.1", + "nprogress": "0.2.0", + "quill": "1.3.7", + "screenfull": "5.0.2", + "sortablejs": "1.10.2", + "vue": "2.6.12", + "vue-count-to": "1.0.13", + "vue-cropper": "0.5.5", + "vue-meta": "2.4.0", + "vue-print-nb": "^1.7.5", + "vue-router": "3.4.9", + "vuedraggable": "2.24.3", + "vuex": "3.6.0" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "4.4.6", + "@vue/cli-plugin-eslint": "4.4.6", + "@vue/cli-service": "4.4.6", + "babel-eslint": "10.1.0", + "babel-plugin-dynamic-import-node": "2.3.3", + "chalk": "4.1.0", + "compression-webpack-plugin": "5.0.2", + "connect": "3.6.6", + "eslint": "^6.0.0", + "eslint-plugin-vue": "7.2.0", + "lint-staged": "10.5.3", + "runjs": "4.4.2", + "sass": "1.32.13", + "sass-loader": "10.1.1", + "script-ext-html-webpack-plugin": "2.1.5", + "svg-sprite-loader": "5.1.1", + "vue-template-compiler": "2.6.12" + }, + "engines": { + "node": ">=8.9", + "npm": ">= 3.0.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..89f4ce0 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/html/ie.html b/public/html/ie.html new file mode 100644 index 0000000..052ffcd --- /dev/null +++ b/public/html/ie.html @@ -0,0 +1,46 @@ + + + + + + 请升级您的浏览器 + + + + + + +

请升级您的浏览器,以便我们更好的为您提供服务!

+

您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。

+
+

请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束

+

自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明

+
+

您可以选择更先进的浏览器

+

推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。

+ +
+ + \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..a3b4312 --- /dev/null +++ b/public/index.html @@ -0,0 +1,202 @@ + + + + + + + + + + <%= webpackConfig.name %> + + + + +
+
+
+
+
+
正在加载系统资源,请耐心等待...
+
+
+ + diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..391d951 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/api/article.js b/src/api/article.js new file mode 100644 index 0000000..1ce90ea --- /dev/null +++ b/src/api/article.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 分页查询文章列表 +export function getArticleList(query) { + return request({ + url: 'backendApi/article/list', + method: 'get', + params: query + }) +} + +// 查询文章信息 +export function getArticle(articleId) { + return request({ + url: 'backendApi/article/info/' + articleId, + method: 'get' + }) +} + +// 更新文章状态 +export function updateStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/article/updateStatus', + method: 'post', + data: data + }) +} + +// 保存数据 +export function saveArticle(data) { + return request({ + url: 'backendApi/article/save', + method: 'post', + data: data + }) +} diff --git a/src/api/balance.js b/src/api/balance.js new file mode 100644 index 0000000..2fbf087 --- /dev/null +++ b/src/api/balance.js @@ -0,0 +1,67 @@ +import request from '@/utils/request' + +// 分页查询余额明细列表 +export function getBalanceList(query) { + return request({ + url: 'backendApi/balance/list', + method: 'get', + params: query + }) +} + +// 查询明细详情 +export function getBalanceInfo(memberId) { + return request({ + url: 'backendApi/balance/info/' + memberId, + method: 'get' + }) +} + +// 更新状态 +export function updateBalanceStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/balance/updateStatus', + method: 'post', + data: data + }) +} + +// 获取配置信息 +export function getSettingInfo() { + return request({ + url: 'backendApi/balance/setting', + method: 'get' + }) +} + +// 保存配置 +export function saveSetting(data) { + return request({ + url: 'backendApi/balance/saveSetting', + method: 'post', + data: data + }) +} + +// 确定充值 +export function doRecharge(data) { + return request({ + url: 'backendApi/balance/doRecharge', + method: 'post', + data: data + }) +} + +// 发放余额 +export function distribute(data) { + return request({ + url: 'backendApi/balance/distribute', + method: 'post', + data: data + }) +} + diff --git a/src/api/banner.js b/src/api/banner.js new file mode 100644 index 0000000..fcc0ddb --- /dev/null +++ b/src/api/banner.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 分页查询banner列表 +export function getBannerList(query) { + return request({ + url: 'backendApi/banner/list', + method: 'get', + params: query + }) +} + +// 查询banner信息 +export function getBannerInfo(bannerId) { + return request({ + url: 'backendApi/banner/info/' + bannerId, + method: 'get' + }) +} + +// 更新banner状态 +export function updateBannerStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/banner/updateStatus', + method: 'post', + data: data + }) +} + +// 保存数据 +export function saveBanner(data) { + return request({ + url: 'backendApi/banner/save', + method: 'post', + data: data + }) +} diff --git a/src/api/cashier.js b/src/api/cashier.js new file mode 100644 index 0000000..2ac1fd1 --- /dev/null +++ b/src/api/cashier.js @@ -0,0 +1,123 @@ +import request from '@/utils/request' + +// 初始化数据 +export function init(userId) { + return request({ + url: 'backendApi/cashier/init/' + userId, + method: 'get' + }) +} + +// 查询商品详情 +export function getGoodsInfo(goodsId) { + return request({ + url: 'backendApi/cashier/getGoodsInfo/' + goodsId, + method: 'get' + }) +} + +// 查询商品 +export function searchGoods(data) { + return request({ + url: 'backendApi/cashier/searchGoods', + method: 'post', + data: data + }) +} + +// 查询会员信息 +export function getMemberInfo(data) { + return request({ + url: 'backendApi/cashier/getMemberInfo', + method: 'post', + data: data + }) +} + +// 查询会员信息 +export function getMemberInfoById(userId) { + return request({ + url: 'backendApi/cashier/getMemberInfoById/' + userId, + method: 'get' + }) +} + +// 获取购物车列表 +export function getCartList(data) { + return request({ + url: 'clientApi/cart/list', + method: 'post', + data: data + }) +} + +// 保存购物车 +export function saveCart(data) { + return request({ + url: 'clientApi/cart/save', + method: 'post', + data: data + }) +} + +// 删除购物车 +export function removeFromCart(data) { + return request({ + url: 'clientApi/cart/clear', + method: 'post', + data: data + }) +} + +// 提交结算 +export function submitSettlement(data) { + return request({ + url: 'clientApi/settlement/submit', + method: 'post', + data: data + }) +} + +// 发起支付 +export function doPay(params) { + return request({ + url: 'clientApi/pay/doPay', + method: 'get', + params: params + }) +} + +// 获取订单列表 +export function getOrderList(data) { + return request({ + url: 'backendApi/order/latest', + method: 'post', + data: data + }) +} + +// 执行挂单 +export function doHangUp(data) { + return request({ + url: 'backendApi/cashier/doHangUp', + method: 'post', + data: data + }) +} + +// 获取挂单 +export function getHangUpList() { + return request({ + url: 'backendApi/cashier/getHangUpList', + method: 'get' + }) +} + +// 删除挂单 +export function removeHangUp(data) { + return request({ + url: 'clientApi/cart/clear', + method: 'post', + data: data + }) +} diff --git a/src/api/commission/log.js b/src/api/commission/log.js new file mode 100644 index 0000000..9bfb994 --- /dev/null +++ b/src/api/commission/log.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +// 查询分佣记录列表 +export function getCommissionLogList(query) { + return request({ + url: 'backendApi/commissionLog/list', + method: 'get', + params: query + }) +} + +// 查询分佣记录详情 +export function getCommissionLogDetail(query) { + return request({ + url: 'backendApi/commissionLog/detail', + method: 'get', + params: query + }) +} + +// 保存分佣记录 +export function updateCommissionLog(data) { + return request({ + url: 'backendApi/commissionLog/save', + method: 'post', + data: data + }) +} diff --git a/src/api/commission/rule.js b/src/api/commission/rule.js new file mode 100644 index 0000000..cdcf3ed --- /dev/null +++ b/src/api/commission/rule.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' + +// 分页查询分销提成规则列表 +export function getCommissionRuleList(query) { + return request({ + url: 'backendApi/commissionRule/list', + method: 'get', + params: query + }) +} + +// 查询分销提成规则详情 +export function getCommissionRuleInfo(ruleId) { + return request({ + url: 'backendApi/commissionRule/info/' + ruleId, + method: 'get' + }) +} + +// 更新分销提成规则状态 +export function updateCommissionRuleStatus(ruleId, status) { + const data = { ruleId, status } + return request({ + url: 'backendApi/commissionRule/updateStatus', + method: 'post', + data: data + }) +} + +// 保存分销提成规则 +export function saveCommissionRule(data) { + return request({ + url: 'backendApi/commissionRule/save', + method: 'post', + data: data + }) +} + +// 删除信息 +export function removeCommissionRule(data) { + return request({ + url: 'backendApi/commissionRule/updateStatus', + method: 'post', + data: data + }) +} diff --git a/src/api/coupon/confirmLog.js b/src/api/coupon/confirmLog.js new file mode 100644 index 0000000..ec3bed3 --- /dev/null +++ b/src/api/coupon/confirmLog.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 分页查询核销流水列表 +export function getConfirmLogList(query) { + return request({ + url: 'backendApi/confirmLog/list', + method: 'get', + params: query + }) +} + +// 撤销已使用的卡券 +export function rollbackUserCoupon(id, userCouponId) { + return request({ + url: 'backendApi/confirmLog/rollbackUserCoupon/' + id + '?userCouponId=' + userCouponId, + method: 'get', + }) +} diff --git a/src/api/coupon/coupon.js b/src/api/coupon/coupon.js new file mode 100644 index 0000000..6c6e9d4 --- /dev/null +++ b/src/api/coupon/coupon.js @@ -0,0 +1,75 @@ +import request from '@/utils/request' + +// 分页查询卡券列表 +export function getCouponList(query) { + return request({ + url: 'backendApi/coupon/list', + method: 'get', + params: query + }) +} + +// 查询卡券信息 +export function getCouponInfo(id) { + return request({ + url: 'backendApi/coupon/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateCouponStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/coupon/updateStatus', + method: 'post', + data: data + }) +} + +// 删除卡券 +export function deleteCoupon(id) { + return request({ + url: 'backendApi/coupon/delete/' + id, + method: 'get' + }) +} + +// 保存卡券 +export function saveCoupon(data) { + return request({ + url: 'backendApi/coupon/save', + method: 'post', + data: data + }) +} + +// 查询卡券核销信息 +export function getConfirmInfo(data) { + return request({ + url: 'backendApi/doConfirm/info', + method: 'post', + data: data + }) +} + +// 执行核销 +export function doConfirm(data) { + return request({ + url: 'backendApi/doConfirm/doConfirm', + method: 'post', + data: data + }) +} + +// 发放卡券 +export function sendCoupon(params) { + return request({ + url: 'backendApi/coupon/sendCoupon', + method: 'get', + params: params + }) +} diff --git a/src/api/coupon/give.js b/src/api/coupon/give.js new file mode 100644 index 0000000..ac7cfb6 --- /dev/null +++ b/src/api/coupon/give.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 分页查询转赠记录列表 +export function getGiveLogList(query) { + return request({ + url: 'backendApi/give/list', + method: 'get', + params: query + }) +} + +// 获取转赠详情 +export function getGiveItem(id) { + return request({ + url: 'backendApi/give/giveItem?giveId=' + id, + method: 'get', + }) +} diff --git a/src/api/coupon/group.js b/src/api/coupon/group.js new file mode 100644 index 0000000..e8dcda7 --- /dev/null +++ b/src/api/coupon/group.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +// 分页查询卡券分组列表 +export function getGroupList(query) { + return request({ + url: 'backendApi/couponGroup/list', + method: 'get', + params: query + }) +} + +// 查询卡券分组列表 +export function getAllGroupList(query) { + return request({ + url: 'backendApi/couponGroup/quickSearch', + method: 'get', + params: query + }) +} + +// 查询分组信息 +export function getGroupInfo(id) { + return request({ + url: 'backendApi/couponGroup/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateGroupStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/couponGroup/updateStatus', + method: 'post', + data: data + }) +} + +// 删除卡券分组 +export function deleteGroup(id) { + return request({ + url: 'backendApi/couponGroup/delete/' + id, + method: 'get' + }) +} + +// 保存卡券分组数据 +export function saveGroup(data) { + return request({ + url: 'backendApi/couponGroup/save', + method: 'post', + data: data + }) +} diff --git a/src/api/coupon/sendLog.js b/src/api/coupon/sendLog.js new file mode 100644 index 0000000..d8b57a9 --- /dev/null +++ b/src/api/coupon/sendLog.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 分页查询发券记录列表 +export function getSendLogList(query) { + return request({ + url: 'backendApi/sendLog/list', + method: 'get', + params: query + }) +} + +// 撤销已发放的卡券 +export function removeUserCoupon(id) { + return request({ + url: 'backendApi/sendLog/removeUserCoupon/' + id, + method: 'get', + }) +} diff --git a/src/api/coupon/userCoupon.js b/src/api/coupon/userCoupon.js new file mode 100644 index 0000000..d8d7ce5 --- /dev/null +++ b/src/api/coupon/userCoupon.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 分页查询会员卡券列表 +export function getUserCouponList(query) { + return request({ + url: 'backendApi/userCoupon/list', + method: 'get', + params: query + }) +} + +// 作废会员卡券 +export function deleteUserCoupon(id) { + return request({ + url: 'backendApi/userCoupon/delete/' + id, + method: 'get', + }) +} + diff --git a/src/api/goods.js b/src/api/goods.js new file mode 100644 index 0000000..ce44c40 --- /dev/null +++ b/src/api/goods.js @@ -0,0 +1,85 @@ +import request from '@/utils/request' + +// 分页查询商品列表 +export function getGoodsList(query) { + return request({ + url: 'backendApi/goods/goods/list', + method: 'get', + params: query + }) +} + +// 查询商品详情 +export function getGoodsInfo(goodsId) { + return request({ + url: 'backendApi/goods/goods/info/' + goodsId, + method: 'get' + }) +} + +// 更新状态 +export function updateGoodsStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/goods/goods/updateStatus', + method: 'post', + data: data + }) +} + +// 保存分类数据 +export function saveGoods(data) { + return request({ + url: 'backendApi/goods/goods/save', + method: 'post', + data: data + }) +} + +// 保存商品规格名称 +export function saveSpecName(data) { + return request({ + url: 'backendApi/goods/goods/saveSpecName', + method: 'post', + data: data + }) +} + +// 保存商品规格值 +export function saveSpecValue(data) { + return request({ + url: 'backendApi/goods/goods/saveSpecValue', + method: 'post', + data: data + }) +} + +// 删除商品规格 +export function deleteSpec(query) { + return request({ + url: 'backendApi/goods/goods/deleteSpec', + method: 'get', + params: query + }) +} + +// 删除商品规格值 +export function deleteSpecValue(query) { + return request({ + url: 'backendApi/goods/goods/deleteSpecValue', + method: 'get', + params: query + }) +} + +// 获取选择商品列表 +export function selectGoodsList(data) { + return request({ + url: 'backendApi/goods/goods/selectGoods', + method: 'post', + data: data + }) +} diff --git a/src/api/goodsCate.js b/src/api/goodsCate.js new file mode 100644 index 0000000..e277b16 --- /dev/null +++ b/src/api/goodsCate.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 分页查询商品分类列表 +export function getGoodsCateList(query) { + return request({ + url: 'backendApi/goods/cate/list', + method: 'get', + params: query + }) +} + +// 查询商品分类详情 +export function getGoodsCateInfo(cateId) { + return request({ + url: 'backendApi/goods/cate/info/' + cateId, + method: 'get' + }) +} + +// 更新状态 +export function updateGoodsCateStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/goods/cate/updateStatus', + method: 'post', + data: data + }) +} + +// 保存分类数据 +export function saveGoodsCate(data) { + return request({ + url: 'backendApi/goods/cate/save', + method: 'post', + data: data + }) +} diff --git a/src/api/home.js b/src/api/home.js new file mode 100644 index 0000000..a8d1e03 --- /dev/null +++ b/src/api/home.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 获取首页数据 +export function getHomeData() { + return request({ + url: 'backendApi/home/index', + method: 'get' + }) +} + +// 获取统计数据 +export function getStatisticData(query) { + return request({ + url: 'backendApi/home/statistic', + method: 'get', + params: query + }) +} diff --git a/src/api/login.js b/src/api/login.js new file mode 100644 index 0000000..fca43c0 --- /dev/null +++ b/src/api/login.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +// 登录方法 +export function login(username, password, captchaCode, uuid) { + const data = { + username, + password, + captchaCode, + uuid + } + return request({ + url: 'backendApi/login/doLogin', + headers: { + isToken: false + }, + method: 'post', + data: data + }) +} + +// 获取用户详细信息 +export function getInfo() { + return request({ + url: 'backendApi/login/getInfo', + method: 'get' + }) +} + +// 退出方法 +export function logout() { + return request({ + url: 'backendApi/login/logout', + method: 'post' + }) +} + +// 获取验证码 +export function getCodeImg() { + return request({ + url: 'clientApi/captcha/getCode', + method: 'get' + }) +} diff --git a/src/api/member.js b/src/api/member.js new file mode 100644 index 0000000..5c07d71 --- /dev/null +++ b/src/api/member.js @@ -0,0 +1,92 @@ +import request from '@/utils/request' + +// 分页查询会员列表 +export function getMemberList(query) { + return request({ + url: 'backendApi/member/list', + method: 'get', + params: query + }) +} + +// 查询会员信息 +export function getMemberInfo(memberId) { + return request({ + url: 'backendApi/member/info/' + memberId, + method: 'get' + }) +} + +// 查询会员设置 +export function getMemberSetting() { + return request({ + url: 'backendApi/member/setting', + method: 'get' + }) +} + +// 保存会员设置 +export function saveSetting(data) { + return request({ + url: 'backendApi/member/saveSetting', + method: 'post', + data: data + }) +} + +// 更新会员状态 +export function updateMemberStatus(userId, status) { + const data = { + userId, + status + } + return request({ + url: 'backendApi/member/updateStatus', + method: 'post', + data: data + }) +} + +// 删除会员信息 +export function deleteMember(memberId) { + return request({ + url: 'backendApi/member/delete/' + memberId, + method: 'get' + }) +} + +// 保存会员信息 +export function saveMember(data) { + return request({ + url: 'backendApi/member/save', + method: 'post', + data: data + }) +} + +// 查询会员分组列表 +export function getGroupList(query) { + return request({ + url: 'backendApi/member/groupList', + method: 'get', + params: query + }) +} + +// 查找会员 +export function searchMembers(query) { + return request({ + url: 'backendApi/member/searchMembers', + method: 'get', + params: query + }) +} + +// 重置会员密码 +export function resetMemberPwd(data) { + return request({ + url: 'backendApi/member/resetPwd', + method: 'post', + data: data + }) +} diff --git a/src/api/memberGroup.js b/src/api/memberGroup.js new file mode 100644 index 0000000..a4b7586 --- /dev/null +++ b/src/api/memberGroup.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +// 分页查询会员分组列表 +export function getGroupList(query) { + return request({ + url: 'backendApi/memberGroup/list', + method: 'get', + params: query + }) +} + +// 查询会员分组列表 +export function getAllGroupList(query) { + return request({ + url: 'backendApi/memberGroup/quickSearch', + method: 'get', + params: query + }) +} + +// 查询会员分组信息 +export function getGroupInfo(id) { + return request({ + url: 'backendApi/memberGroup/info/' + id, + method: 'get' + }) +} + +// 更新会员分组状态 +export function updateGroupStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/memberGroup/updateStatus', + method: 'post', + data: data + }) +} + +// 删除会员分组 +export function deleteGroup(id) { + return request({ + url: 'backendApi/memberGroup/delete/' + id, + method: 'get' + }) +} + +// 保存会员分组数据 +export function saveGroup(data) { + return request({ + url: 'backendApi/memberGroup/save', + method: 'post', + data: data + }) +} diff --git a/src/api/menu.js b/src/api/menu.js new file mode 100644 index 0000000..f65ebe0 --- /dev/null +++ b/src/api/menu.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 获取路由 +export const getRouters = () => { + return request({ + url: 'backendApi/login/getRouters', + method: 'get' + }) +} diff --git a/src/api/merchant.js b/src/api/merchant.js new file mode 100644 index 0000000..3d9a868 --- /dev/null +++ b/src/api/merchant.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +// 分页查询商户列表 +export function getMerchantList(query) { + return request({ + url: 'backendApi/merchant/list', + method: 'get', + params: query + }) +} + +// 查询商户信息 +export function getMerchantInfo(merchantId) { + return request({ + url: 'backendApi/merchant/info/' + merchantId, + method: 'get' + }) +} + +// 查询商户列表 +export function searchMerchant(param) { + return request({ + url: 'backendApi/merchant/searchMerchant', + method: 'get', + params: param + }) +} + +// 更新商户状态 +export function updateMerchantStatus(merchantId, status) { + const data = { + merchantId, + status + } + return request({ + url: 'backendApi/merchant/updateStatus', + method: 'post', + data: data + }) +} + +// 保存商户信息 +export function saveMerchant(data) { + return request({ + url: 'backendApi/merchant/save', + method: 'post', + data: data + }) +} diff --git a/src/api/openGift.js b/src/api/openGift.js new file mode 100644 index 0000000..1337497 --- /dev/null +++ b/src/api/openGift.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 分页查询开卡赠礼列表 +export function getOpenGiftList(query) { + return request({ + url: 'backendApi/openGift/list', + method: 'get', + params: query + }) +} + +// 查询信息 +export function getOpenGiftInfo(id) { + return request({ + url: 'backendApi/openGift/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateOpenGiftStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/openGift/updateStatus', + method: 'post', + data: data + }) +} + +// 删除开卡赠礼 +export function deleteOpenGift(id) { + return request({ + url: 'backendApi/openGift/delete/' + id, + method: 'get' + }) +} + +// 保存数据 +export function saveOpenGift(data) { + return request({ + url: 'backendApi/openGift/save', + method: 'post', + data: data + }) +} diff --git a/src/api/order.js b/src/api/order.js new file mode 100644 index 0000000..4ab73ab --- /dev/null +++ b/src/api/order.js @@ -0,0 +1,83 @@ +import request from '@/utils/request' + +// 分页查询订单列表 +export function getOrderList(data) { + return request({ + url: 'backendApi/order/list', + method: 'post', + data: data + }) +} + +// 查询订单信息 +export function getOrderInfo(orderId) { + return request({ + url: 'backendApi/order/info/' + orderId, + method: 'get' + }) +} + +// 更新订单状态 +export function updateOrderStatus(orderId, status) { + const data = { + orderId, + status + } + return request({ + url: 'backendApi/order/updateStatus', + method: 'post', + data: data + }) +} + +// 删除订单 +export function deleteOrder(orderId) { + return request({ + url: 'backendApi/order/delete/' + orderId, + method: 'get' + }) +} + +// 保存订单数据 +export function saveOrder(data) { + return request({ + url: 'backendApi/order/save', + method: 'post', + data: data + }) +} + +// 验证核销订单 +export function verifyOrder(data) { + return request({ + url: 'backendApi/order/verify', + method: 'post', + data: data + }) +} + +// 提交发货信息 +export function delivered(data) { + return request({ + url: 'backendApi/order/delivered', + method: 'post', + data: data + }) +} + +// 获取配置信息 +export function getSettingInfo() { + return request({ + url: 'backendApi/order/setting', + method: 'get' + }) +} + +// 保存配置 +export function saveSetting(data) { + return request({ + url: 'backendApi/order/saveSetting', + method: 'post', + data: data + }) +} diff --git a/src/api/point.js b/src/api/point.js new file mode 100644 index 0000000..9427b6a --- /dev/null +++ b/src/api/point.js @@ -0,0 +1,58 @@ +import request from '@/utils/request' + +// 分页查询积分明细列表 +export function getPointList(query) { + return request({ + url: 'backendApi/point/list', + method: 'get', + params: query + }) +} + +// 查询明细详情 +export function getPointInfo(memberId) { + return request({ + url: 'backendApi/point/info/' + memberId, + method: 'get' + }) +} + +// 更新状态 +export function updatePointStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/point/updateStatus', + method: 'post', + data: data + }) +} + +// 获取配置信息 +export function getSettingInfo() { + return request({ + url: 'backendApi/point/setting', + method: 'get' + }) +} + +// 保存配置 +export function saveSetting(data) { + return request({ + url: 'backendApi/point/saveSetting', + method: 'post', + data: data + }) +} + +// 确定充值 +export function doRecharge(data) { + return request({ + url: 'backendApi/point/doRecharge', + method: 'post', + data: data + }) +} + diff --git a/src/api/refund.js b/src/api/refund.js new file mode 100644 index 0000000..7206213 --- /dev/null +++ b/src/api/refund.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 分页查询退款订单列表 +export function getRefundList(query) { + return request({ + url: 'backendApi/refund/list', + method: 'get', + params: query + }) +} + +// 查询订单信息 +export function getRefundInfo(refundId) { + return request({ + url: 'backendApi/refund/info/' + refundId, + method: 'get' + }) +} + +// 订单退款 +export function doRefund(data) { + return request({ + url: 'backendApi/refund/doRefund', + method: 'post', + data: data + }) +} + +// 删除退款订单 +export function deleteRefund(refundId) { + return request({ + url: 'backendApi/refund/delete/' + refundId, + method: 'get' + }) +} + +// 保存退款订单 +export function saveRefund(data) { + return request({ + url: 'backendApi/refund/save', + method: 'post', + data: data + }) +} + +// 订单预付金中补扣 +export function doDeduction(data) { + return request({ + url: 'backendApi/refund/doDeduction', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/src/api/settlement.js b/src/api/settlement.js new file mode 100644 index 0000000..a14a760 --- /dev/null +++ b/src/api/settlement.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +// 分页查询结算列表 +export function getSettlementList(query) { + return request({ + url: 'backendApi/settlement/list', + method: 'get', + params: query + }) +} + +// 查询结算详情 +export function getSettlementInfo(query) { + return request({ + url: 'backendApi/settlement/info/', + method: 'get', + params: query + }) +} + +// 提交结算 +export function doSubmit(data) { + return request({ + url: 'backendApi/settlement/doSubmit', + method: 'post', + data: data + }) +} + +// 提交确认 +export function doConfirm(data) { + return request({ + url: 'backendApi/settlement/doConfirm', + method: 'post', + data: data + }) +} + + diff --git a/src/api/smsManager.js b/src/api/smsManager.js new file mode 100644 index 0000000..886ad2f --- /dev/null +++ b/src/api/smsManager.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 分页查询短信列表 +export function getSmsList(query) { + return request({ + url: 'backendApi/smsManager/list', + method: 'get', + params: query + }) +} + +// 发送短信 +export function sendSms(data) { + return request({ + url: 'backendApi/smsManager/send', + method: 'post', + data: data + }) +} diff --git a/src/api/smsTemplate.js b/src/api/smsTemplate.js new file mode 100644 index 0000000..9b49c3e --- /dev/null +++ b/src/api/smsTemplate.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 分页查询短信模板列表 +export function getSmsTemplateList(query) { + return request({ + url: 'backendApi/smsTemplate/list', + method: 'get', + params: query + }) +} + +// 查询信息 +export function getSmsTemplateInfo(id) { + return request({ + url: 'backendApi/smsTemplate/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateSmsTemplateStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/smsTemplate/updateStatus', + method: 'post', + data: data + }) +} + +// 删除短信模板 +export function deleteSmsTemplate(id) { + return request({ + url: 'backendApi/smsTemplate/delete/' + id, + method: 'get' + }) +} + +// 保存数据 +export function saveSmsTemplate(data) { + return request({ + url: 'backendApi/smsTemplate/save', + method: 'post', + data: data + }) +} diff --git a/src/api/staff.js b/src/api/staff.js new file mode 100644 index 0000000..b7bc210 --- /dev/null +++ b/src/api/staff.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' + +// 查询员工列表 +export function getStaffList(query) { + return request({ + url: 'backendApi/staff/list', + method: 'get', + params: query + }) +} + +// 查询员工信息 +export function getStaffInfo(staffId) { + return request({ + url: 'backendApi/staff/info/' + staffId, + method: 'get' + }) +} + +// 删除员工信息 +export function deleteStaff(staffId) { + return request({ + url: 'backendApi/staff/delete/' + staffId, + method: 'get' + }) +} + +// 获取店铺员工列表 +export function getStoreStaffList(storeId) { + return request({ + url: 'backendApi/staff/storeStaffList/' + storeId, + method: 'get' + }) +} + +// 更新员工状态 +export function updateStaffStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/staff/updateStatus', + method: 'post', + data: data + }) +} + +// 保存员工信息 +export function saveStaff(data) { + return request({ + url: 'backendApi/staff/save', + method: 'post', + data: data + }) +} diff --git a/src/api/statistic.js b/src/api/statistic.js new file mode 100644 index 0000000..0c1c93e --- /dev/null +++ b/src/api/statistic.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +// 获取看板数据 +export function getMainData(params) { + return request({ + url: 'backendApi/statistic/main', + method: 'post', + data: params + }) +} + +// 获取排行榜数据 +export function getTopData(params) { + return request({ + url: 'backendApi/statistic/top', + method: 'post', + data: params + }) +} + +// 获取总会员数量 +export function getTotalMember() { + return request({ + url: 'backendApi/statistic/totalMember', + method: 'get' + }) +} diff --git a/src/api/stock.js b/src/api/stock.js new file mode 100644 index 0000000..fac99fa --- /dev/null +++ b/src/api/stock.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 分页查询库存管理记录列表 +export function getStockList(query) { + return request({ + url: 'backendApi/stock/list', + method: 'get', + params: query + }) +} + +// 删除库存管理记录 +export function deleteStock(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/stock/delete', + method: 'post', + data: data + }) +} + +// 保存库存管理记录 +export function saveStock(data) { + return request({ + url: 'backendApi/stock/save', + method: 'post', + data: data + }) +} + +// 获取库存管理记录详情 +export function getStockInfo(cateId) { + return request({ + url: 'backendApi/stock/info/' + cateId, + method: 'get' + }) +} diff --git a/src/api/store.js b/src/api/store.js new file mode 100644 index 0000000..8f7b51c --- /dev/null +++ b/src/api/store.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +// 分页查询店铺列表 +export function getStoreList(query) { + return request({ + url: 'backendApi/store/list', + method: 'get', + params: query + }) +} + +// 查询店铺信息 +export function getStoreInfo(storeId) { + return request({ + url: 'backendApi/store/info/' + storeId, + method: 'get' + }) +} + +// 查询店铺列表 +export function searchStore(param) { + return request({ + url: 'backendApi/store/searchStore', + method: 'get', + params: param + }) +} + +// 更新店铺状态 +export function updateStoreStatus(storeId, status) { + const data = { + storeId, + status + } + return request({ + url: 'backendApi/store/updateStatus', + method: 'post', + data: data + }) +} + +// 保存店铺 +export function saveStore(data) { + return request({ + url: 'backendApi/store/save', + method: 'post', + data: data + }) +} diff --git a/src/api/storeLocation.js b/src/api/storeLocation.js new file mode 100644 index 0000000..2a821d6 --- /dev/null +++ b/src/api/storeLocation.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 分页查询 +export function getStoreLocationList(query) { + return request({ + url: 'backendApi/storeLocation/list', + method: 'get', + params: query + }) +} + +// 查询信息 +export function getStoreLocationInfo(id) { + return request({ + url: 'backendApi/storeLocation/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateStoreLocationStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/storeLocation/updateStatus', + method: 'post', + data: data + }) +} + +// 删除 +export function deleteStoreLocation(id) { + return request({ + url: 'backendApi/storeLocation/delete/' + id, + method: 'get' + }) +} + +// 保存数据 +export function saveStoreLocation(data) { + return request({ + url: 'backendApi/storeLocation/save', + method: 'post', + data: data + }) +} diff --git a/src/api/subMessage.js b/src/api/subMessage.js new file mode 100644 index 0000000..1aeea5e --- /dev/null +++ b/src/api/subMessage.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 分页查询订阅消息列表 +export function getSubMessageList(query) { + return request({ + url: 'backendApi/subMessage/list', + method: 'get', + params: query + }) +} + +// 查询信息 +export function getSubMessageInfo(id) { + return request({ + url: 'backendApi/subMessage/info/' + id, + method: 'get' + }) +} + +// 更新状态 +export function updateSubMessageStatus(id, status) { + const data = { + id, + status + } + return request({ + url: 'backendApi/subMessage/updateStatus', + method: 'post', + data: data + }) +} + +// 删除订阅消息 +export function deleteSubMessage(id) { + return request({ + url: 'backendApi/subMessage/delete/' + id, + method: 'get' + }) +} + +// 保存数据 +export function saveSubMessage(data) { + return request({ + url: 'backendApi/subMessage/save', + method: 'post', + data: data + }) +} diff --git a/src/api/system/account.js b/src/api/system/account.js new file mode 100644 index 0000000..97e92da --- /dev/null +++ b/src/api/system/account.js @@ -0,0 +1,127 @@ +import request from '@/utils/request' +import { parseStrEmpty } from "@/utils/tools"; + +// 查询用户列表 +export function getAccountList(query) { + return request({ + url: 'backendApi/account/list', + method: 'get', + params: query + }) +} + +// 查询用户详细 +export function getAccount(userId) { + return request({ + url: 'backendApi/account/info/' + parseStrEmpty(userId), + method: 'get' + }) +} + +// 新增用户 +export function addAccount(data) { + return request({ + url: 'backendApi/account/doCreate', + method: 'post', + data: data + }) +} + +// 修改用户 +export function updateAccount(data) { + return request({ + url: 'backendApi/account/update', + method: 'post', + data: data + }) +} + +// 删除用户 +export function delAccount(userId) { + return request({ + url: 'backendApi/account/delete/' + userId, + method: 'get' + }) +} + +// 用户密码重置 +export function resetAccountPwd(userId, password) { + const data = { + userId, + password + } + return request({ + url: 'backendApi/account/resetPwd', + method: 'post', + data: data + }) +} + +// 用户状态修改 +export function changeAccountStatus(userId, status) { + const data = { + userId, + status + } + return request({ + url: 'backendApi/account/updateStatus', + method: 'post', + data: data + }) +} + +// 查询用户个人信息 +export function getAccountProfile() { + return request({ + url: 'backendApi/account/profile', + method: 'get' + }) +} + +// 修改用户个人信息 +export function updateAccountProfile(data) { + return request({ + url: 'backendApi/account/profile', + method: 'post', + data: data + }) +} + +// 用户密码重置 +export function updateAccountPwd(oldPassword, newPassword) { + const data = { + oldPassword, + newPassword + } + return request({ + url: 'backendApi/account/profile/updatePwd', + method: 'post', + params: data + }) +} + +// 用户头像上传 +export function uploadAvatar(data) { + return request({ + url: 'backendApi/account/profile/avatar', + method: 'post', + data: data + }) +} + +// 查询授权角色 +export function getAuthRole(userId) { + return request({ + url: 'backendApi/account/authRole/' + userId, + method: 'get' + }) +} + +// 保存授权角色 +export function updateAuthRole(data) { + return request({ + url: 'backendApi/account/authRole', + method: 'post', + params: data + }) +} diff --git a/src/api/system/config.js b/src/api/system/config.js new file mode 100644 index 0000000..a404d82 --- /dev/null +++ b/src/api/system/config.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function listConfig(query) { + return request({ + url: '/system/config/list', + method: 'get', + params: query + }) +} + +// 查询参数详细 +export function getConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'get' + }) +} + +// 根据参数键名查询参数值 +export function getConfigKey(configKey) { + return request({ + url: '/system/config/configKey/' + configKey, + method: 'get' + }) +} + +// 新增参数配置 +export function addConfig(data) { + return request({ + url: '/system/config', + method: 'post', + data: data + }) +} + +// 修改参数配置 +export function updateConfig(data) { + return request({ + url: '/system/config', + method: 'put', + data: data + }) +} + +// 删除参数配置 +export function delConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'delete' + }) +} + +// 刷新参数缓存 +export function refreshCache() { + return request({ + url: '/system/config/refreshCache', + method: 'delete' + }) +} diff --git a/src/api/system/dict/data.js b/src/api/system/dict/data.js new file mode 100644 index 0000000..6c9eb79 --- /dev/null +++ b/src/api/system/dict/data.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 查询字典数据列表 +export function listData(query) { + return request({ + url: '/system/dict/data/list', + method: 'get', + params: query + }) +} + +// 查询字典数据详细 +export function getData(dictCode) { + return request({ + url: '/system/dict/data/' + dictCode, + method: 'get' + }) +} + +// 根据字典类型查询字典数据信息 +export function getDicts(dictType) { + return request({ + url: '/system/dict/data/type/' + dictType, + method: 'get' + }) +} + +// 新增字典数据 +export function addData(data) { + return request({ + url: '/system/dict/data', + method: 'post', + data: data + }) +} + +// 修改字典数据 +export function updateData(data) { + return request({ + url: '/system/dict/data', + method: 'put', + data: data + }) +} + +// 删除字典数据 +export function delData(dictCode) { + return request({ + url: '/system/dict/data/' + dictCode, + method: 'delete' + }) +} diff --git a/src/api/system/dict/type.js b/src/api/system/dict/type.js new file mode 100644 index 0000000..a7a6e01 --- /dev/null +++ b/src/api/system/dict/type.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询字典类型列表 +export function listType(query) { + return request({ + url: '/system/dict/type/list', + method: 'get', + params: query + }) +} + +// 查询字典类型详细 +export function getType(dictId) { + return request({ + url: '/system/dict/type/' + dictId, + method: 'get' + }) +} + +// 新增字典类型 +export function addType(data) { + return request({ + url: '/system/dict/type', + method: 'post', + data: data + }) +} + +// 修改字典类型 +export function updateType(data) { + return request({ + url: '/system/dict/type', + method: 'put', + data: data + }) +} + +// 删除字典类型 +export function delType(dictId) { + return request({ + url: '/system/dict/type/' + dictId, + method: 'delete' + }) +} + +// 刷新字典缓存 +export function refreshCache() { + return request({ + url: '/system/dict/type/refreshCache', + method: 'delete' + }) +} + +// 获取字典选择框列表 +export function optionselect() { + return request({ + url: '/system/dict/type/optionselect', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/system/logs.js b/src/api/system/logs.js new file mode 100644 index 0000000..69ceb25 --- /dev/null +++ b/src/api/system/logs.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询操作日志列表 +export function list(query) { + return request({ + url: 'backendApi/actlog/list', + method: 'get', + params: query + }) +} + +// 删除操作日志 +export function delOperlog(logId) { + return request({ + url: 'backendApi/actlog/delete/' + logId, + method: 'get' + }) +} diff --git a/src/api/system/menu.js b/src/api/system/menu.js new file mode 100644 index 0000000..0c5dd33 --- /dev/null +++ b/src/api/system/menu.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询菜单列表 +export function listMenu(query) { + return request({ + url: 'backendApi/source/list', + method: 'get', + params: query + }) +} + +// 查询菜单详细 +export function getMenu(menuId) { + return request({ + url: 'backendApi/source/info/' + menuId, + method: 'get' + }) +} + +// 查询菜单下拉树结构 +export function treeselect() { + return request({ + url: 'backendApi/source/treeselect', + method: 'get' + }) +} + +// 根据角色ID查询菜单下拉树结构 +export function roleMenuTreeselect(roleId) { + return request({ + url: 'backendApi/source/roleMenuTreeselect/' + roleId, + method: 'get' + }) +} + +// 新增菜单 +export function addMenu(data) { + return request({ + url: 'backendApi/source/add', + method: 'post', + data: data + }) +} + +// 修改菜单 +export function updateMenu(data) { + return request({ + url: 'backendApi/source/update', + method: 'post', + data: data + }) +} + +// 删除菜单 +export function delMenu(menuId) { + return request({ + url: 'backendApi/source/delete/' + menuId, + method: 'get' + }) +} diff --git a/src/api/system/notice.js b/src/api/system/notice.js new file mode 100644 index 0000000..c274ea5 --- /dev/null +++ b/src/api/system/notice.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询公告列表 +export function listNotice(query) { + return request({ + url: '/system/notice/list', + method: 'get', + params: query + }) +} + +// 查询公告详细 +export function getNotice(noticeId) { + return request({ + url: '/system/notice/' + noticeId, + method: 'get' + }) +} + +// 新增公告 +export function addNotice(data) { + return request({ + url: '/system/notice', + method: 'post', + data: data + }) +} + +// 修改公告 +export function updateNotice(data) { + return request({ + url: '/system/notice', + method: 'put', + data: data + }) +} + +// 删除公告 +export function delNotice(noticeId) { + return request({ + url: '/system/notice/' + noticeId, + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/api/system/role.js b/src/api/system/role.js new file mode 100644 index 0000000..8af7673 --- /dev/null +++ b/src/api/system/role.js @@ -0,0 +1,111 @@ +import request from '@/utils/request' + +// 查询角色列表 +export function listRole(query) { + return request({ + url: 'backendApi/duty/list', + method: 'get', + params: query + }) +} + +// 查询角色详细 +export function getRole(roleId) { + return request({ + url: 'backendApi/duty/info/' + roleId, + method: 'get' + }) +} + +// 新增角色 +export function addRole(data) { + return request({ + url: 'backendApi/duty/add', + method: 'post', + data: data + }) +} + +// 修改角色 +export function updateRole(data) { + return request({ + url: 'backendApi/duty/update', + method: 'post', + data: data + }) +} + +// 角色数据权限 +export function dataScope(data) { + return request({ + url: 'backendApi/duty/dataScope', + method: 'post', + data: data + }) +} + +// 角色状态修改 +export function changeRoleStatus(roleId, status) { + const data = { + roleId, + status + } + return request({ + url: 'backendApi/duty/changeStatus', + method: 'post', + data: data + }) +} + +// 删除角色 +export function delRole(roleId) { + return request({ + url: 'backendApi/duty/delete/' + roleId, + method: 'post' + }) +} + +// 查询角色已授权用户列表 +export function getRoleUserList(query) { + return request({ + url: 'backendApi/duty/getRoleUserList', + method: 'get', + params: query + }) +} + +// 查询角色未授权用户列表 +export function unallocatedUserList(query) { + return request({ + url: 'backendApi/duty/authUser/unallocatedList', + method: 'get', + params: query + }) +} + +// 取消用户授权角色 +export function authUserCancel(data) { + return request({ + url: 'backendApi/duty/authUser/cancel', + method: 'post', + data: data + }) +} + +// 批量取消用户授权角色 +export function authUserCancelAll(data) { + return request({ + url: 'backendApi/duty/authUser/cancelAll', + method: 'post', + params: data + }) +} + +// 授权用户选择 +export function authUserSelectAll(data) { + return request({ + url: 'backendApi/duty/authUser/selectAll', + method: 'post', + params: data + }) +} diff --git a/src/api/tool/gen.js b/src/api/tool/gen.js new file mode 100644 index 0000000..4506927 --- /dev/null +++ b/src/api/tool/gen.js @@ -0,0 +1,76 @@ +import request from '@/utils/request' + +// 查询生成表数据 +export function listTable(query) { + return request({ + url: '/tool/gen/list', + method: 'get', + params: query + }) +} +// 查询db数据库列表 +export function listDbTable(query) { + return request({ + url: '/tool/gen/db/list', + method: 'get', + params: query + }) +} + +// 查询表详细信息 +export function getGenTable(tableId) { + return request({ + url: '/tool/gen/' + tableId, + method: 'get' + }) +} + +// 修改代码生成信息 +export function updateGenTable(data) { + return request({ + url: '/tool/gen', + method: 'put', + data: data + }) +} + +// 导入表 +export function importTable(data) { + return request({ + url: '/tool/gen/importTable', + method: 'post', + params: data + }) +} + +// 预览生成代码 +export function previewTable(tableId) { + return request({ + url: '/tool/gen/preview/' + tableId, + method: 'get' + }) +} + +// 删除表数据 +export function delTable(tableId) { + return request({ + url: '/tool/gen/' + tableId, + method: 'delete' + }) +} + +// 生成代码(自定义路径) +export function genCode(tableName) { + return request({ + url: '/tool/gen/genCode/' + tableName, + method: 'get' + }) +} + +// 同步数据库 +export function synchDb(tableName) { + return request({ + url: '/tool/gen/synchDb/' + tableName, + method: 'get' + }) +} diff --git a/src/api/userGrade.js b/src/api/userGrade.js new file mode 100644 index 0000000..0f0b64d --- /dev/null +++ b/src/api/userGrade.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +// 分页查询会员等级列表 +export function getUserGradeList(query) { + return request({ + url: 'backendApi/userGrade/list', + method: 'get', + params: query + }) +} + +// 查询等级信息 +export function getUserGradeInfo(memberId) { + return request({ + url: 'backendApi/userGrade/info/' + memberId, + method: 'get' + }) +} + +// 更新状态 +export function updateUserGradeStatus(userGradeId, status) { + const data = { + userGradeId, + status + } + return request({ + url: 'backendApi/userGrade/updateStatus', + method: 'post', + data: data + }) +} + +// 删除会员等级信息 +export function deleteUserGrade(gradeId) { + return request({ + url: 'backendApi/userGrade/delete/' + gradeId, + method: 'get' + }) +} + +// 保存数据 +export function saveUserGrade(data) { + return request({ + url: 'backendApi/userGrade/save', + method: 'post', + data: data + }) +} diff --git a/src/assets/401_images/401.gif b/src/assets/401_images/401.gif new file mode 100644 index 0000000..cd6e0d9 Binary files /dev/null and b/src/assets/401_images/401.gif differ diff --git a/src/assets/404_images/404.png b/src/assets/404_images/404.png new file mode 100644 index 0000000..3d8e230 Binary files /dev/null and b/src/assets/404_images/404.png differ diff --git a/src/assets/404_images/404_cloud.png b/src/assets/404_images/404_cloud.png new file mode 100644 index 0000000..c6281d0 Binary files /dev/null and b/src/assets/404_images/404_cloud.png differ diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js new file mode 100644 index 0000000..2c6b309 --- /dev/null +++ b/src/assets/icons/index.js @@ -0,0 +1,9 @@ +import Vue from 'vue' +import SvgIcon from '@/components/SvgIcon'// svg component + +// register globally +Vue.component('svg-icon', SvgIcon) + +const req = require.context('./svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys().map(requireContext) +requireAll(req) diff --git a/src/assets/icons/svg/404.svg b/src/assets/icons/svg/404.svg new file mode 100644 index 0000000..6df5019 --- /dev/null +++ b/src/assets/icons/svg/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bug.svg b/src/assets/icons/svg/bug.svg new file mode 100644 index 0000000..05a150d --- /dev/null +++ b/src/assets/icons/svg/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/build.svg b/src/assets/icons/svg/build.svg new file mode 100644 index 0000000..97c4688 --- /dev/null +++ b/src/assets/icons/svg/build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/button.svg b/src/assets/icons/svg/button.svg new file mode 100644 index 0000000..904fddc --- /dev/null +++ b/src/assets/icons/svg/button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/cascader.svg b/src/assets/icons/svg/cascader.svg new file mode 100644 index 0000000..e256024 --- /dev/null +++ b/src/assets/icons/svg/cascader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/chart.svg b/src/assets/icons/svg/chart.svg new file mode 100644 index 0000000..27728fb --- /dev/null +++ b/src/assets/icons/svg/chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/checkbox.svg b/src/assets/icons/svg/checkbox.svg new file mode 100644 index 0000000..013fd3a --- /dev/null +++ b/src/assets/icons/svg/checkbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/clipboard.svg b/src/assets/icons/svg/clipboard.svg new file mode 100644 index 0000000..90923ff --- /dev/null +++ b/src/assets/icons/svg/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/code.svg b/src/assets/icons/svg/code.svg new file mode 100644 index 0000000..ed4d23c --- /dev/null +++ b/src/assets/icons/svg/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/color.svg b/src/assets/icons/svg/color.svg new file mode 100644 index 0000000..44a81aa --- /dev/null +++ b/src/assets/icons/svg/color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/component.svg b/src/assets/icons/svg/component.svg new file mode 100644 index 0000000..29c3458 --- /dev/null +++ b/src/assets/icons/svg/component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dashboard.svg b/src/assets/icons/svg/dashboard.svg new file mode 100644 index 0000000..5317d37 --- /dev/null +++ b/src/assets/icons/svg/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/date-range.svg b/src/assets/icons/svg/date-range.svg new file mode 100644 index 0000000..fda571e --- /dev/null +++ b/src/assets/icons/svg/date-range.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/date.svg b/src/assets/icons/svg/date.svg new file mode 100644 index 0000000..52dc73e --- /dev/null +++ b/src/assets/icons/svg/date.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dict.svg b/src/assets/icons/svg/dict.svg new file mode 100644 index 0000000..4849377 --- /dev/null +++ b/src/assets/icons/svg/dict.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/documentation.svg b/src/assets/icons/svg/documentation.svg new file mode 100644 index 0000000..7043122 --- /dev/null +++ b/src/assets/icons/svg/documentation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/download.svg b/src/assets/icons/svg/download.svg new file mode 100644 index 0000000..c896951 --- /dev/null +++ b/src/assets/icons/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drag.svg b/src/assets/icons/svg/drag.svg new file mode 100644 index 0000000..4185d3c --- /dev/null +++ b/src/assets/icons/svg/drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/druid.svg b/src/assets/icons/svg/druid.svg new file mode 100644 index 0000000..a2b4b4e --- /dev/null +++ b/src/assets/icons/svg/druid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/edit.svg b/src/assets/icons/svg/edit.svg new file mode 100644 index 0000000..d26101f --- /dev/null +++ b/src/assets/icons/svg/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/education.svg b/src/assets/icons/svg/education.svg new file mode 100644 index 0000000..7bfb01d --- /dev/null +++ b/src/assets/icons/svg/education.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/email.svg b/src/assets/icons/svg/email.svg new file mode 100644 index 0000000..74d25e2 --- /dev/null +++ b/src/assets/icons/svg/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/example.svg b/src/assets/icons/svg/example.svg new file mode 100644 index 0000000..46f42b5 --- /dev/null +++ b/src/assets/icons/svg/example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/excel.svg b/src/assets/icons/svg/excel.svg new file mode 100644 index 0000000..74d97b8 --- /dev/null +++ b/src/assets/icons/svg/excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exit-fullscreen.svg b/src/assets/icons/svg/exit-fullscreen.svg new file mode 100644 index 0000000..485c128 --- /dev/null +++ b/src/assets/icons/svg/exit-fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye-open.svg b/src/assets/icons/svg/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/src/assets/icons/svg/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye.svg b/src/assets/icons/svg/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/src/assets/icons/svg/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/form.svg b/src/assets/icons/svg/form.svg new file mode 100644 index 0000000..dcbaa18 --- /dev/null +++ b/src/assets/icons/svg/form.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fullscreen.svg b/src/assets/icons/svg/fullscreen.svg new file mode 100644 index 0000000..0e86b6f --- /dev/null +++ b/src/assets/icons/svg/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/github.svg b/src/assets/icons/svg/github.svg new file mode 100644 index 0000000..db0a0d4 --- /dev/null +++ b/src/assets/icons/svg/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/guide.svg b/src/assets/icons/svg/guide.svg new file mode 100644 index 0000000..b271001 --- /dev/null +++ b/src/assets/icons/svg/guide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/icon.svg b/src/assets/icons/svg/icon.svg new file mode 100644 index 0000000..82be8ee --- /dev/null +++ b/src/assets/icons/svg/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/input.svg b/src/assets/icons/svg/input.svg new file mode 100644 index 0000000..ab91381 --- /dev/null +++ b/src/assets/icons/svg/input.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/international.svg b/src/assets/icons/svg/international.svg new file mode 100644 index 0000000..e9b56ee --- /dev/null +++ b/src/assets/icons/svg/international.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/job.svg b/src/assets/icons/svg/job.svg new file mode 100644 index 0000000..2a93a25 --- /dev/null +++ b/src/assets/icons/svg/job.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/language.svg b/src/assets/icons/svg/language.svg new file mode 100644 index 0000000..0082b57 --- /dev/null +++ b/src/assets/icons/svg/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/link.svg b/src/assets/icons/svg/link.svg new file mode 100644 index 0000000..48197ba --- /dev/null +++ b/src/assets/icons/svg/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/list.svg b/src/assets/icons/svg/list.svg new file mode 100644 index 0000000..20259ed --- /dev/null +++ b/src/assets/icons/svg/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/lock.svg b/src/assets/icons/svg/lock.svg new file mode 100644 index 0000000..74fee54 --- /dev/null +++ b/src/assets/icons/svg/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/log.svg b/src/assets/icons/svg/log.svg new file mode 100644 index 0000000..d879d33 --- /dev/null +++ b/src/assets/icons/svg/log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/logininfor.svg b/src/assets/icons/svg/logininfor.svg new file mode 100644 index 0000000..267f844 --- /dev/null +++ b/src/assets/icons/svg/logininfor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/message.svg b/src/assets/icons/svg/message.svg new file mode 100644 index 0000000..14ca817 --- /dev/null +++ b/src/assets/icons/svg/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/money.svg b/src/assets/icons/svg/money.svg new file mode 100644 index 0000000..c1580de --- /dev/null +++ b/src/assets/icons/svg/money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/monitor.svg b/src/assets/icons/svg/monitor.svg new file mode 100644 index 0000000..bc308cb --- /dev/null +++ b/src/assets/icons/svg/monitor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/nested.svg b/src/assets/icons/svg/nested.svg new file mode 100644 index 0000000..06713a8 --- /dev/null +++ b/src/assets/icons/svg/nested.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/number.svg b/src/assets/icons/svg/number.svg new file mode 100644 index 0000000..ad5ce9a --- /dev/null +++ b/src/assets/icons/svg/number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/online.svg b/src/assets/icons/svg/online.svg new file mode 100644 index 0000000..330a202 --- /dev/null +++ b/src/assets/icons/svg/online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/password.svg b/src/assets/icons/svg/password.svg new file mode 100644 index 0000000..6c64def --- /dev/null +++ b/src/assets/icons/svg/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pdf.svg b/src/assets/icons/svg/pdf.svg new file mode 100644 index 0000000..957aa0c --- /dev/null +++ b/src/assets/icons/svg/pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/people.svg b/src/assets/icons/svg/people.svg new file mode 100644 index 0000000..2bd54ae --- /dev/null +++ b/src/assets/icons/svg/people.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/peoples.svg b/src/assets/icons/svg/peoples.svg new file mode 100644 index 0000000..aab852e --- /dev/null +++ b/src/assets/icons/svg/peoples.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/phone.svg b/src/assets/icons/svg/phone.svg new file mode 100644 index 0000000..ab8e8c4 --- /dev/null +++ b/src/assets/icons/svg/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/post.svg b/src/assets/icons/svg/post.svg new file mode 100644 index 0000000..2922c61 --- /dev/null +++ b/src/assets/icons/svg/post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/qq.svg b/src/assets/icons/svg/qq.svg new file mode 100644 index 0000000..ee13d4e --- /dev/null +++ b/src/assets/icons/svg/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/question.svg b/src/assets/icons/svg/question.svg new file mode 100644 index 0000000..cf75bd4 --- /dev/null +++ b/src/assets/icons/svg/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/radio.svg b/src/assets/icons/svg/radio.svg new file mode 100644 index 0000000..0cde345 --- /dev/null +++ b/src/assets/icons/svg/radio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/rate.svg b/src/assets/icons/svg/rate.svg new file mode 100644 index 0000000..aa3b14d --- /dev/null +++ b/src/assets/icons/svg/rate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/redis.svg b/src/assets/icons/svg/redis.svg new file mode 100644 index 0000000..2f1d62d --- /dev/null +++ b/src/assets/icons/svg/redis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/row.svg b/src/assets/icons/svg/row.svg new file mode 100644 index 0000000..0780992 --- /dev/null +++ b/src/assets/icons/svg/row.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/search.svg b/src/assets/icons/svg/search.svg new file mode 100644 index 0000000..84233dd --- /dev/null +++ b/src/assets/icons/svg/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/select.svg b/src/assets/icons/svg/select.svg new file mode 100644 index 0000000..d628382 --- /dev/null +++ b/src/assets/icons/svg/select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/server.svg b/src/assets/icons/svg/server.svg new file mode 100644 index 0000000..ca37b00 --- /dev/null +++ b/src/assets/icons/svg/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/shopping.svg b/src/assets/icons/svg/shopping.svg new file mode 100644 index 0000000..87513e7 --- /dev/null +++ b/src/assets/icons/svg/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/size.svg b/src/assets/icons/svg/size.svg new file mode 100644 index 0000000..ddb25b8 --- /dev/null +++ b/src/assets/icons/svg/size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skill.svg b/src/assets/icons/svg/skill.svg new file mode 100644 index 0000000..a3b7312 --- /dev/null +++ b/src/assets/icons/svg/skill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/slider.svg b/src/assets/icons/svg/slider.svg new file mode 100644 index 0000000..fbe4f39 --- /dev/null +++ b/src/assets/icons/svg/slider.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/star.svg b/src/assets/icons/svg/star.svg new file mode 100644 index 0000000..6cf86e6 --- /dev/null +++ b/src/assets/icons/svg/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/swagger.svg b/src/assets/icons/svg/swagger.svg new file mode 100644 index 0000000..05d4e7b --- /dev/null +++ b/src/assets/icons/svg/swagger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/switch.svg b/src/assets/icons/svg/switch.svg new file mode 100644 index 0000000..0ba61e3 --- /dev/null +++ b/src/assets/icons/svg/switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/system.svg b/src/assets/icons/svg/system.svg new file mode 100644 index 0000000..dba28cf --- /dev/null +++ b/src/assets/icons/svg/system.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tab.svg b/src/assets/icons/svg/tab.svg new file mode 100644 index 0000000..b4b48e4 --- /dev/null +++ b/src/assets/icons/svg/tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/table.svg b/src/assets/icons/svg/table.svg new file mode 100644 index 0000000..0e3dc9d --- /dev/null +++ b/src/assets/icons/svg/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/textarea.svg b/src/assets/icons/svg/textarea.svg new file mode 100644 index 0000000..2709f29 --- /dev/null +++ b/src/assets/icons/svg/textarea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/theme.svg b/src/assets/icons/svg/theme.svg new file mode 100644 index 0000000..5982a2f --- /dev/null +++ b/src/assets/icons/svg/theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/time-range.svg b/src/assets/icons/svg/time-range.svg new file mode 100644 index 0000000..13c1202 --- /dev/null +++ b/src/assets/icons/svg/time-range.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/time.svg b/src/assets/icons/svg/time.svg new file mode 100644 index 0000000..b376e32 --- /dev/null +++ b/src/assets/icons/svg/time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tool.svg b/src/assets/icons/svg/tool.svg new file mode 100644 index 0000000..c813067 --- /dev/null +++ b/src/assets/icons/svg/tool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tree-table.svg b/src/assets/icons/svg/tree-table.svg new file mode 100644 index 0000000..8aafdb8 --- /dev/null +++ b/src/assets/icons/svg/tree-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tree.svg b/src/assets/icons/svg/tree.svg new file mode 100644 index 0000000..dd4b7dd --- /dev/null +++ b/src/assets/icons/svg/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/upload.svg b/src/assets/icons/svg/upload.svg new file mode 100644 index 0000000..bae49c0 --- /dev/null +++ b/src/assets/icons/svg/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/user.svg b/src/assets/icons/svg/user.svg new file mode 100644 index 0000000..0ba0716 --- /dev/null +++ b/src/assets/icons/svg/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/validCode.svg b/src/assets/icons/svg/validCode.svg new file mode 100644 index 0000000..cfb1021 --- /dev/null +++ b/src/assets/icons/svg/validCode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/wechat.svg b/src/assets/icons/svg/wechat.svg new file mode 100644 index 0000000..c586e55 --- /dev/null +++ b/src/assets/icons/svg/wechat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/zip.svg b/src/assets/icons/svg/zip.svg new file mode 100644 index 0000000..f806fc4 --- /dev/null +++ b/src/assets/icons/svg/zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svgo.yml b/src/assets/icons/svgo.yml new file mode 100644 index 0000000..d11906a --- /dev/null +++ b/src/assets/icons/svgo.yml @@ -0,0 +1,22 @@ +# replace default config + +# multipass: true +# full: true + +plugins: + + # - name + # + # or: + # - name: false + # - name: true + # + # or: + # - name: + # param1: 1 + # param2: 2 + +- removeAttrs: + attrs: + - 'fill' + - 'fill-rule' diff --git a/src/assets/images/all-cate.svg b/src/assets/images/all-cate.svg new file mode 100644 index 0000000..ff281ed --- /dev/null +++ b/src/assets/images/all-cate.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/images/avatar.png b/src/assets/images/avatar.png new file mode 100644 index 0000000..cc951fb Binary files /dev/null and b/src/assets/images/avatar.png differ diff --git a/src/assets/images/cashier.png b/src/assets/images/cashier.png new file mode 100644 index 0000000..2f45e4a Binary files /dev/null and b/src/assets/images/cashier.png differ diff --git a/src/assets/images/cashier.svg b/src/assets/images/cashier.svg new file mode 100644 index 0000000..5144284 --- /dev/null +++ b/src/assets/images/cashier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/dark.svg b/src/assets/images/dark.svg new file mode 100644 index 0000000..f646bd7 --- /dev/null +++ b/src/assets/images/dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/goods.png b/src/assets/images/goods.png new file mode 100644 index 0000000..e226ba7 Binary files /dev/null and b/src/assets/images/goods.png differ diff --git a/src/assets/images/home/card.png b/src/assets/images/home/card.png new file mode 100644 index 0000000..96371bf Binary files /dev/null and b/src/assets/images/home/card.png differ diff --git a/src/assets/images/home/coupon.png b/src/assets/images/home/coupon.png new file mode 100644 index 0000000..c282eb2 Binary files /dev/null and b/src/assets/images/home/coupon.png differ diff --git a/src/assets/images/home/goods.png b/src/assets/images/home/goods.png new file mode 100644 index 0000000..8a2844d Binary files /dev/null and b/src/assets/images/home/goods.png differ diff --git a/src/assets/images/home/member.png b/src/assets/images/home/member.png new file mode 100644 index 0000000..f198c38 Binary files /dev/null and b/src/assets/images/home/member.png differ diff --git a/src/assets/images/home/order.png b/src/assets/images/home/order.png new file mode 100644 index 0000000..c5a3340 Binary files /dev/null and b/src/assets/images/home/order.png differ diff --git a/src/assets/images/home/pay.png b/src/assets/images/home/pay.png new file mode 100644 index 0000000..b9cb819 Binary files /dev/null and b/src/assets/images/home/pay.png differ diff --git a/src/assets/images/hot.png b/src/assets/images/hot.png new file mode 100644 index 0000000..164072f Binary files /dev/null and b/src/assets/images/hot.png differ diff --git a/src/assets/images/icon-cart.svg b/src/assets/images/icon-cart.svg new file mode 100644 index 0000000..65c2eb9 --- /dev/null +++ b/src/assets/images/icon-cart.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/images/life.png b/src/assets/images/life.png new file mode 100644 index 0000000..1d04c05 Binary files /dev/null and b/src/assets/images/life.png differ diff --git a/src/assets/images/light.svg b/src/assets/images/light.svg new file mode 100644 index 0000000..ab7cc08 --- /dev/null +++ b/src/assets/images/light.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/login-bg.png b/src/assets/images/login-bg.png new file mode 100644 index 0000000..9f1e494 Binary files /dev/null and b/src/assets/images/login-bg.png differ diff --git a/src/assets/images/love.png b/src/assets/images/love.png new file mode 100644 index 0000000..6de11fe Binary files /dev/null and b/src/assets/images/love.png differ diff --git a/src/assets/images/office.png b/src/assets/images/office.png new file mode 100644 index 0000000..d569f0d Binary files /dev/null and b/src/assets/images/office.png differ diff --git a/src/assets/images/order.png b/src/assets/images/order.png new file mode 100644 index 0000000..9de8744 Binary files /dev/null and b/src/assets/images/order.png differ diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png new file mode 100644 index 0000000..7a0473a Binary files /dev/null and b/src/assets/logo/logo.png differ diff --git a/src/assets/styles/btn.scss b/src/assets/styles/btn.scss new file mode 100644 index 0000000..e6ba1a8 --- /dev/null +++ b/src/assets/styles/btn.scss @@ -0,0 +1,99 @@ +@import './variables.scss'; + +@mixin colorBtn($color) { + background: $color; + + &:hover { + color: $color; + + &:before, + &:after { + background: $color; + } + } +} + +.blue-btn { + @include colorBtn($blue) +} + +.light-blue-btn { + @include colorBtn($light-blue) +} + +.red-btn { + @include colorBtn($red) +} + +.pink-btn { + @include colorBtn($pink) +} + +.green-btn { + @include colorBtn($green) +} + +.tiffany-btn { + @include colorBtn($tiffany) +} + +.yellow-btn { + @include colorBtn($yellow) +} + +.pan-btn { + font-size: 14px; + color: #fff; + padding: 14px 36px; + border-radius: 8px; + border: none; + outline: none; + transition: 600ms ease all; + position: relative; + display: inline-block; + + &:hover { + background: #fff; + + &:before, + &:after { + width: 100%; + transition: 600ms ease all; + } + } + + &:before, + &:after { + content: ''; + position: absolute; + top: 0; + right: 0; + height: 2px; + width: 0; + transition: 400ms ease all; + } + + &::after { + right: inherit; + top: inherit; + left: 0; + bottom: 0; + } +} + +.custom-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #fff; + color: #fff; + -webkit-appearance: none; + text-align: center; + box-sizing: border-box; + outline: 0; + margin: 0; + padding: 10px 15px; + font-size: 14px; + border-radius: 4px; +} diff --git a/src/assets/styles/common.scss b/src/assets/styles/common.scss new file mode 100644 index 0000000..d4d393f --- /dev/null +++ b/src/assets/styles/common.scss @@ -0,0 +1,396 @@ + /** + * 通用css样式布局处理 + */ + /** 基础通用 **/ +.pt5 { + padding-top: 5px; +} +.pr5 { + padding-right: 5px; +} +.pb5 { + padding-bottom: 5px; +} +.mt5 { + margin-top: 5px; +} +.mr5 { + margin-right: 5px; +} +.mb5 { + margin-bottom: 5px; +} +.mb8 { + margin-bottom: 8px; +} +.ml5 { + margin-left: 5px; +} +.mt10 { + margin-top: 10px; +} +.mr10 { + margin-right: 10px; +} +.mb10 { + margin-bottom: 10px; +} +.ml10 { + margin-left: 10px; +} +.mt20 { + margin-top: 20px; +} +.mr20 { + margin-right: 20px; +} +.mb20 { + margin-bottom: 20px; +} +.ml20 { + margin-left: 20px; +} +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +.main-panel { + border: solid 1px #ccc; + padding: 25px 10px 20px 10px; + .input { + width: 450px; + } + .min-input { + width: 240px; + } + .el-upload { + width: 80px; + height: 80px; + line-height: 88px; + } + .el-upload-list__item { + width: 80px; + height: 80px; + } + .footer { + margin-left: 80px; + } +} +.el-dialog:not(.is-fullscreen) { + margin-top: 6vh !important; +} +.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body { + overflow: auto; + overflow-x: hidden; + max-height: 70vh; + padding: 10px 20px 0; +} +.el-table { + .el-table__header-wrapper, .el-table__fixed-header-wrapper { + th { + word-break: break-word; + background-color: #f8f8f9; + color: #515a6e; + height: 40px; + font-size: 13px; + } + } + .el-table__body-wrapper { + .el-button [class*="el-icon-"] + span { + margin-left: 1px; + } + } +} + +/** 表单布局 **/ +.form-header { + font-size:15px; + color:#6379bb; + border-bottom:1px solid #ddd; + margin:8px 10px 25px 10px; + padding-bottom:5px +} + +/** 表单提示 **/ +.form-tips { + font-size: 12px; + color: #888; + height: 12px; + padding-left: 5px; + line-height: 12px; + margin-top: 5px; +} + +/** 表格布局 **/ +.pagination-container { + position: relative; + height: 25px; + margin-bottom: 10px; + margin-top: 15px; + padding: 10px 20px !important; +} + +/* tree border */ +.tree-border { + margin-top: 5px; + border: 1px solid #e5e6e7; + background: #FFFFFF none; + border-radius:4px; +} + +.pagination-container .el-pagination { + right: 0; + position: absolute; +} + +@media ( max-width : 768px) { + .pagination-container .el-pagination > .el-pagination__jump { + display: none !important; + } + .pagination-container .el-pagination > .el-pagination__sizes { + display: none !important; + } +} + +.el-table .fixed-width .el-button--mini { + padding-left: 0; + padding-right: 0; + width: inherit; +} + +/** 表格更多操作下拉样式 */ +.el-table .el-dropdown-link { + cursor: pointer; + color: #00acac; + margin-left: 5px; +} + +.el-table .el-dropdown, .el-icon-arrow-down { + font-size: 12px; +} + +.el-tree-node__content > .el-checkbox { + margin-right: 8px; +} + +.list-group-striped > .list-group-item { + border-left: 0; + border-right: 0; + border-radius: 0; + padding-left: 0; + padding-right: 0; +} + +.list-group { + padding-left: 0px; + list-style: none; +} + +.list-group-item { + border-bottom: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + margin-bottom: -1px; + padding: 11px 0px; + font-size: 13px; +} + +.pull-right { + float: right !important; +} + +.el-card__header { + padding: 14px 15px 7px; + min-height: 40px; +} + +.el-card__body { + padding: 15px 20px 20px 20px; +} + +.card-box { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 10px; +} + +/* button color */ +.el-button--cyan.is-active, +.el-button--cyan:active { + background: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +.el-button--cyan:focus, +.el-button--cyan:hover { + background: #48D1CC; + border-color: #48D1CC; + color: #FFFFFF; +} + +.el-button--cyan { + background-color: #20B2AA; + border-color: #20B2AA; + color: #FFFFFF; +} + +/* text color */ +.text-navy { + color: #1ab394; +} + +.text-primary { + color: inherit; +} + +.text-success { + color: #00acac; +} + +.text-info { + color: #23c6c8; +} + +.text-warning { + color: #f8ac59; +} + +.text-danger { + color: #ed5565; +} + +.text-muted { + color: #888888; +} + +/* image */ +.img-circle { + border-radius: 50%; +} + +.img-lg { + width: 120px; + height: 120px; +} + +.avatar-upload-preview { + position: absolute; + top: 50%; + transform: translate(50%, -50%); + width: 200px; + height: 200px; + border-radius: 50%; + box-shadow: 0 0 4px #ccc; + overflow: hidden; +} + +/* 拖拽列样式 */ +.sortable-ghost{ + opacity: .8; + color: #fff!important; + background: #42b983!important; +} + +.top-right-btn { + position: relative; + float: right; +} +.no-border { + border: none; +} +.list-img { + width: 58px; + height: 48px; + border-radius: 5px; + border: 1px solid #ccc; +} +.list-qr { + width: 70px; + height: 70px; + border-radius: 5px; + border: 1px solid #ccc; +} +.list-avatar { + width: 45px; + height: 45px; + border-radius: 30px; + border: 1px solid #ccc; + } +.el-upload { + width: 150px; + height: 150px; + line-height: 150px; +} +.mini-btn { + padding: 4px 8px 4px 8px; +} +.status-active { + color: #52c41a; + background: #f6ffed; + border: #b7eb8f solid 1px; + border-radius: 20px; + display: block; + font-size: 90%; + text-align: center; +} +.status-disabled { + color: #f5222d; + background: #fff1f0; + border: #ffa39e solid 1px; + border-radius: 20px; + font-size: 90%; + display: block; + text-align: center; +} +.status-normal { + color: #666666; + background: #ffffff; + border: #666666 solid 1px; + border-radius: 20px; + display: block; + font-size: 90%; + text-align: center; +// cursor: pointer; +} +.status-warning { + color: #e6a23c; + background: #ffffff; + border: #e6a23c solid 1px; + border-radius: 20px; + display: block; + font-size: 90%; + text-align: center; + // cursor: pointer; + } +.nav-icon { + cursor: pointer; +} +.nav-tool { + cursor: pointer; + text-align: center; + .icon { + margin-left: 10px; + margin-top: 6px; + width: 25px; + height: 25px; + clear: both; + display: block; + } + .name { + font-size: 12px; + clear: both; + padding: 0px; + margin: 0px; + line-height: 20px; + font-weight: bold; + } +} +.main-search { + background: #f5f5f5; + padding: 10px; + border-radius: 3px; + margin-bottom: 3px; + border: solid 1px #cccccc; +} diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss new file mode 100644 index 0000000..ccfdd3a --- /dev/null +++ b/src/assets/styles/element-ui.scss @@ -0,0 +1,116 @@ +// cover some element-ui styles + +.el-breadcrumb__inner, +.el-breadcrumb__inner a { + font-weight: 400 !important; +} + +.el-upload { + input[type="file"] { + display: none !important; + } +} + +.el-upload__input { + display: none; +} + +.cell { + .el-tag { + margin-right: 0px; + } +} + +.small-padding { + .cell { + padding-left: 5px; + padding-right: 5px; + } +} + +.fixed-width { + .el-button--mini { + padding: 7px 10px; + width: 60px; + } +} + +.status-col { + .cell { + padding: 0 10px; + text-align: center; + + .el-tag { + margin-right: 0px; + } + } +} + +// to fixed https://github.com/ElemeFE/element/issues/2461 +.el-dialog { + transform: none; + left: 0; + position: relative; + margin: 0 auto; +} + +// refine element ui upload +.upload-container { + .el-upload { + width: 100%; + + .el-upload-dragger { + width: 100%; + height: 200px; + } + } +} + +// dropdown +.el-dropdown-menu { + a { + display: block + } +} + +// fix date-picker ui bug in filter-item +.el-range-editor.el-input__inner { + display: inline-flex !important; +} + +// to fix el-date-picker css style +.el-range-separator { + box-sizing: content-box; +} + +.el-menu--collapse + > div + > .el-submenu + > .el-submenu__title + .el-submenu__icon-arrow { + display: none; +} + +.common-dialog { + .el-dialog { + border: solid 6px #00acac; + } + .el-dialog__header{ + background: #00acac; + padding: 10px; + } + .el-dialog__headerbtn { + top: 15px; + } + .el-dialog__body { + padding: 30px; + } + .el-dialog__title,.el-dialog__close{ + color: #fff; + font-size: 14px; + } + .el-dialog__title,.el-dialog__close:hover{ + color: #fff; + font-weight: bold; + } +} diff --git a/src/assets/styles/element-variables.scss b/src/assets/styles/element-variables.scss new file mode 100644 index 0000000..3ae7d05 --- /dev/null +++ b/src/assets/styles/element-variables.scss @@ -0,0 +1,31 @@ +/** +* I think element-ui's default theme color is too light for long-term use. +* So I modified the default color and you can modify it to your liking. +**/ + +/* theme color */ +$--color-primary: #00acac; +$--color-success: #13ce66; +$--color-warning: #ffba00; +$--color-danger: #ff4949; +// $--color-info: #1E1E1E; + +$--button-font-weight: 400; + +// $--color-text-regular: #1f2d3d; + +$--border-color-light: #dfe4ed; +$--border-color-lighter: #e6ebf5; + +$--table-border:1px solid #dfe6ec; + +/* icon font path, required */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import "~element-ui/packages/theme-chalk/src/index"; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + theme: $--color-primary; +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss new file mode 100644 index 0000000..96095ef --- /dev/null +++ b/src/assets/styles/index.scss @@ -0,0 +1,191 @@ +@import './variables.scss'; +@import './mixin.scss'; +@import './transition.scss'; +@import './element-ui.scss'; +@import './sidebar.scss'; +@import './btn.scss'; + +body { + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; +} + +label { + font-weight: 700; +} + +html { + height: 100%; + box-sizing: border-box; +} + +#app { + height: 100%; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +.no-padding { + padding: 0px !important; +} + +.padding-content { + padding: 4px 0; +} + +a:focus, +a:active { + outline: none; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + text-decoration: none; +} + +div:focus { + outline: none; +} + +.fr { + float: right; +} + +.fl { + float: left; +} + +.pr-5 { + padding-right: 5px; +} + +.pl-5 { + padding-left: 5px; +} + +.block { + display: block; +} + +.pointer { + cursor: pointer; +} + +.inlineBlock { + display: block; +} + +.clearfix { + &:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } +} + +aside { + background: #eef1f6; + padding: 8px 24px; + margin-bottom: 20px; + border-radius: 2px; + display: block; + line-height: 32px; + font-size: 16px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + color: #2c3e50; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + a { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } + } +} + +//main-container全局样式 +.app-container { + padding: 20px; +} + +.components-container { + margin: 30px 50px; + position: relative; +} + +.pagination-container { + margin-top: 30px; +} + +.text-center { + text-align: center +} + +.sub-navbar { + height: 50px; + line-height: 50px; + position: relative; + width: 100%; + text-align: right; + padding-right: 20px; + transition: 600ms ease position; + background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%); + + .subtitle { + font-size: 20px; + color: #fff; + } + + &.draft { + background: #d0d0d0; + } + + &.deleted { + background: #d0d0d0; + } +} + +.link-type, +.link-type:focus { + color: #337ab7; + cursor: pointer; + + &:hover { + color: rgb(32, 160, 255); + } +} + +.filter-container { + padding-bottom: 10px; + + .filter-item { + display: inline-block; + vertical-align: middle; + margin-bottom: 10px; + } +} + +//refine vue-multiselect plugin +.multiselect { + line-height: 16px; +} + +.multiselect--active { + z-index: 1000 !important; +} diff --git a/src/assets/styles/mixin.scss b/src/assets/styles/mixin.scss new file mode 100644 index 0000000..06fa061 --- /dev/null +++ b/src/assets/styles/mixin.scss @@ -0,0 +1,66 @@ +@mixin clearfix { + &:after { + content: ""; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + +@mixin pct($pct) { + width: #{$pct}; + position: relative; + margin: 0 auto; +} + +@mixin triangle($width, $height, $color, $direction) { + $width: $width/2; + $color-border-style: $height solid $color; + $transparent-border-style: $width solid transparent; + height: 0; + width: 0; + + @if $direction==up { + border-bottom: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } + + @else if $direction==right { + border-left: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } + + @else if $direction==down { + border-top: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } + + @else if $direction==left { + border-right: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } +} diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss new file mode 100644 index 0000000..f827d32 --- /dev/null +++ b/src/assets/styles/sidebar.scss @@ -0,0 +1,228 @@ +#app { + + .main-container { + min-height: 100%; + transition: margin-left .28s; + margin-left: $base-sidebar-width; + position: relative; + } + + .sidebarHide { + margin-left: 0!important; + } + + .sidebar-container { + -webkit-transition: width .28s; + transition: width 0.28s; + width: $base-sidebar-width !important; + background-color: $base-menu-background; + height: 100%; + position: fixed; + font-size: 0px; + top: 0; + bottom: 0; + left: 0; + z-index: 1001; + overflow: hidden; + -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); + box-shadow: 2px 0 6px rgba(0,21,41,.35); + margin-bottom: 100px; + // reset element-ui css + .horizontal-collapse-transition { + transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; + } + + .scrollbar-wrapper { + overflow-x: hidden !important; + } + + .el-scrollbar__bar.is-vertical { + right: 0px; + } + + .el-scrollbar { + height: 100%; + } + + &.has-logo { + .el-scrollbar { + height: calc(100% - 50px); + } + } + + .is-horizontal { + display: none; + } + + a { + display: inline-block; + width: 100%; + overflow: hidden; + } + + .svg-icon { + margin-right: 16px; + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + } + + .el-menu-item, .el-submenu__title { + overflow: hidden !important; + text-overflow: ellipsis !important; + white-space: nowrap !important; + height: 48px; + line-height: 48px; + } + + // menu hover + .submenu-title-noDropdown, + .el-submenu__title { + &:hover { + background-color: rgba(0, 0, 0, 0.06) !important; + } + } + + & .theme-dark .is-active > .el-submenu__title { + color: $base-menu-color-active !important; + } + + & .nest-menu .el-submenu>.el-submenu__title, + & .el-submenu .el-menu-item { + min-width: $base-sidebar-width !important; + background: red; + &:hover { + background-color: rgba(0, 0, 0, 0.06) !important; + } + } + + & .theme-dark .nest-menu .el-submenu>.el-submenu__title, + & .theme-dark .el-submenu .el-menu-item { + background-color: $base-sub-menu-background !important; + + &:hover { + background-color: $base-sub-menu-hover !important; + } + } + } + + .hideSidebar { + .sidebar-container { + width: 54px !important; + } + + .main-container { + margin-left: 54px; + } + + .submenu-title-noDropdown { + padding: 0 !important; + position: relative; + .el-tooltip { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + } + } + + .el-submenu { + overflow: hidden; + + &>.el-submenu__title { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + + } + } + + .el-menu--collapse { + .el-submenu { + &>.el-submenu__title { + &>span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } + } + } + } + + .el-menu--collapse .el-menu .el-submenu { + min-width: $base-sidebar-width !important; + } + + // mobile responsive + .mobile { + .main-container { + margin-left: 0px; + } + + .sidebar-container { + transition: transform .28s; + width: $base-sidebar-width !important; + } + + &.hideSidebar { + .sidebar-container { + pointer-events: none; + transition-duration: 0.3s; + transform: translate3d(-$base-sidebar-width, 0, 0); + } + } + } + + .withoutAnimation { + + .main-container, + .sidebar-container { + transition: none; + } + } +} + +// when menu collapsed +.el-menu--vertical { + &>.el-menu { + .svg-icon { + margin-right: 16px; + } + } + + .nest-menu .el-submenu>.el-submenu__title, + .el-menu-item { + &:hover { + // you can use $subMenuHover + background-color: rgba(0, 0, 0, 0.06) !important; + } + } + + // the scroll bar appears when the subMenu is too long + >.el-menu--popup { + max-height: 100vh; + overflow-y: auto; + + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } + } +} diff --git a/src/assets/styles/transition.scss b/src/assets/styles/transition.scss new file mode 100644 index 0000000..4cb27cc --- /dev/null +++ b/src/assets/styles/transition.scss @@ -0,0 +1,48 @@ +// global transition css + +/* fade */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/* fade-transform */ +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all .5s; +} + +.fade-transform-enter { + opacity: 0; + transform: translateX(-30px); +} + +.fade-transform-leave-to { + opacity: 0; + transform: translateX(30px); +} + +/* breadcrumb transition */ +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all .5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all .5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/src/assets/styles/variables.scss b/src/assets/styles/variables.scss new file mode 100644 index 0000000..fa32342 --- /dev/null +++ b/src/assets/styles/variables.scss @@ -0,0 +1,39 @@ +// base color +$blue:#324157; +$light-blue:#3A71A8; +$red:#C03639; +$pink: #E65D6E; +$green: #30B08F; +$tiffany: #4AB7BD; +$yellow:#FEC171; +$panGreen: #30B08F; + +// 默认菜单主题风格 +$base-menu-color:#bfcbd9; +$base-menu-color-active:#f4f4f5; +$base-menu-background:#304156; +$base-logo-title-color: #ffffff; + +$base-menu-light-color:rgba(0,0,0,.70); +$base-menu-light-background:#ffffff; +$base-logo-light-title-color: #001529; + +$base-sub-menu-background:#1f2d3d; +$base-sub-menu-hover:#001528; + +$base-sidebar-width: 200px; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + menuColor: $base-menu-color; + menuLightColor: $base-menu-light-color; + menuColorActive: $base-menu-color-active; + menuBackground: $base-menu-background; + menuLightBackground: $base-menu-light-background; + subMenuBackground: $base-sub-menu-background; + subMenuHover: $base-sub-menu-hover; + sideBarWidth: $base-sidebar-width; + logoTitleColor: $base-logo-title-color; + logoLightTitleColor: $base-logo-light-title-color +} diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue new file mode 100644 index 0000000..1696f54 --- /dev/null +++ b/src/components/Breadcrumb/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/Crontab/day.vue b/src/components/Crontab/day.vue new file mode 100644 index 0000000..19ba773 --- /dev/null +++ b/src/components/Crontab/day.vue @@ -0,0 +1,161 @@ + + + diff --git a/src/components/Crontab/hour.vue b/src/components/Crontab/hour.vue new file mode 100644 index 0000000..1c171c1 --- /dev/null +++ b/src/components/Crontab/hour.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/components/Crontab/index.vue b/src/components/Crontab/index.vue new file mode 100644 index 0000000..3963df2 --- /dev/null +++ b/src/components/Crontab/index.vue @@ -0,0 +1,430 @@ + + + + diff --git a/src/components/Crontab/min.vue b/src/components/Crontab/min.vue new file mode 100644 index 0000000..685a9cc --- /dev/null +++ b/src/components/Crontab/min.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/components/Crontab/month.vue b/src/components/Crontab/month.vue new file mode 100644 index 0000000..5e0008e --- /dev/null +++ b/src/components/Crontab/month.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/components/Crontab/result.vue b/src/components/Crontab/result.vue new file mode 100644 index 0000000..ddd8f04 --- /dev/null +++ b/src/components/Crontab/result.vue @@ -0,0 +1,559 @@ + + + diff --git a/src/components/Crontab/second.vue b/src/components/Crontab/second.vue new file mode 100644 index 0000000..bf381df --- /dev/null +++ b/src/components/Crontab/second.vue @@ -0,0 +1,117 @@ + + + diff --git a/src/components/Crontab/week.vue b/src/components/Crontab/week.vue new file mode 100644 index 0000000..06d0367 --- /dev/null +++ b/src/components/Crontab/week.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/components/Crontab/year.vue b/src/components/Crontab/year.vue new file mode 100644 index 0000000..3019a11 --- /dev/null +++ b/src/components/Crontab/year.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/components/DictData/index.js b/src/components/DictData/index.js new file mode 100644 index 0000000..c2a0359 --- /dev/null +++ b/src/components/DictData/index.js @@ -0,0 +1,21 @@ +import Vue from 'vue' +import DataDict from '@/utils/dict' +import { getDicts as getDicts } from '@/api/system/dict/data' + +function install() { + Vue.use(DataDict, { + metas: { + '*': { + labelField: 'dictLabel', + valueField: 'dictValue', + request(dictMeta) { + return getDicts(dictMeta.type).then(res => res.data) + }, + }, + }, + }) +} + +export default { + install, +} \ No newline at end of file diff --git a/src/components/DictTag/index.vue b/src/components/DictTag/index.vue new file mode 100644 index 0000000..4c196c4 --- /dev/null +++ b/src/components/DictTag/index.vue @@ -0,0 +1,52 @@ + + + + \ No newline at end of file diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue new file mode 100644 index 0000000..715a871 --- /dev/null +++ b/src/components/Editor/index.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue new file mode 100644 index 0000000..fc1b5e3 --- /dev/null +++ b/src/components/FileUpload/index.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/src/components/Hamburger/index.vue b/src/components/Hamburger/index.vue new file mode 100644 index 0000000..368b002 --- /dev/null +++ b/src/components/Hamburger/index.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue new file mode 100644 index 0000000..83548d5 --- /dev/null +++ b/src/components/HeaderSearch/index.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/components/IconSelect/index.vue b/src/components/IconSelect/index.vue new file mode 100644 index 0000000..b0ec9fa --- /dev/null +++ b/src/components/IconSelect/index.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/src/components/IconSelect/requireIcons.js b/src/components/IconSelect/requireIcons.js new file mode 100644 index 0000000..99e5c54 --- /dev/null +++ b/src/components/IconSelect/requireIcons.js @@ -0,0 +1,11 @@ + +const req = require.context('../../assets/icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const icons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default icons diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue new file mode 100644 index 0000000..743d8d5 --- /dev/null +++ b/src/components/ImagePreview/index.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue new file mode 100644 index 0000000..4bf14c0 --- /dev/null +++ b/src/components/ImageUpload/index.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue new file mode 100644 index 0000000..56f5a6b --- /dev/null +++ b/src/components/Pagination/index.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/components/PanThumb/index.vue b/src/components/PanThumb/index.vue new file mode 100644 index 0000000..1bcf417 --- /dev/null +++ b/src/components/PanThumb/index.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/src/components/ParentView/index.vue b/src/components/ParentView/index.vue new file mode 100644 index 0000000..7bf6148 --- /dev/null +++ b/src/components/ParentView/index.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 0000000..fbf27eb --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,149 @@ + + + + + + + diff --git a/src/components/RightToolbar/index.vue b/src/components/RightToolbar/index.vue new file mode 100644 index 0000000..f7663a3 --- /dev/null +++ b/src/components/RightToolbar/index.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue new file mode 100644 index 0000000..c8bc9a5 --- /dev/null +++ b/src/components/Screenfull/index.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue new file mode 100644 index 0000000..069b5de --- /dev/null +++ b/src/components/SizeSelect/index.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..e4bf5ad --- /dev/null +++ b/src/components/SvgIcon/index.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/ThemePicker/index.vue b/src/components/ThemePicker/index.vue new file mode 100644 index 0000000..3a41b9b --- /dev/null +++ b/src/components/ThemePicker/index.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/components/TopNav/index.vue b/src/components/TopNav/index.vue new file mode 100644 index 0000000..f780b16 --- /dev/null +++ b/src/components/TopNav/index.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/components/TreeSelect/index.vue b/src/components/TreeSelect/index.vue new file mode 100644 index 0000000..bcf5e09 --- /dev/null +++ b/src/components/TreeSelect/index.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue new file mode 100644 index 0000000..0a13ecb --- /dev/null +++ b/src/components/UserSelect/index.vue @@ -0,0 +1,196 @@ + + + + diff --git a/src/components/iFrame/index.vue b/src/components/iFrame/index.vue new file mode 100644 index 0000000..426857f --- /dev/null +++ b/src/components/iFrame/index.vue @@ -0,0 +1,36 @@ +