zjs_project hace 2 semanas
commit
cef162852c
Se han modificado 100 ficheros con 7150 adiciones y 0 borrados
  1. 4 0
      .env.production.example
  2. 43 0
      .eslintrc.cjs
  3. 35 0
      .gitignore
  4. 21 0
      LICENSE
  5. 12 0
      README.md
  6. 1 0
      global.d.ts
  7. 66 0
      index.html
  8. 5850 0
      package-lock.json
  9. 62 0
      package.json
  10. 6 0
      postcss.config.js
  11. 37 0
      scripts/build.mjs
  12. 58 0
      src/App.vue
  13. 11 0
      src/api/app.ts
  14. 69 0
      src/api/article.ts
  15. 11 0
      src/api/channel/h5.ts
  16. 11 0
      src/api/channel/weapp.ts
  17. 112 0
      src/api/channel/wx_oa.ts
  18. 11 0
      src/api/channel/wx_op.ts
  19. 16 0
      src/api/consumer.ts
  20. 26 0
      src/api/decoration.ts
  21. 39 0
      src/api/file.ts
  22. 31 0
      src/api/message.ts
  23. 45 0
      src/api/order.ts
  24. 9 0
      src/api/orders.ts
  25. 31 0
      src/api/org/department.ts
  26. 30 0
      src/api/org/post.ts
  27. 31 0
      src/api/perms/admin.ts
  28. 26 0
      src/api/perms/menu.ts
  29. 29 0
      src/api/perms/role.ts
  30. 61 0
      src/api/setting/dict.ts
  31. 27 0
      src/api/setting/search.ts
  32. 21 0
      src/api/setting/storage.ts
  33. 46 0
      src/api/setting/system.ts
  34. 42 0
      src/api/setting/user.ts
  35. 27 0
      src/api/setting/website.ts
  36. 25 0
      src/api/shop.ts
  37. 75 0
      src/api/tools/code.ts
  38. 32 0
      src/api/user.ts
  39. 1 0
      src/assets/icons/Androidfanhui.svg
  40. 1 0
      src/assets/icons/KMSguanli.svg
  41. 1 0
      src/assets/icons/KTVyuding.svg
  42. 1 0
      src/assets/icons/a-tixingdengpao.svg
  43. 1 0
      src/assets/icons/anquan.svg
  44. 1 0
      src/assets/icons/anquan_mian.svg
  45. 1 0
      src/assets/icons/anquan_mian1.svg
  46. 1 0
      src/assets/icons/banxing_mian.svg
  47. 1 0
      src/assets/icons/baoxian.svg
  48. 1 0
      src/assets/icons/bendishenghuodaxue.svg
  49. 1 0
      src/assets/icons/bianji.svg
  50. 1 0
      src/assets/icons/biaoqing.svg
  51. 1 0
      src/assets/icons/bukejian.svg
  52. 1 0
      src/assets/icons/caipinguanli.svg
  53. 1 0
      src/assets/icons/caiwu.svg
  54. 1 0
      src/assets/icons/caiwu_jifen.svg
  55. 1 0
      src/assets/icons/caiwu_tixian.svg
  56. 1 0
      src/assets/icons/canyinfuwu.svg
  57. 1 0
      src/assets/icons/carryout.svg
  58. 1 0
      src/assets/icons/chexiao.svg
  59. 1 0
      src/assets/icons/chihuohongbao.svg
  60. 1 0
      src/assets/icons/chuangyiwuliao.svg
  61. 1 0
      src/assets/icons/close.svg
  62. 1 0
      src/assets/icons/daiyunying.svg
  63. 1 0
      src/assets/icons/danwei.svg
  64. 1 0
      src/assets/icons/danxuankuang.svg
  65. 1 0
      src/assets/icons/danxuanxuanzhong.svg
  66. 1 0
      src/assets/icons/dayin.svg
  67. 1 0
      src/assets/icons/dayin_mian.svg
  68. 1 0
      src/assets/icons/del.svg
  69. 1 0
      src/assets/icons/diancanshezhi.svg
  70. 1 0
      src/assets/icons/dianhua.svg
  71. 1 0
      src/assets/icons/dianhua_mian.svg
  72. 1 0
      src/assets/icons/dianpu_fengge.svg
  73. 1 0
      src/assets/icons/dianputuijian.svg
  74. 1 0
      src/assets/icons/dianzifapiao.svg
  75. 1 0
      src/assets/icons/dingcan.svg
  76. 1 0
      src/assets/icons/dingdan.svg
  77. 1 0
      src/assets/icons/dingdan1.svg
  78. 1 0
      src/assets/icons/dingdan_mian.svg
  79. 1 0
      src/assets/icons/dingwei.svg
  80. 1 0
      src/assets/icons/dingwei_mian.svg
  81. 1 0
      src/assets/icons/ditu.svg
  82. 1 0
      src/assets/icons/ditu_mian.svg
  83. 1 0
      src/assets/icons/duizhang.svg
  84. 1 0
      src/assets/icons/elemo.svg
  85. 1 0
      src/assets/icons/ezhanggui.svg
  86. 1 0
      src/assets/icons/falvfuwubaoxiaohei.svg
  87. 1 0
      src/assets/icons/fengniaopaotui.svg
  88. 1 0
      src/assets/icons/fenxiang.svg
  89. 1 0
      src/assets/icons/fukuan.svg
  90. 1 0
      src/assets/icons/fukuan_mian.svg
  91. 1 0
      src/assets/icons/fullscreen-exit.svg
  92. 1 0
      src/assets/icons/fullscreen.svg
  93. 1 0
      src/assets/icons/fuwushichang.svg
  94. 1 0
      src/assets/icons/fuzhi.svg
  95. 1 0
      src/assets/icons/gaode.svg
  96. 1 0
      src/assets/icons/gengduo.svg
  97. 1 0
      src/assets/icons/gengduoandroid.svg
  98. 1 0
      src/assets/icons/gift.svg
  99. 1 0
      src/assets/icons/gongyingshang.svg
  100. 0 0
      src/assets/icons/goods.svg

