This commit is contained in:
chenbo 2024-01-09 15:59:23 +08:00
commit 0cb210aa2e
5660 changed files with 661800 additions and 0 deletions

1
.example.env Normal file
View File

@ -0,0 +1 @@
APP_DEBUG = true [APP] DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = test USERNAME = username PASSWORD = password HOSTPORT = 3306 CHARSET = utf8 DEBUG = true PREFIX = la_ [LANG] default_lang = zh-cn [PROJECT] UNIQUE_IDENTIFICATION = likeadmin # 演示环境 DEMO_ENV = false

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
/.idea
/.vscode
*.log
/.env
/public/uploads/*
!/public/uploads/index.html
/runtime/*
!/runtime/index.html
/admin/node_modules
/admin/dist
/admin/.vscode

0
.htaccess Normal file
View File

42
.travis.yml Normal file
View File

@ -0,0 +1,42 @@
sudo: false
language: php
branches:
only:
- stable
cache:
directories:
- $HOME/.composer/cache
before_install:
- composer self-update
install:
- composer install --no-dev --no-interaction --ignore-platform-reqs
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip .
- composer require --update-no-dev --no-interaction "topthink/think-image:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0"
- composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0"
- composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0"
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip .
script:
- php think unit
deploy:
provider: releases
api_key:
secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw=
file:
- ThinkPHP_Core.zip
- ThinkPHP_Full.zip
skip_cleanup: true
on:
tags: true

32
LICENSE.txt Normal file
View File

@ -0,0 +1,32 @@
ThinkPHP遵循Apache2开源协议发布并提供免费使用。
版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn)
All rights reserved。
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议和BSD类似鼓励代码共享和尊重原作者的著作权
允许代码修改,再作为开源或商业软件发布。需要满足
的条件:
1 需要给代码的用户一份Apache Licence
2 如果你修改了代码,需要在被修改的文件中说明;
3 在延伸的代码中(修改和有源代码衍生的代码中)需要
带有原来代码中的协议,商标,专利声明和其他原来作者规
定需要包含的说明;
4 如果再发布的产品中包含一个Notice文件则在Notice文
件中需要带有本协议内容。你可以在Notice中增加自己的
许可但不可以表现为对Apache Licence构成更改。
具体的协议参考http://www.apache.org/licenses/LICENSE-2.0
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

56
README.md Normal file
View File

@ -0,0 +1,56 @@
ThinkPHP 6.0
===============
> 运行环境要求PHP7.1+兼容PHP8.0。
[官方应用服务市场](https://market.topthink.com) | [`ThinkAPI`——官方统一API服务](https://docs.topthink.com/think-api)
ThinkPHPV6.0版本由[亿速云](https://www.yisu.com/)独家赞助发布。
## 主要新特性
* 采用`PHP7`强类型(严格模式)
* 支持更多的`PSR`规范
* 原生多应用支持
* 更强大和易用的查询
* 全新的事件系统
* 模型事件和数据库事件统一纳入事件系统
* 模板引擎分离出核心
* 内部功能中间件化
* SESSION/Cookie机制改进
* 对Swoole以及协程支持改进
* 对IDE更加友好
* 统一和精简大量用法
## 安装
~~~
composer create-project topthink/think tp 6.0.*
~~~
如果需要更新框架使用
~~~
composer update topthink/framework
~~~
## 文档
[完全开发手册](https://www.kancloud.cn/manual/thinkphp6_0/content)
## 参与开发
请参阅 [ThinkPHP 核心框架包](https://github.com/top-think/framework)。
## 版权信息
ThinkPHP遵循Apache2开源协议发布并提供免费使用。
本项目包含的第三方源码和二进制文件之版权信息另行标注。
版权所有Copyright © 2006-2020 by ThinkPHP (http://thinkphp.cn)
All rights reserved。
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
更多细节参阅 [LICENSE.txt](LICENSE.txt)

View File

@ -0,0 +1,4 @@
NODE_ENV = 'development'
# Base API
VITE_APP_BASE_URL=''

View File

@ -0,0 +1,3 @@
NODE_ENV = 'production'
# Base API
VITE_APP_BASE_URL=''

42
admin/.eslintrc.cjs Normal file
View File

@ -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',
'@vue/eslint-config-prettier',
'./.eslintrc-auto-import.json'
],
rules: {
'prettier/prettier': [
'warn',
{
semi: false,
singleQuote: true,
printWidth: 100,
proseWrap: 'preserve',
bracketSameLine: false,
endOfLine: 'lf',
tabWidth: 4,
useTabs: false,
trailingComma: 'none'
}
],
'vue/multi-word-component-names': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'no-undef': 'off',
'vue/prefer-import-from-vue': 'off',
'no-prototype-builtins': 'off',
'prefer-spread': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'off'
},
globals: {
module: 'readonly'
}
}

35
admin/.gitignore vendored Normal file
View File

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

46
admin/README.md Normal file
View File

@ -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
```

1
admin/global.d.ts vendored Normal file
View File

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

69
admin/index.html Normal file
View File

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

13391
admin/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

66
admin/package.json Normal file
View File

@ -0,0 +1,66 @@
{
"name": "vue-project",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"dev": "vite",
"preview": "vite preview --port 4173",
"build": "vite build && node scripts/release.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.3.1",
"@highlightjs/vue-plugin": "^2.1.0",
"@wangeditor/editor": "^5.1.12",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^0.27.2",
"css-color-function": "^1.3.3",
"echarts": "^5.3.3",
"element-plus": "^2.2.9",
"flv.js": "^1.6.2",
"highlight.js": "^11.6.0",
"nprogress": "^0.2.0",
"pinia": "^2.0.14",
"uuid": "^9.0.1",
"vue": "^3.2.37",
"vue-clipboard3": "^2.0.0",
"vue-echarts": "^6.2.3",
"vue-router": "^4.0.16",
"vue3-video-play": "^1.3.1-beta.6",
"vuedraggable": "^4.1.0"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.1.0",
"@tailwindcss/line-clamp": "^0.4.2",
"@types/lodash-es": "^4.17.6",
"@types/node": "^16.11.41",
"@types/nprogress": "^0.2.0",
"@types/uuid": "^9.0.7",
"@vitejs/plugin-legacy": "^2.3.1",
"@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",
"terser": "^5.15.1",
"typescript": "~4.7.4",
"unplugin-auto-import": "^0.9.2",
"unplugin-vue-components": "^0.19.9",
"vite": "^3.0.0",
"vite-plugin-style-import": "^2.0.0",
"vite-plugin-svg-icons": "^2.0.1",
"vite-plugin-vue-setup-extend": "^0.4.0",
"vue-tsc": "^0.38.1"
}
}

6
admin/postcss.config.js Normal file
View File

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

1
admin/public/decoder.js Normal file

File diff suppressed because one or more lines are too long

BIN
admin/public/decoder.wasm Normal file

Binary file not shown.

19
admin/public/index.html Normal file
View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<script src="./jessibuca.js"></script>
</head>
<body class="page">
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

File diff suppressed because one or more lines are too long

35
admin/scripts/release.mjs Normal file
View File

@ -0,0 +1,35 @@
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() {
if (existsSync(releasePath)) {
await remove(releasePath)
}
console.log(`文件正在复制 ==> ${releaseRelativePath}`)
try {
await copyFile(distPath, releasePath)
} catch (error) {
console.log(`\n ${error}`)
}
console.log(`文件已复制 ==> ${releaseRelativePath}`)
}
function copyFile(sourceDir, targetDir) {
return new Promise((resolve, reject) => {
copy(sourceDir, targetDir, (err) => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
build()

58
admin/src/App.vue Normal file
View File

@ -0,0 +1,58 @@
<script setup lang="ts">
import { useDark, useWindowSize, useThrottleFn } from '@vueuse/core'
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
import useAppStore from './stores/modules/app'
import useSettingStore from './stores/modules/setting'
import { ScreenEnum } from './enums/appEnums'
const appStore = useAppStore()
const settingStore = useSettingStore()
const elConfig = {
zIndex: 3000,
locale: zhCn
}
const isDark = useDark()
onMounted(async () => {
//
settingStore.setTheme(isDark.value)
//
const data: any = await appStore.getConfig()
// logo
let favicon: HTMLLinkElement = document.querySelector('link[rel="icon"]')!
if (favicon) {
favicon.href = data.web_favicon
return
}
favicon = document.createElement('link')
favicon.rel = 'icon'
favicon.href = data.web_favicon
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>

16
admin/src/api/app.ts Normal file
View File

@ -0,0 +1,16 @@
import request from '@/utils/request'
// 配置
export function getConfig() {
return request.get({ url: '/config/getConfig' })
}
// 工作台主页
export function getWorkbench() {
return request.get({ url: '/workbench/index' })
}
//字典数据
export function getDictData(params: any) {
return request.get({ url: '/config/dict', params })
}

View File

@ -0,0 +1,10 @@
import request from '@/utils/request'
export function getRechargeConfig() {
return request.get({ url: '/recharge.recharge/getConfig' })
}
// 设置
export function setRechargeConfig(params: any) {
return request.post({ url: '/recharge.recharge/setConfig', params })
}

69
admin/src/api/article.ts Normal file
View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,110 @@
import request from '@/utils/request'
// 微信公众号配置保存
export function setOaConfig(params: any) {
return request.post({ url: '/channel.official_account_setting/setConfig', params })
}
// 微信公众号配置详情
export function getOaConfig() {
return request.get({ url: '/channel.official_account_setting/getConfig' })
}
export interface Menu {
name: string
has_menu?: boolean
type?: string
url?: string
appid?: string
pagepath?: string
sub_button: Menu[] | any
}
/**
* @return { Promise }
* @description
*/
export function getOaMenu() {
return request.get({ url: '/channel.official_account_menu/detail' })
}
/**
* @return { Promise }
* @param { Menu } Menu
* @description
*/
export function setOaMenuSave(params: Menu | any) {
return request.post({ url: '/channel.official_account_menu/save', params })
}
/**
* @return { Promise }
* @param { Menu } Menu
* @description
*/
export function setOaMenuPublish(params: Menu | any) {
return request.post({ url: '/channel.official_account_menu/saveAndPublish', params })
}
/**
* @return { Promise }
* @param { string } reply_type
* @description
*/
export function getOaReplyList(params: { reply_type: string }) {
return request.get({ url: '/channel.official_account_reply/lists', params })
}
/**
* @return { Promise }
* @param { number } id
* @description
*/
export function oaReplyDel(params: { id: number }) {
return request.post({ url: '/channel.official_account_reply/delete', params })
}
/**
* @return { Promise }
* @param { number } id
* @description
*/
export function changeOaReplyStatus(params: { id: number }) {
return request.post({ url: '/channel.official_account_reply/status', params })
}
export interface Reply {
content: string // 内容
content_type: number // 内容类型: 1=文本
keyword?: string // 关键词
matching_type?: number // 匹配方式: [1=全匹配, 2=模糊匹配]
name: string // 规则名称
status: number // 状态: 1=开启, 0=关闭
reply_type: number // 类型: 回复类型 1-关注回复 2-关键词回复 3-默认回复
reply_num: number // 回复数量`
sort: number // 排序
}
/**
* @return { Promise }
* @description
*/
export function oaReplyAdd(params: Reply) {
return request.post({ url: '/channel.official_account_reply/add', params })
}
/**
* @return { Promise }
* @description
*/
export function oaReplyEdit(params: Reply) {
return request.post({ url: '/channel.official_account_reply/edit', params })
}
/**
* @return { Promise }
* @param { string } type
* @description
*/
export function getOaReplyDetail(params: { id: number }) {
return request.get({ url: '/channel.official_account_reply/detail', params })
}

