【主账号平台】 新增# 账号中心
|
@ -0,0 +1,2 @@
|
|||
VITE_APP_BASE_URL = 'http://124.220.209.120:8082'
|
||||
VITE_MAP_KEY = '2SABZ-S4TWH-AMCDO-W742B-SKEOE-UWBKJ'
|
|
@ -0,0 +1,42 @@
|
|||
/* 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',
|
||||
'./.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'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
# 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
|
||||
|
||||
yarn.lock
|
||||
package-lock.json
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"editor.detectIndentation": false,
|
||||
"editor.tabSize": 4,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit"
|
||||
},
|
||||
"css.validate": false,
|
||||
"less.validate": false,
|
||||
"scss.validate": false,
|
||||
"prettier.printWidth": 150, // 超过最大值换行
|
||||
"prettier.tabWidth": 4, // 缩进字节数
|
||||
"prettier.useTabs": false, // 缩进不使用tab,使用空格
|
||||
"prettier.semi": false, // 句尾添加分号
|
||||
"prettier.singleQuote": true, // 使用单引号代替双引号
|
||||
"prettier.proseWrap": "preserve", // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行
|
||||
"prettier.arrowParens": "avoid", // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号
|
||||
"prettier.bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
|
||||
|
||||
"prettier.endOfLine": "auto", // 结尾是 \n \r \n\r auto
|
||||
"prettier.htmlWhitespaceSensitivity": "ignore",
|
||||
"prettier.ignorePath": ".prettierignore", // 不使用prettier格式化的文件填写在项目的.prettierignore文件中
|
||||
"prettier.jsxSingleQuote": false, // 在jsx中使用单引号代替双引号
|
||||
"prettier.requireConfig": false, // Require a 'prettierconfig' to format prettier
|
||||
"prettier.trailingComma": "none" // 函数最后不需要逗号
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
# vue-project
|
||||
|
||||
This template should help get you started developing with Vue 3 in Vite.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
|
||||
|
||||
## Type Support for `.vue` Imports in TS
|
||||
|
||||
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
|
||||
|
||||
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
|
||||
|
||||
1. Disable the built-in TypeScript Extension
|
||||
1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
|
||||
2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
|
||||
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
|
||||
|
||||
## Customize configuration
|
||||
|
||||
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
||||
|
||||
## Project Setup
|
||||
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
|
||||
### Compile and Hot-Reload for Development
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Type-Check, Compile and Minify for Production
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Lint with [ESLint](https://eslint.org/)
|
||||
|
||||
```sh
|
||||
npm run lint
|
||||
```
|
|
@ -0,0 +1 @@
|
|||
/// <reference types="vite/client" />
|
|
@ -0,0 +1,71 @@
|
|||
<!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>
|
||||
<script src="https://map.qq.com/api/gljs?libraries=tools&v=1.exp&key=2SABZ-S4TWH-AMCDO-W742B-SKEOE-UWBKJ"></script>
|
||||
</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>
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"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.27",
|
||||
"highlight.js": "^11.6.0",
|
||||
"js-table2excel": "^1.1.2",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.14",
|
||||
"qrcodejs2-fix": "^0.0.1",
|
||||
"sortablejs": "^1.15.0",
|
||||
"vue": "^3.2.37",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-echarts": "^6.2.3",
|
||||
"vue-pdf-embed": "1",
|
||||
"vue-router": "^4.0.16",
|
||||
"vue3-eventbus": "^2.0.0",
|
||||
"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",
|
||||
"@types/sortablejs": "^1.15.5",
|
||||
"@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"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
|
@ -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()
|
|
@ -0,0 +1,58 @@
|
|||
<script setup lang="ts">
|
||||
import { useDark, useWindowSize, useThrottleFn } from '@vueuse/core'
|
||||
import zhCn from 'element-plus/es/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>
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 配置
|
||||
export function getConfig() {
|
||||
return request.get({ url: '/common/index/config' })
|
||||
}
|
||||
|
||||
// 工作台主页
|
||||
export function getWorkbench() {
|
||||
return request.get({ url: '/common/index/workbench' })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 获取充值配置
|
||||
export function apiRechargeGetRule() {
|
||||
return request.get({ url: '/recharge/config/getConfig' })
|
||||
}
|
||||
|
||||
// 设置充值配置
|
||||
export function apiRechargeSetRule(params: any) {
|
||||
return request.post({ url: '/recharge/config/setConfig', params })
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
//优惠券基本信息/adminapi/marketing.coupon/info
|
||||
export function getBaseCoupon(params: any) {
|
||||
return request.get({ url: '/marketing.coupon/info', params })
|
||||
}
|
||||
//领取记录
|
||||
export function getCouponlists(params: any) {
|
||||
return request.get({ url: '/marketing.coupon_lists/lists', params })
|
||||
}
|
||||
//作废
|
||||
export function setCouponlists(params: any) {
|
||||
return request.post({ url: '/marketing.coupon_lists/void', params })
|
||||
}
|
||||
//优惠券详情/adminapi/marketing.coupon/detail
|
||||
export function getCoupondetail(params: any) {
|
||||
return request.get({ url: '/marketing.coupon/detail', params })
|
||||
}
|
||||
//添加优惠券
|
||||
export function addCoupon(params: any) {
|
||||
return request.post({ url: '/coupon/add', params })
|
||||
}
|
||||
//优惠券列表
|
||||
export function GetcouponLists(params?: any) {
|
||||
return request.get({ url: '/coupon/list', params })
|
||||
}
|
||||
//删除优惠券
|
||||
export function delCoupon(params: any) {
|
||||
return request.post({ url: '/coupon/del', params })
|
||||
}
|
||||
//切换发放状态
|
||||
export function switchCouponStatus(params: any) {
|
||||
return request.post({ url: '/channelCoupon/edit', params })
|
||||
}
|
||||
// 优惠券指定分销员
|
||||
export function getCouponListsByChannel(params: any) {
|
||||
return request.get({ url: '/channelCoupon/list', params })
|
||||
}
|
||||
// 用户领取优惠券
|
||||
export function getCouponByUser(params: any) {
|
||||
return request.get({ url: '/userCoupon/queryUserGetRecord', params })
|
||||
}
|
||||
// 删除指定分销员优惠券
|
||||
export function delCouponByDistributor(params: any) {
|
||||
return request.post({ url: '/channelCoupon/del', params })
|
||||
}
|
||||
// 优惠券详情
|
||||
export function getCouponDetailApi(params: any) {
|
||||
return request.get({ url: '/coupon/detail', params })
|
||||
}
|
||||
// 优惠券发放状态
|
||||
export function CouponStatusApi(params: any) {
|
||||
return request.post({ url: '/coupon/setCouponStatus', params })
|
||||
}
|
||||
|
||||
//开始领取/adminapi/marketing.coupon/open
|
||||
export function startCoupon(params: any) {
|
||||
return request.post({ url: '/marketing.coupon/open', params })
|
||||
}
|
||||
export function overCoupon(params: any) {
|
||||
return request.post({ url: '/marketing.coupon/stop', params })
|
||||
}
|
||||
//系统发放优惠券
|
||||
export function sendCoupon(params: any) {
|
||||
return request.post({ url: '/marketing.coupon/send', params })
|
||||
}
|
||||
//抢购列表/adminapi/marketing.seckill/lists
|
||||
export function getSeckillLists(params: any) {
|
||||
return request.get({ url: '/marketing.seckill/lists', params })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 获取充值配置
|
||||
export function apiRechargeGetRule() {
|
||||
return request.get({ url: '/recharge/config/getConfig' })
|
||||
}
|
||||
|
||||
// 设置充值配置
|
||||
export function apiRechargeSetRule(params: any) {
|
||||
return request.post({ url: '/recharge/config/setConfig', params })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 抖音小程序配置保存
|
||||
export function setDyappConfig(params: any) {
|
||||
return request.post({ url: '/channel/mp/save', params })
|
||||
}
|
||||
|
||||
// 抖音小程序配置详情
|
||||
export function getDyappConfig() {
|
||||
return request.get({ url: '/channel/mp/detail' })
|
||||
}
|
|
@ -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' })
|
||||
}
|
|
@ -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' })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 微信开发平台配置保存
|
||||
export function setWxDevConfig(params: any) {
|
||||
return request.post({ url: '/channel/wx/save', params })
|
||||
}
|
||||
|
||||
// 微信开发平台配置详情
|
||||
export function getWxDevConfig() {
|
||||
return request.get({ url: '/channel/wx/detail' })
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 微信公众号配置保存
|
||||
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) {
|
||||
return request.get({ url: `/channel/oaReply/list`, params });
|
||||
}
|
||||
|
||||
/**
|
||||
* @return { Promise }
|
||||
* @param { number } id
|
||||
* @description 回复列表删除
|
||||
*/
|
||||
export function oaReplyDel(params: any) {
|
||||
return request.post({ url: `/channel/oaReply/del`, params });
|
||||
}
|
||||
|
||||
/**
|
||||
* @return { Promise }
|
||||
* @param { number } id
|
||||
* @description 回复状态修改
|
||||
*/
|
||||
export function changeOaReplyStatus(params: any) {
|
||||
return request.post({ url: `/channel/oaReply/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) {
|
||||
return request.post({ url: `/channel/oaReply/add`, params });
|
||||
}
|
||||
|
||||
/**
|
||||
* @return { Promise }
|
||||
* @description 默认回复编辑
|
||||
*/
|
||||
export function oaReplyEdit(params: Reply) {
|
||||
return request.post({ url: `/channel/oaReply/edit`, params });
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 默认回复详情
|
||||
*/
|
||||
export function getOaReplyDetail(params: any) {
|
||||
return request.get({ url: `/channel/oaReply/detail`, params });
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
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 getDecorateTabbar(params?: any) {
|
||||
return request.get({ url: "/decorate/tabbar/detail", params });
|
||||
}
|
||||
|
||||
// 底部导航保存
|
||||
export function setDecorateTabbar(params: any) {
|
||||
return request.post({ url: "/decorate/tabbar/save", params });
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* @Author: micky 1254597151@qq.com
|
||||
* @Date: 2023-08-30 18:34:02
|
||||
* @LastEditors: micky 1254597151@qq.com
|
||||
* @LastEditTime: 2023-08-30 18:34:10
|
||||
* @FilePath: \housekeeping-admin\src\api\distributor\group.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
import axios from 'axios'
|
||||
|
||||
// 分销组别列表
|
||||
export function apiDistributorGroupLists(params: any) {
|
||||
return request.get({ url: '/distributorsGroup/list', params })
|
||||
}
|
||||
// 添加分销组别
|
||||
export function apiDistributorGroupAdd(params: any) {
|
||||
return request.post({ url: '/distributorsGroup/add', params })
|
||||
}
|
||||
// 编辑分销组别
|
||||
export function apiDistributorGroupEdit(params: any) {
|
||||
return request.post({ url: '/distributorsGroup/edit', params })
|
||||
}
|
||||
|
||||
// 删除分销组别
|
||||
export function apiDistributorGroupDel(params: any) {
|
||||
return request.post({ url: '/distributorsGroup/del', params })
|
||||
}
|
||||
|
||||
// 分销组别详情
|
||||
export function apiDistributorGroupDetail(params: any) {
|
||||
return request.get({ url: '/distributorsGroup/detail', params })
|
||||
}
|
||||
|
||||
export interface DistributorGroup {
|
||||
id: number
|
||||
groupName: string
|
||||
remark: string
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* @Author: micky 1254597151@qq.com
|
||||
* @Date: 2023-09-04 09:43:15
|
||||
* @LastEditors: micky 1254597151@qq.com
|
||||
* @LastEditTime: 2023-10-05 09:34:05
|
||||
* @FilePath: \housekeeping-admin\src\api\distributor\lists.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
import axios from 'axios'
|
||||
|
||||
// 分销列表
|
||||
export function apiDistributorLists(params: any) {
|
||||
return request.get({ url: '/distributor/list', params })
|
||||
}
|
||||
// 添加分销
|
||||
export function apiDistributorAdd(params: any) {
|
||||
return request.post({ url: '/distributor/add', params })
|
||||
}
|
||||
// 编辑分销
|
||||
export function apiDistributorEdit(params: any) {
|
||||
return request.post({ url: '/distributor/edit', params })
|
||||
}
|
||||
|
||||
// 删除分销
|
||||
export function apiDistributorDel(params: any) {
|
||||
return request.post({ url: '/distributor/del', params })
|
||||
}
|
||||
|
||||
// 分销详情
|
||||
export function apiDistributorDetail(params: any) {
|
||||
return request.get({ url: '/distributor/detail', params })
|
||||
}
|
||||
|
||||
// 二维码
|
||||
export function apiDistributorQrcode(params: any) {
|
||||
return request.post({ url: '/distributor/genQRCode', params })
|
||||
}
|
||||
|
||||
// 查看订单
|
||||
export function apiDistributorQrder(params: any) {
|
||||
return request.post({ url: '/order/listDistributionOrder', params })
|
||||
}
|
||||
|
||||
// 导出订单
|
||||
export function apiDistributorExcel(params: any) {
|
||||
return request.post(
|
||||
{ responseType: 'blob', url: '/order/exportDistOrderExcel', params },
|
||||
{
|
||||
isTransformResponse: false
|
||||
}
|
||||
)
|
||||
}
|
||||
// 获取未绑定分销商用户
|
||||
export function apiUnBindingDistributor(params: any) {
|
||||
return request.get({ url: '/user/getNotBindingDistributorUser', params })
|
||||
}
|
||||
// 查看优惠券
|
||||
export function apiDistributorCoupon(params: any) {
|
||||
return request.get({ url: '/channelCoupon/getDistributorCoupon', params })
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function fileCateAdd(params: Record<string, any>) {
|
||||
return request.post({ url: '/common/album/cateAdd', params })
|
||||
}
|
||||
|
||||
export function fileCateEdit(params: Record<string, any>) {
|
||||
return request.post({ url: '/common/album/cateRename', params })
|
||||
}
|
||||
|
||||
// 文件分类删除
|
||||
export function fileCateDelete(params: Record<string, any>) {
|
||||
return request.post({ url: '/common/album/cateDel', params })
|
||||
}
|
||||
|
||||
// 文件分类列表
|
||||
export function fileCateLists(params: Record<string, any>) {
|
||||
return request.get({ url: '/common/album/cateList', params })
|
||||
}
|
||||
|
||||
// 文件列表
|
||||
export function fileList(params: Record<string, any>) {
|
||||
return request.get({ url: '/common/album/albumList', params })
|
||||
}
|
||||
|
||||
// 文件删除
|
||||
export function fileDelete(params: Record<string, any>) {
|
||||
return request.post({ url: '/common/album/albumDel', params })
|
||||
}
|
||||
|
||||
// 文件移动
|
||||
export function fileMove(params: Record<string, any>) {
|
||||
return request.post({ url: '/common/album/albumMove', params })
|
||||
}
|
||||
|
||||
// 文件重命名
|
||||
export function fileRename(params: { id: number; name: string }) {
|
||||
return request.post({ url: '/common/album/albumRename', params })
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 余额明细
|
||||
export function apiAccountLogLists(params: any) {
|
||||
return request.get({ url: '/account/log/list', params })
|
||||
}
|
||||
|
||||
export function changeTypeLists(params: any) {
|
||||
return request.get({ url: '/finance.account_log/changeTypeLists', params })
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getFinanceCenter(params: any) {
|
||||
return request.get({ url: '/finance/statistics', params })
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 充值记录
|
||||
export function apiRechargeRecord(params: any) {
|
||||
return request.get({ url: '/recharge/list', params })
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 列表
|
||||
export function getRefundList(params: any = '') {
|
||||
return request.post({ url: '/refund/list', params })
|
||||
}
|
||||
|
||||
// 退款详情
|
||||
export function getRefundlogLists(params: any) {
|
||||
return request.get({ url: '/refund/detail', params })
|
||||
}
|
||||
|
||||
// 重新退款
|
||||
export function getreRefund(params: any) {
|
||||
return request.post({ url: '/refund/repeat', params })
|
||||
}
|
||||
|
||||
// 统计金额
|
||||
export function getAmount(params: any) {
|
||||
return request.get({ url: '/refund/statistics/amount', params })
|
||||
}
|
||||
|
||||
// 统计数量
|
||||
export function getCount(params: any) {
|
||||
return request.post({ url: '/refund/statistics/count', params })
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 提现申请列表
|
||||
export function applyForList(params: any) {
|
||||
return request.post({ url: '/withdraw/applyForList', params })
|
||||
}
|
||||
// 审核提现编辑
|
||||
export function applyForEdit(params: any) {
|
||||
return request.post({ url: '/withdraw/applyForEdit', params })
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* @Author: micky 1254597151@qq.com
|
||||
* @Date: 2023-08-14 15:56:31
|
||||
* @LastEditors: micky 1254597151@qq.com
|
||||
* @LastEditTime: 2023-11-09 17:18:09
|
||||
* @FilePath: \housekeeping-admin\src\api\master_worker\index.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 师傅列表
|
||||
export function apiMasterWorkerLists(params: any) {
|
||||
return request.post({ url: '/staff/list', params })
|
||||
}
|
||||
|
||||
// 师傅详情
|
||||
export function apiMasterWorkerDetail(params: any) {
|
||||
return request.get({ url: '/staff/detail', params })
|
||||
}
|
||||
|
||||
// 师傅添加
|
||||
export function apiMasterWorkerAdd(params: any) {
|
||||
return request.post({ url: '/staff/add', params })
|
||||
}
|
||||
|
||||
// 师傅编辑
|
||||
export function apiMasterWorkerEdit(params: any) {
|
||||
return request.post({ url: '/staff/edit', params })
|
||||
}
|
||||
|
||||
// 师傅状态
|
||||
export function apiMasterWorkerStatusEdit(params: any) {
|
||||
return request.post({ url: '/staff/receiveOrderStatus', params })
|
||||
}
|
||||
|
||||
// 师傅删除
|
||||
export function apiMasterWorkerDel(params: any) {
|
||||
return request.get({ url: '/staff/del', params })
|
||||
}
|
||||
|
||||
// 查询选择的服务区域
|
||||
export function apiMasterWorkerArea(params: any) {
|
||||
return request.get({ url: '/serviceAreaStaff/list', params })
|
||||
}
|
||||
|
||||
// 单独服务区域添加
|
||||
export function apiMasterWorkerAreaAdd(params: any) {
|
||||
return request.post({ url: '/serviceAreaStaff/edit', params })
|
||||
}
|
||||
// 师傅申请列表
|
||||
export function apiMasterWorkerApply(params: any) {
|
||||
return request.get({ url: '/StaffApplyFor/list', params })
|
||||
}
|
||||
// 师傅审核申请
|
||||
export function apiMasterWorkerApplyAgreement(params: any) {
|
||||
return request.post({ url: '/StaffApplyFor/checkStaffApplyFor', params })
|
||||
}
|
||||
// 师傅资料详情
|
||||
export function apiMasterWorkerAuthDetail(params: any) {
|
||||
return request.get({ url: '/StaffApplyFor/detail', params })
|
||||
}
|
||||
// 师傅体检报告申请列表
|
||||
export function apiMasterWorkerPhysical(params: any) {
|
||||
return request.get({ url: '/physical/examination/list', params })
|
||||
}
|
||||
// 师傅审核体检报告申请
|
||||
export function apiMasterWorkerPhysicalAgreement(params: any) {
|
||||
return request.post({ url: '/physical/examination/checkApplyFor', params })
|
||||
}
|
||||
// 未绑定师傅用户列表
|
||||
export function apiUserNotStaff(params: any) {
|
||||
return request.get({ url: '/user/getNotBindingStaffUser', params })
|
||||
}
|
||||
// 文件上传
|
||||
export function apiUploadFile(params: any) {
|
||||
return request.post({ url: '/common/upload/image', params, headers: { 'Content-Type': 'multipart/form-data' } })
|
||||
}
|
||||
// 申诉列表
|
||||
export function apiFeedbackList(params: any) {
|
||||
return request.get({ url: '/feedback/list', params })
|
||||
}
|
||||
// 删除申诉
|
||||
export function apiFeedbackDel(params: any) {
|
||||
return request.post({ url: '/feedback/del', params })
|
||||
}
|
||||
// 审核申诉
|
||||
export function apiFeedbackAgreement(params: any) {
|
||||
return request.post({ url: '/feedback/checkFeedback', params })
|
||||
}
|
||||
// 师傅退单规则
|
||||
export function apiOrderRule(params: any) {
|
||||
return request.post({ url: '/cancel/order/config/add', params })
|
||||
}
|
||||
// 获取设置规则列表
|
||||
export function apiRuleList(params: any) {
|
||||
return request.get({ url: '/cancel/order/config/list', params })
|
||||
}
|
||||
// 师傅改派单列表
|
||||
export function apiStaffCancelOrderList(params: any) {
|
||||
return request.get({ url: '/reassignment/list', params })
|
||||
}
|
||||
// 获取未上传体检报告师傅
|
||||
export function apiStaffUnUploadPdfList(params: any) {
|
||||
return request.get({ url: '/staff/getNotPhysicalExaminationStaff', params })
|
||||
}
|
||||
// 师傅提交体检报告
|
||||
export function apiStaffPhysical(params: any) {
|
||||
return request.post({ url: '/physical/examination/uploadPhysicalExamination', params })
|
||||
}
|
||||
|
||||
export function apiStaffIsOperationalUpdate(params: any) {
|
||||
return request.post({ url: '/staff/updateStaffOperationalStatus', params })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 订单列表
|
||||
export function apiOrderLists(params: any) {
|
||||
return request.post({ url: '/order/list', params })
|
||||
}
|
||||
|
||||
// 订单详情
|
||||
export function apiOrderDetail(params: any) {
|
||||
return request.get({ url: '/order/detail', params })
|
||||
}
|
||||
|
||||
// 订单取消
|
||||
export function apiOrderCancel(params: any) {
|
||||
return request.post({ url: '/order/cancel', params })
|
||||
}
|
||||
|
||||
// 订单商家备注
|
||||
export function apiOrderRemark(params: any) {
|
||||
return request.get({ url: '/order/remark', params })
|
||||
}
|
||||
|
||||
// 订单商家备注详情
|
||||
export function apiOrderRemarkDetail(params: any) {
|
||||
return request.get({ url: '/order.order/remarkDetail', params })
|
||||
}
|
||||
|
||||
// 订单删除
|
||||
export function apiOrderDel(params: any) {
|
||||
return request.get({ url: '/order/del', params })
|
||||
}
|
||||
|
||||
// 统计订单状态数据
|
||||
export function apiOrderStatis(params: any) {
|
||||
return request.get({ url: '/order/statistics', params })
|
||||
}
|
||||
|
||||
// 订单核销
|
||||
export function apiOrderVerification(params: any) {
|
||||
return request.get({ url: '/order/verification', params })
|
||||
}
|
||||
|
||||
// 师傅列表
|
||||
export function apiMasterLists(params: any) {
|
||||
return request.post({ url: '/staff/list', params })
|
||||
}
|
||||
|
||||
// 指派师傅
|
||||
export function apiDispatchStaff(params: any) {
|
||||
return request.get({ url: '/order/dispatch', params })
|
||||
}
|
||||
// 重新指派师傅获取分数
|
||||
export function apiDispatchStaffScore(params: any) {
|
||||
return request.get({ url: '/cancel/order/config/getCancelOrderConfigByOrder', params })
|
||||
}
|
||||
|
||||
// 确认服务
|
||||
export function apiConfirmService(params: any) {
|
||||
return request.post({ url: '/order/staff/confirm', params })
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
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 })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* @Author: micky 1254597151@qq.com
|
||||
* @Date: 2023-12-19 15:41:58
|
||||
* @LastEditors: micky 1254597151@qq.com
|
||||
* @LastEditTime: 2023-12-20 18:11:06
|
||||
* @FilePath: \housekeeping-admin\src\api\service\activity.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 活动专区列表
|
||||
export function apiActivityLists(params: any) {
|
||||
return request.get({ url: '/activity/list', params })
|
||||
}
|
||||
|
||||
// 添加活动专区
|
||||
export function apiActivityAdd(params: any) {
|
||||
return request.post({ url: '/activity/add', params })
|
||||
}
|
||||
|
||||
// 删除活动专区
|
||||
export function apiActivityDel(params: any) {
|
||||
return request.post({ url: '/activity/del', params })
|
||||
}
|
||||
|
||||
// 编辑活动专区
|
||||
export function apiActivityEdit(params: any) {
|
||||
return request.post({ url: '/activity/edit', params })
|
||||
}
|
||||
|
||||
// 编辑活动专区状态
|
||||
export function apiActivityStatusEdit(params: any) {
|
||||
return request.post({ url: '/activity/status', params })
|
||||
}
|
||||
|
||||
// 活动专区详情
|
||||
export function apiActivityDetail(params: any) {
|
||||
return request.get({ url: '/activity/detail', params })
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
import axios from 'axios'
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取当前位置
|
||||
export function apiMapLocation(params) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const { data } = await axios.get('/tecent/ws/location/v1/ip', { params })
|
||||
data.status === 0 ? resolve(data) : reject(data.message)
|
||||
})
|
||||
}
|
||||
// 根据地址获取经纬度
|
||||
export function getLonAndLatByArea(params) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const { data } = await axios.get('/tecent/ws/geocoder/v1', { params })
|
||||
data.status === 0 ? resolve(data) : reject(data.message)
|
||||
})
|
||||
}
|
||||
// 根据当前位置获取区域列表
|
||||
export function getAreaListByLocation(params) {
|
||||
return request.get({ url: '/serviceArea/list', params });
|
||||
}
|
||||
// 添加区域
|
||||
export function addArea(params) {
|
||||
return request.post({ url: '/serviceArea/add', params })
|
||||
}
|
||||
// 删除区域
|
||||
export function delArea(params) {
|
||||
return request.get({ url: '/serviceArea/del', params })
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 分类列表
|
||||
export function apiCategoryLists(params: any) {
|
||||
return request.get({ url: "/category/list", params });
|
||||
}
|
||||
|
||||
// 添加分类
|
||||
export function apiCategoryAdd(params: any) {
|
||||
return request.post({ url: "/category/add", params });
|
||||
}
|
||||
|
||||
// 删除分类
|
||||
export function apiCategoryDel(params: any) {
|
||||
return request.get({ url: "/category/del", params });
|
||||
}
|
||||
|
||||
// 编辑分类
|
||||
export function apiCategoryEdit(params: any) {
|
||||
return request.post({ url: "/category/edit", params });
|
||||
}
|
||||
|
||||
// 编辑分类状态
|
||||
export function apiCategoryStatusEdit(params: any) {
|
||||
return request.post({ url: "/category/status", params });
|
||||
}
|
||||
|
||||
// 分类详情
|
||||
export function apiCategoryDetail(params: any) {
|
||||
return request.get({ url: "/category/detail", params });
|
||||
}
|
||||
|
||||
// 通用分类列表
|
||||
export function apiCategoryCommonLists() {
|
||||
return request.get({ url: "/category/commonList" });
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 评价列表
|
||||
export function apiCommentLists(params: any) {
|
||||
return request.post({ url: "/comment/list", params });
|
||||
}
|
||||
|
||||
// 评价回复
|
||||
export function apiCommentReply(params: any) {
|
||||
return request.post({ url: "/comment/reply", params });
|
||||
}
|
||||
|
||||
// 删除评价
|
||||
export function apiCommentDel(params: any) {
|
||||
return request.get({ url: "/comment/del", params });
|
||||
}
|
||||
|
||||
// 评价详情
|
||||
export function apiCommentDetail(params: any) {
|
||||
return request.get({ url: "/goods.goods_comment/detail", params });
|
||||
}
|
||||
// 修改客服评分
|
||||
export function apiCustomerServiceAppraise(params: any) {
|
||||
return request.post({ url: "/comment/customerServiceAppraiseScore", params });
|
||||
}
|
||||
export function apiStaffScore(params: any) {
|
||||
return request.get({ url: "/comment/calculateStaffScore", params });
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 服务列表
|
||||
export function apiServiceLists(params: any) {
|
||||
return request.get({ url: '/goods/list', params })
|
||||
}
|
||||
|
||||
// 统计状态数据
|
||||
export function apiServiceStatis(params: any) {
|
||||
return request.get({ url: '/goods/statistics', params })
|
||||
}
|
||||
|
||||
// 添加服务
|
||||
export function apiServiceAdd(params: any) {
|
||||
return request.post({ url: '/goods/add', params })
|
||||
}
|
||||
|
||||
// 删除服务
|
||||
export function apiServiceDel(params: any) {
|
||||
return request.post({ url: '/goods/del', params })
|
||||
}
|
||||
|
||||
// 编辑服务
|
||||
export function apiServiceEdit(params: any) {
|
||||
return request.post({ url: '/goods/edit', params })
|
||||
}
|
||||
|
||||
// 编辑服务状态
|
||||
export function apiServiceStatus(params: any) {
|
||||
console.log("apiServiceStatus", params)
|
||||
return request.post({ url: '/goods/status', params })
|
||||
}
|
||||
|
||||
// 编辑服务新品推荐
|
||||
export function apiServiceNewRecommend(params: any) {
|
||||
return request.post({ url: '/goods/newRecommend', params })
|
||||
}
|
||||
|
||||
export function apiServicesBatchUpdatePrice(params: any) {
|
||||
return request.post({ url: '/goods/batchUpdatePrice', params })
|
||||
}
|
||||
|
||||
// 服务详情
|
||||
export function apiServiceDetail(params: any) {
|
||||
return request.get({ url: '/goods/detail', params })
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* @Author: micky 1254597151@qq.com
|
||||
* @Date: 2023-08-14 15:56:31
|
||||
* @LastEditors: micky 1254597151@qq.com
|
||||
* @LastEditTime: 2023-10-13 16:28:32
|
||||
* @FilePath: \housekeeping-admin\src\api\order\subscribe.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取预约天数
|
||||
export function apiGetOrderTime() {
|
||||
return request.get({ url: '/time/getTime' })
|
||||
}
|
||||
|
||||
// 设置预约时长
|
||||
export function apiSetOrderTime(params: any) {
|
||||
return request.post({ url: '/time/setTime', params })
|
||||
}
|
||||
|
||||
// 获取时间段列表
|
||||
export function apiOrderTimeLists(params: any) {
|
||||
return request.get({ url: '/time/list', params })
|
||||
}
|
||||
|
||||
// 获取时间段详情
|
||||
export function apiOrderTimeDetail(params: any) {
|
||||
return request.get({ url: '/time/detail', params })
|
||||
}
|
||||
|
||||
// 添加时间段
|
||||
export function apiOrderTimeAdd(params: any) {
|
||||
return request.post({ url: '/time/add', params })
|
||||
}
|
||||
|
||||
// 编辑时间段
|
||||
export function apiOrderTimeEdit(params: any) {
|
||||
return request.post({ url: '/time/edit', params })
|
||||
}
|
||||
|
||||
// 删除时间段
|
||||
export function apiOrderTimeDel(params: any) {
|
||||
return request.post({ url: '/time/batchDel', params })
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// 服务时间列表
|
||||
export function apiGoodsTimeList(params: any) {
|
||||
return request.get({ url: '/goods/time/list', params })
|
||||
}
|
||||
|
||||
// 编辑服务时间
|
||||
export function apiGoodsTimeEdit(params: any) {
|
||||
return request.post({ url: '/goods/time/edit', params })
|
||||
}
|
||||
|
||||
// 服务时间修改状态
|
||||
export function apiGoodsTimeUpdateStatus(params: any) {
|
||||
return request.post({ url: '/goods/time/updateStatus', params })
|
||||
}
|
||||
|
||||
// 服务时间新增
|
||||
export function apiAddGoodsTime(params: any) {
|
||||
return request.post({ url: '/goods/time/add', params })
|
||||
}
|
||||
|
||||
// 服务时间编辑
|
||||
export function apiEditGoodsTime(params: any) {
|
||||
return request.post({ url: '/goods/time/edit', params })
|
||||
}
|
||||
|
||||
// 服务时间详情
|
||||
export function apiGetGoodsTimeDetail(params: any) {
|
||||
return request.get({ url: '/goods/time/detail', params })
|
||||
}
|
||||
|
||||
// 服务时间删除
|
||||
export function apiGetGoodsTimeDel(params: any) {
|
||||
return request.post({ url: '/goods/time/del', params })
|
||||
}
|
||||
|
||||
// 服务时间所有数据
|
||||
export function apiGetGoodsTimeAllList(params: any) {
|
||||
return request.get({ url: '/goods/time/all', params })
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 单位列表
|
||||
export function apiUnitLists(params: any) {
|
||||
return request.get({ url: "/unit/list", params });
|
||||
}
|
||||
|
||||
// 添加单位
|
||||
export function apiUnitAdd(params: any) {
|
||||
return request.post({ url: "/unit/add", params });
|
||||
}
|
||||
|
||||
// 删除单位
|
||||
export function apiUnitDel(params: any) {
|
||||
return request.get({ url: "/unit/del", params });
|
||||
}
|
||||
|
||||
// 编辑单位
|
||||
export function apiUnitEdit(params: any) {
|
||||
return request.post({ url: "/unit/edit", params });
|
||||
}
|
||||
|
||||
// 单位详情
|
||||
export function apiUnitDetail(params: any) {
|
||||
return request.get({ url: "/unit/detail", params });
|
||||
}
|
||||
|
||||
// 通用单位列表
|
||||
export function apiUnitCommonLists() {
|
||||
return request.get({ url: "/goods.goods_unit/commonLists" });
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 获取地图配置
|
||||
export function getMapConfig(params: any = '') {
|
||||
return request.get({ url: '/setting/website/getMapKey', params })
|
||||
}
|
||||
|
||||
// 设置地图配置
|
||||
export function setMapConfig(params: any) {
|
||||
return request.post({ url: '/setting/website/setMapKey', params })
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/** 支付配置 Start **/
|
||||
// 获取支付配置
|
||||
export function apiPaymentConfigLists() {
|
||||
return request.get({ url: '/pay/list' })
|
||||
}
|
||||
|
||||
// 设置支付配置
|
||||
export function apiPaymentConfigSet(params: any) {
|
||||
return request.post({ url: '/pay/edit', params })
|
||||
}
|
||||
|
||||
// 支付配置详情
|
||||
export function apiPaymentConfigDetail(params: any) {
|
||||
return request.get({ url: '/pay/detail', params })
|
||||
}
|
||||
|
||||
// 获取支付方式列表
|
||||
export function apiPaymentWayLists() {
|
||||
return request.get({ url: '/way/list' })
|
||||
}
|
||||
|
||||
// 设置支付方式
|
||||
export function apiPaymentWaySet(params: any) {
|
||||
return request.post({ url: '/way/edit', params })
|
||||
}
|
||||
/** 支付配置 End **/
|
|
@ -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 })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
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 const apiCrontabLists = () => request.get({ url: '/crontab/list' })
|
||||
|
||||
// 添加定时任务
|
||||
export const apiCrontabAdd = (params: any) => request.post({ url: '/crontab/add', params })
|
||||
|
||||
// 查看详情
|
||||
export const apiCrontabDetail = (params: any) => request.get({ url: '/crontab/detail', params })
|
||||
|
||||
// 编辑定时任务
|
||||
export const apiCrontabEdit = (params: any) => request.post({ url: '/crontab/edit', params })
|
||||
|
||||
// 删除定时任务
|
||||
export const apiCrontabDel = (params: any) => request.post({ url: '/crontab/del', params })
|
||||
|
||||
// 获取规则执行时间
|
||||
export const apiCrontabExpression = (params: any) =>
|
||||
request.get({ url: '/crontab/expression', params })
|
||||
|
||||
// 操作定时任务
|
||||
export const apiSrontabOperate = (params: any) => request.post({ url: '/crontab/operate', params })
|
|
@ -0,0 +1,43 @@
|
|||
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 // 第三方自动登录 逗号隔开
|
||||
tokenValidity: number
|
||||
}
|
||||
/**
|
||||
* @return { Promise }
|
||||
* @param { LoginSetup } LoginSetup
|
||||
* @description 设置登录注册规则
|
||||
*/
|
||||
export function setLogin(params: LoginSetup) {
|
||||
return request.post({ url: '/setting/login/save', params })
|
||||
}
|
|
@ -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 })
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
//首页数据
|
||||
export function getIndex() {
|
||||
return request.get({ url: '/index' })
|
||||
}
|
||||
|
||||
// 装修页面
|
||||
export function getDecorate(data: any) {
|
||||
return request.get({ url: '/decorate', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 热门搜索
|
||||
* @return { Promise }
|
||||
*/
|
||||
export function getHotSearch() {
|
||||
return request.get({ url: '/hotSearch' })
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 搜索
|
||||
* @param { string } keyword 关键词
|
||||
* @return { Promise }
|
||||
*/
|
||||
export function getSearch(data: { keyword: string; pageNo: number; pageSize: number }) {
|
||||
return request.get({ url: '/search', data })
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
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 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
|
||||
}
|
||||
)
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
// 获取交易设置
|
||||
export function getConfig(params: any = "") {
|
||||
return request.get({ url: "/setting/transaction", params });
|
||||
}
|
||||
|
||||
// 设置交易设置
|
||||
export function setConfig(params: any) {
|
||||
return request.post({ url: "/setting/transaction", params });
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
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 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 })
|
||||
}
|
||||
|
||||
// 用户列表
|
||||
export function apiUserLists(params: any) {
|
||||
return request.get({ url: '/user/list', params })
|
||||
}
|
||||
|
||||
// 设置用户信息
|
||||
export function apiSetUserInfo(params: {
|
||||
id: number | string
|
||||
field: string
|
||||
value: string | number
|
||||
}) {
|
||||
return request.post({ url: '/user/edit', params })
|
||||
}
|
||||
|
||||
// 用户详情
|
||||
export function apiUserDetail(params: any) {
|
||||
return request.get({ url: '/user/detail', params })
|
||||
}
|
||||
|
||||
// 调整余额
|
||||
export function adjustUserWallet(params: any) {
|
||||
return request.post({ url: '/user/adjustWallet', params })
|
||||
}
|
||||
// 用户退款配置列表
|
||||
export function apiUserRefundList(params: any) {
|
||||
return request.get({ url: '/goods/cancelOrderConfig/list', params })
|
||||
}
|
|
@ -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="M502.869333 201.408a32.853333 32.853333 0 0 1 0 45.44L276.906667 480h544.384a32 32 0 0 1 0 64H276.885333l225.984 233.130667a32.853333 32.853333 0 0 1 0 45.44 30.485333 30.485333 0 0 1-44.053333 0L179.776 534.741333a32.128 32.128 0 0 1-6.848-10.688 32.213333 32.213333 0 0 1-0.085333-23.808l0.106666-0.32c1.514667-3.861333 3.797333-7.488 6.826667-10.624L458.837333 201.386667a30.485333 30.485333 0 0 1 44.053334 0z" /></svg>
|
After Width: | Height: | Size: 689 B |
|
@ -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 170.666667a85.333333 85.333333 0 0 1 85.333334 85.333333v426.666667a85.333333 85.333333 0 0 1-85.333334 85.333333H576v42.666667h74.666667a32 32 0 0 1 0 64h-277.333334a32 32 0 0 1 0-64H448v-42.666667H170.666667a85.333333 85.333333 0 0 1-85.333334-85.333333V256a85.333333 85.333333 0 0 1 85.333334-85.333333h682.666666z m-127.957333 213.333333c-37.056 0.277333-77.824 17.258667-77.824 58.666667 0 45.12 37.909333 56.042667 78.976 60.928 26.709333 2.88 46.506667 10.666667 46.506667 29.632 0 21.845333-22.4 30.186667-46.229334 30.186666-24.405333 0-47.658667-9.792-56.576-31.914666l-31.573333 16.384c14.933333 36.8 46.506667 49.450667 87.573333 49.450666 44.8 0 84.437333-19.264 84.437334-64.106666 0-46.506667-36.650667-58.24-77.056-63.616l-3.925334-0.512c-24.106667-2.88-44.8-7.765333-44.8-25.301334 0-14.933333 13.504-26.730667 41.642667-26.730666 21.824 0 40.768 10.922667 47.658667 22.421333l30.165333-15.530667C789.12 392.917333 756.672 384 725.376 384z m-280 7.189333H401.706667v201.258667h37.909333v-146.346667l64.042667 87.68h7.466666l65.472-87.381333v146.048h37.909334v-201.258667h-43.370667l-62.890667 86.549334-62.890666-86.549334z m-194.133333-0.298666H213.333333v201.258666h37.909334V503.04l84.138666 89.109333h46.805334v-2.282666l-96.768-101.504 89.301333-96.32v-1.152h-47.082667l-76.394666 85.12v-85.12z" /></svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M385.6 371.242667c12.16 113.578667 92.906667 206.634667 200 236.949333l1.664 0.448-2.453333 2.005333-317.888 237.418667c-12.16 9.066667-28.8 8.533333-40.32-0.917333l-2.410667-2.154667-28.928-28.885333c0.213333 1.898667 0.490667 3.797333 0.810667 5.717333 6.186667 35.754667 31.338667 57.962667 79.808 49.322667 26.986667-4.821333 44.117333-11.242667 63.509333-22.464l6.336-3.776 11.541333-7.168 5.397334-3.285334c35.562667-21.248 64.96-29.909333 117.973333-30.442666 69.909333-0.704 129.088 21.056 175.701333 65.173333a32.853333 32.853333 0 0 1 1.28 46.4 32.746667 32.746667 0 0 1-46.293333 1.28c-33.898667-32.042667-76.608-47.744-130.026667-47.210667-40.597333 0.426667-59.029333 5.632-84.864 21.056l-17.642666 10.88c-28.266667 17.216-53.461333 27.413333-91.413334 34.176-87.808 15.658667-144-33.92-155.882666-102.741333a151.765333 151.765333 0 0 1 4.522666-72.042667l1.066667-2.965333-20.778667-20.736a32.853333 32.853333 0 0 1-3.968-41.706667l2.048-2.688 268.437334-318.72c0.874667-1.045333 1.813333-2.005333 2.773333-2.922666z m4.181333 169.344l-2.474666 2.24-46.357334 46.421333-2.24 2.496a32.853333 32.853333 0 0 0 2.24 43.925333 32.746667 32.746667 0 0 0 43.861334 2.24l2.496-2.24 46.336-46.421333 2.261333-2.496a32.853333 32.853333 0 0 0-2.261333-43.925333 32.746667 32.746667 0 0 0-43.861334-2.24zM661.333333 85.333333c141.376 0 256 114.624 256 256s-114.624 256-256 256-256-114.624-256-256S519.957333 85.333333 661.333333 85.333333z" /></svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M579.2 874.666667a21.333333 21.333333 0 0 1 14.421333 37.056C574.037333 929.685333 546.837333 938.666667 512 938.666667s-62.037333-8.981333-81.621333-26.944A21.333333 21.333333 0 0 1 444.821333 874.666667h134.357334z m28.8-85.333334a32 32 0 0 1 0 64h-192a32 32 0 0 1 0-64h192zM512 85.333333c176.725333 0 320 143.274667 320 320 0 114.090667-59.733333 214.250667-149.610667 270.912A85.333333 85.333333 0 0 1 597.333333 768h-170.666666a85.333333 85.333333 0 0 1-85.098667-91.776C251.733333 619.584 192 519.424 192 405.333333c0-176.725333 143.274667-320 320-320z m29.098667 106.666667a29.098667 29.098667 0 1 0 0 58.176 126.08 126.08 0 0 1 126.058666 126.08 29.098667 29.098667 0 1 0 58.176 0A184.234667 184.234667 0 0 0 541.098667 192z" /></svg>
|
After Width: | Height: | Size: 1008 B |
|
@ -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="M486.570667 97.216a33.130667 33.130667 0 0 1 51.264 0.512c34.709333 43.328 152.064 98.261333 307.776 117.034667 16.576 2.005333 29.056 16 29.056 32.64v372.629333a167.04 167.04 0 0 1-20.096 79.402667C761.813333 871.146667 633.770667 938.666667 511.530667 938.666667l-6.528-0.106667c-118.954667-3.413333-244.586667-70.741333-335.573334-239.125333a167.808 167.808 0 0 1-19.925333-71.914667L149.333333 620.032V247.402667c0-16.64 12.48-30.634667 29.056-32.64 152.426667-18.368 269.077333-72.277333 305.237334-114.005334z m25.408 67.178667l-1.792 1.450666c-52.693333 41.813333-163.456 91.882667-290.389334 109.802667l-4.416 0.597333v342.976l0.149334 5.866667c0.746667 15.104 4.864 29.866667 12.074666 43.221333 80.96 149.845333 188.714667 201.962667 278.826667 204.544l5.568 0.085334c92.522667 0 201.92-51.989333 284.373333-204.629334a101.546667 101.546667 0 0 0 12.224-48.277333V276.245333l-16.277333-2.325333c-120.938667-18.048-227.904-67.690667-278.954667-108.416l-1.386666-1.109333z m161.194666 250.517333a32.853333 32.853333 0 0 1 0 46.186667l-187.306666 190.656a32.256 32.256 0 0 1-45.845334 0l-89.173333-91.157334a32.853333 32.853333 0 0 1 0-46.208 32.256 32.256 0 0 1 45.845333 0l51.029334 52.416a21.333333 21.333333 0 0 0 30.165333 0.426667l0.341333-0.362667 149.077334-151.957333a32.256 32.256 0 0 1 45.866666 0z" /></svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M486.570667 97.216a33.130667 33.130667 0 0 1 51.264 0.512c34.709333 43.328 152.064 98.261333 307.776 117.034667 16.576 2.005333 29.056 16 29.056 32.64v372.629333a167.04 167.04 0 0 1-20.096 79.402667C761.813333 871.146667 633.770667 938.666667 511.530667 938.666667l-6.528-0.106667c-118.954667-3.413333-244.586667-70.741333-335.573334-239.125333a167.808 167.808 0 0 1-19.925333-71.914667L149.333333 620.032V247.402667c0-16.64 12.48-30.634667 29.056-32.64 152.426667-18.368 269.077333-72.277333 305.237334-114.005334z m186.602666 317.696a32.256 32.256 0 0 0-45.866666 0l-149.077334 151.957333-0.341333 0.341334a21.333333 21.333333 0 0 1-30.165333-0.405334l-51.029334-52.416a32.256 32.256 0 0 0-45.866666 0 32.853333 32.853333 0 0 0 0 46.208l89.194666 91.157334a32.256 32.256 0 0 0 45.866667 0l187.285333-190.656a32.853333 32.853333 0 0 0 0-46.186667z" /></svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M486.570667 97.216a33.130667 33.130667 0 0 1 51.264 0.512c34.709333 43.328 152.064 98.261333 307.776 117.034667 16.576 2.005333 29.056 16 29.056 32.64v372.629333a167.04 167.04 0 0 1-20.096 79.402667C761.813333 871.146667 633.770667 938.666667 511.530667 938.666667l-6.528-0.106667c-118.954667-3.413333-244.586667-70.741333-335.573334-239.125333a167.808 167.808 0 0 1-19.925333-71.914667L149.333333 620.032V247.402667c0-16.64 12.48-30.634667 29.056-32.64 152.426667-18.368 269.077333-72.277333 305.237334-114.005334z m186.602666 317.696a32.256 32.256 0 0 0-45.866666 0l-149.077334 151.957333-0.341333 0.341334a21.333333 21.333333 0 0 1-30.165333-0.405334l-51.029334-52.416a32.256 32.256 0 0 0-45.866666 0 32.853333 32.853333 0 0 0 0 46.208l89.194666 91.157334a32.256 32.256 0 0 0 45.866667 0l187.285333-190.656a32.853333 32.853333 0 0 0 0-46.186667z" /></svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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 107.136v707.093333l-221.248 99.434667a32 32 0 0 1-44.586667-34.986667l41.834667-227.413333-182.826667-195.84a32 32 0 0 1 18.474667-53.461333l228.586667-35.733334 141.226666-248.298666A21.333333 21.333333 0 0 1 512 107.136z" /></svg>
|
After Width: | Height: | Size: 503 B |
|
@ -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="M486.570667 97.216a33.130667 33.130667 0 0 1 51.264 0.512c34.709333 43.328 152.064 98.261333 307.776 117.034667 16.576 2.005333 29.056 16 29.056 32.64v372.629333a167.04 167.04 0 0 1-20.096 79.402667C761.813333 871.146667 633.770667 938.666667 511.530667 938.666667l-6.528-0.106667c-118.954667-3.413333-244.586667-70.741333-335.573334-239.125333a167.808 167.808 0 0 1-19.925333-71.914667L149.333333 620.032V247.402667c0-16.64 12.48-30.634667 29.056-32.64 152.426667-18.368 269.077333-72.277333 305.237334-114.005334z m-10.026667 256.213333h-122.090667v346.026667h38.442667V389.845333h45.205333c-9.045333 30.997333-21.845333 65.493333-38.058666 104.234667 24.490667 32.170667 36.906667 61.226667 36.906666 87.189333 0 6.186667-1.493333 10.453333-4.117333 12.8-3.029333 2.304-9.045333 3.861333-17.706667 4.629334-5.290667 0-12.053333-0.768-20.352-2.325334l12.437334 40.32c26.752-0.405333 45.589333-5.44 56.874666-15.509333 7.552-8.149333 11.306667-21.333333 11.306667-39.914667-2.261333-26.346667-14.293333-57.344-36.906667-93.397333a1520.768 1520.768 0 0 0 38.037334-104.234667v-30.208z m155.946667 148.8c-11.306667 58.112-24.106667 107.306667-39.168 147.626667h-132.608v38.741333h226.773333v-38.741333h-55.744c15.445333-40.32 28.629333-85.632 39.189333-136.789333l-38.442666-10.837334z m-121.685334 11.221334l-33.514666 11.626666c12.8 34.88 23.722667 71.68 32 110.058667l33.92-8.533333c-9.813333-42.624-20.352-80.213333-32.405334-113.152z m59.904-13.952l-33.514666 11.626666c11.306667 33.706667 20.330667 68.970667 27.861333 106.176l33.536-8.917333c-8.277333-41.066667-17.322667-77.098667-27.882667-108.885333z m21.12-158.869334h-34.688c-23.338667 51.541333-57.258667 93.397333-101.333333 125.930667l19.968 31.786667c13.568-9.685333 26.752-20.928 39.189333-33.322667v20.522667h120.533334v-19.370667a338.133333 338.133333 0 0 0 38.826666 32.554667l21.461334-33.706667c-49.344-35.648-84.010667-77.12-103.978667-124.373333z m-17.344 39.530667a279.530667 279.530667 0 0 0 44.821334 68.970667h-90.026667a370.410667 370.410667 0 0 0 45.205333-68.970667z" /></svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M789.333333 486.250667V746.666667c0 58.901333-124.16 106.666667-277.333333 106.666666-150.570667 0-273.109333-46.144-277.226667-103.68L234.666667 746.666667V486.250667l260.053333 115.285333a42.666667 42.666667 0 0 0 30.848 1.450667l3.733333-1.450667L789.333333 486.250667zM529.28 166.464l398.592 176.704a21.333333 21.333333 0 0 1 0 38.997333L874.666667 405.76 874.666667 603.093333A42.666667 42.666667 0 1 1 832 603.029333v-178.410666l-302.72 134.229333a42.666667 42.666667 0 0 1-34.56 0L96.106667 382.165333a21.333333 21.333333 0 0 1 0-38.997333l398.570666-176.704a42.666667 42.666667 0 0 1 34.602667 0z" /></svg>
|
After Width: | Height: | Size: 880 B |
|
@ -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="M864 832a32 32 0 0 1 0 64h-704a32 32 0 0 1 0-64h704zM710.613333 152.533333l3.541334 3.413334 89.92 89.898666a95.36 95.36 0 0 1 3.370666 131.285334l-3.370666 3.562666-332.309334 332.309334c-9.386667 9.386667-21.077333 16.042667-33.856 19.349333l-4.842666 1.088-178.261334 33.642667a52.970667 52.970667 0 0 1-62.464-57.984l0.576-3.904L226.56 526.933333c2.453333-13.013333 8.362667-25.130667 17.045333-35.072l3.392-3.626666L579.306667 155.946667a95.36 95.36 0 0 1 131.285333-3.370667z m-83.946666 46.165334l-2.410667 2.176-332.309333 332.309333a10.602667 10.602667 0 0 0-2.517334 3.989333l-0.405333 1.536-30.741333 162.986667 119.978666-22.634667-51.968-51.968a31.786667 31.786667 0 1 1 44.949334-44.949333l70.72 70.72 317.141333-317.12a31.786667 31.786667 0 0 0 2.197333-42.538667l-2.197333-2.410666-89.898667-89.92a31.786667 31.786667 0 0 0-42.538666-2.176z" /></svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m0 64C311.701333 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333z m-145.173333 471.338667A180.970667 180.970667 0 0 0 512 693.333333a180.650667 180.650667 0 0 0 128.746667-53.653333c5.888-5.930667 11.370667-12.266667 16.384-18.944a32 32 0 0 1 51.2 38.421333c-6.784 9.024-14.186667 17.578667-22.122667 25.6A244.629333 244.629333 0 0 1 512 757.333333c-78.208 0-150.357333-36.906667-196.373333-98.261333a32 32 0 1 1 51.2-38.4zM341.333333 384a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333z m341.333334 0a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333z" /></svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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.042667 213.333333c82.752 0 161.088 24.106667 234.88 71.786667l53.525333-53.482667a32 32 0 1 1 45.248 45.248L287.573333 835.029333a32 32 0 1 1-45.248-45.248l44.693334-44.714666c-62.72-38.528-122.154667-93.909333-178.261334-165.802667a108.522667 108.522667 0 0 1-3.093333-130.56l3.136-4.202667 6.805333-8.64C233.045333 288.533333 365.546667 213.333333 512.042667 213.333333z m334.506666 153.216a842.88 842.88 0 0 1 68.693334 78.08 108.522667 108.522667 0 0 1 3.029333 130.688l-3.136 4.202667-6.826667 8.64C790.570667 735.466667 658.133333 810.666667 512.042667 810.666667a410.88 410.88 0 0 1-97.898667-11.733334l53.013333-52.970666a344.32 344.32 0 0 0 44.885334 2.901333c120.896 0 233.088-62.229333 337.408-189.482667l6.784-8.405333 6.613333-8.341333a49.344 49.344 0 0 0 0-61.226667 787.370667 787.370667 0 0 0-61.205333-69.973333l44.906666-44.885334z m-334.506666-91.413333c-121.28 0-233.493333 62.229333-337.557334 189.44l-6.784 8.405333-6.570666 8.341334a49.344 49.344 0 0 0 0.042666 61.205333c54.954667 70.442667 112.106667 122.581333 171.562667 156.8l92.864-92.885333a128 128 0 1 1 180.842667-180.842667l94.976-94.933333c-60.650667-37.184-123.733333-55.530667-189.376-55.530667zM512 443.072a68.906667 68.906667 0 0 0-44.522667 121.536l97.130667-97.130667A68.778667 68.778667 0 0 0 512 443.072z" /></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M384 554.666667a85.333333 85.333333 0 0 1 85.333333 85.333333v170.666667a85.333333 85.333333 0 0 1-85.333333 85.333333h-170.666667a85.333333 85.333333 0 0 1-85.333333-85.333333v-170.666667a85.333333 85.333333 0 0 1 85.333333-85.333333h170.666667z m245.333333 213.333333a32 32 0 0 1 32 32v42.666667a32 32 0 0 1-64 0v-42.666667a32 32 0 0 1 32-32z m192-21.333333a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32zM384 618.666667h-170.666667a21.333333 21.333333 0 0 0-21.184 18.837333L192 640v170.666667a21.333333 21.333333 0 0 0 18.837333 21.184L213.333333 832h170.666667a21.333333 21.333333 0 0 0 21.184-18.837333L405.333333 810.666667v-170.666667a21.333333 21.333333 0 0 0-18.837333-21.184L384 618.666667z m245.333333-42.666667a32 32 0 0 1 32 32v85.333333a32 32 0 0 1-64 0v-85.333333a32 32 0 0 1 32-32z m192 0a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32zM384 128a85.333333 85.333333 0 0 1 85.333333 85.333333v170.666667a85.333333 85.333333 0 0 1-85.333333 85.333333h-170.666667a85.333333 85.333333 0 0 1-85.333333-85.333333v-170.666667a85.333333 85.333333 0 0 1 85.333333-85.333333h170.666667z m426.666667 0a85.333333 85.333333 0 0 1 85.333333 85.333333v170.666667a85.333333 85.333333 0 0 1-85.333333 85.333333h-170.666667a85.333333 85.333333 0 0 1-85.333333-85.333333v-170.666667a85.333333 85.333333 0 0 1 85.333333-85.333333h170.666667zM384 192h-170.666667a21.333333 21.333333 0 0 0-21.184 18.837333L192 213.333333v170.666667a21.333333 21.333333 0 0 0 18.837333 21.184L213.333333 405.333333h170.666667a21.333333 21.333333 0 0 0 21.184-18.837333L405.333333 384v-170.666667a21.333333 21.333333 0 0 0-18.837333-21.184L384 192z m426.666667 0h-170.666667a21.333333 21.333333 0 0 0-21.184 18.837333L618.666667 213.333333v170.666667a21.333333 21.333333 0 0 0 18.837333 21.184L640 405.333333h170.666667a21.333333 21.333333 0 0 0 21.184-18.837333L832 384v-170.666667a21.333333 21.333333 0 0 0-18.837333-21.184L810.666667 192z" /></svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m265.9 713.9a377.2 377.2 0 0 1-119.6 80.6 377.5 377.5 0 0 1-292.6 0 377.1 377.1 0 0 1-200.2-200.2 377.5 377.5 0 0 1 0-292.6 377.1 377.1 0 0 1 200.2-200.2 377.5 377.5 0 0 1 292.6 0 377.1 377.1 0 0 1 200.2 200.2 377.5 377.5 0 0 1 0 292.6 377.2 377.2 0 0 1-80.6 119.6zM651.3 258.8a3.9 3.9 0 0 0-5.6 0L512 392.5 378.3 258.8a3.9 3.9 0 0 0-5.6 0l-39.6 39.6a3.9 3.9 0 0 0 0 5.6l102.3 102.4H376a4 4 0 0 0-4 4v56a4 4 0 0 0 4 4h104v80H376a4 4 0 0 0-4 4v56a4 4 0 0 0 4 4h104v148a4 4 0 0 0 4 4h56a4 4 0 0 0 4-4v-148h104a4 4 0 0 0 4-4v-56a4 4 0 0 0-4-4H544v-80h104a4 4 0 0 0 4-4v-56a4 4 0 0 0-4-4h-59.4L690.9 304a3.9 3.9 0 0 0 0-5.6z" /></svg>
|
After Width: | Height: | Size: 981 B |
|
@ -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="M511 64C263.6 64 63 264.6 63 512s200.6 448 448 448 448-200.6 448-448S758.4 64 511 64z m265.9 713.9a377.2 377.2 0 0 1-119.6 80.6 377.5 377.5 0 0 1-292.6 0 377.1 377.1 0 0 1-200.2-200.2 377.5 377.5 0 0 1 0-292.6 377.1 377.1 0 0 1 200.2-200.2 377.5 377.5 0 0 1 292.6 0 377.1 377.1 0 0 1 200.2 200.2 377.5 377.5 0 0 1 0 292.6 377.2 377.2 0 0 1-80.6 119.6zM513.8 288.6a3.9 3.9 0 0 0-5.6 0L287.6 509.2a3.9 3.9 0 0 0 0 5.6l220.6 220.6a3.9 3.9 0 0 0 5.6 0l220.6-220.6a3.9 3.9 0 0 0 0-5.6zM511 636.5L386.5 512 511 387.5 635.5 512z" /></svg>
|
After Width: | Height: | Size: 796 B |
|
@ -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="M285.8 406.9l137.3 83.7a7.7 7.7 0 0 0 11.8-6.6v-51.7h175a68.1 68.1 0 0 1 67.9 64.1 4.1 4.1 0 0 0 4 3.9h56.1a4.1 4.1 0 0 0 4-4.2c-2.2-70.8-60.6-127.8-132-127.8h-175v-51.8a7.7 7.7 0 0 0-11.8-6.6l-137.3 83.7a7.8 7.8 0 0 0 0 13.3z m452.4 210.2l-137.3-83.7a7.7 7.7 0 0 0-11.8 6.6v51.7h-175a68.1 68.1 0 0 1-67.9-64.1 4.1 4.1 0 0 0-4-3.9h-56.1a4.1 4.1 0 0 0-4 4.2c2.2 70.8 60.6 127.8 132 127.8h175v51.8a7.7 7.7 0 0 0 11.8 6.6l137.3-83.7a7.8 7.8 0 0 0 0-13.3zM856 128H168a40 40 0 0 0-40 40v688a40 40 0 0 0 40 40h688a40 40 0 0 0 40-40V168a40 40 0 0 0-40-40z m-32 696H200V200h624z" /></svg>
|
After Width: | Height: | Size: 845 B |
|
@ -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 106.666667c103.68 0 192.96 61.632 233.194667 150.250666C853.717333 266.944 938.666667 358.186667 938.666667 469.333333c0 95.509333-62.762667 176.362667-149.333334 203.562667V832a85.333333 85.333333 0 0 1-85.333333 85.333333H320a85.333333 85.333333 0 0 1-85.333333-85.333333v-180.437333C148.117333 624.384 85.333333 543.530667 85.333333 448c0-114.986667 90.944-208.704 204.8-213.162667A255.893333 255.893333 0 0 1 512 106.666667z m-104.725333 583.893333a25.557333 25.557333 0 0 0-36.949334 0 27.605333 27.605333 0 0 0 0 38.186667c78.250667 80.789333 205.098667 80.789333 283.349334 0a27.605333 27.605333 0 0 0 0-38.186667 25.557333 25.557333 0 0 0-36.949334 0 144.810667 144.810667 0 0 1-209.450666 0z" /></svg>
|
After Width: | Height: | Size: 981 B |
|
@ -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="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32z m-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174c6.4 8.8 19.6 8.8 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z" /></svg>
|
After Width: | Height: | Size: 775 B |
|
@ -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="M332.202667 347.136c12.16 12.373333 12.16 32.426667 0 44.821333-12.16 12.373333-31.893333 12.373333-44.053334 0l-151.04-115.584a32.085333 32.085333 0 0 1 0-44.842666l151.04-115.584c12.16-12.373333 31.893333-12.373333 44.053334 0 12.16 12.373333 12.16 32.448 0 44.842666l-85.290667 61.589334H565.333333c182.613333 0 330.666667 146.026667 330.666667 326.144 0 177.92-144.426667 322.538667-323.925333 326.08L565.333333 874.666667h-213.333333a31.786667 31.786667 0 0 1-32-31.573334c0-16.384 12.693333-29.866667 28.928-31.402666l3.072-0.149334h213.333333c147.285333 0 266.666667-117.76 266.666667-263.018666 0-143.082667-115.84-259.477333-260.096-262.933334l-6.570667-0.064-318.442666-0.021333 85.333333 61.632z" /></svg>
|
After Width: | Height: | Size: 982 B |
|
@ -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 338.944V537.6c-32-16.362667-68.266667-25.6-106.666666-25.6-129.6 0-234.666667 105.066667-234.666667 234.666667 0 79.381333 39.424 149.546667 99.754667 192.021333L256 938.666667a85.333333 85.333333 0 0 1-85.333333-85.333334V338.965333a510.229333 510.229333 0 0 0 257.216 123.498667 85.312 85.312 0 0 0 168.192 0 510.165333 510.165333 0 0 0 257.28-123.52zM768 85.333333a85.333333 85.333333 0 0 1 85.333333 85.333334l0.021334 108.778666a468.437333 468.437333 0 0 1-260.842667 140.330667 85.354667 85.354667 0 0 0-161.088 0 468.373333 468.373333 0 0 1-260.778667-140.330667L170.666667 170.666667a85.333333 85.333333 0 0 1 85.333333-85.333334h512z m-21.354667 469.333334a191.957333 191.957333 0 0 1 168.597334 100.053333L746.666667 746.666667l135.765333 135.744A192 192 0 1 1 746.645333 554.666667z m32 106.666666a32 32 0 1 0 0-64 32 32 0 0 0 0 64z" /></svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M103.082667 632.704c1.493333 1.130667 3.093333 2.176 4.778666 3.136l2.56 1.344L490.666667 822.421333a49.066667 49.066667 0 0 0 38.976 1.621334l3.690666-1.621334 380.224-185.237333c2.624-1.28 5.077333-2.773333 7.36-4.458667 17.216 12.650667 22.954667 35.477333 12.544 54.4a45.162667 45.162667 0 0 1-19.904 18.752L533.333333 891.093333a49.024 49.024 0 0 1-42.666666 0L110.442667 705.877333c-22.784-11.093333-31.701333-37.482667-19.904-58.922666 3.072-5.546667 7.338667-10.410667 12.544-14.250667z m0-153.6c1.493333 1.130667 3.093333 2.176 4.778666 3.136l2.56 1.344L490.666667 668.821333a49.066667 49.066667 0 0 0 38.976 1.621334l3.690666-1.621334 380.224-185.237333c2.624-1.28 5.077333-2.773333 7.36-4.458667 17.216 12.650667 22.954667 35.477333 12.544 54.4a45.162667 45.162667 0 0 1-19.904 18.752L533.333333 737.493333a49.024 49.024 0 0 1-42.666666 0L110.442667 552.277333c-22.784-11.093333-31.701333-37.482667-19.904-58.922666 3.072-5.546667 7.338667-10.410667 12.544-14.250667zM533.333333 132.970667l380.224 187.968c22.784 11.264 31.701333 38.037333 19.904 59.776a45.44 45.44 0 0 1-19.904 19.008L533.333333 587.733333c-13.376 6.613333-29.290667 6.613333-42.666666 0L110.442667 399.722667c-22.784-11.264-31.701333-38.016-19.904-59.776a45.44 45.44 0 0 1 19.904-18.986667L490.666667 132.949333a48.362667 48.362667 0 0 1 42.666666 0z" /></svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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>
|
After Width: | Height: | Size: 498 B |
|
@ -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="M857.770667 163.882667c75.157333 75.136 72.448 209.237333 6.122666 346.944-17.792 36.309333-41.130667 72.725333-69.248 107.904a64 64 0 1 0 48.533334 41.792 697.173333 697.173333 0 0 0 51.328-72.682667c33.962667 109.098667 24.277333 208.938667-36.736 269.930667-67.84 67.84-183.701333 72.234667-306.922667 23.658666l-1.642667-0.938666-2.816-1.237334a475.690667 475.690667 0 0 1-34.410666-14.784v-0.021333c-40.170667-19.093333-80.64-44.842667-119.530667-76.288a32 32 0 0 0-40.234667 49.792c26.368 21.312 53.504 40.32 80.96 56.746667-108.842667 33.728-208.426667 23.957333-269.290666-36.906667-73.749333-73.749333-72.533333-204.309333-9.749334-339.328l3.434667-7.253333c19.882667-34.432 45.141333-68.693333 74.986667-101.482667a64 64 0 1 0-43.733334-46.997333 688.085333 688.085333 0 0 0-60.394666 75.093333c-35.477333-110.656-26.304-212.202667 35.456-273.941333 75.136-75.157333 209.237333-72.448 346.944-6.122667 137.706667-66.325333 271.808-69.034667 346.944 6.122667z m-347.306667 261.248a85.333333 85.333333 0 1 0 0 170.666666 85.333333 85.333333 0 0 0 0-170.666666z" /></svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M683.918222 910.222222h-341.333333a227.555556 227.555556 0 0 1-227.555556-227.555555V341.333333a227.555556 227.555556 0 0 1 227.555556-227.555555h341.333333a227.555556 227.555556 0 0 1 227.555556 227.555555v341.333334a227.555556 227.555556 0 0 1-227.555556 227.555555z m-341.333333-728.177778a159.288889 159.288889 0 0 0-159.288889 159.288889v341.333334a159.288889 159.288889 0 0 0 159.288889 159.288889h341.333333a159.288889 159.288889 0 0 0 159.288889-159.288889V341.333333a159.288889 159.288889 0 0 0-159.288889-159.288889z" /><path d="M513.251556 711.111111a199.111111 199.111111 0 1 1 199.111111-199.111111 199.395556 199.395556 0 0 1-199.111111 199.111111z m0-329.955555a130.844444 130.844444 0 1 0 130.844444 130.844444 130.844444 130.844444 0 0 0-130.844444-130.901333z" /></svg>
|
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m0 64C311.701333 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333z" /></svg>
|
After Width: | Height: | Size: 639 B |
|
@ -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 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m0 64C311.701333 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333z m0 149.333334c117.824 0 213.333333 95.509333 213.333333 213.333333s-95.509333 213.333333-213.333333 213.333333-213.333333-95.509333-213.333333-213.333333 95.509333-213.333333 213.333333-213.333333z" /></svg>
|
After Width: | Height: | Size: 837 B |
|
@ -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="M714.666667 106.666667a74.666667 74.666667 0 0 1 74.56 70.570666L789.333333 181.333333V213.333333h10.666667a117.333333 117.333333 0 0 1 117.248 112.618667L917.333333 330.666667v320a117.333333 117.333333 0 0 1-112.618666 117.248L800 768H789.333333v10.666667a117.333333 117.333333 0 0 1-117.333333 117.333333h-320a117.333333 117.333333 0 0 1-117.333333-117.333333V768h-10.666667a117.333333 117.333333 0 0 1-117.248-112.618667L106.666667 650.666667v-320a117.333333 117.333333 0 0 1 112.618666-117.248L224 213.333333h10.666667V181.333333a74.666667 74.666667 0 0 1 70.570666-74.56L309.333333 106.666667h405.333334z m-42.666667 490.666666h-320a53.333333 53.333333 0 0 0-53.333333 53.333334v128a53.333333 53.333333 0 0 0 53.333333 53.333333h320a53.333333 53.333333 0 0 0 53.333333-53.333333v-128a53.333333 53.333333 0 0 0-53.333333-53.333334z m128-320h-576a53.333333 53.333333 0 0 0-53.226667 49.834667L170.666667 330.666667v320a53.333333 53.333333 0 0 0 49.834666 53.226666L224 704h10.666667v-53.333333a117.333333 117.333333 0 0 1 117.333333-117.333334h320a117.333333 117.333333 0 0 1 117.333333 117.333334V704h10.666667a53.333333 53.333333 0 0 0 53.226667-49.834667L853.333333 650.666667v-320a53.333333 53.333333 0 0 0-49.834666-53.226667L800 277.333333z m-42.666667 64a32 32 0 0 1 0 64h-42.666666a32 32 0 0 1 0-64h42.666666z m-42.666666-170.666666h-405.333334a10.666667 10.666667 0 0 0-10.496 8.746666L298.666667 181.333333V213.333333h426.666666V181.333333a10.666667 10.666667 0 0 0-8.746666-10.496L714.666667 170.666667z" /></svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M672 640a53.333333 53.333333 0 0 1 53.333333 53.333333v128a53.333333 53.333333 0 0 1-53.333333 53.333334h-320a53.333333 53.333333 0 0 1-53.333333-53.333334v-128a53.333333 53.333333 0 0 1 53.333333-53.333333h320z m42.666667-490.666667a74.666667 74.666667 0 0 1 74.56 70.570667L789.333333 224V256h10.666667a117.333333 117.333333 0 0 1 117.248 112.618667L917.333333 373.333333v320a117.333333 117.333333 0 0 1-112.618666 117.248L800 810.666667H789.333333v-117.333334a117.333333 117.333333 0 0 0-117.333333-117.333333h-320a117.333333 117.333333 0 0 0-117.333333 117.333333V810.666667h-10.666667a117.333333 117.333333 0 0 1-117.248-112.618667L106.666667 693.333333v-320a117.333333 117.333333 0 0 1 112.618666-117.248L224 256h10.666667v-32a74.666667 74.666667 0 0 1 70.570666-74.56L309.333333 149.333333h405.333334z m42.666666 234.666667h-42.666666a32 32 0 0 0-3.072 63.850667L714.666667 448h42.666666a32 32 0 0 0 0-64z m-42.666666-170.666667h-405.333334a10.666667 10.666667 0 0 0-10.496 8.746667L298.666667 224V256h426.666666v-32a10.666667 10.666667 0 0 0-8.746666-10.496L714.666667 213.333333z" /></svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M889.287111 219.420444h-178.005333V154.737778a97.28 97.28 0 0 0-96.995556-96.711111h-193.991111a97.28 97.28 0 0 0-96.995555 96.711111v64.682666H145.464889a32.312889 32.312889 0 0 0-32.312889 32.312889 32.312889 32.312889 0 0 0 32.312889 32.369778h48.469333v517.290667a129.706667 129.706667 0 0 0 129.308445 129.308444h387.982222a129.706667 129.706667 0 0 0 129.308444-129.308444V284.103111h48.469334a32.369778 32.369778 0 0 0 32.369777-32.369778 32.312889 32.312889 0 0 0-32.369777-32.312889zM388.152889 154.737778a32.426667 32.426667 0 0 1 32.312889-32.312889h193.991111a32.426667 32.426667 0 0 1 32.312889 32.312889v64.682666H388.152889z m387.982222 646.599111a64.853333 64.853333 0 0 1-64.682667 64.682667h-387.982222a64.910222 64.910222 0 0 1-64.682666-64.682667V284.046222h517.290666zM420.750222 413.411556a32.426667 32.426667 0 0 0-32.312889 32.312888v258.616889a32.312889 32.312889 0 0 0 32.369778 32.312889 32.312889 32.312889 0 0 0 32.312889-32.312889V445.724444a32.426667 32.426667 0 0 0-32.312889-32.312888z m193.991111 0a32.426667 32.426667 0 0 0-32.312889 32.312888v258.616889a32.312889 32.312889 0 0 0 32.369778 32.312889 32.312889 32.312889 0 0 0 32.312889-32.312889V445.724444a32.426667 32.426667 0 0 0-32.312889-32.312888z" /></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M502.016 789.333333l37.056 64H96a32 32 0 0 1 0-64h406.016zM512 149.333333a106.666667 106.666667 0 0 1 105.770667 120.597334 406.122667 406.122667 0 0 1 240.384 180.416 72.981333 72.981333 0 0 0-27.562667-5.397334h-210.517333c-26.090667 0-50.197333 13.866667-63.253334 36.416l-95.488 164.906667a72.64 72.64 0 0 0 0 72.810667l3.626667 6.250666H96a32 32 0 0 1 0-64H106.666667c0-187.264 126.997333-344.874667 299.584-391.402666A106.666667 106.666667 0 0 1 512 149.333333z m0 64a42.666667 42.666667 0 0 0-42.602667 44.864 411.584 411.584 0 0 1 85.184 0L554.666667 256a42.666667 42.666667 0 0 0-42.666667-42.666667z" /><path d="M802.496 490.666667c21.077333 0 40.554667 11.2 51.114667 29.397333l77.141333 133.205333a58.645333 58.645333 0 0 1 0 58.794667l-77.141333 133.205333A59.050667 59.050667 0 0 1 802.496 874.666667h-154.325333a59.050667 59.050667 0 0 1-51.114667-29.397334l-77.141333-133.205333a58.645333 58.645333 0 0 1 0-58.794667l77.141333-133.205333A59.050667 59.050667 0 0 1 648.170667 490.666667zM725.333333 618.666667a64 64 0 1 0 0 128 64 64 0 0 0 0-128z" /></svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M219.093333 197.717333l-2.986666 3.2c-1.898667 2.24-3.626667 4.608-5.141334 7.125334l-0.938666 1.514666 1.984-2.432a172.8 172.8 0 0 0-28.586667 47.488C139.114667 365.589333 214.037333 546.133333 348.821333 680.533333c108.693333 108.373333 262.4 194.176 362.24 194.133334 28.757333 0 55.68-4.714667 79.786667-14.314667 22.549333-8.917333 42.154667-21.482667 58.133333-37.418667l30.848-30.762666a54.976 54.976 0 0 0 0-77.824l-141.696-141.226667-2.986666-2.773333a55.082667 55.082667 0 0 0-74.816 2.816l-48.768 48.64-5.077334 0.042666c-35.221333-0.725333-74.794667-21.738667-118.72-65.514666l-5.610666-5.696c-40.085333-41.493333-59.306667-79.04-59.84-112.704l0.042666-5.077334 48.512-48.384a54.869333 54.869333 0 0 0 0-77.824L329.344 165.546667a54.997333 54.997333 0 0 0-77.994667 0L219.093333 197.717333z m49.152 47.018667l22.101334-22.058667 123.242666 122.88-42.282666 42.24a56.661333 56.661333 0 0 0-16.426667 35.264c-5.162667 60.437333 24.213333 120.96 84.885333 181.418667 60.586667 60.373333 121.045333 89.749333 181.312 84.906667l4.416-0.554667a56.682667 56.682667 0 0 0 31.04-15.829333l42.730667-42.624 123.306667 122.88-21.589334 21.525333c-9.258667 9.216-20.992 16.746667-35.2 22.357333-15.829333 6.293333-34.218667 9.536-54.72 9.536-78.314667 0.021333-217.024-77.44-314.176-174.293333-117.653333-117.290667-182.165333-272.725333-150.293333-352.576 3.328-8.341333 7.722667-16.170667 13.162667-23.488l5.909333-7.509333 1.493333-2.24 1.088-1.834667z" /></svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M197.76 197.717333l-2.986667 3.2c-1.898667 2.24-3.626667 4.608-5.141333 7.125334l-0.938667 1.514666 1.984-2.432a172.8 172.8 0 0 0-28.586666 47.488C117.781333 365.589333 192.704 546.133333 327.488 680.533333c108.693333 108.373333 262.4 194.176 362.24 194.133334 28.757333 0 55.68-4.714667 79.786667-14.314667 22.549333-8.917333 42.154667-21.482667 58.133333-37.418667l30.848-30.762666a54.976 54.976 0 0 0 0-77.824l-141.696-141.226667-2.986667-2.773333a55.082667 55.082667 0 0 0-74.816 2.816l-48.768 48.64-5.077333 0.042666c-35.221333-0.725333-74.794667-21.738667-118.72-65.514666l-5.610667-5.696c-40.085333-41.493333-59.306667-79.04-59.84-112.704l0.042667-5.077334 48.512-48.384a54.869333 54.869333 0 0 0 0-77.824L308.010667 165.546667a54.997333 54.997333 0 0 0-77.994667 0L197.76 197.717333z" /></svg>
|
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg 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 65C264.6 65 64 265.6 64 513.1a448.9 448.9 0 0 0 19.2 130.3c28.8 43.7 88.5 57.2 124.8 64.8 198 41 235 20 348.8 250.8C783.2 936.5 960 745.5 960 513.1 960 265.6 759.4 65 512 65z m278.1 701.3a375.3 375.3 0 0 1-193 113.2c-17.2-32.3-32.6-58.4-47.3-80.2-24.6-36.2-48.6-62.6-75.8-83.2s-54.6-33.6-90.4-44.4c-29.3-8.8-61.4-14.9-98.6-21.9-19.5-3.7-39.7-7.4-62.4-12.1-16.4-3.4-35.3-7.7-51.7-14.6-9.6-4.1-17.2-8.7-22.4-13.4a377.6 377.6 0 0 1-12.5-96.6 376 376 0 1 1 725.9 138.1 377.6 377.6 0 0 1-71.8 115.1zM512 208a48 48 0 1 0 48 48 48 48 0 0 0-48-48z m-181 75a48 48 0 1 0 0 96 48 48 0 1 0 0-96z m-75 181a48 48 0 1 0 48 48 48 48 0 0 0-48-48z m437 157a72 72 0 1 0 50.9 21.1A71.5 71.5 0 0 0 693 621z m75-157a48 48 0 1 0 48 48 48 48 0 0 0-48-48z m-75-85a48.1 48.1 0 1 0-33.9-14.1A47.9 47.9 0 0 0 693 379z" /></svg>
|
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M377.258667 597.333333c39.68 28.437333 84.608 42.666667 134.741333 42.666667 7.914667 0 15.701333-0.362667 23.36-1.066667-22.314667 41.6-34.026667 87.637333-34.026667 130.581334 0 65.834667 25.173333 114.752 67.477334 147.84L238.037333 917.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V618.666667c29.930667 14.229333 59.882667 21.333333 89.813333 21.333333 29.952 0 74.88-14.229333 134.741334-42.666667zM746.666667 469.333333c58.901333 0 106.666667 28.650667 106.666666 64 0 15.786667-9.514667 30.208-25.28 41.386667C897.813333 611.541333 938.666667 693.376 938.666667 768c0 100.138667-85.973333 149.333333-192 149.333333s-192-49.194667-192-149.333333c0-74.602667 40.832-156.437333 110.613333-193.344C649.493333 563.562667 640 549.12 640 533.333333c0-35.349333 47.765333-64 106.666667-64z m-38.378667 171.989334l-2.026667 0.938666-0.981333 0.554667-1.024 0.64a14.613333 14.613333 0 0 0-5.056 18.389333l1.066667 1.877334 12.757333 19.008H688a16 16 0 0 0-2.176 31.850666l2.176 0.149334h42.666667v21.312h-32a16 16 0 0 0-2.176 31.850666l2.176 0.149334 32-0.021334v37.312a16 16 0 0 0 31.850666 2.176l0.149334-2.176V768l32 0.042667a16 16 0 0 0 2.176-31.850667l-2.176-0.149333h-32v-21.333334l42.666666 0.021334a16 16 0 0 0 2.176-31.829334l-2.176-0.149333h-25.045333l12.778667-19.029333 1.066666-1.877334a14.634667 14.634667 0 0 0-3.2-16.896l-1.856-1.493333-1.024-0.64-0.981333-0.554667-2.026667-0.938666a16 16 0 0 0-17.536 4.053333l-1.536 1.941333-19.328 28.8-19.285333-28.8a16 16 0 0 0-19.072-5.994666zM811.413333 106.666667c57.216 0 104.981333 40.789333 111.530667 94.293333l0.469333 4.608 13.632 199.573333a144.042667 144.042667 0 0 1-31.637333 113.408C895.488 460.736 828.16 416 746.666667 416c-88.362667 0-160 52.522667-160 117.333333 0 7.893333 1.066667 15.637333 3.114666 23.125334-19.754667 10.730667-42.24 17.493333-66.197333 19.136l-6.186667 0.32L512 576c-53.973333 0-101.632-25.856-129.92-65.258667l-3.2-4.608-1.621333-2.538666-1.621334 2.56c-25.898667 39.04-70.314667 65.92-121.536 69.44l-6.186666 0.32-5.397334 0.085333C155.733333 576 85.333333 509.141333 85.333333 426.666667c0-5.930667 0.362667-11.84 1.002667-16.853334l0.512-3.626666 13.738667-200.597334c4.16-54.208 50.474667-96.512 107.114666-98.816L212.586667 106.666667h598.826666z" /></svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M768 85.333333a85.333333 85.333333 0 0 1 85.333333 85.333334v768a42.666667 42.666667 0 0 1-42.56-39.466667L810.666667 896a42.666667 42.666667 0 0 0-85.226667-3.2L725.333333 896a42.666667 42.666667 0 0 1-85.226666 3.2L640 896a42.666667 42.666667 0 0 0-85.226667-3.2L554.666667 896a42.666667 42.666667 0 0 1-85.226667 3.2L469.333333 896a42.666667 42.666667 0 0 0-85.226666-3.2L384 896a42.666667 42.666667 0 0 1-85.226667 3.2L298.666667 896a42.666667 42.666667 0 0 0-85.226667-3.2L213.333333 896a42.666667 42.666667 0 0 1-39.466666 42.56L170.666667 938.666667V170.666667a85.333333 85.333333 0 0 1 85.333333-85.333334h512z m-53.333333 469.333334h-405.333334a32 32 0 0 0 0 64h405.333334a32 32 0 0 0 0-64z m0-234.666667h-405.333334a32 32 0 0 0 0 64h405.333334a32 32 0 0 0 0-64z" /></svg>
|
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M928 789.333333a32 32 0 0 1 0 64h-832a32 32 0 0 1 0-64h832zM512 149.333333a106.666667 106.666667 0 0 1 105.770667 120.597334c170.346667 45.930667 296.298667 200.106667 299.52 384.213333L917.333333 661.333333h10.666667a32 32 0 0 1 0 64h-832a32 32 0 0 1 0-64H106.666667c0-187.264 126.997333-344.874667 299.584-391.402666A106.666667 106.666667 0 0 1 512 149.333333z m0 64a42.666667 42.666667 0 0 0-42.602667 44.864 411.584 411.584 0 0 1 85.184 0L554.666667 256a42.666667 42.666667 0 0 0-42.666667-42.666667z" /></svg>
|
After Width: | Height: | Size: 780 B |
|
@ -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="M810.666667 85.333333a85.333333 85.333333 0 0 1 85.333333 85.333334v682.666666a85.333333 85.333333 0 0 1-85.333333 85.333334H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333334V170.666667a85.333333 85.333333 0 0 1 85.333333-85.333334h597.333334z m0 64H213.333333a21.333333 21.333333 0 0 0-21.184 18.837334L192 170.666667v682.666666a21.333333 21.333333 0 0 0 18.837333 21.184L213.333333 874.666667h597.333334a21.333333 21.333333 0 0 0 21.184-18.837334L832 853.333333V170.666667a21.333333 21.333333 0 0 0-18.837333-21.184L810.666667 149.333333z m-117.333334 362.666667a32 32 0 0 1 0 64h-362.666666a32 32 0 0 1 0-64h362.666666z m-170.666666-170.666667a32 32 0 0 1 0 64h-192a32 32 0 0 1 0-64h192z" /></svg>
|
After Width: | Height: | Size: 973 B |
|
@ -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="M789.333333 106.666667a85.333333 85.333333 0 0 1 85.333334 85.333333v640a85.333333 85.333333 0 0 1-85.333334 85.333333H277.333333a85.333333 85.333333 0 0 1-85.333333-85.333333v-64a42.666667 42.666667 0 1 1 0-85.333333v-128a42.666667 42.666667 0 1 1 0-85.333334v-128a42.666667 42.666667 0 1 1 0-85.333333V192a85.333333 85.333333 0 0 1 85.333333-85.333333h512z m-74.666666 426.666666h-362.666667a32 32 0 0 0 0 64h362.666667a32 32 0 0 0 0-64z m-170.666667-170.666666h-192a32 32 0 0 0 0 64h192a32 32 0 0 0 0-64z" /></svg>
|
After Width: | Height: | Size: 783 B |
|
@ -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="M810.666667 85.333333a85.333333 85.333333 0 0 1 85.333333 85.333334v682.666666a85.333333 85.333333 0 0 1-85.333333 85.333334H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333334V170.666667a85.333333 85.333333 0 0 1 85.333333-85.333334h597.333334z m-117.333334 426.666667h-362.666666a32 32 0 0 0 0 64h362.666666a32 32 0 0 0 0-64z m-170.666666-170.666667h-192a32 32 0 0 0 0 64h192a32 32 0 0 0 0-64z" /></svg>
|
After Width: | Height: | Size: 676 B |
|
@ -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 85.333333c188.373333 0 341.333333 150.250667 341.333333 335.914667 0 108.032-82.453333 263.402667-246.293333 471.274667a120.96 120.96 0 0 1-190.144-0.064l-16.746667-21.44C247.509333 673.92 170.666667 525.568 170.666667 421.248 170.666667 235.584 323.626667 85.333333 512 85.333333z m0 64c-153.322667 0-277.333333 121.642667-277.333333 271.36 0 87.296 74.816 229.717333 225.472 422.250667l8.32 10.624a55.445333 55.445333 0 0 0 87.061333 0C711.744 655.637333 789.333333 509.632 789.333333 420.693333 789.333333 270.954667 665.322667 149.333333 512 149.333333z m0 128a128 128 0 1 1 0 256 128 128 0 0 1 0-256z m0 64a64 64 0 1 0 0 128 64 64 0 0 0 0-128z" /></svg>
|
After Width: | Height: | Size: 929 B |