+ 4 - 0
.env.production.example

@@ -0,0 +1,4 @@
+NODE_ENV = 'production'
+
+# 请求域名
+VITE_APP_BASE_URL=''

+ 43 - 0
.eslintrc.cjs

@@ -0,0 +1,43 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution')
+
+module.exports = {
+    root: true,
+    ignorePatterns: ['/auto-imports.d.ts', '/components.d.ts'],
+    extends: [
+        'plugin:vue/vue3-essential',
+        'eslint:recommended',
+        '@vue/eslint-config-typescript/recommended',
+        '@vue/eslint-config-prettier',
+        './.eslintrc-auto-import.json'
+    ],
+    rules: {
+        'prettier/prettier': [
+            'warn',
+            {
+                semi: false,
+                singleQuote: true,
+                printWidth: 100,
+                proseWrap: 'preserve',
+                bracketSameLine: false,
+                endOfLine: 'lf',
+                tabWidth: 4,
+                useTabs: false,
+                trailingComma: 'none'
+            }
+        ],
+        'vue/multi-word-component-names': 'off',
+        '@typescript-eslint/no-explicit-any': 'off',
+        '@typescript-eslint/ban-ts-comment': 'off',
+        'no-undef': 'off',
+        'vue/prefer-import-from-vue': 'off',
+        'no-prototype-builtins': 'off',
+        'prefer-spread': 'off',
+        '@typescript-eslint/no-non-null-assertion': 'off',
+        '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
+        'vue/no-mutating-props': 'off'
+    },
+    globals: {
+        module: 'readonly'
+    }
+}

+ 35 - 0
.gitignore

@@ -0,0 +1,35 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+# unplugin-auto-import
+auto-imports.d.ts
+components.d.ts
+.eslintrc-auto-import.json
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# .env
+.env.development
+.env.production

+ 21 - 0
LICENSE

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

+ 12 - 0
README.md