27
admin/src/api/common.ts Normal file
View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 省列表
export function apiProvinceList(params: any) {
return request.get({ url: '/common/province', params })
}
// 市列表
export function apiCityList(params: any) {
return request.get({ url: '/common/city', params })
}
// 区列表
export function apiAreaList(params: any) {
return request.get({ url: '/common/area', params })
}
// 镇列表
export function apiStreetList(params: any) {
return request.get({ url: '/common/street', params })
}
// 村列表
export function apiVillageList(params: any) {
return request.get({ url: '/common/village', params })
}
// 队列表
export function apiBrigadeList() {
return request.get({ url: '/common/brigade' })
}

26
admin/src/api/consumer.ts Normal file
View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/lists', params }, { ignoreCancelToken: true })
}
// 用户详情
export function getUserDetail(params: any) {
return request.get({ url: '/user.user/detail', params })
}
// 用户编辑
export function userEdit(params: any) {
return request.post({ url: '/user.user/edit', params })
}
// 用户编辑
export function adjustMoney(params: any) {
return request.post({ url: '/user.user/adjustMoney', params })
}
//添加用户
export function addUser(params: any) {
return request.post({ url: '/user.user/add', params })
}

View File

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

41
admin/src/api/device.ts Normal file
View File

@ -0,0 +1,41 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/lists', params }, { ignoreCancelToken: true })
}
// 产品列表列表
export function apiProductLists(params: any) {
return request.get({ url: '/land.product/datas', params })
}
// 监测设备列表
export function apiDeviceLists(params: any) {
return request.get({ url: '/device.device/lists', params })
}
// 添加监测设备
export function apiDeviceAdd(params: any) {
return request.post({ url: '/device.device/add', params })
}
// 编辑监测设备
export function apiDeviceEdit(params: any) {
return request.post({ url: '/device.device/edit', params })
}
// 删除监测设备
export function apiDeviceDelete(params: any) {
return request.post({ url: '/device.device/delete', params })
}
// 监测设备详情
export function apiDeviceDetail(params: any) {
return request.get({ url: '/device.device/detail', params })
}
// 设备监控数据
export function apiDeviceMonitorData(params: any) {
return request.get({ url: '/device.device/monitorData', params })
}

39
admin/src/api/file.ts Normal file
View File

@ -0,0 +1,39 @@
import request from '@/utils/request'
export function fileCateAdd(params: Record<string, any>) {
return request.post({ url: '/file/addCate', params })
}
export function fileCateEdit(params: Record<string, any>) {
return request.post({ url: '/file/editCate', params })
}
// 文件分类删除
export function fileCateDelete(params: Record<string, any>) {
return request.post({ url: '/file/delCate', params })
}
// 文件分类列表
export function fileCateLists(params: Record<string, any>) {
return request.get({ url: '/file/listCate', params })
}
// 文件列表
export function fileList(params: Record<string, any>) {
return request.get({ url: '/file/lists', params })
}
// 文件删除
export function fileDelete(params: Record<string, any>) {
return request.post({ url: '/file/delete', params })
}
// 文件移动
export function fileMove(params: Record<string, any>) {
return request.post({ url: '/file/move', params })
}
// 文件重命名
export function fileRename(params: { id: number; name: string }) {
return request.post({ url: '/file/rename', params })
}

41
admin/src/api/finance.ts Normal file
View File

@ -0,0 +1,41 @@
import request from '@/utils/request'
// 余额明细
export function accountLog(params?: any) {
return request.get({ url: '/finance.account_log/lists', params })
}
// 充值记录
export function rechargeLists(params?: any) {
return request.get({ url: '/recharge.recharge/lists', params }, { ignoreCancelToken: true })
}
// 余额变动类型
export function getUmChangeType(params?: any) {
return request.get({ url: '/finance.account_log/getUmChangeType', params })
}
//退款
export function refund(params?: any) {
return request.post({ url: '/recharge.recharge/refund', params })
}
//重新退款
export function refundAgain(params?: any) {
return request.post({ url: '/recharge.recharge/refundAgain', params })
}
//退款记录
export function refundRecord(params?: any) {
return request.get({ url: '/finance.refund/record', params })
}
//退款日志
export function refundLog(params?: any) {
return request.get({ url: '/finance.refund/log', params })
}
//退款统计
export function refundStat(params?: any) {
return request.get({ url: '/finance.refund/stat', params })
}

46
admin/src/api/land.ts Normal file
View File

@ -0,0 +1,46 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/datas', params }, { ignoreCancelToken: true })
}
// 产品列表列表
export function apiProductLists(params: any) {
return request.get({ url: '/land.product/datas', params })
}
// 土地表列表
export function apiLandLists(params: any) {
return request.get({ url: '/land.land/lists', params })
}
// 添加土地表
export function apiLandAdd(params: any) {
return request.post({ url: '/land.land/add', params })
}
// 编辑土地表
export function apiLandEdit(params: any) {
return request.post({ url: '/land.land/edit', params })
}
// 删除土地表
export function apiLandDelete(params: any) {
return request.post({ url: '/land.land/delete', params })
}
// 土地表详情
export function apiLandDetail(params: any) {
return request.get({ url: '/land.land/detail', params })
}
// 绑定产品
export function apiLandBind(params: any) {
return request.post({ url: '/land.land/bind', params })
}
// 用户信息
export function getUserInfo() {
return request.get({ url: '/auth.admin/mySelf' })
}

View File

@ -0,0 +1,41 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/lists', params }, { ignoreCancelToken: true })
}
// 土地表列表
export function apiLandLists(params: any) {
return request.get({ url: '/land.land/lists', params })
}
// 土地种植表列表
export function apiLandPlantLists(params: any) {
return request.get({ url: '/land.land_plant/lists', params })
}
// 添加土地种植表
export function apiLandPlantAdd(params: any) {
return request.post({ url: '/land.land_plant/add', params })
}
// 编辑土地种植表
export function apiLandPlantEdit(params: any) {
return request.post({ url: '/land.land_plant/edit', params })
}
// 删除土地种植表
export function apiLandPlantDelete(params: any) {
return request.post({ url: '/land.land_plant/delete', params })
}
// 土地种植表详情
export function apiLandPlantDetail(params: any) {
return request.get({ url: '/land.land_plant/detail', params })
}
// 种植溯源信息
export function apiSuyuanDetail(params: any) {
return request.get({ url: '/land.land_plant/suyuan', params })
}

View File

@ -0,0 +1,36 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/lists', params }, { ignoreCancelToken: true })
}
// 土地种植表列表
export function apiLandPlantLists(params: any) {
return request.get({ url: '/land.land_plant/lists', params })
}
// 土地种植作物操作表列表
export function apiLandPlantActionLists(params: any) {
return request.get({ url: '/land.land_plant_action/lists', params })
}
// 添加土地种植作物操作表
export function apiLandPlantActionAdd(params: any) {
return request.post({ url: '/land.land_plant_action/add', params })
}
// 编辑土地种植作物操作表
export function apiLandPlantActionEdit(params: any) {
return request.post({ url: '/land.land_plant_action/edit', params })
}
// 删除土地种植作物操作表
export function apiLandPlantActionDelete(params: any) {
return request.post({ url: '/land.land_plant_action/delete', params })
}
// 土地种植作物操作表详情
export function apiLandPlantActionDetail(params: any) {
return request.get({ url: '/land.land_plant_action/detail', params })
}

31
admin/src/api/message.ts Normal file
View File

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

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 监测报警列表
export function apiMonitorAlarmLists(params: any) {
return request.get({ url: '/device.monitor_alarm/lists', params })
}
// 添加监测报警
export function apiMonitorAlarmAdd(params: any) {
return request.post({ url: '/device.monitor_alarm/add', params })
}
// 编辑监测报警
export function apiMonitorAlarmEdit(params: any) {
return request.post({ url: '/device.monitor_alarm/edit', params })
}
// 删除监测报警
export function apiMonitorAlarmDelete(params: any) {
return request.post({ url: '/device.monitor_alarm/delete', params })
}
// 监测报警详情
export function apiMonitorAlarmDetail(params: any) {
return request.get({ url: '/device.monitor_alarm/detail', params })
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 报警配置列表
export function apiMonitorThresholdLists(params: any) {
return request.get({ url: '/device.monitor_threshold/lists', params })
}
// 添加报警配置
export function apiMonitorThresholdAdd(params: any) {
return request.post({ url: '/device.monitor_threshold/add', params })
}
// 编辑报警配置
export function apiMonitorThresholdEdit(params: any) {
return request.post({ url: '/device.monitor_threshold/edit', params })
}
// 删除报警配置
export function apiMonitorThresholdDelete(params: any) {
return request.post({ url: '/device.monitor_threshold/delete', params })
}
// 报警配置详情
export function apiMonitorThresholdDetail(params: any) {
return request.get({ url: '/device.monitor_threshold/detail', params })
}

View File

@ -0,0 +1,31 @@
import request from '@/utils/request'
// 部门列表
export function deptLists(params?: any) {
return request.get({ url: '/dept.dept/lists', params })
}
// 添加部门
export function deptAdd(params: any) {
return request.post({ url: '/dept.dept/add', params })
}
// 编辑部门
export function deptEdit(params: any) {
return request.post({ url: '/dept.dept/edit', params })
}
// 删除部门
export function deptDelete(params: any) {
return request.post({ url: '/dept.dept/delete', params })
}
// 部门详情
export function deptDetail(params: any) {
return request.get({ url: '/dept.dept/detail', params })
}
// 部门列表全部
export function deptAll() {
return request.get({ url: '/dept.dept/all' })
}

31
admin/src/api/org/post.ts Normal file
View File

@ -0,0 +1,31 @@
import request from '@/utils/request'
// 岗位列表
export function jobsLists(params: any) {
return request.get({ url: '/dept.jobs/lists', params }, { ignoreCancelToken: true })
}
// 岗位列表全部
export function jobsAll(params: any) {
return request.get({ url: '/dept.jobs/all', params })
}
// 添加岗位
export function jobsAdd(params: any) {
return request.post({ url: '/dept.jobs/add', params })
}
// 编辑岗位
export function jobsEdit(params: any) {
return request.post({ url: '/dept.jobs/edit', params })
}
// 删除岗位
export function jobsDelete(params: any) {
return request.post({ url: '/dept.jobs/delete', params })
}
// 岗位详情
export function jobsDetail(params: any) {
return request.get({ url: '/dept.jobs/detail', params })
}

View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 管理员列表
export function adminLists(params: any) {
return request.get({ url: '/auth.admin/lists', params }, { ignoreCancelToken: true })
}
// 管理员列表全部
export function adminAll(params: any) {
return request.get({ url: '/auth.admin/all', params })
}
// 管理员添加
export function adminAdd(params: any) {
return request.post({ url: '/auth.admin/add', params })
}
// 管理员编辑
export function adminEdit(params: any) {
return request.post({ url: '/auth.admin/edit', params })
}
// 管理员删除
export function adminDelete(params: any) {
return request.post({ url: '/auth.admin/delete', params })
}
// 管理员详情
export function adminDetail(params: any) {
return request.get({ url: '/auth.admin/detail', params })
}

View File

@ -0,0 +1,30 @@
import request from '@/utils/request'
// 菜单列表
export function menuLists(params: Record<string, any>) {
return request.get({ url: '/auth.menu/lists', params })
}
// 菜单全部
export function menuAll(params?: Record<string, any>) {
return request.get({ url: '/auth.menu/all', params })
}
// 添加菜单
export function menuAdd(params: Record<string, any>) {
return request.post({ url: '/auth.menu/add', params })
}
// 编辑菜单
export function menuEdit(params: Record<string, any>) {
return request.post({ url: '/auth.menu/edit', params })
}
// 菜单删除
export function menuDelete(params: Record<string, any>) {
return request.post({ url: '/auth.menu/delete', params })
}
// 菜单详情
export function menuDetail(params: Record<string, any>) {
return request.get({ url: '/auth.menu/detail', params })
}

View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 角色列表
export function roleLists(params: any) {
return request.get({ url: '/auth.role/lists', params })
}
// 角色列表全部
export function roleAll(params: any) {
return request.get({ url: '/auth.role/all', params })
}
// 添加角色
export function roleAdd(params: any) {
return request.post({ url: '/auth.role/add', params })
}
// 编辑角色
export function roleEdit(params: any) {
return request.post({ url: '/auth.role/edit', params })
}
// 删除角色
export function roleDelete(params: any) {
return request.post({ url: '/auth.role/delete', params })
}
// 角色详情
export function roleDetail(params: any) {
return request.get({ url: '/auth.role/detail', params })
}

52
admin/src/api/product.ts Normal file
View File

@ -0,0 +1,52 @@
import request from '@/utils/request'
// 用户列表
export function getUserList(params: any) {
return request.get({ url: '/user.user/datas', params }, { ignoreCancelToken: true })
}
// 土地表列表
export function apiLandLists(params: any) {
return request.get({ url: '/land.land/datas', params })
}
// 产品列表列表
export function apiProductLists(params: any) {
return request.get({ url: '/land.product/lists', params })
}
// 监测设备列表
export function apiDeviceLists(params: any) {
return request.get({ url: '/device.device/datas', params })
}
// 添加产品列表
export function apiProductAdd(params: any) {
return request.post({ url: '/land.product/add', params })
}
// 编辑产品列表
export function apiProductEdit(params: any) {
return request.post({ url: '/land.product/edit', params })
}
// 删除产品列表
export function apiProductDelete(params: any) {
return request.post({ url: '/land.product/delete', params })
}
// 产品列表详情
export function apiProductDetail(params: any) {
return request.get({ url: '/land.product/detail', params })
}
// 绑定设备
export function apiProductBind(params: any) {
return request.post({ url: '/land.product/bind', params })
}
// 用户信息
export function getUserInfo() {
return request.get({ url: '/auth.admin/mySelf' })
}

View File

@ -0,0 +1,61 @@
import request from '@/utils/request'
// 字典类型列表
export function dictTypeLists(params: any) {
return request.get({ url: '/setting.dict.dict_type/lists', params })
}
// 字典类型列表全部
export function dictTypeAll(params: any) {
return request.get({ url: '/setting.dict.dict_type/all', params })
}
// 添加字典类型
export function dictTypeAdd(params: any) {
return request.post({ url: '/setting.dict.dict_type/add', params })
}
// 编辑字典类型
export function dictTypeEdit(params: any) {
return request.post({ url: '/setting.dict.dict_type/edit', params })
}
// 删除字典类型
export function dictTypeDelete(params: any) {
return request.post({ url: '/setting.dict.dict_type/delete', params })
}
// 字典类型详情
export function dictTypeDetail(params: any) {
return request.get({ url: '/setting.dict.dict_type/detail', params })
}
// 字典数据列表
export function dictDataLists(params: any) {
return request.get(
{ url: '/setting.dict.dict_data/lists', params },
{
ignoreCancelToken: true
}
)
}
// 添加字典数据
export function dictDataAdd(params: any) {
return request.post({ url: '/setting.dict.dict_data/add', params })
}
// 编辑字典数据
export function dictDataEdit(params: any) {
return request.post({ url: '/setting.dict.dict_data/edit', params })
}
// 删除字典数据
export function dictDataDelete(params: any) {
return request.post({ url: '/setting.dict.dict_data/delete', params })
}
// 字典数据详情
export function dictDataDetail(params: any) {
return request.get({ url: '/setting.dict.dict_data/detail', params })
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 获取支付方式
export function getPayWay() {
return request.get({ url: '/setting.pay.pay_way/getPayWay' })
}
// 设置支付方式
export function setPayWay(params: any) {
return request.post({ url: '/setting.pay.pay_way/setPayWay', params })
}
// 获取支付方式
export function getPayConfigLists() {
return request.get({ url: '/setting.pay.pay_config/lists' })
}
// 设置支付方式
export function setPayConfig(params: any) {
return request.post({ url: '/setting.pay.pay_config/setConfig', params })
}
// 设置支付方式
export function getPayConfig(params: any) {
return request.get({ url: '/setting.pay.pay_config/getConfig', params })
}

View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
/**
* @return { Promise }
* @description
*/
export function getSearch() {
return request.get({ url: '/setting.hot_search/getConfig' })
}
export interface List {
name: string // 搜索关键字
sort: number // 热门搜索排序
}
export interface Search {
status: number // 是否开启搜索0/1
data: List[]
}
/**
* @return { Promise }
* @param { Search } Search
* @description
*/
export function setSearch(params: Search) {
return request.post({ url: '/setting.hot_search/setConfig', params })
}

View File

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

View File

@ -0,0 +1,51 @@
import request from '@/utils/request'
// 获取系统环境
export function systemInfo() {
return request.get({ url: '/setting.system.system/info' })
}
// 获取系统日志列表
export function systemLogLists(params: any) {
return request.get({ url: '/setting.system.log/lists', params }, { ignoreCancelToken: true })
}
// 清除系统缓存
export function systemCacheClear() {
return request.post({ url: '/setting.system.cache/clear' })
}
// 定时任务列表
export function crontabLists(params: any) {
return request.get({ url: '/crontab.crontab/lists', params })
}
// 添加定时任务
export function crontabAdd(params: any) {
return request.post({ url: '/crontab.crontab/add', params })
}
// 定时任务详情
export function crontabDetail(params: any) {
return request.get({ url: '/crontab.crontab/detail', params })
}
// 编辑定时任务
export function crontabEdit(params: any) {
return request.post({ url: '/crontab.crontab/edit', params })
}
// 删除定时任务
export function crontabDel(params: any) {
return request.post({ url: '/crontab.crontab/delete', params })
}
// 获取规则执行时间
export function crontabExpression(params: any) {
return request.get({ url: '/crontab.crontab/expression', params })
}
// 操作定时任务
export function srontabOperate(params: any) {
return request.post({ url: '/crontab.crontab/operate', params })
}

View File

@ -0,0 +1,43 @@
import request from '@/utils/request'
/**
* @return { Promise }
* @description
*/
export function getUserSetup() {
return request.get({ url: '/setting.user.user/getConfig' })
}
/**
* @return { Promise }
* @param { string } default_avatar
* @description
*/
export function setUserSetup(params: { default_avatar: string }) {
return request.post({ url: '/setting.user.user/setConfig', params })
}
/**
* @return { Promise }
* @description
*/
export function getLogin() {
return request.get({ url: '/setting.user.user/getRegisterConfig' })
}
export interface LoginSetup {
login_way: number[] | any // 登录方式, 逗号隔开
coerce_mobile: number // 强制绑定手机 0/1
login_agreement: number // 是否开启协议 0/1
third_auth: number // 第三方登录 0/1
wechat_auth: number // 微信授权登录 0-关闭 1-开启
qq_auth: number // qq授权登录 0-关闭 1-开启
}
/**
* @return { Promise }
* @param { LoginSetup } LoginSetup
* @description
*/
export function setLogin(params: LoginSetup) {
return request.post({ url: '/setting.user.user/setRegisterConfig', params })
}

View File

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

View File

@ -0,0 +1,51 @@
import request from '@/utils/request'
// 代码生成已选数据表列表接口
export function generateTable(params: any) {
return request.get({ url: '/tools.generator/generateTable', params })
}
// 数据表列表接口
export function dataTable(params: any) {
return request.get({ url: '/tools.generator/dataTable', params })
}
//选择要生成代码的数据表
export function selectTable(params: any) {
return request.post({ url: '/tools.generator/selectTable', params })
}
// 已选择的数据表详情
export function tableDetail(params: any) {
return request.get({ url: '/tools.generator/detail', params })
}
//同步字段
export function syncColumn(params: any) {
return request.post({ url: '/tools.generator/syncColumn', params })
}
//删除已选择的数据表
export function generateDelete(params: any) {
return request.post({ url: '/tools.generator/delete', params })
}
//编辑已选表字段
export function generateEdit(params: any) {
return request.post({ url: '/tools.generator/edit', params })
}
//预览代码
export function generatePreview(params: any) {
return request.post({ url: '/tools.generator/preview', params })
}
//生成代码
export function generateCode(params: any) {
return request.post({ url: '/tools.generator/generate', params })
}
//获取模型
export function getModels() {
return request.get({ url: '/tools.generator/getModels' })
}

22
admin/src/api/user.ts Normal file
View File

@ -0,0 +1,22 @@
import config from '@/config'
import request from '@/utils/request'
// 登录
export function login(params: Record<string, any>) {
return request.post({ url: '/login/account', params: { ...params, terminal: config.terminal } })
}
// 退出登录
export function logout() {
return request.post({ url: '/login/logout' })
}
// 用户信息
export function getUserInfo() {
return request.get({ url: '/auth.admin/mySelf' })
}
// 编辑管理员信息
export function setUserInfo(params: any) {
return request.post({ url: '/auth.admin/editSelf', params })
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 192a128 128 0 1 0 0 256 128 128 0 0 0 0-256z" /></svg>

After

Width:  |  Height:  |  Size: 610 B

View File

@ -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="M224 554.666667a32 32 0 0 1 3.072 63.850666L224 618.666667h-21.333333a10.666667 10.666667 0 0 0-10.496 8.746666L192 629.333333v192a53.333333 53.333333 0 0 0 49.834667 53.226667L245.333333 874.666667h533.333334a53.333333 53.333333 0 0 0 53.226666-49.834667L832 821.333333v-192a10.666667 10.666667 0 0 0-8.746667-10.496L821.333333 618.666667h-21.333333a32 32 0 0 1-3.072-63.850667L800 554.666667h21.333333a74.666667 74.666667 0 0 1 74.56 70.570666L896 629.333333v192a117.333333 117.333333 0 0 1-112.618667 117.248L778.666667 938.666667h-533.333334a117.333333 117.333333 0 0 1-117.248-112.618667L128 821.333333v-192a74.666667 74.666667 0 0 1 70.570667-74.56L202.666667 554.666667h21.333333zM512 85.333333c153.045333 0 277.333333 123.946667 277.333333 277.12 0 89.130667-66.986667 217.322667-200.106666 388.821334a99.285333 99.285333 0 0 1-16.213334 16.512 97.28 97.28 0 0 1-138.282666-16.576l-13.610667-17.706667C297.088 570.944 234.666667 448.533333 234.666667 362.496 234.666667 209.28 358.954667 85.333333 512 85.333333z m0 64c-117.930667 0-213.333333 96.597333-213.333333 215.488 0 69.333333 57.536 182.421333 173.44 335.317334l6.4 8.426666a41.749333 41.749333 0 0 0 59.946666 7.274667c2.602667-2.133333 4.970667-4.565333 7.04-7.253333C665.642667 551.36 725.333333 435.413333 725.333333 364.8 725.333333 245.930667 629.930667 149.333333 512 149.333333z m0 106.666667a106.666667 106.666667 0 1 1 0 213.333333 106.666667 106.666667 0 0 1 0-213.333333z m0 64a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 0 0-85.333333z" /></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -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="M393.173333 785.685333l17.792 21.44c44.096 52.672 125.013333 61.632 180.8 20.074667 7.893333-5.866667 14.997333-12.586667 21.226667-20.010667 79.509333-94.954667 141.013333-178.986667 184.32-252.501333L821.333333 554.666667a74.666667 74.666667 0 0 1 74.56 70.570666L896 629.333333v192a117.333333 117.333333 0 0 1-112.618667 117.248L778.666667 938.666667h-533.333334a117.333333 117.333333 0 0 1-117.248-112.618667L128 821.333333v-192a74.666667 74.666667 0 0 1 70.570667-74.56L202.666667 554.666667h24.021333c40.021333 67.946667 95.552 144.832 166.464 231.018666zM512 85.333333c153.045333 0 277.333333 123.946667 277.333333 277.12 0 89.130667-66.986667 217.322667-200.106666 388.821334a99.285333 99.285333 0 0 1-16.213334 16.512 97.28 97.28 0 0 1-138.282666-16.576l-13.610667-17.706667C297.088 570.944 234.666667 448.533333 234.666667 362.496 234.666667 209.28 358.954667 85.333333 512 85.333333z m0 170.666667a106.666667 106.666667 0 1 0 0 213.333333 106.666667 106.666667 0 0 0 0-213.333333z" /></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

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