@@ -0,0 +1,12 @@
+# 多商户SaaS版扫码点餐系统(前端)
+
+### 介绍
+(前端)多商户SaaS版扫码点餐系统,支持后台点餐、多人同时在线点餐、购物车共享、餐桌状态实时监控,菜品管理、餐桌管理等众多功能。
+
+| 项目  | 仓库地址 |
+|-----|------------------------------------------------|
+| 后端  | https://gitee.com/ah-f/Afly-OrderMeals-backend |
+| 前端  | https://gitee.com/ah-f/Afly-OrderMeals-front   |
+| H5端 | https://gitee.com/ah-f/Afly-OrderMeals-h5      |
+
+ **更多项目介绍文档:** [项目介绍文档](https://gitee.com/ah-f/Afly-OrderMeals-backend)

+ 1 - 0
global.d.ts

@@ -0,0 +1 @@
+/// <reference types="vite/client" />

+ 66 - 0
index.html

@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+  <head>
+    <meta charset="UTF-8" />
+    <link rel="icon" href="/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>后台管理系统</title>
+    <style>
+      * {
+        margin: 0;
+        padding: 0;
+      }
+      .preload {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        height: 100vh;
+        width: 100vw;
+      }
+  
+      .circular {
+        height: 42px;
+        width: 42px;
+        animation: loading-rotate 2s linear infinite;
+      }
+  
+      .circular .path {
+        animation: loading-dash 1.5s ease-in-out infinite;
+        stroke-dasharray: 90, 150;
+        stroke-dashoffset: 0;
+        stroke-width: 2;
+        stroke: #4073fa;
+        stroke-linecap: round;
+      }
+  
+      @keyframes loading-rotate {
+        100% {
+          transform: rotate(1turn);
+        }
+      }
+  
+      @keyframes loading-dash {
+  
+        0% {
+          stroke-dasharray: 90, 150;
+          stroke-dashoffset: -40px;
+        }
+  
+        100% {
+          stroke-dasharray: 90, 150;
+          stroke-dashoffset: -120px;
+        }
+      }
+    </style>
+  </head>
+  <body>
+    <div id="app">
+      <div class="preload">
+        <svg viewBox="25 25 50 50" class="circular">
+          <circle cx="50" cy="50" r="20" fill="none" class="path"></circle>
+        </svg>
+      </div>
+    </div>
+    <script type="module" src="/src/main.ts"></script>
+  </body>
+</html>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 5850 - 0
package-lock.json


+ 62 - 0
package.json

@@ -0,0 +1,62 @@
+{
+  "name": "vue-project",
+  "version": "0.0.0",
+  "license": "MIT",
+  "scripts": {
+    "dev": "vite",
+    "preview": "vite preview --port 4173",
+    "build": "node ./scripts/build.mjs",
+    "type-check": "vue-tsc --noEmit",
+    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
+  },
+  "dependencies": {
+    "@element-plus/icons-vue": "^2.0.6",
+    "@highlightjs/vue-plugin": "^2.1.0",
+    "@wangeditor/editor": "^5.1.12",
+    "@wangeditor/editor-for-vue": "^5.1.12",
+    "axios": "^0.27.2",
+    "css-color-function": "^1.3.3",
+    "echarts": "^5.3.3",
+    "element-plus": "^2.2.9",
+    "highlight.js": "^11.6.0",
+    "image-compressor.js": "^1.1.4",
+    "nprogress": "^0.2.0",
+    "pinia": "^2.0.14",
+    "vue": "^3.2.37",
+    "vue-clipboard3": "^2.0.0",
+    "vue-echarts": "^6.2.3",
+    "vue-router": "^4.0.16",
+    "vue3-video-play": "^1.3.1-beta.6",
+    "vuedraggable": "^4.1.0"
+  },
+  "devDependencies": {
+    "@rushstack/eslint-patch": "^1.1.0",
+    "@tailwindcss/line-clamp": "^0.4.2",
+    "@types/lodash-es": "^4.17.6",
+    "@types/node": "^16.11.41",
+    "@types/nprogress": "^0.2.0",
+    "@vitejs/plugin-vue": "^3.0.0",
+    "@vitejs/plugin-vue-jsx": "^2.0.0",
+    "@vue/eslint-config-prettier": "^7.0.0",
+    "@vue/eslint-config-typescript": "^11.0.0",
+    "@vue/tsconfig": "^0.1.3",
+    "autoprefixer": "^10.4.7",
+    "consola": "^2.15.3",
+    "eslint": "^8.5.0",
+    "eslint-plugin-vue": "^9.0.0",
+    "execa": "^6.1.0",
+    "fs-extra": "^10.1.0",
+    "postcss": "^8.4.14",
+    "prettier": "^2.5.1",
+    "sass": "^1.53.0",
+    "tailwindcss": "^3.0.24",
+    "typescript": "~4.7.4",
+    "unplugin-auto-import": "^0.9.2",
+    "unplugin-vue-components": "^0.19.9",
+    "vite": "^3.0.0",
+    "vite-plugin-style-import": "^2.0.0",
+    "vite-plugin-svg-icons": "^2.0.1",
+    "vite-plugin-vue-setup-extend": "^0.4.0",
+    "vue-tsc": "^0.38.1"
+  }
+}

+ 6 - 0
postcss.config.js

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

+ 37 - 0
scripts/build.mjs

@@ -0,0 +1,37 @@
+import { execaCommand } from 'execa'
+import path from 'path'
+import fsExtra from 'fs-extra'
+const { existsSync, remove, copy } = fsExtra
+const cwd = process.cwd()
+//打包发布路径,谨慎改动
+const releaseRelativePath = '../public/admin'
+const distPath = path.resolve(cwd, 'dist')
+const releasePath = path.resolve(cwd, releaseRelativePath)
+
+async function build() {
+    await execaCommand('vite build', { stdio: 'inherit', encoding: 'utf-8', cwd })
+    if (existsSync(releasePath)) {
+        await remove(releasePath)
+    }
+    console.log(`文件正在复制 ==> ${releaseRelativePath}`)
+    try {
+        await copyFile(distPath, releasePath)
+    } catch (error) {
+        console.log(`\n ${error}`)
+    }
+    console.log(`文件已复制 ==> ${releaseRelativePath}`)
+}
+
+function copyFile(sourceDir, targetDir) {
+    return new Promise((resolve, reject) => {
+        copy(sourceDir, targetDir, (err) => {
+            if (err) {
+                reject(err)
+            } else {
+                resolve()
+            }
+        })
+    })
+}
+
+build()

+ 58 - 0
src/App.vue

@@ -0,0 +1,58 @@
+<script setup lang="ts">
+import { useDark, useWindowSize, useThrottleFn } from '@vueuse/core'
+import zhCn from 'element-plus/lib/locale/lang/zh-cn'
+import useAppStore from './stores/modules/app'
+import useSettingStore from './stores/modules/setting'
+import { ScreenEnum } from './enums/appEnums'
+const appStore = useAppStore()
+const settingStore = useSettingStore()
+const elConfig = {
+    zIndex: 3000,
+    locale: zhCn
+}
+const isDark = useDark()
+onMounted(async () => {
+    //设置主题色
+    settingStore.setTheme(isDark.value)
+    // 获取配置
+    const data: any = await appStore.getConfig()
+    // 设置网站logo
+    let favicon: HTMLLinkElement = document.querySelector('link[rel="icon"]')!
+    if (favicon) {
+        favicon.href = data.webFavicon
+        return
+    }
+    favicon = document.createElement('link')
+    favicon.rel = 'icon'
+    favicon.href = data.webFavicon
+    document.head.appendChild(favicon)
+})
+
+const { width } = useWindowSize()
+watch(
+    width,
+    useThrottleFn((value) => {
+        if (value > ScreenEnum.SM) {
+            appStore.setMobile(false)
+            appStore.toggleCollapsed(false)
+        } else {
+            appStore.setMobile(true)
+            appStore.toggleCollapsed(true)
+        }
+        if (value < ScreenEnum.MD) {
+            appStore.toggleCollapsed(true)
+        }
+    }),
+    {
+        immediate: true
+    }
+)
+</script>
+
+<template>
+    <el-config-provider :locale="elConfig.locale" :z-index="elConfig.zIndex">
+        <router-view />
+    </el-config-provider>
+</template>
+
+<style></style>

+ 11 - 0
src/api/app.ts

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 配置
+export function getConfig() {
+    return request.get({ url: '/index/config' })
+}
+
+// 工作台主页
+export function getWorkbench() {
+    return request.get({ url: '/index/console' })
+}

+ 69 - 0
src/api/article.ts

@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 文章分类列表
+export function articleCateLists(params?: any) {
+    return request.get({ url: '/article/cate/list', params })
+}
+// 文章分类列表
+export function articleCateAll(params?: any) {
+    return request.get({ url: '/article/cate/all', params })
+}
+
+// 添加文章分类
+export function articleCateAdd(params: any) {
+    return request.post({ url: '/article/cate/add', params })
+}
+
+// 编辑文章分类
+export function articleCateEdit(params: any) {
+    return request.post({ url: '/article/cate/edit', params })
+}
+
+// 删除文章分类
+export function articleCateDelete(params: any) {
+    return request.post({ url: '/article/cate/del', params })
+}
+
+// 文章分类详情
+export function articleCateDetail(params: any) {
+    return request.get({ url: '/article/cate/detail', params })
+}
+
+// 文章分类状态
+export function articleCateStatus(params: any) {
+    return request.post({ url: '/article/cate/change', params })
+}
+
+// 文章列表
+export function articleLists(params?: any) {
+    return request.get({ url: '/article/list', params })
+}
+// 文章列表
+export function articleAll(params?: any) {
+    return request.get({ url: '/article/all', params })
+}
+
+// 添加文章
+export function articleAdd(params: any) {
+    return request.post({ url: '/article/add', params })
+}
+
+// 编辑文章
+export function articleEdit(params: any) {
+    return request.post({ url: '/article/edit', params })
+}
+
+// 删除文章
+export function articleDelete(params: any) {
+    return request.post({ url: '/article/del', params })
+}
+
+// 文章详情
+export function articleDetail(params: any) {
+    return request.get({ url: '/article/detail', params })
+}
+
+// 文章分类状态
+export function articleStatus(params: any) {
+    return request.post({ url: '/article/change', params })
+}

+ 11 - 0
src/api/channel/h5.ts

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// H5渠道配置保存
+export function setH5Config(params: any) {
+    return request.post({ url: '/channel/h5/save', params })
+}
+
+// H5渠道配置详情
+export function getH5Config() {
+    return request.get({ url: '/channel/h5/detail' })
+}

+ 11 - 0
src/api/channel/weapp.ts

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 微信小程序配置保存
+export function setWeappConfig(params: any) {
+    return request.post({ url: '/channel/mp/save', params })
+}
+
+// 微信小程序配置详情
+export function getWeappConfig() {
+    return request.get({ url: '/channel/mp/detail' })
+}

+ 112 - 0
src/api/channel/wx_oa.ts

@@ -0,0 +1,112 @@
+import request from '@/utils/request'
+import { firstToUpperCase } from '@/utils/util'
+
+// 微信公众号配置保存
+export function setOaConfig(params: any) {
+    return request.post({ url: '/channel/oa/save', params })
+}
+
+// 微信公众号配置详情
+export function getOaConfig() {
+    return request.get({ url: '/channel/oa/detail' })
+}
+
+export interface Menu {
+    name: string
+    menuType?: number
+    visitType?: string
+    url?: string
+    appId?: string
+    pagePath?: string
+    subButtons: Menu[] | any
+}
+
+/**
+ * @return { Promise }
+ * @description 获取菜单
+ */
+export function getOaMenu() {
+    return request.get({ url: '/channel/oaMenu/detail' })
+}
+
+/**
+ * @return { Promise }
+ * @param { Menu } Menu
+ * @description 菜单保存
+ */
+export function setOaMenuSave(params: Menu | any) {
+    return request.post({ url: '/channel/oaMenu/save', params })
+}
+
+/**
+ * @return { Promise }
+ * @param { Menu } Menu
+ * @description 菜单发布
+ */
+export function setOaMenuPublish(params: Menu | any) {
+    return request.post({ url: '/channel/oaMenu/publish', params })
+}
+
+/**
+ * @description 默认回复列表
+ */
+export function getOaReplyList(params: any) {
+    const type = firstToUpperCase(params.type)
+    return request.get({ url: `/channel/oaReply${type}/list`, params })
+}
+
+/**
+ * @return { Promise }
+ * @param { number } id
+ * @description 回复列表删除
+ */
+export function oaReplyDel(params: any) {
+    const type = firstToUpperCase(params.type)
+    return request.post({ url: `/channel/oaReply${type}/del`, params })
+}
+
+/**
+ * @return { Promise }
+ * @param { number } id
+ * @description 回复状态修改
+ */
+export function changeOaReplyStatus(params: any) {
+    const type = firstToUpperCase(params.type)
+    return request.post({ url: `/channel/oaReply${type}/status`, params })
+}
+
+export interface Reply {
+    content: string // 内容
+    contentType: number // 内容类型: 1=文本
+    keyword?: string // 关键词
+    matchingType?: number // 匹配方式: [1=全匹配, 2=模糊匹配]
+    name: string // 规则名称
+    status: number // 状态: 1=开启, 0=关闭
+    type: string // 类型: follow=关注, keyword=关键词, default=默认
+    sort: number // 排序
+}
+/**
+ * @return { Promise }
+ * @description 默认回复编辑
+ */
+export function oaReplyAdd(params: Reply) {
+    const type = firstToUpperCase(params.type)
+    return request.post({ url: `/channel/oaReply${type}/add`, params })
+}
+
+/**
+ * @return { Promise }
+ * @description 默认回复编辑
+ */
+export function oaReplyEdit(params: Reply) {
+    const type = firstToUpperCase(params.type)
+    return request.post({ url: `/channel/oaReply${type}/edit`, params })
+}
+
+/**
+ * @description 默认回复详情
+ */
+export function getOaReplyDetail(params: any) {
+    const type = firstToUpperCase(params.type)
+    return request.get({ url: `/channel/oaReply${type}/detail`, params })
+}

+ 11 - 0
src/api/channel/wx_op.ts

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 微信开发平台配置保存
+export function setWxDevConfig(params: any) {
+    return request.post({ url: '/channel/op/save', params })
+}
+
+// 微信开发平台配置详情
+export function getWxDevConfig() {
+    return request.get({ url: '/channel/op/detail' })
+}

+ 16 - 0
src/api/consumer.ts

@@ -0,0 +1,16 @@
+import request from '@/utils/request'
+
+// 用户列表
+export function getUserList(params: any) {
+    return request.get({ url: '/user/list', params })
+}
+
+// 用户详情
+export function getUserDetail(params: any) {
+    return request.get({ url: '/user/detail', params })
+}
+
+// 用户编辑
+export function userEdit(params: any) {
+    return request.post({ url: '/user/edit', params })
+}

+ 26 - 0
src/api/decoration.ts

@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 页面装修详情
+export function getDecoratePages(params: any) {
+    return request.get({ url: '/decorate/pages/detail', params }, { ignoreCancelToken: true })
+}
+
+// 页面装修保存
+export function setDecoratePages(params: any) {
+    return request.post({ url: '/decorate/pages/save', params })
+}
+
+// 获取首页文章数据
+export function getDecorateArticle(params?: any) {
+    return request.get({ url: '/decorate/data/article', params })
+}
+
+// 底部导航详情
+export function getDecorateTabbar(params?: any) {
+    return request.get({ url: '/decorate/tabbar/detail', params })
+}
+
+// 底部导航保存
+export function setDecorateTabbar(params: any) {
+    return request.post({ url: '/decorate/tabbar/save', params })
+}

+ 39 - 0
src/api/file.ts

@@ -0,0 +1,39 @@
+import request from '@/utils/request'
+
+export function fileCateAdd(params: Record<string, any>) {
+    return request.post({ url: '/albums/cateAdd', params })
+}
+
+export function fileCateEdit(params: Record<string, any>) {
+    return request.post({ url: '/albums/cateRename', params })
+}
+
+// 文件分类删除
+export function fileCateDelete(params: Record<string, any>) {
+    return request.post({ url: '/albums/cateDel', params })
+}
+
+// 文件分类列表
+export function fileCateLists(params: Record<string, any>) {
+    return request.get({ url: '/albums/cateList', params })
+}
+
+// 文件列表
+export function fileList(params: Record<string, any>) {
+    return request.get({ url: '/albums/albumList', params })
+}
+
+// 文件删除
+export function fileDelete(params: Record<string, any>) {
+    return request.post({ url: '/albums/albumDel', params })
+}
+
+// 文件移动
+export function fileMove(params: Record<string, any>) {
+    return request.post({ url: '/albums/albumMove', params })
+}
+
+// 文件重命名
+export function fileRename(params: { id: number; name: string }) {
+    return request.post({ url: '/albums/albumRename', params })
+}

+ 31 - 0
src/api/message.ts

@@ -0,0 +1,31 @@
+import request from '@/utils/request'
+
+// 通知设置列表
+export function noticeLists(params: any) {
+    return request.get({ url: '/setting/notice/list', params })
+}
+
+// 通知设置详情
+export function noticeDetail(params: any) {
+    return request.get({ url: '/setting/notice/detail', params })
+}
+
+// 通知设置保存
+export function setNoticeConfig(params: any) {
+    return request.post({ url: '/setting/notice/save', params })
+}
+
+// 短信设置列表
+export function smsLists() {
+    return request.get({ url: '/setting/sms/list' })
+}
+
+// 短信设置详情
+export function smsDetail(params: any) {
+    return request.get({ url: '/setting/sms/detail', params })
+}
+
+// 短信设置保存
+export function setSmsConfig(params: any) {
+    return request.post({ url: '/setting/sms/save', params })
+}

+ 45 - 0
src/api/order.ts

@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+export function orderDeskList(params?: any) {
+    return request.get({ url: '/order/list', params }) //全部桌号
+}
+
+export function dishCateAll(params?: any) {
+    return request.get({ url: '/order/dish/cate', params }) //菜品分类
+}
+
+export function dishListAll(params?: any) {
+    return request.get({ url: '/order/dish/list', params }) //全部菜品
+}
+
+export function createOrders(params?: any) {
+    return request.post({ url: '/order/create', params }) //创建订单
+}
+
+export function dishAdd(params?: any) {
+    return request.get({ url: '/order/dishAdd', params }) //添加菜品
+}
+
+export function dishDel(params?: any) {
+    return request.get({ url: '/order/dishDel', params }) //删除菜品
+}
+
+export function dishInc(params?: any) {
+    return request.get({ url: '/order/dishInc', params }) //菜品+1
+}
+
+export function dishDec(params?: any) {
+    return request.get({ url: '/order/dishDec', params }) //菜品-1
+}
+
+export function toEmptyy(params?: any) {
+    return request.get({ url: '/order/toEmpty', params })
+}
+
+export function orderSubmit(params?: any) {
+    return request.post({ url: '/order/submit', params })
+}
+
+export function orderCheckout(params?: any) {
+    return request.get({ url: '/order/checkout', params })
+}

+ 9 - 0
src/api/orders.ts

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function ordersList(params?: any) {
+    return request.get({ url: '/orders/list', params })
+}
+
+export function getOrdersCurrent(params?: any) {
+    return request.get({ url: '/orders/current', params })
+}

+ 31 - 0
src/api/org/department.ts

@@ -0,0 +1,31 @@
+import request from '@/utils/request'
+
+// 列表
+export function deptLists(params?: any) {
+    return request.get({ url: '/system/dept/list', params })
+}
+
+// 添加
+export function deptAdd(params: any) {
+    return request.post({ url: '/system/dept/add', params })
+}
+
+// 编辑
+export function deptEdit(params: any) {
+    return request.post({ url: '/system/dept/edit', params })
+}
+
+// 删除
+export function deptDelete(params: any) {
+    return request.post({ url: '/system/dept/del', params })
+}
+
+// 详情
+export function deptDetail(params?: any) {
+    return request.get({ url: '/system/dept/detail', params })
+}
+
+//二维码
+export function createQr(params?: any) {
+    return request.get({ url: '/system/dept/createQR', params })
+}

+ 30 - 0
src/api/org/post.ts

@@ -0,0 +1,30 @@
+import request from '@/utils/request'
+
+// 岗位列表
+export function postLists(params?: any) {
+    return request.get({ url: '/system/post/list', params })
+}
+// 岗位列表
+export function postAll(params?: any) {
+    return request.get({ url: '/system/post/all', params })
+}
+
+// 添加岗位
+export function postAdd(params: any) {
+    return request.post({ url: '/system/post/add', params })
+}
+
+// 编辑岗位
+export function postEdit(params: any) {
+    return request.post({ url: '/system/post/edit', params })
+}
+
+// 删除岗位
+export function postDelete(params: any) {
+    return request.post({ url: '/system/post/del', params })
+}
+
+// 岗位详情
+export function postDetail(params: any) {
+    return request.get({ url: '/system/post/detail', params })
+}

+ 31 - 0
src/api/perms/admin.ts

@@ -0,0 +1,31 @@
+import request from '@/utils/request'
+
+// 管理员列表
+export function adminLists(params: any) {
+    return request.get({ url: '/system/admin/list', params })
+}
+
+// 管理员添加
+export function adminAdd(params: any) {
+    return request.post({ url: '/system/admin/add', params })
+}
+
+// 管理员编辑
+export function adminDetail(params: any) {
+    return request.get({ url: '/system/admin/detail', params })
+}
+
+// 管理员编辑
+export function adminEdit(params: any) {
+    return request.post({ url: '/system/admin/edit', params })
+}
+
+// 管理员删除
+export function adminDelete(params: any) {
+    return request.post({ url: '/system/admin/del', params })
+}
+
+// 管理员删除
+export function adminStatus(params: any) {
+    return request.post({ url: '/system/admin/disable', params })
+}

+ 26 - 0
src/api/perms/menu.ts

@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 菜单列表
+export function menuLists(params?: Record<string, any>) {
+    return request.get({ url: '/system/menu/list', params })
+}
+
+// 添加菜单
+export function menuAdd(params: Record<string, any>) {
+    return request.post({ url: '/system/menu/add', params })
+}
+
+// 编辑菜单
+export function menuEdit(params: Record<string, any>) {
+    return request.post({ url: '/system/menu/edit', params })
+}
+
+// 菜单删除
+export function menuDelete(params: Record<string, any>) {
+    return request.post({ url: '/system/menu/del', params })
+}
+
+// 菜单删除
+export function menuDetail(params: Record<string, any>) {
+    return request.get({ url: '/system/menu/detail', params })
+}

+ 29 - 0
src/api/perms/role.ts

@@ -0,0 +1,29 @@
+import request from '@/utils/request'
+
+// 角色列表
+export function roleLists(params: any) {
+    return request.get({ url: '/system/role/list', params })
+}
+
+// 角色列表
+export function roleAll(params?: any) {
+    return request.get({ url: '/system/role/all', params })
+}
+
+// 角色列表
+export function roleDetail(params: any) {
+    return request.get({ url: '/system/role/detail', params })
+}
+
+// 添加角色
+export function roleAdd(params: any) {
+    return request.post({ url: '/system/role/add', params })
+}
+// 编辑角色
+export function roleEdit(params: any) {
+    return request.post({ url: '/system/role/edit', params })
+}
+// 删除角色
+export function roleDelete(params: any) {
+    return request.post({ url: '/system/role/del', params })
+}

+ 61 - 0
src/api/setting/dict.ts

@@ -0,0 +1,61 @@
+import request from '@/utils/request'
+
+// 字典类型列表
+export function dictTypeLists(params?: any) {
+    return request.get({ url: '/setting/dict/type/list', params })
+}
+
+// 字典类型列表
+export function dictTypeAll(params?: any) {
+    return request.get({ url: '/setting/dict/type/all', params })
+}
+
+// 添加字典类型
+export function dictTypeAdd(params: any) {
+    return request.post({ url: '/setting/dict/type/add', params })
+}
+
+// 编辑字典类型
+export function dictTypeEdit(params: any) {
+    return request.post({ url: '/setting/dict/type/edit', params })
+}
+
+// 删除字典类型
+export function dictTypeDelete(params: any) {
+    return request.post({ url: '/setting/dict/type/del', params })
+}
+
+// 字典数据列表
+export function dictDataLists(params: any) {
+    return request.get(
+        { url: '/setting/dict/data/list', params },
+        {
+            ignoreCancelToken: true
+        }
+    )
+}
+
+// 字典数据列表
+export function dictDataAll(params: any) {
+    return request.get(
+        { url: '/setting/dict/data/all', params },
+        {
+            ignoreCancelToken: true
+        }
+    )
+}
+
+// 添加字典数据
+export function dictDataAdd(params: any) {
+    return request.post({ url: '/setting/dict/data/add', params })
+}
+
+// 编辑字典数据
+export function dictDataEdit(params: any) {
+    return request.post({ url: '/setting/dict/data/edit', params })
+}
+
+// 删除字典数据
+export function dictDataDelete(params: any) {
+    return request.post({ url: '/setting/dict/data/del', params })
+}

+ 27 - 0
src/api/setting/search.ts

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+/**
+ * @return { Promise }
+ * @description 获取热门搜索数据
+ */
+export function getSearch() {
+    return request.get({ url: '/setting/search/detail' })
+}
+
+export interface List {
+    name: string // 搜索关键字
+    sort: number // 热门搜索排序
+}
+
+export interface Search {
+    isHotSearch: number // 是否开启搜索0/1
+    list: List[]
+}
+/**
+ * @return { Promise }
+ * @param { Search } Search
+ * @description 设置热门搜索
+ */
+export function setSearch(params: Search) {
+    return request.post({ url: '/setting/search/save', params })
+}

+ 21 - 0
src/api/setting/storage.ts

@@ -0,0 +1,21 @@
+import request from '@/utils/request'
+
+// 获取存储引擎列表
+export function storageLists() {
+    return request.get({ url: '/setting/storage/list' })
+}
+
+// 设置存储引擎信息
+export function storageChange(params: any) {
+    return request.post({ url: '/setting/storage/change', params })
+}
+
+// 设置存储引擎信息
+export function storageSetup(params: any) {
+    return request.post({ url: '/setting/storage/edit', params })
+}
+
+// 获取存储配置信息
+export function storageDetail(params: any) {
+    return request.get({ url: '/setting/storage/detail', params })
+}

+ 46 - 0
src/api/setting/system.ts

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+// 获取系统环境
+export function systemInfo() {
+    return request.get({ url: '/monitor/server' })
+}
+
+// 获取系统日志列表
+export function systemLogLists(params: any) {
+    return request.get({ url: '/system/log/operate', params })
+}
+
+// 系统缓存监控
+export function systemCache() {
+    return request.get({ url: '/monitor/cache' })
+}
+
+// 定时任务列表
+export function crontabLists(params: any) {
+    return request.get({ url: '/crontab/list', params })
+}
+
+// 添加定时任务
+export function crontabAdd(params: any) {
+    return request.post({ url: '/crontab/add', params })
+}
+
+// 定时任务详情
+export function crontabDetail(params: any) {
+    return request.get({ url: '/crontab/detail', params })
+}
+
+// 编辑定时任务
+export function crontabEdit(params: any) {
+    return request.post({ url: '/crontab/edit', params })
+}
+
+// 删除定时任务
+export function crontabDel(params: any) {
+    return request.post({ url: '/crontab/del', params })
+}
+
+// 获取登录日志列表
+export function loginLogLists(params: any) {
+    return request.get({ url: '/system/log/login', params })
+}

+ 42 - 0
src/api/setting/user.ts

@@ -0,0 +1,42 @@
+import request from '@/utils/request'
+
+/**
+ * @return { Promise }
+ * @description 获取用户设置
+ */
+export function getUserSetup() {
+    return request.get({ url: '/setting/user/detail' })
+}
+
+/**
+ * @return { Promise }
+ * @param { string } defaultAvatar 默认用户头像
+ * @description 设置用户设置
+ */
+export function setUserSetup(params: { defaultAvatar: string }) {
+    return request.post({ url: '/setting/user/save', params })
+}
+
+/**
+ * @return { Promise }
+ * @description 设置登录注册规则
+ */
+export function getLogin() {
+    return request.get({ url: '/setting/login/detail' })
+}
+
+export interface LoginSetup {
+    loginWay: number[] | any // 登录方式, 逗号隔开
+    forceBindMobile: number // 强制绑定手机 0/1
+    openAgreement: number // 是否开启协议 0/1
+    openOtherAuth: number // 第三方登录 0/1
+    autoLoginAuth: number[] | any // 第三方自动登录 逗号隔开
+}
+/**
+ * @return { Promise }
+ * @param { LoginSetup } LoginSetup
+ * @description 设置登录注册规则
+ */
+export function setLogin(params: LoginSetup) {
+    return request.post({ url: '/setting/login/save', params })
+}

+ 27 - 0
src/api/setting/website.ts

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 获取备案信息
+export function getCopyright() {
+    return request.get({ url: '/setting/copyright/detail' })
+}
+// 设置备案信息
+export function setCopyright(params: any) {
+    return request.post({ url: '/setting/copyright/save', params })
+}
+// 获取网站信息
+export function getWebsite() {
+    return request.get({ url: '/setting/website/detail' })
+}
+// 设置网站信息
+export function setWebsite(params: any) {
+    return request.post({ url: '/setting/website/save', params })
+}
+
+// 获取政策协议
+export function getProtocol() {
+    return request.get({ url: '/setting/protocol/detail' })
+}
+// 设置政策协议
+export function setProtocol(params: any) {
+    return request.post({ url: '/setting/protocol/save', params })
+}

+ 25 - 0
src/api/shop.ts

@@ -0,0 +1,25 @@
+import request from '@/utils/request'
+
+export function getShopConfig(params?: any) {
+    return request.get({ url: '/shop/config', params })
+}
+
+export function changeShopStatus(params?: any) {
+    return request.get({ url: '/shop/change', params })
+}
+
+export function saveShopConfig(params?: any) {
+    return request.post({ url: '/shop/save', params })
+}
+
+export function getPrinterList(params?: any) {
+    return request.get({ url: '/printer/list', params })
+}
+
+export function getPrinterDetail(params?: any) {
+    return request.get({ url: '/printer/detail', params })
+}
+
+export function addPrinter(params?: any) {
+    return request.post({ url: '/printer/add', params })
+}

+ 75 - 0
src/api/tools/code.ts

@@ -0,0 +1,75 @@
+import request from '@/utils/request'
+
+// 代码生成已选数据表列表接口
+export function generateTable(params: any) {
+    return request.get({ url: '/gen/list', params })
+}
+
+// 数据表列表接口
+export function dataTable(params: any) {
+    return request.get({ url: '/gen/db', params })
+}
+
+// 数据表所有列表接口
+export function dataTableAll() {
+    return request.get({ url: '/gen/dbAll' })
+}
+
+//表名查字段
+export function dataTableToColumn(params: any) {
+    return request.get({ url: '/gen/dbColumn', params })
+}
+//选择要生成代码的数据表
+export function selectTable(params: any) {
+    return request.post(
+        { url: '/gen/importTable', params },
+        {
+            isParamsToData: false
+        }
+    )
+}
+
+// 已选择的数据表详情
+export function tableDetail(params: any) {
+    return request.get({ url: '/gen/detail', params })
+}
+
+//同步字段
+export function syncColumn(params: any) {
+    return request.post(
+        { url: '/gen/syncTable', params },
+        {
+            isParamsToData: false
+        }
+    )
+}
+
+//删除已选择的数据表
+export function generateDelete(params: any) {
+    return request.post({ url: '/gen/delTable', params })
+}
+
+//编辑已选表字段
+export function generateEdit(params: any) {
+    return request.post({ url: '/gen/editTable', params })
+}
+
+//预览代码
+export function generatePreview(params: any) {
+    return request.get({ url: '/gen/previewCode', params })
+}
+
+//生成代码
+export function generateCode(params: any) {
+    return request.get({ url: '/gen/genCode', params })
+}
+
+//下载代码
+export function downloadCode(params: any) {
+    return request.get(
+        { responseType: 'blob', url: '/gen/downloadCode', params },
+        {
+            isTransformResponse: false
+        }
+    )
+}

+ 32 - 0
src/api/user.ts

@@ -0,0 +1,32 @@
+import config from '@/config'
+import request from '@/utils/request'
+
+// 登录
+export function login(params: Record<string, any>) {
+    return request.post({ url: '/system/login', params: { ...params, terminal: config.terminal } })
+}
+
+// 登录
+export function loginCaptcha() {
+    return request.get({ url: '/system/captcha' })
+}
+
+// 退出登录
+export function logout() {
+    return request.post({ url: '/system/logout' })
+}
+
+// 用户信息
+export function getUserInfo() {
+    return request.get({ url: '/system/admin/self' })
+}
+
+// 菜单路由
+export function getMenu() {
+    return request.get({ url: '/system/menu/route' })
+}
+
+// 编辑管理员信息
+export function setUserInfo(params: any) {
+    return request.post({ url: '/system/admin/upInfo', params })
+}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/Androidfanhui.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/KMSguanli.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/KTVyuding.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/a-tixingdengpao.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/anquan.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/anquan_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/anquan_mian1.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/banxing_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/baoxian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/bendishenghuodaxue.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/bianji.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/biaoqing.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/bukejian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/caipinguanli.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/caiwu.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/caiwu_jifen.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/caiwu_tixian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/canyinfuwu.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/carryout.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/chexiao.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/chihuohongbao.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/chuangyiwuliao.svg


+ 1 - 0
src/assets/icons/close.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M853.333333 725.034667v64H170.666667v-64h682.666666z m-149.333333-309.333334l149.333333 106.666667-149.333333 106.666667v-213.333334z m-85.333333 74.666667v64H170.666667v-64h448zM853.333333 256v64H170.666667v-64h682.666666z" /></svg>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/daiyunying.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/danwei.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/danxuankuang.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/danxuanxuanzhong.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dayin.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dayin_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/del.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/diancanshezhi.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dianhua.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dianhua_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dianpu_fengge.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dianputuijian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dianzifapiao.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingcan.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingdan.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingdan1.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingdan_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingwei.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/dingwei_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/ditu.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/ditu_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/duizhang.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/elemo.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/ezhanggui.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/falvfuwubaoxiaohei.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fengniaopaotui.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fenxiang.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fukuan.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fukuan_mian.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fullscreen-exit.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fullscreen.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fuwushichang.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/fuzhi.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/gaode.svg


+ 1 - 0
src/assets/icons/gengduo.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M256 448a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m256 0a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m256 0a64 64 0 1 1 0 128 64 64 0 0 1 0-128z"  /></svg>

+ 1 - 0
src/assets/icons/gengduoandroid.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 704a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m0-256a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m0-256a64 64 0 1 1 0 128 64 64 0 0 1 0-128z"  /></svg>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/gift.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
src/assets/icons/gongyingshang.svg


+ 0 - 0
src/assets/icons/goods.svg


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio