添加数据权限

This commit is contained in:
Wang Chen Chen
2024-08-13 17:21:20 +08:00
parent 3dee74397a
commit a0c3f5ec34
153 changed files with 1542 additions and 1362 deletions

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { ISysConfig } from "@/types/sys"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {ISysConfig} from "@/types/sys"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getConfigApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { IPmsDept } from "@/types/pms"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {IPmsDept} from "@/types/pms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getDeptApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { ICmsDevice } from "@/types/cms"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {ICmsDevice} from "@/types/cms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getDeviceApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import { IMapDictData, IDictType, IDictData, IDictSearchQuery } from "@/types/dict"
import {ISearchQuery} from "@/types/base"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
import {IDictData, IDictSearchQuery, IDictType, IMapDictData} from "@/types/dict"
/** [Map]查询所有 */
export const mapKeysApi = () => {

View File

@@ -1,5 +1,5 @@
import { ILoginData, ILoginUserInfo, IOAuth2Token, IUserPerms } from "@/types/pms"
import { httpGet, httpPost } from "@/utils/service"
import {ILoginData, ILoginUserInfo, IOAuth2Token, IUserPerms} from "@/types/pms"
import {httpGet, httpPost} from "@/utils/service"
/** 获取公钥 */
export const getPublicKeyApi = () => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { ILoginLog, IOperLog } from "@/types/lms"
import { httpPost, httpGet } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {ILoginLog, IOperLog} from "@/types/lms"
import {httpGet, httpPost} from "@/utils/service"
/** 根据Id查询 */
export const getLoginLogApi = (id: String) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { ISysMenu } from "@/types/pms"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {ISysMenu} from "@/types/pms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getMenuApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery, ISimpleProject } from "@/types/base"
import { ICmsProject } from "@/types/cms"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery, ISimpleProject} from "@/types/base"
import {ICmsProject} from "@/types/cms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getProjectApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery, IUpdateMenus } from "@/types/base"
import { IPmsRole } from "@/types/pms"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery, IUpdateMenus} from "@/types/base"
import {IPmsRole} from "@/types/pms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getRoleApi = (id: number) => {
@@ -41,3 +41,8 @@ export const getRoleMenusApi = (data: number) => {
export const updateRoleMenusApi = (data: any) => {
return httpPost<any, IJsonResult<Boolean>>("/pms/role/menus", data)
}
/** 拥有的部门 */
export const getRoleDeptsApi = (data: number) => {
return httpGet<ISearchQuery, IJsonResult<IUpdateMenus>>(`/pms/role/depts/${data}`)
}

View File

@@ -1,5 +1,5 @@
import { IServerInfo } from "@/types/sys"
import { httpGet } from "@/utils/service"
import {IServerInfo} from "@/types/sys"
import {httpGet} from "@/utils/service"
/** 查询服务器信息 */
export const getServerInfoApi = () => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery, IUpdateMenus } from "@/types/base"
import { ISysTemplate } from "@/types/sys"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery, IUpdateMenus} from "@/types/base"
import {ISysTemplate} from "@/types/sys"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 根据Id查询 */
export const getTemplateApi = (id: number) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery, ISimpleTenant } from "@/types/base"
import { ISysTenant, ICreateTenant, ICreateTenantAdmin } from "@/types/sys"
import { httpDelete, httpGet, httpPost, httpPut } from "@/utils/service"
import {ISearchQuery, ISimpleTenant} from "@/types/base"
import {ICreateTenant, ICreateTenantAdmin, ISysTenant} from "@/types/sys"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
// 简单查询
export const simpleQueryTenantApi = (params: ISearchQuery) => {

View File

@@ -1,4 +1,4 @@
import { httpDelete } from "@/utils/service"
import {httpDelete} from "@/utils/service"
// 删除 oss 上的图片
export const deleteFile = (params: string) => {

View File

@@ -1,6 +1,6 @@
import { ISearchQuery } from "@/types/base"
import { IPmsUser, IUserListTenant } from "@/types/pms"
import { httpPost, httpPut, httpGet, httpDelete } from "@/utils/service"
import {ISearchQuery} from "@/types/base"
import {IPmsUser, IUserListTenant} from "@/types/pms"
import {httpDelete, httpGet, httpPost, httpPut} from "@/utils/service"
/** 修改密码 */
export const updatePasswordApi = (data: any) => {

View File

@@ -0,0 +1,118 @@
<template>
<div>
<el-form ref="searchFormRef" :inline="true">
<el-form-item>
<el-button type="primary" link :icon="Sort" @click="switchExpandAndCollapse">{{
expandAndCollapse ? "折叠" : "展开"
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" link :icon="checkAll ? 'CloseBold' : 'Select'" @click="switchCheckAll">{{
checkAll ? "取消" : "全选"
}}</el-button>
</el-form-item>
<el-form-item>
<el-checkbox v-model="checkStrictly" label="父子联动" />
</el-form-item>
<el-form-item>
<el-input v-model="filterMenuText" clearable placeholder="根据名称筛选" />
</el-form-item>
</el-form>
<br>
<div :style="{ height: '300px', overflowY: 'scroll' }">
<el-tree ref="treeRef" :data="props.data" :check-strictly="!checkStrictly" :default-expand-all="expandAndCollapse"
:filter-node-method="filterNode" show-checkbox node-key="id" highlight-current
:props="{ children: 'children', label: 'name', }" />
</div>
</div>
</template>
<script setup lang='ts'>
import { ITreeNode } from '@/types/base';
import { Sort } from "@element-plus/icons-vue"
import { ElTree } from 'element-plus';
import { ref, computed, watch, onMounted } from 'vue'
const props = defineProps({
data: {
type: Array<ITreeNode>,
required: true
}
})
const filterMenuText = ref("")
// 展开
const expandAndCollapse = ref(true)
// 全选
const checkAll = ref(true)
// 父子联动
const checkStrictly = ref(false)
const treeRef = ref<InstanceType<typeof ElTree>>()
// 获取 全部菜单ID
const getMenuIdAll = () => {
const result: number[] = []
const deep = (arr1: ITreeNode[], arr2: number[]) => {
arr1.forEach((item: ITreeNode) => {
arr2.push(item.id)
if (item.children && item.children.length > 0) {
deep(item.children, arr2)
}
})
}
deep(props.data, result)
return result
}
// 展开和折叠
const switchExpandAndCollapse = () => {
expandAndCollapse.value = !expandAndCollapse.value
props.data.forEach((v) => {
treeRef.value!.store.nodesMap[v.id].expanded = expandAndCollapse.value
})
}
// 全选和取消全选
const switchCheckAll = () => {
checkAll.value = !checkAll.value
if (checkAll.value) {
const result: number[] = getMenuIdAll()
treeRef.value!.setCheckedKeys(result, false)
} else {
treeRef.value!.setCheckedKeys([], false)
}
}
watch(filterMenuText, (val) => {
treeRef.value!.filter(val)
})
const filterNode = (value: string, data: any) => {
if (!value) return true
return data.name.includes(value)
}
// 设置 tree 菜单数据
const setCheckedKeys = (value: number[]) => {
checkAll.value = value.length > 0
treeRef.value!.setCheckedKeys(value, false)
expandAndCollapse.value = true
}
// 获取 tree 菜单数据
const getCheckedKeys = (): number[] => {
return treeRef.value!.getCheckedKeys(false) as number[]
}
defineExpose({
setCheckedKeys,
getCheckedKeys
});
</script>
<style lang='scss' scoped></style>

View File

@@ -1,4 +1,4 @@
import { type App } from "vue"
import {type App} from "vue"
// 字典数据选择器
import SelectDictData from "@/components/SelectDictData/index.vue"

View File

@@ -1,4 +1,4 @@
import { getConfigLayout } from "@/utils/cache/local-storage"
import {getConfigLayout} from "@/utils/cache/local-storage"
/** 项目配置类型 */
export interface LayoutSettings {

View File

@@ -1,4 +1,4 @@
import { type RouteLocationNormalized } from "vue-router"
import {type RouteLocationNormalized} from "vue-router"
const loginUrl = "/login"

View File

@@ -1,6 +1,5 @@
import { type App } from "vue"
import { type Directive } from "vue"
import { useUserStoreHook } from "@/store/modules/user"
import {type App, type Directive} from "vue"
import {useUserStoreHook} from "@/store/modules/user"
/** 挂载自定义指令 */
export function loadDirectives(app: App) {

View File

@@ -1,4 +1,4 @@
import { ref, onMounted } from "vue"
import {onMounted, ref} from "vue"
type OptionValue = string | number

View File

@@ -1,4 +1,4 @@
import { type LoadingOptions, ElLoading } from "element-plus"
import {ElLoading, type LoadingOptions} from "element-plus"
const defaultOptions = {
lock: true,

View File

@@ -1,5 +1,5 @@
import { computed } from "vue"
import { chinaAreaDeepQuery, expiredDateAgo, timeAgo } from "@/utils"
import {computed} from "vue"
import {chinaAreaDeepQuery, expiredDateAgo, timeAgo} from "@/utils"
// 以前的时间
const showTimeAgo = computed(() => {

View File

@@ -1,4 +1,4 @@
import { reactive } from "vue"
import {reactive} from "vue"
interface DefaultPaginationData {
total: number

View File

@@ -1,6 +1,6 @@
import { onBeforeUnmount } from "vue"
import mitt, { type Handler } from "mitt"
import { type RouteLocationNormalized } from "vue-router"
import {onBeforeUnmount} from "vue"
import mitt, {type Handler} from "mitt"
import {type RouteLocationNormalized} from "vue-router"
/** 回调函数的类型 */
type Callback = (route: RouteLocationNormalized) => void

View File

@@ -1,5 +1,5 @@
import { computed } from "vue"
import { useProjectStoreHook } from "@/store/modules/project"
import {computed} from "vue"
import {useProjectStoreHook} from "@/store/modules/project"
const projectStore = useProjectStoreHook()

View File

@@ -1,5 +1,5 @@
import { ref, watchEffect } from "vue"
import { getActiveThemeName, setActiveThemeName } from "@/utils/cache/local-storage"
import {ref, watchEffect} from "vue"
import {getActiveThemeName, setActiveThemeName} from "@/utils/cache/local-storage"
const DEFAULT_THEME_NAME = "normal"
type DefaultThemeName = typeof DEFAULT_THEME_NAME

View File

@@ -1,4 +1,4 @@
import { ref, watch } from "vue"
import {ref, watch} from "vue"
/** 项目标题 */
const VITE_APP_TITLE = import.meta.env.VITE_APP_TITLE ?? "V3 Admin Vite"

View File

@@ -1,5 +1,5 @@
import { type Ref, onBeforeUnmount, ref } from "vue"
import { debounce } from "lodash-es"
import {onBeforeUnmount, type Ref, ref} from "vue"
import {debounce} from "lodash-es"
type Observer = {
watermarkElMutationObserver?: MutationObserver

View File

@@ -1,4 +1,4 @@
import { type App } from "vue"
import {type App} from "vue"
import SvgIcon from "@/components/SvgIcon/index.vue" // Svg Component
import "virtual:svg-icons-register"

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1672728665955" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3482" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><path d="M64 64h384v384H64V64z m0 512h384v384H64V576z m512 0h384v384H576V576z m192-128c106.039 0 192-85.961 192-192S874.039 64 768 64s-192 85.961-192 192 85.961 192 192 192z" p-id="3483"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1672728665955" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3482"
width="16" height="16"><path d="M64 64h384v384H64V64z m0 512h384v384H64V576z m512 0h384v384H576V576z m192-128c106.039 0 192-85.961 192-192S874.039 64 768 64s-192 85.961-192 192 85.961 192 192 192z" p-id="3483"></path></svg>

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 486 B

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656065457414" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2952" width="48" height="48" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M192 736c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32zM512 608c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32zM832 480c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32z" fill="#50E3C2" p-id="2953"></path><path d="M192 96c19.2 0 32 12.8 32 32v320c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32zM832 544c19.2 0 32 12.8 32 32v320c0 19.2-12.8 32-32 32s-32-12.8-32-32V576c0-19.2 12.8-32 32-32zM512 96c19.2 0 32 12.8 32 32v192c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32zM512 672c19.2 0 32 12.8 32 32v192c0 19.2-12.8 32-32 32s-32-12.8-32-32v-192c0-19.2 12.8-32 32-32zM192 800c19.2 0 32 12.8 32 32v64c0 19.2-12.8 32-32 32s-32-12.8-32-32v-64c0-19.2 12.8-32 32-32zM832 96c19.2 0 32 12.8 32 32v64c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32z" fill="#597EF7" p-id="2954"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656065457414" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2952"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M192 736c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32zM512 608c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32zM832 480c-54.4 0-96-41.6-96-96s41.6-96 96-96 96 41.6 96 96-41.6 96-96 96z m0-64c19.2 0 32-12.8 32-32s-12.8-32-32-32-32 12.8-32 32 12.8 32 32 32z" fill="#50E3C2" p-id="2953"></path><path d="M192 96c19.2 0 32 12.8 32 32v320c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32zM832 544c19.2 0 32 12.8 32 32v320c0 19.2-12.8 32-32 32s-32-12.8-32-32V576c0-19.2 12.8-32 32-32zM512 96c19.2 0 32 12.8 32 32v192c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32zM512 672c19.2 0 32 12.8 32 32v192c0 19.2-12.8 32-32 32s-32-12.8-32-32v-192c0-19.2 12.8-32 32-32zM192 800c19.2 0 32 12.8 32 32v64c0 19.2-12.8 32-32 32s-32-12.8-32-32v-64c0-19.2 12.8-32 32-32zM832 96c19.2 0 32 12.8 32 32v64c0 19.2-12.8 32-32 32s-32-12.8-32-32V128c0-19.2 12.8-32 32-32z" fill="#597EF7" p-id="2954"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656065633555" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7923" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M132.096 298.496c14.848 0 27.648-12.8 27.648-27.648V157.696v12.8s0-12.8 12.8-12.8h98.304c14.848 0 27.648-12.8 27.648-27.648S285.696 102.4 270.848 102.4H132.096c-14.848 0-27.648 12.8-27.648 27.648v138.752c0 16.896 12.8 29.696 27.648 29.696z m755.2-194.048h-138.752c-14.848 0-27.648 12.8-27.648 27.648s12.8 27.648 27.648 27.648h100.352c12.8 0 12.8 12.8 12.8 12.8v-14.848 113.152c0 14.848 12.8 27.648 27.648 27.648s27.648-12.8 27.648-27.648V132.096c-2.048-14.848-14.848-27.648-29.696-27.648zM270.848 861.696H173.056c-12.8 0-12.8-12.8-12.8-12.8v12.8-113.152c0-14.848-12.8-27.648-27.648-27.648s-27.648 12.8-27.648 27.648V896c2.048 0 2.048 2.048 2.048 2.048 4.096 10.752 12.8 16.896 25.6 16.896H271.36c14.848 0 27.648-12.8 27.648-27.648-0.512-14.848-13.312-25.6-28.16-25.6z m616.448-140.8c-14.848 0-27.648 12.8-27.648 27.648v113.152-12.8s0 12.8-12.8 12.8h-100.352c-14.848 0-27.648 12.8-27.648 27.648s12.8 27.648 27.648 27.648h138.752c14.848 0 27.648-12.8 27.648-27.648v-138.752c2.56-16.896-10.752-29.696-25.6-29.696z m-328.192-281.6L475.648 522.24l-8.704-8.704c-12.8-12.8-31.744-12.8-42.496 0-12.8 12.8-12.8 31.744 0 42.496l29.696 29.696c12.8 12.8 31.744 12.8 42.496 0L601.088 481.28c12.8-12.8 12.8-31.744 0-42.496-10.24-9.728-29.184-9.728-41.984 0.512z" fill="#FF8A00" p-id="7924"></path><path d="M733.696 648.704h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952v-57.344h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952V426.496h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952v-25.6c0-34.304-27.648-64-64-64h-25.6V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952h-57.344V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952H426.496V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952h-25.6c-34.304 0-64 27.648-64 64v25.6H221.696c-16.896-2.048-29.696 8.704-29.696 23.552s12.8 25.6 25.6 25.6H281.6v57.344H217.6c-14.848 0-25.6 12.8-25.6 25.6 0 14.848 12.8 25.6 25.6 25.6H281.6v57.344H217.6c-14.848 0-25.6 12.8-25.6 25.6 0 14.848 12.8 25.6 25.6 25.6H281.6v25.6c0 34.304 27.648 64 64 64h25.6V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952h57.344V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952H588.8V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952h25.6c34.304 0 64-27.648 64-64v-19.456l4.096 0.512z m-40.448 23.04c0 12.8-10.752 23.552-23.552 23.552H345.6c-12.8 0-23.552-10.752-23.552-23.552V347.648c0-12.8 10.752-23.552 23.552-23.552h324.096c12.8 0 23.552 10.752 23.552 23.552v324.096z" fill="#FF8A00" p-id="7925"></path><path d="M623.104 352.256h-230.4c-23.552 0-42.496 19.456-42.496 42.496v232.448c0 23.552 19.456 42.496 42.496 42.496h232.448c23.552 0 42.496-19.456 42.496-42.496V394.752c-2.048-23.552-20.992-42.496-44.544-42.496z m2.048 274.944l-232.448 2.048s-2.048 0-2.048-2.048V394.752s0-2.048 2.048-2.048h232.448s2.048 0 2.048 2.048v232.448h-2.048z" fill="#FF8A00" p-id="7926"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656065633555" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7923"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M132.096 298.496c14.848 0 27.648-12.8 27.648-27.648V157.696v12.8s0-12.8 12.8-12.8h98.304c14.848 0 27.648-12.8 27.648-27.648S285.696 102.4 270.848 102.4H132.096c-14.848 0-27.648 12.8-27.648 27.648v138.752c0 16.896 12.8 29.696 27.648 29.696z m755.2-194.048h-138.752c-14.848 0-27.648 12.8-27.648 27.648s12.8 27.648 27.648 27.648h100.352c12.8 0 12.8 12.8 12.8 12.8v-14.848 113.152c0 14.848 12.8 27.648 27.648 27.648s27.648-12.8 27.648-27.648V132.096c-2.048-14.848-14.848-27.648-29.696-27.648zM270.848 861.696H173.056c-12.8 0-12.8-12.8-12.8-12.8v12.8-113.152c0-14.848-12.8-27.648-27.648-27.648s-27.648 12.8-27.648 27.648V896c2.048 0 2.048 2.048 2.048 2.048 4.096 10.752 12.8 16.896 25.6 16.896H271.36c14.848 0 27.648-12.8 27.648-27.648-0.512-14.848-13.312-25.6-28.16-25.6z m616.448-140.8c-14.848 0-27.648 12.8-27.648 27.648v113.152-12.8s0 12.8-12.8 12.8h-100.352c-14.848 0-27.648 12.8-27.648 27.648s12.8 27.648 27.648 27.648h138.752c14.848 0 27.648-12.8 27.648-27.648v-138.752c2.56-16.896-10.752-29.696-25.6-29.696z m-328.192-281.6L475.648 522.24l-8.704-8.704c-12.8-12.8-31.744-12.8-42.496 0-12.8 12.8-12.8 31.744 0 42.496l29.696 29.696c12.8 12.8 31.744 12.8 42.496 0L601.088 481.28c12.8-12.8 12.8-31.744 0-42.496-10.24-9.728-29.184-9.728-41.984 0.512z" fill="#FF8A00" p-id="7924"></path><path d="M733.696 648.704h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952v-57.344h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952V426.496h61.952c14.848 0 25.6-12.8 25.6-25.6 0-14.848-12.8-25.6-25.6-25.6h-61.952v-25.6c0-34.304-27.648-64-64-64h-25.6V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952h-57.344V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952H426.496V223.744c0-14.848-12.8-25.6-25.6-25.6-14.848 0-25.6 12.8-25.6 25.6v61.952h-25.6c-34.304 0-64 27.648-64 64v25.6H221.696c-16.896-2.048-29.696 8.704-29.696 23.552s12.8 25.6 25.6 25.6H281.6v57.344H217.6c-14.848 0-25.6 12.8-25.6 25.6 0 14.848 12.8 25.6 25.6 25.6H281.6v57.344H217.6c-14.848 0-25.6 12.8-25.6 25.6 0 14.848 12.8 25.6 25.6 25.6H281.6v25.6c0 34.304 27.648 64 64 64h25.6V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952h57.344V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952H588.8V793.6c0 14.848 12.8 25.6 25.6 25.6 14.848 0 25.6-12.8 25.6-25.6v-61.952h25.6c34.304 0 64-27.648 64-64v-19.456l4.096 0.512z m-40.448 23.04c0 12.8-10.752 23.552-23.552 23.552H345.6c-12.8 0-23.552-10.752-23.552-23.552V347.648c0-12.8 10.752-23.552 23.552-23.552h324.096c12.8 0 23.552 10.752 23.552 23.552v324.096z" fill="#FF8A00" p-id="7925"></path><path d="M623.104 352.256h-230.4c-23.552 0-42.496 19.456-42.496 42.496v232.448c0 23.552 19.456 42.496 42.496 42.496h232.448c23.552 0 42.496-19.456 42.496-42.496V394.752c-2.048-23.552-20.992-42.496-44.544-42.496z m2.048 274.944l-232.448 2.048s-2.048 0-2.048-2.048V394.752s0-2.048 2.048-2.048h232.448s2.048 0 2.048 2.048v232.448h-2.048z" fill="#FF8A00" p-id="7926"></path></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656556418721" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2372" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M1006.933333 221.866667c-12.8-8.533333-25.6-8.533333-38.4-4.266667L810.666667 281.6C806.4 128 674.133333 0 512 0 354.133333 0 221.866667 123.733333 213.333333 277.333333L25.6 358.4c-17.066667 4.266667-25.6 21.333333-25.6 38.4V981.333333c0 12.8 8.533333 25.6 17.066667 34.133334 8.533333 4.266667 17.066667 8.533333 25.6 8.533333 4.266667 0 12.8 0 17.066666-4.266667l311.466667-132.266666 264.533333 132.266666c12.8 4.266667 25.6 4.266667 34.133334 0l328.533333-140.8c17.066667-8.533333 25.6-21.333333 25.6-38.4V256c0-12.8-8.533333-25.6-17.066667-34.133333zM512 85.333333c119.466667 0 213.333333 93.866667 213.333333 209.066667 0 136.533333-153.6 268.8-213.333333 315.733333-76.8-59.733333-213.333333-192-213.333333-315.733333C298.666667 179.2 392.533333 85.333333 512 85.333333z m426.666667 725.333334l-285.866667 123.733333-264.533333-132.266667c-12.8-4.266667-25.6-4.266667-34.133334 0L85.333333 917.333333V426.666667l136.533334-59.733334c46.933333 179.2 256 324.266667 264.533333 332.8 8.533333 4.266667 17.066667 8.533333 25.6 8.533334s17.066667-4.266667 25.6-8.533334c8.533333-8.533333 204.8-140.8 260.266667-315.733333L938.666667 320V810.666667z" p-id="2373"></path><path d="M652.8 298.666667c0-76.8-64-140.8-140.8-140.8S371.2 221.866667 371.2 298.666667s64 140.8 140.8 140.8 140.8-64 140.8-140.8z m-196.266667 0c0-29.866667 25.6-55.466667 55.466667-55.466667s55.466667 25.6 55.466667 55.466667-25.6 55.466667-55.466667 55.466666-55.466667-25.6-55.466667-55.466666z" p-id="2374"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656556418721" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2372"
width="64" height="64"><defs><style type="text/css"></style></defs><path d="M1006.933333 221.866667c-12.8-8.533333-25.6-8.533333-38.4-4.266667L810.666667 281.6C806.4 128 674.133333 0 512 0 354.133333 0 221.866667 123.733333 213.333333 277.333333L25.6 358.4c-17.066667 4.266667-25.6 21.333333-25.6 38.4V981.333333c0 12.8 8.533333 25.6 17.066667 34.133334 8.533333 4.266667 17.066667 8.533333 25.6 8.533333 4.266667 0 12.8 0 17.066666-4.266667l311.466667-132.266666 264.533333 132.266666c12.8 4.266667 25.6 4.266667 34.133334 0l328.533333-140.8c17.066667-8.533333 25.6-21.333333 25.6-38.4V256c0-12.8-8.533333-25.6-17.066667-34.133333zM512 85.333333c119.466667 0 213.333333 93.866667 213.333333 209.066667 0 136.533333-153.6 268.8-213.333333 315.733333-76.8-59.733333-213.333333-192-213.333333-315.733333C298.666667 179.2 392.533333 85.333333 512 85.333333z m426.666667 725.333334l-285.866667 123.733333-264.533333-132.266667c-12.8-4.266667-25.6-4.266667-34.133334 0L85.333333 917.333333V426.666667l136.533334-59.733334c46.933333 179.2 256 324.266667 264.533333 332.8 8.533333 4.266667 17.066667 8.533333 25.6 8.533334s17.066667-4.266667 25.6-8.533334c8.533333-8.533333 204.8-140.8 260.266667-315.733333L938.666667 320V810.666667z" p-id="2373"></path><path d="M652.8 298.666667c0-76.8-64-140.8-140.8-140.8S371.2 221.866667 371.2 298.666667s64 140.8 140.8 140.8 140.8-64 140.8-140.8z m-196.266667 0c0-29.866667 25.6-55.466667 55.466667-55.466667s55.466667 25.6 55.466667 55.466667-25.6 55.466667-55.466667 55.466666-55.466667-25.6-55.466667-55.466666z" p-id="2374"></path></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656336078369" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1585" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M937.025 463.794h-850.050c-13.781 0-24.975-10.8-24.975-24.131v-48.206c0-13.331 11.194-24.131 24.975-24.131h849.994c13.838 0 25.031 10.8 25.031 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131zM536.975 270.912h-249.975c-13.781 0-24.975-10.8-24.975-24.131v-48.206c-0.056-13.275 11.194-24.075 24.975-24.075h249.975c13.837 0 25.031 10.8 25.031 24.075v48.206c0 13.331-11.194 24.131-25.031 24.131zM136.981 270.912h-50.006c-13.781 0-24.975-10.8-24.975-24.075v-48.263c0-13.275 11.194-24.075 24.975-24.075h50.006c13.781 0 24.975 10.8 24.975 24.075v48.206c0.056 13.331-11.137 24.131-24.975 24.131zM86.975 560.206h50.006c13.781 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-50.006c-13.781-0.056-24.975-10.8-24.975-24.131v-48.206c0-13.331 11.194-24.131 24.975-24.131zM86.975 753.088h550.012c13.837 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-550.012c-13.781-0.056-24.975-10.856-24.975-24.188v-48.206c0-13.275 11.194-24.075 24.975-24.075zM261.969 632.544v-48.206c0-13.331 11.194-24.131 24.975-24.131h600.019c13.781 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-599.963c-13.781-0.056-25.031-10.8-25.031-24.131z" p-id="1586"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656336078369" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1585"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M937.025 463.794h-850.050c-13.781 0-24.975-10.8-24.975-24.131v-48.206c0-13.331 11.194-24.131 24.975-24.131h849.994c13.838 0 25.031 10.8 25.031 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131zM536.975 270.912h-249.975c-13.781 0-24.975-10.8-24.975-24.131v-48.206c-0.056-13.275 11.194-24.075 24.975-24.075h249.975c13.837 0 25.031 10.8 25.031 24.075v48.206c0 13.331-11.194 24.131-25.031 24.131zM136.981 270.912h-50.006c-13.781 0-24.975-10.8-24.975-24.075v-48.263c0-13.275 11.194-24.075 24.975-24.075h50.006c13.781 0 24.975 10.8 24.975 24.075v48.206c0.056 13.331-11.137 24.131-24.975 24.131zM86.975 560.206h50.006c13.781 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-50.006c-13.781-0.056-24.975-10.8-24.975-24.131v-48.206c0-13.331 11.194-24.131 24.975-24.131zM86.975 753.088h550.012c13.837 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-550.012c-13.781-0.056-24.975-10.856-24.975-24.188v-48.206c0-13.275 11.194-24.075 24.975-24.075zM261.969 632.544v-48.206c0-13.331 11.194-24.131 24.975-24.131h600.019c13.781 0 24.975 10.8 24.975 24.131v48.206c0 13.331-11.194 24.131-24.975 24.131h-599.963c-13.781-0.056-25.031-10.8-25.031-24.131z" p-id="1586"></path></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697874121909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4064" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M804.1 912.6v-567l-232.4-1c-13.3-0.1-24.1-10.9-24.1-24.2v-232H291v824.1h513.1z" fill="#91B4FF" p-id="4065"></path><path d="M596.1 142.8v153.4l171.3 0.7z" fill="#91B4FF" p-id="4066"></path><path d="M194.1 364.5c-13.4 0-24.2-10.9-24.2-24.2V88.4c0-13.4 10.8-24.2 24.2-24.2h377.7c13.4 0 24.2 10.9 24.2 24.2s-10.8 24.2-24.2 24.2H218.3v227.6c0 13.4-10.8 24.3-24.2 24.3zM194.1 515.2c-13.4 0-24.2-10.9-24.2-24.2v-58.8c0-13.4 10.8-24.2 24.2-24.2s24.2 10.9 24.2 24.2V491c0 13.4-10.8 24.2-24.2 24.2z" fill="#3778FF" p-id="4067"></path><path d="M852.3 318.3v-0.5-0.6c0-0.2 0-0.5-0.1-0.7 0-0.2 0-0.3-0.1-0.5 0-0.3-0.1-0.5-0.1-0.8 0-0.1 0-0.3-0.1-0.4-0.1-0.3-0.1-0.6-0.2-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.3-0.1-0.6-0.2-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.3-0.2-0.5-0.3-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.2-0.2-0.5-0.3-0.7-0.1-0.2-0.1-0.3-0.2-0.5l-0.3-0.6-0.3-0.6c0-0.1-0.1-0.2-0.1-0.3-0.3-0.6-0.6-1.1-0.9-1.7 0-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.5-0.7-0.1-0.1-0.1-0.2-0.2-0.3-0.2-0.2-0.3-0.4-0.5-0.7-0.1-0.1-0.2-0.2-0.3-0.4-0.2-0.2-0.3-0.4-0.5-0.6-0.1-0.1-0.2-0.3-0.4-0.4-0.1-0.2-0.3-0.3-0.4-0.5l-0.6-0.6-0.3-0.3c-0.3-0.3-0.6-0.6-1-0.9L587.8 70.4c-7.1-6.4-17.3-8-26.1-4.1-8.7 3.9-14.4 12.6-14.4 22.1v231.9c0 13.3 10.8 24.2 24.1 24.2l232.4 1v567H218.1V578.1c0-13.4-10.8-24.2-24.2-24.2s-24.2 10.9-24.2 24.2v358.7c0 13.4 10.8 24.2 24.2 24.2h634.2c13.4 0 24.2-10.9 24.2-24.2V319.1v-0.8z m-256.5-22.1V142.8l171.4 154.1-171.4-0.7z" fill="#3778FF" p-id="4068"></path><path d="M540.5 472.5h-220c-13.4 0-24.2-10.9-24.2-24.2s10.8-24.2 24.2-24.2h220.1c13.4 0 24.2 10.9 24.2 24.2s-10.9 24.2-24.3 24.2zM653.6 602.3H320.5c-13.4 0-24.2-10.9-24.2-24.2s10.8-24.2 24.2-24.2h333.1c13.4 0 24.2 10.9 24.2 24.2s-10.8 24.2-24.2 24.2zM702 732H320.5c-13.4 0-24.2-10.9-24.2-24.2 0-13.4 10.8-24.2 24.2-24.2H702c13.4 0 24.2 10.9 24.2 24.2 0.1 13.4-10.8 24.2-24.2 24.2z" fill="#3778FF" p-id="4069"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1697874121909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4064"
width="64" height="64"><path d="M804.1 912.6v-567l-232.4-1c-13.3-0.1-24.1-10.9-24.1-24.2v-232H291v824.1h513.1z" fill="#91B4FF" p-id="4065"></path><path d="M596.1 142.8v153.4l171.3 0.7z" fill="#91B4FF" p-id="4066"></path><path d="M194.1 364.5c-13.4 0-24.2-10.9-24.2-24.2V88.4c0-13.4 10.8-24.2 24.2-24.2h377.7c13.4 0 24.2 10.9 24.2 24.2s-10.8 24.2-24.2 24.2H218.3v227.6c0 13.4-10.8 24.3-24.2 24.3zM194.1 515.2c-13.4 0-24.2-10.9-24.2-24.2v-58.8c0-13.4 10.8-24.2 24.2-24.2s24.2 10.9 24.2 24.2V491c0 13.4-10.8 24.2-24.2 24.2z" fill="#3778FF" p-id="4067"></path><path d="M852.3 318.3v-0.5-0.6c0-0.2 0-0.5-0.1-0.7 0-0.2 0-0.3-0.1-0.5 0-0.3-0.1-0.5-0.1-0.8 0-0.1 0-0.3-0.1-0.4-0.1-0.3-0.1-0.6-0.2-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.3-0.1-0.6-0.2-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.3-0.2-0.5-0.3-0.8 0-0.1-0.1-0.3-0.1-0.4-0.1-0.2-0.2-0.5-0.3-0.7-0.1-0.2-0.1-0.3-0.2-0.5l-0.3-0.6-0.3-0.6c0-0.1-0.1-0.2-0.1-0.3-0.3-0.6-0.6-1.1-0.9-1.7 0-0.1-0.1-0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.5-0.7-0.1-0.1-0.1-0.2-0.2-0.3-0.2-0.2-0.3-0.4-0.5-0.7-0.1-0.1-0.2-0.2-0.3-0.4-0.2-0.2-0.3-0.4-0.5-0.6-0.1-0.1-0.2-0.3-0.4-0.4-0.1-0.2-0.3-0.3-0.4-0.5l-0.6-0.6-0.3-0.3c-0.3-0.3-0.6-0.6-1-0.9L587.8 70.4c-7.1-6.4-17.3-8-26.1-4.1-8.7 3.9-14.4 12.6-14.4 22.1v231.9c0 13.3 10.8 24.2 24.1 24.2l232.4 1v567H218.1V578.1c0-13.4-10.8-24.2-24.2-24.2s-24.2 10.9-24.2 24.2v358.7c0 13.4 10.8 24.2 24.2 24.2h634.2c13.4 0 24.2-10.9 24.2-24.2V319.1v-0.8z m-256.5-22.1V142.8l171.4 154.1-171.4-0.7z" fill="#3778FF" p-id="4068"></path><path d="M540.5 472.5h-220c-13.4 0-24.2-10.9-24.2-24.2s10.8-24.2 24.2-24.2h220.1c13.4 0 24.2 10.9 24.2 24.2s-10.9 24.2-24.3 24.2zM653.6 602.3H320.5c-13.4 0-24.2-10.9-24.2-24.2s10.8-24.2 24.2-24.2h333.1c13.4 0 24.2 10.9 24.2 24.2s-10.8 24.2-24.2 24.2zM702 732H320.5c-13.4 0-24.2-10.9-24.2-24.2 0-13.4 10.8-24.2 24.2-24.2H702c13.4 0 24.2 10.9 24.2 24.2 0.1 13.4-10.8 24.2-24.2 24.2z" fill="#3778FF" p-id="4069"></path></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697874251360" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6945" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M512 0C229.283787 0 0.142041 234.942803 0.142041 524.867683c0 231.829001 146.647305 428.553077 350.068189 497.952484 25.592898 4.819996 34.976961-11.38884 34.976961-25.294314 0-12.45521-0.469203-45.470049-0.725133-89.276559-142.381822 31.735193-172.453477-70.380469-172.453477-70.380469-23.246882-60.569859-56.816233-76.693384-56.816234-76.693385-46.493765-32.58829 3.540351-31.948468 3.540351-31.948467 51.356415 3.71097 78.356923 54.086324 78.356923 54.086324 45.683323 80.19108 119.817417 57.072162 148.993321 43.593236 4.649376-33.91059 17.915029-57.029508 32.50298-70.167195-113.675122-13.222997-233.151301-58.223843-233.1513-259.341366 0-57.285437 19.919806-104.163095 52.678715-140.846248-5.246544-13.265652-22.820334-66.626844 4.990615-138.884127 0 0 42.996069-14.076094 140.760939 53.787741 40.863327-11.644769 84.627183-17.445825 128.177764-17.6591 43.465272 0.213274 87.271782 6.014331 128.135109 17.6591 97.679561-67.906489 140.59032-53.787741 140.59032-53.787741 27.938914 72.257282 10.407779 125.618474 5.118579 138.884127 32.844219 36.683154 52.593405 83.560812 52.593405 140.846248 0 201.586726-119.646798 245.990404-233.663158 258.957473 18.341577 16.208835 34.721032 48.199958 34.721032 97.210357 0 70.167195-0.639822 126.7275-0.639823 143.960051 0 14.033439 9.213443 30.370239 35.190235 25.209005 203.250265-69.527373 349.769606-266.123484 349.769605-497.867175C1023.857959 234.942803 794.673558 0 512 0" fill="#3E75C3" p-id="6946"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1697874251360" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6945"
width="64" height="64"><path d="M512 0C229.283787 0 0.142041 234.942803 0.142041 524.867683c0 231.829001 146.647305 428.553077 350.068189 497.952484 25.592898 4.819996 34.976961-11.38884 34.976961-25.294314 0-12.45521-0.469203-45.470049-0.725133-89.276559-142.381822 31.735193-172.453477-70.380469-172.453477-70.380469-23.246882-60.569859-56.816233-76.693384-56.816234-76.693385-46.493765-32.58829 3.540351-31.948468 3.540351-31.948467 51.356415 3.71097 78.356923 54.086324 78.356923 54.086324 45.683323 80.19108 119.817417 57.072162 148.993321 43.593236 4.649376-33.91059 17.915029-57.029508 32.50298-70.167195-113.675122-13.222997-233.151301-58.223843-233.1513-259.341366 0-57.285437 19.919806-104.163095 52.678715-140.846248-5.246544-13.265652-22.820334-66.626844 4.990615-138.884127 0 0 42.996069-14.076094 140.760939 53.787741 40.863327-11.644769 84.627183-17.445825 128.177764-17.6591 43.465272 0.213274 87.271782 6.014331 128.135109 17.6591 97.679561-67.906489 140.59032-53.787741 140.59032-53.787741 27.938914 72.257282 10.407779 125.618474 5.118579 138.884127 32.844219 36.683154 52.593405 83.560812 52.593405 140.846248 0 201.586726-119.646798 245.990404-233.663158 258.957473 18.341577 16.208835 34.721032 48.199958 34.721032 97.210357 0 70.167195-0.639822 126.7275-0.639823 143.960051 0 14.033439 9.213443 30.370239 35.190235 25.209005 203.250265-69.527373 349.769606-266.123484 349.769605-497.867175C1023.857959 234.942803 794.673558 0 512 0" fill="#3E75C3" p-id="6946"></path></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1659678502728" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4831" width="48" height="48" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M878.08 731.274667a32 32 0 0 1-54.88-32.938667A360.789333 360.789333 0 0 0 874.666667 512c0-200.298667-162.368-362.666667-362.666667-362.666667S149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667a360.789333 360.789333 0 0 0 186.314667-51.445334 32 32 0 0 1 32.928 54.88A424.778667 424.778667 0 0 1 512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667c0 78.293333-21.152 153.568-60.586667 219.274667zM650.666667 437.333333c0 65.898667-46.72 120.853333-109.194667 135.082667V608a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32C552.266667 512 586.666667 478.4 586.666667 437.333333s-34.4-74.666667-77.194667-74.666666c-26.773333 0-51.082667 13.248-65.173333 34.624a73.088 73.088 0 0 0-8.522667 17.717333 32 32 0 0 1-60.885333-19.690667c3.797333-11.754667 9.173333-22.933333 15.978666-33.237333 25.856-39.253333 70.186667-63.413333 118.613334-63.413333C587.274667 298.666667 650.666667 360.576 650.666667 437.333333zM512 736a32 32 0 1 1 0-64 32 32 0 0 1 0 64z" p-id="4832"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1659678502728" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4831"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M878.08 731.274667a32 32 0 0 1-54.88-32.938667A360.789333 360.789333 0 0 0 874.666667 512c0-200.298667-162.368-362.666667-362.666667-362.666667S149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667a360.789333 360.789333 0 0 0 186.314667-51.445334 32 32 0 0 1 32.928 54.88A424.778667 424.778667 0 0 1 512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667c0 78.293333-21.152 153.568-60.586667 219.274667zM650.666667 437.333333c0 65.898667-46.72 120.853333-109.194667 135.082667V608a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32C552.266667 512 586.666667 478.4 586.666667 437.333333s-34.4-74.666667-77.194667-74.666666c-26.773333 0-51.082667 13.248-65.173333 34.624a73.088 73.088 0 0 0-8.522667 17.717333 32 32 0 0 1-60.885333-19.690667c3.797333-11.754667 9.173333-22.933333 15.978666-33.237333 25.856-39.253333 70.186667-63.413333 118.613334-63.413333C587.274667 298.666667 650.666667 360.576 650.666667 437.333333zM512 736a32 32 0 1 1 0-64 32 32 0 0 1 0 64z" p-id="4832"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656066104156" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10438" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M952.4 71.6c9.8 9.4 10.2 24.9 0.9 34.8l-84.8 84.8 27.4 27.4c73.8 73.8 73.8 193.4 0 267.2l-82.7 82.7c-28.1 28.1-73.6 28.1-101.7 0L453.8 310.9c-28.1-28.1-28.1-73.6 0-101.7l82.7-82.7c71.1-71.1 185.5-74 260.2-6.7l7.1 6.7 29.1 29.1 84.8-84.7c8.5-8.2 21.7-9.1 31.3-2.1l3.4 2.8zM862 252.5l-92.1-92.2-6-5.7c-55.8-49.6-140.6-47.1-193.4 5.7L487.8 243c-9.4 9.4-9.4 24.5 0 33.9l257.6 257.6c9.4 9.4 24.5 9.4 33.9 0l82.7-82.7c55-55 55-144.2 0-199.3zM615.7 543.7c9.8 9.4 10.2 24.9 0.9 34.8l-61.3 61.3 42.6 42.7c28.1 28.1 28.1 73.6 0 101.7l-97.4 97.4c-79.1 79.1-206.3 82.2-289.2 7.1l-7.4-7.1-12.7-12.7-84.8 84.8c-8.5 8.2-21.7 9.1-31.2 2.1l-3.5-2.9c-8.6-8.3-10.1-21.4-3.6-31.4l2.8-3.3 84.8-84.8-14.5-14.4c-81.9-81.9-81.9-214.6 0-296.5l97.4-97.4c28.1-28.1 73.6-28.1 101.7 0l49 49 61.4-61.3c8.5-8.2 21.8-9.1 31.3-2.1l3.5 2.9c8.6 8.3 10.1 21.5 3.6 31.4l-2.7 3.3-61.4 61.3 94.6 94.7 61.3-61.3c8.5-8.2 21.7-9 31.2-2l3.6 2.7z m-51.8 172.7L306.3 458.8c-9.4-9.4-24.5-9.4-33.9 0L175 556.2c-63.2 63.2-63.2 165.6 0 228.8l62.8 62.7 6.4 6.1c64 57.3 161.6 54.6 222.3-6.1l97.4-97.4c9.4-9.3 9.4-24.5 0-33.9z" p-id="10439"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656066104156" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="10438"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M952.4 71.6c9.8 9.4 10.2 24.9 0.9 34.8l-84.8 84.8 27.4 27.4c73.8 73.8 73.8 193.4 0 267.2l-82.7 82.7c-28.1 28.1-73.6 28.1-101.7 0L453.8 310.9c-28.1-28.1-28.1-73.6 0-101.7l82.7-82.7c71.1-71.1 185.5-74 260.2-6.7l7.1 6.7 29.1 29.1 84.8-84.7c8.5-8.2 21.7-9.1 31.3-2.1l3.4 2.8zM862 252.5l-92.1-92.2-6-5.7c-55.8-49.6-140.6-47.1-193.4 5.7L487.8 243c-9.4 9.4-9.4 24.5 0 33.9l257.6 257.6c9.4 9.4 24.5 9.4 33.9 0l82.7-82.7c55-55 55-144.2 0-199.3zM615.7 543.7c9.8 9.4 10.2 24.9 0.9 34.8l-61.3 61.3 42.6 42.7c28.1 28.1 28.1 73.6 0 101.7l-97.4 97.4c-79.1 79.1-206.3 82.2-289.2 7.1l-7.4-7.1-12.7-12.7-84.8 84.8c-8.5 8.2-21.7 9.1-31.2 2.1l-3.5-2.9c-8.6-8.3-10.1-21.4-3.6-31.4l2.8-3.3 84.8-84.8-14.5-14.4c-81.9-81.9-81.9-214.6 0-296.5l97.4-97.4c28.1-28.1 73.6-28.1 101.7 0l49 49 61.4-61.3c8.5-8.2 21.8-9.1 31.3-2.1l3.5 2.9c8.6 8.3 10.1 21.5 3.6 31.4l-2.7 3.3-61.4 61.3 94.6 94.7 61.3-61.3c8.5-8.2 21.7-9 31.2-2l3.6 2.7z m-51.8 172.7L306.3 458.8c-9.4-9.4-24.5-9.4-33.9 0L175 556.2c-63.2 63.2-63.2 165.6 0 228.8l62.8 62.7 6.4 6.1c64 57.3 161.6 54.6 222.3-6.1l97.4-97.4c9.4-9.3 9.4-24.5 0-33.9z" p-id="10439"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656066125066" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11372" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M960 32H64C28.7 32 0 60.6 0 96v672c0 17.7 14.3 32 32 32h344c4.4 0 8 3.6 8 8v116c0 2.2-1.8 4-4 4H272c-8.8 0-16 7.2-16 16v48h512v-48c0-8.8-7.2-16-16-16H644c-2.2 0-4-1.8-4-4V808c0-4.4 3.6-8 8-8h344c17.7 0 32-14.3 32-32V96c0-35.4-28.7-64-64-64z m0 624c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h864c8.8 0 16 7.2 16 16v544z" p-id="11373"></path><path d="M847.9 380.2c2.2 56.8-45.2 103.4-102.3 99.6-51.1-3.3-90.2-45.7-89.6-96.9v-0.8c0.1-7.2-3.6-13.9-9.8-17.5l-79.3-45.8c-5.3-3.1-11.9-2.9-16.9 0.6-15.4 10.5-34 16.7-54 16.7-5.9 0-11.8-0.5-17.4-1.6-6.7-1.2-13.4 1.8-16.8 7.7L410.5 431c-5 8.6-5.7 19-1.9 28.1 5.2 12.4 7.9 26.1 7.3 40.5-1.8 49.5-41.7 89.9-91.2 92.3-56.4 2.7-103-43.6-100.6-99.9 2-49.3 41.7-89.4 91-91.8 5.6-0.3 11.2-0.1 16.6 0.6 12.7 1.5 25.1-4.7 31.5-15.8l48.3-83.6c2.8-4.8 2.8-10.8 0.2-15.7-8-14.8-12.3-31.9-11.5-50.1 2.2-49.6 42.5-89.6 92.1-91.5C546.9 142 592 185.8 592 240c0 2.8-0.1 5.6-0.4 8.3-0.5 6.2 2.5 12.3 7.9 15.4l75.2 43.4c6.6 3.8 15 3.5 21.2-1 16.7-12.1 37.4-18.9 59.6-18.1 49.9 1.9 90.5 42.3 92.4 92.2z" p-id="11374"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656066125066" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="11372"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M960 32H64C28.7 32 0 60.6 0 96v672c0 17.7 14.3 32 32 32h344c4.4 0 8 3.6 8 8v116c0 2.2-1.8 4-4 4H272c-8.8 0-16 7.2-16 16v48h512v-48c0-8.8-7.2-16-16-16H644c-2.2 0-4-1.8-4-4V808c0-4.4 3.6-8 8-8h344c17.7 0 32-14.3 32-32V96c0-35.4-28.7-64-64-64z m0 624c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h864c8.8 0 16 7.2 16 16v544z" p-id="11373"></path><path d="M847.9 380.2c2.2 56.8-45.2 103.4-102.3 99.6-51.1-3.3-90.2-45.7-89.6-96.9v-0.8c0.1-7.2-3.6-13.9-9.8-17.5l-79.3-45.8c-5.3-3.1-11.9-2.9-16.9 0.6-15.4 10.5-34 16.7-54 16.7-5.9 0-11.8-0.5-17.4-1.6-6.7-1.2-13.4 1.8-16.8 7.7L410.5 431c-5 8.6-5.7 19-1.9 28.1 5.2 12.4 7.9 26.1 7.3 40.5-1.8 49.5-41.7 89.9-91.2 92.3-56.4 2.7-103-43.6-100.6-99.9 2-49.3 41.7-89.4 91-91.8 5.6-0.3 11.2-0.1 16.6 0.6 12.7 1.5 25.1-4.7 31.5-15.8l48.3-83.6c2.8-4.8 2.8-10.8 0.2-15.7-8-14.8-12.3-31.9-11.5-50.1 2.2-49.6 42.5-89.6 92.1-91.5C546.9 142 592 185.8 592 240c0 2.8-0.1 5.6-0.4 8.3-0.5 6.2 2.5 12.3 7.9 15.4l75.2 43.4c6.6 3.8 15 3.5 21.2-1 16.7-12.1 37.4-18.9 59.6-18.1 49.9 1.9 90.5 42.3 92.4 92.2z" p-id="11374"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1673591943341" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2718" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512"><path d="M841.425455 752.058182h-46.545455V478.114909c0-147.921455-120.343273-268.264727-268.241455-268.264727h-29.27709c-147.921455 0-268.264727 120.343273-268.264728 268.264727v273.501091h-46.545454V478.114909c0-173.568 141.218909-314.810182 314.810182-314.810182h29.27709c173.568 0 314.786909 141.218909 314.78691 314.810182v273.943273zM113.221818 764.462545h797.556364v46.545455H113.221818z" p-id="2719"></path><path d="M512 86.318545m-73.518545 0a73.518545 73.518545 0 1 0 147.03709 0 73.518545 73.518545 0 1 0-147.03709 0Z" p-id="2720"></path><path d="M512 1011.502545c-93.905455 0-170.309818-76.404364-170.309818-170.309818h46.545454A123.904 123.904 0 0 0 512 964.957091a123.904 123.904 0 0 0 123.764364-123.764364h46.545454c0 93.905455-76.404364 170.309818-170.309818 170.309818z" p-id="2721"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1673591943341" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2718"
width="512" height="512"><path d="M841.425455 752.058182h-46.545455V478.114909c0-147.921455-120.343273-268.264727-268.241455-268.264727h-29.27709c-147.921455 0-268.264727 120.343273-268.264728 268.264727v273.501091h-46.545454V478.114909c0-173.568 141.218909-314.810182 314.810182-314.810182h29.27709c173.568 0 314.786909 141.218909 314.78691 314.810182v273.943273zM113.221818 764.462545h797.556364v46.545455H113.221818z" p-id="2719"></path><path d="M512 86.318545m-73.518545 0a73.518545 73.518545 0 1 0 147.03709 0 73.518545 73.518545 0 1 0-147.03709 0Z" p-id="2720"></path><path d="M512 1011.502545c-93.905455 0-170.309818-76.404364-170.309818-170.309818h46.545454A123.904 123.904 0 0 0 512 964.957091a123.904 123.904 0 0 0 123.764364-123.764364h46.545454c0 93.905455-76.404364 170.309818-170.309818 170.309818z" p-id="2721"></path></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576319715134" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1751" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M947.2 851.2H76.8c-9.6 0-16-6.4-16-16V233.6c0-9.6 6.4-16 16-16h867.2c9.6 0 16 6.4 16 16V832c3.2 9.6-6.4 19.2-12.8 19.2z" fill="#EDEDED" p-id="1752"></path><path d="M963.2 368H60.8V233.6c0-9.6 6.4-16 16-16h867.2c9.6 0 16 6.4 16 16v134.4zM313.6 617.6c32-16 54.4-51.2 54.4-92.8 0-57.6-44.8-105.6-99.2-105.6-54.4 0-99.2 48-99.2 105.6 0 41.6 22.4 76.8 54.4 92.8-64 19.2-112 83.2-112 156.8v3.2h313.6v-3.2c0-73.6-48-137.6-112-156.8z" fill="#5B8FD9" p-id="1753"></path><path d="M556.8 451.2H480c-3.2 0-3.2 3.2-3.2 3.2v73.6c0 3.2 3.2 3.2 3.2 3.2h76.8c3.2 0 3.2-3.2 3.2-3.2v-73.6s0-3.2-3.2-3.2z m-3.2 19.2l-32 44.8c0 3.2-3.2 3.2-6.4 0l-22.4-16c-3.2 0-3.2-3.2 0-6.4 0-3.2 3.2-3.2 6.4 0l19.2 12.8 28.8-41.6c0-3.2 3.2-3.2 6.4 0v6.4z" fill="#68D279" p-id="1754"></path><path d="M553.6 656H480c-3.2 0-3.2-3.2-3.2-3.2v-70.4c0-3.2 3.2-3.2 3.2-3.2h70.4c3.2 0 3.2 3.2 3.2 3.2v70.4c3.2 0 0 3.2 0 3.2z m0-73.6h-70.4v70.4h70.4v-70.4zM876.8 518.4h-243.2c-12.8 0-25.6-9.6-25.6-25.6v-3.2c0-12.8 9.6-22.4 25.6-22.4h243.2c12.8 0 22.4 9.6 22.4 22.4v3.2c3.2 12.8-6.4 25.6-22.4 25.6zM876.8 640h-243.2c-12.8 0-25.6-9.6-25.6-22.4v-3.2c0-12.8 9.6-25.6 25.6-25.6h243.2c12.8 0 22.4 9.6 22.4 25.6v3.2c3.2 12.8-6.4 22.4-22.4 22.4zM553.6 777.6H480c-3.2 0-3.2-3.2-3.2-3.2V704c0-3.2 3.2-3.2 3.2-3.2h70.4c3.2 0 3.2 3.2 3.2 3.2v70.4c3.2 3.2 0 3.2 0 3.2z m0-73.6H480v70.4h70.4V704zM876.8 764.8h-243.2c-12.8 0-25.6-9.6-25.6-25.6V736c0-12.8 9.6-22.4 25.6-22.4h243.2c12.8 0 22.4 9.6 22.4 22.4v3.2c3.2 12.8-6.4 25.6-22.4 25.6z" fill="#5B8FD9" p-id="1755"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576319715134" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1751"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M947.2 851.2H76.8c-9.6 0-16-6.4-16-16V233.6c0-9.6 6.4-16 16-16h867.2c9.6 0 16 6.4 16 16V832c3.2 9.6-6.4 19.2-12.8 19.2z" fill="#EDEDED" p-id="1752"></path><path d="M963.2 368H60.8V233.6c0-9.6 6.4-16 16-16h867.2c9.6 0 16 6.4 16 16v134.4zM313.6 617.6c32-16 54.4-51.2 54.4-92.8 0-57.6-44.8-105.6-99.2-105.6-54.4 0-99.2 48-99.2 105.6 0 41.6 22.4 76.8 54.4 92.8-64 19.2-112 83.2-112 156.8v3.2h313.6v-3.2c0-73.6-48-137.6-112-156.8z" fill="#5B8FD9" p-id="1753"></path><path d="M556.8 451.2H480c-3.2 0-3.2 3.2-3.2 3.2v73.6c0 3.2 3.2 3.2 3.2 3.2h76.8c3.2 0 3.2-3.2 3.2-3.2v-73.6s0-3.2-3.2-3.2z m-3.2 19.2l-32 44.8c0 3.2-3.2 3.2-6.4 0l-22.4-16c-3.2 0-3.2-3.2 0-6.4 0-3.2 3.2-3.2 6.4 0l19.2 12.8 28.8-41.6c0-3.2 3.2-3.2 6.4 0v6.4z" fill="#68D279" p-id="1754"></path><path d="M553.6 656H480c-3.2 0-3.2-3.2-3.2-3.2v-70.4c0-3.2 3.2-3.2 3.2-3.2h70.4c3.2 0 3.2 3.2 3.2 3.2v70.4c3.2 0 0 3.2 0 3.2z m0-73.6h-70.4v70.4h70.4v-70.4zM876.8 518.4h-243.2c-12.8 0-25.6-9.6-25.6-25.6v-3.2c0-12.8 9.6-22.4 25.6-22.4h243.2c12.8 0 22.4 9.6 22.4 22.4v3.2c3.2 12.8-6.4 25.6-22.4 25.6zM876.8 640h-243.2c-12.8 0-25.6-9.6-25.6-22.4v-3.2c0-12.8 9.6-25.6 25.6-25.6h243.2c12.8 0 22.4 9.6 22.4 25.6v3.2c3.2 12.8-6.4 22.4-22.4 22.4zM553.6 777.6H480c-3.2 0-3.2-3.2-3.2-3.2V704c0-3.2 3.2-3.2 3.2-3.2h70.4c3.2 0 3.2 3.2 3.2 3.2v70.4c3.2 3.2 0 3.2 0 3.2z m0-73.6H480v70.4h70.4V704zM876.8 764.8h-243.2c-12.8 0-25.6-9.6-25.6-25.6V736c0-12.8 9.6-22.4 25.6-22.4h243.2c12.8 0 22.4 9.6 22.4 22.4v3.2c3.2 12.8-6.4 25.6-22.4 25.6z" fill="#5B8FD9" p-id="1755"></path></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1540822595547" class="icon" style="" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7920" xmlns:xlink="http://www.w3.org/1999/xlink" width="55.96875" height="48"><defs><style type="text/css"></style></defs><path d="M1082.709333 726.016v-232.96h-448V303.402667h448V0H112.042667v303.402667h448v189.653333h-448v232.96C46.250667 743.168 0.213333 803.285333 0 872.277333 0.085333 956.032 66.901333 1023.914667 149.333333 1024c82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333v-157.141333h373.333333v157.141333c-65.706667 17.194667-111.786667 77.312-111.957333 146.261333 0.085333 83.754667 66.901333 151.637333 149.333333 151.722667 82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333v-157.141333h373.418667v157.141333c-65.792 17.152-111.829333 77.312-112.042667 146.261333 0.085333 83.754667 66.901333 151.637333 149.333333 151.722667 82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333h0.085333z" p-id="7921"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1540822595547" class="icon" style="" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="7920"
width="55.96875" height="48"><defs><style type="text/css"></style></defs><path d="M1082.709333 726.016v-232.96h-448V303.402667h448V0H112.042667v303.402667h448v189.653333h-448v232.96C46.250667 743.168 0.213333 803.285333 0 872.277333 0.085333 956.032 66.901333 1023.914667 149.333333 1024c82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333v-157.141333h373.333333v157.141333c-65.706667 17.194667-111.786667 77.312-111.957333 146.261333 0.085333 83.754667 66.901333 151.637333 149.333333 151.722667 82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333v-157.141333h373.418667v157.141333c-65.792 17.152-111.829333 77.312-112.042667 146.261333 0.085333 83.754667 66.901333 151.637333 149.333333 151.722667 82.432-0.085333 149.248-67.968 149.333334-151.722667 0-70.485333-47.786667-129.28-112.042667-146.261333h0.085333z" p-id="7921"></path></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1540821981190" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1954" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M618.616683 432.146789c42.636556-18.066337 88.163726-27.460833 134.41355-27.460833h13.730416c21.679605-54.921665 27.460833-120.683133 16.621031-183.553987C757.366154 75.878617 620.06199-21.679605 476.253945 4.335921 332.4459 29.628793 210.317459 141.640085 236.332985 286.893437c5.058574 31.0741 20.956951 80.214538 38.300635 115.624559L13.033056 780.465773c-9.394495 13.730416-15.175723 39.023289-12.28511 55.644319l11.562456 64.316161c-10.839802-62.1482 2.890614 22.402258 11.562456 22.402258l85.995766 1.445307c16.62103-2.890614 37.577982-17.343684 46.249823-31.0741L260.18055 731.325335l0.722654-0.722653 90.331687 7.226535 120.683133-189.335216h1.445307c10.839802-14.45307 22.402258-28.90614 36.132675-41.913902 31.0741-32.519407 67.929428-57.089626 109.120677-74.43331z m-549.216655 388.064926l-13.007763 5.058574 1.445307-13.730416L308.598335 448.045166l15.175723 13.730416-254.37403 358.436133z m380.838391-669.177135c39.745942-57.089626 117.792519-71.542696 174.159492-31.0741 56.366972 40.468596 70.097389 118.515173 31.0741 176.327452-39.745942 57.089626-80.214538 16.62103-136.58151-23.124912-56.366972-41.191249-107.675371-65.038814-68.652082-122.12844z" p-id="1955"></path><path d="M749.416965 474.783345c-151.757234 0-274.608327 122.851094-274.608327 274.608328s122.851094 274.608327 274.608327 274.608327 274.608327-122.851094 274.608328-274.608327-122.851094-274.608327-274.608328-274.608328z m158.983769 387.342273c0 41.191249-78.769231 50.585745-152.479887 50.585744s-153.202541-9.394495-153.202541-50.585744v-11.562456c0-30.351447 54.199012-60.702893 100.448836-77.323924 3.613267-1.445307 19.511644-10.117149 10.117149-33.242061-23.124912-23.124912-40.468596-61.425547-40.468596-99.003528 0-57.089626 37.577982-87.441073 82.382498-87.441073 44.081863 0 82.382498 29.628793 82.382499 87.441073 0 36.855328-17.343684 75.155963-40.468596 98.280875-8.671842 26.738179 5.058574 33.242061 7.226535 33.24206 48.417784 15.898377 103.33945 46.249824 103.339449 77.323924l0.722654 12.28511z" p-id="1956"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1540821981190" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="1954"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M618.616683 432.146789c42.636556-18.066337 88.163726-27.460833 134.41355-27.460833h13.730416c21.679605-54.921665 27.460833-120.683133 16.621031-183.553987C757.366154 75.878617 620.06199-21.679605 476.253945 4.335921 332.4459 29.628793 210.317459 141.640085 236.332985 286.893437c5.058574 31.0741 20.956951 80.214538 38.300635 115.624559L13.033056 780.465773c-9.394495 13.730416-15.175723 39.023289-12.28511 55.644319l11.562456 64.316161c-10.839802-62.1482 2.890614 22.402258 11.562456 22.402258l85.995766 1.445307c16.62103-2.890614 37.577982-17.343684 46.249823-31.0741L260.18055 731.325335l0.722654-0.722653 90.331687 7.226535 120.683133-189.335216h1.445307c10.839802-14.45307 22.402258-28.90614 36.132675-41.913902 31.0741-32.519407 67.929428-57.089626 109.120677-74.43331z m-549.216655 388.064926l-13.007763 5.058574 1.445307-13.730416L308.598335 448.045166l15.175723 13.730416-254.37403 358.436133z m380.838391-669.177135c39.745942-57.089626 117.792519-71.542696 174.159492-31.0741 56.366972 40.468596 70.097389 118.515173 31.0741 176.327452-39.745942 57.089626-80.214538 16.62103-136.58151-23.124912-56.366972-41.191249-107.675371-65.038814-68.652082-122.12844z" p-id="1955"></path><path d="M749.416965 474.783345c-151.757234 0-274.608327 122.851094-274.608327 274.608328s122.851094 274.608327 274.608327 274.608327 274.608327-122.851094 274.608328-274.608327-122.851094-274.608327-274.608328-274.608328z m158.983769 387.342273c0 41.191249-78.769231 50.585745-152.479887 50.585744s-153.202541-9.394495-153.202541-50.585744v-11.562456c0-30.351447 54.199012-60.702893 100.448836-77.323924 3.613267-1.445307 19.511644-10.117149 10.117149-33.242061-23.124912-23.124912-40.468596-61.425547-40.468596-99.003528 0-57.089626 37.577982-87.441073 82.382498-87.441073 44.081863 0 82.382498 29.628793 82.382499 87.441073 0 36.855328-17.343684 75.155963-40.468596 98.280875-8.671842 26.738179 5.058574 33.242061 7.226535 33.24206 48.417784 15.898377 103.33945 46.249824 103.339449 77.323924l0.722654 12.28511z" p-id="1956"></path></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1540822135002" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6356" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M131.072 577.536c73.728 0 36.864 0 73.728 0 73.728 0 73.728-155.648 73.728-196.608 0-118.784-217.088-118.784-217.088 0C57.344 421.888 57.344 577.536 131.072 577.536zM454.656 520.192c114.688 0 57.344 0 114.688 0 114.688 0 114.688-233.472 114.688-290.816 0-176.128-339.968-176.128-339.968 0C344.064 286.72 344.064 520.192 454.656 520.192zM823.296 577.536c73.728 0 36.864 0 73.728 0 73.728 0 73.728-155.648 73.728-196.608 0-118.784-217.088-118.784-217.088 0C749.568 421.888 749.568 577.536 823.296 577.536zM978.944 729.088c-45.056-45.056-135.168-65.536-217.088-61.44 32.768 12.288 65.536 32.768 86.016 57.344 36.864 36.864 53.248 98.304 61.44 143.36L1024 868.352C1024 868.352 1024 774.144 978.944 729.088zM45.056 729.088C0 774.144 0 868.352 0 868.352l114.688 0c8.192-45.056 24.576-106.496 61.44-143.36 20.48-24.576 49.152-40.96 81.92-53.248C180.224 663.552 90.112 679.936 45.056 729.088zM249.856 724.992c-65.536 69.632-65.536 204.8-65.536 204.8l659.456 0c0 0 0-135.168-65.536-204.8C663.552 610.304 364.544 606.208 249.856 724.992z" p-id="6357"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1540822135002" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="6356"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M131.072 577.536c73.728 0 36.864 0 73.728 0 73.728 0 73.728-155.648 73.728-196.608 0-118.784-217.088-118.784-217.088 0C57.344 421.888 57.344 577.536 131.072 577.536zM454.656 520.192c114.688 0 57.344 0 114.688 0 114.688 0 114.688-233.472 114.688-290.816 0-176.128-339.968-176.128-339.968 0C344.064 286.72 344.064 520.192 454.656 520.192zM823.296 577.536c73.728 0 36.864 0 73.728 0 73.728 0 73.728-155.648 73.728-196.608 0-118.784-217.088-118.784-217.088 0C749.568 421.888 749.568 577.536 823.296 577.536zM978.944 729.088c-45.056-45.056-135.168-65.536-217.088-61.44 32.768 12.288 65.536 32.768 86.016 57.344 36.864 36.864 53.248 98.304 61.44 143.36L1024 868.352C1024 868.352 1024 774.144 978.944 729.088zM45.056 729.088C0 774.144 0 868.352 0 868.352l114.688 0c8.192-45.056 24.576-106.496 61.44-143.36 20.48-24.576 49.152-40.96 81.92-53.248C180.224 663.552 90.112 679.936 45.056 729.088zM249.856 724.992c-65.536 69.632-65.536 204.8-65.536 204.8l659.456 0c0 0 0-135.168-65.536-204.8C663.552 610.304 364.544 606.208 249.856 724.992z" p-id="6357"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576320577539" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30959" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1024 806.4V704s-70.4-12.8-70.4-19.2c0-6.4 0-12.8-6.4-12.8 6.4-12.8 44.8-44.8 44.8-44.8l-76.8-102.4s-51.2 38.4-64 44.8c-6.4 0-12.8-6.4-19.2-6.4-6.4 0-25.6-64-25.6-64H704s-12.8 64-25.6 64c-6.4 0-12.8 6.4-19.2 6.4-12.8-6.4-64-44.8-64-44.8L524.8 627.2s38.4 38.4 38.4 51.2c0 6.4-6.4 6.4-6.4 12.8-19.2 6.4-64 12.8-64 12.8v102.4s57.6 12.8 64 19.2c0 6.4 6.4 12.8 6.4 19.2-12.8 12.8-44.8 38.4-44.8 38.4l76.8 102.4s64-38.4 70.4-44.8c6.4 0 12.8 6.4 12.8 6.4 6.4 0 19.2 64 19.2 64h102.4s6.4-57.6 12.8-57.6 12.8-6.4 19.2-6.4c6.4 6.4 51.2 44.8 51.2 44.8l102.4-102.4s-38.4-25.6-51.2-38.4c0-6.4 6.4-12.8 6.4-19.2 19.2-12.8 83.2-25.6 83.2-25.6z m-262.4 76.8c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128zM428.8 492.8c121.6 0 243.2-115.2 243.2-236.8C672 134.4 556.8 12.8 435.2 12.8 313.6 12.8 192 140.8 192 262.4s115.2 230.4 236.8 230.4z m51.2 51.2H243.2c-64 0-153.6 32-179.2 121.6-32 89.6-32 89.6-57.6 179.2-12.8 44.8 204.8 70.4 422.4 70.4 70.4 0 25.6-57.6 25.6-128-6.4-172.8 134.4-243.2 25.6-243.2z" fill="#409EFF" p-id="30960"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576320577539" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="30959"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1024 806.4V704s-70.4-12.8-70.4-19.2c0-6.4 0-12.8-6.4-12.8 6.4-12.8 44.8-44.8 44.8-44.8l-76.8-102.4s-51.2 38.4-64 44.8c-6.4 0-12.8-6.4-19.2-6.4-6.4 0-25.6-64-25.6-64H704s-12.8 64-25.6 64c-6.4 0-12.8 6.4-19.2 6.4-12.8-6.4-64-44.8-64-44.8L524.8 627.2s38.4 38.4 38.4 51.2c0 6.4-6.4 6.4-6.4 12.8-19.2 6.4-64 12.8-64 12.8v102.4s57.6 12.8 64 19.2c0 6.4 6.4 12.8 6.4 19.2-12.8 12.8-44.8 38.4-44.8 38.4l76.8 102.4s64-38.4 70.4-44.8c6.4 0 12.8 6.4 12.8 6.4 6.4 0 19.2 64 19.2 64h102.4s6.4-57.6 12.8-57.6 12.8-6.4 19.2-6.4c6.4 6.4 51.2 44.8 51.2 44.8l102.4-102.4s-38.4-25.6-51.2-38.4c0-6.4 6.4-12.8 6.4-19.2 19.2-12.8 83.2-25.6 83.2-25.6z m-262.4 76.8c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128zM428.8 492.8c121.6 0 243.2-115.2 243.2-236.8C672 134.4 556.8 12.8 435.2 12.8 313.6 12.8 192 140.8 192 262.4s115.2 230.4 236.8 230.4z m51.2 51.2H243.2c-64 0-153.6 32-179.2 121.6-32 89.6-32 89.6-57.6 179.2-12.8 44.8 204.8 70.4 422.4 70.4 70.4 0 25.6-57.6 25.6-128-6.4-172.8 134.4-243.2 25.6-243.2z" fill="#409EFF" p-id="30960"></path></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697857296499" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7749" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><path d="M782.848 728.576m-185.856 0a185.856 185.856 0 1 0 371.712 0 185.856 185.856 0 1 0-371.712 0Z" fill="#FFE200" p-id="7750"></path><path d="M194.56 166.4H128c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.56c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#FFE200" p-id="7751"></path><path d="M248.832 274.432v578.56h-92.16v-578.56h92.16m27.648-61.44H129.024c-18.432 0-33.792 14.848-33.792 33.792V880.64c0 18.432 14.848 33.792 33.792 33.792H276.48c18.432 0 33.792-14.848 33.792-33.792V246.784c0-18.432-15.36-33.792-33.792-33.792z" fill="#4E63DD" p-id="7752"></path><path d="M268.8 427.52h-138.24c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h138.24c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM478.72 172.032v680.96h-92.16v-680.96h92.16m27.648-61.44H358.912c-18.432 0-33.792 14.848-33.792 33.792V880.64c0 18.432 14.848 33.792 33.792 33.792h147.456c18.432 0 33.792-14.848 33.792-33.792V144.384c0-18.432-15.36-33.792-33.792-33.792z" fill="#4E63DD" p-id="7753"></path><path d="M498.688 325.12h-138.24c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h138.24c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#4E63DD" p-id="7754"></path><path d="M699.392 266.752l148.48 559.104-89.088 23.552-148.48-559.104 89.088-23.552m19.968-67.584c-3.072 0-5.632 0.512-8.704 1.024L568.32 238.08c-17.92 4.608-28.672 23.04-24.064 40.96l162.816 612.352c4.096 14.848 17.408 25.088 32.768 25.088 3.072 0 5.632-0.512 8.704-1.024l142.336-37.888c17.92-4.608 28.672-23.04 24.064-40.96L751.616 224.256c-4.096-14.848-17.408-25.088-32.256-25.088z" fill="#4E63DD" p-id="7755"></path><path d="M616.448 445.952c-13.824 0-26.112-9.216-29.696-23.04-4.608-16.384 5.632-33.28 22.016-37.376l133.632-35.328c16.384-4.608 33.28 5.632 37.376 22.016 4.608 16.384-5.632 33.28-22.016 37.376l-133.12 35.328c-2.56 0.512-5.632 1.024-8.192 1.024z" fill="#4E63DD" p-id="7756"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1697857296499" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7749"
width="64" height="64"><path d="M782.848 728.576m-185.856 0a185.856 185.856 0 1 0 371.712 0 185.856 185.856 0 1 0-371.712 0Z" fill="#FFE200" p-id="7750"></path><path d="M194.56 166.4H128c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.56c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#FFE200" p-id="7751"></path><path d="M248.832 274.432v578.56h-92.16v-578.56h92.16m27.648-61.44H129.024c-18.432 0-33.792 14.848-33.792 33.792V880.64c0 18.432 14.848 33.792 33.792 33.792H276.48c18.432 0 33.792-14.848 33.792-33.792V246.784c0-18.432-15.36-33.792-33.792-33.792z" fill="#4E63DD" p-id="7752"></path><path d="M268.8 427.52h-138.24c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h138.24c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM478.72 172.032v680.96h-92.16v-680.96h92.16m27.648-61.44H358.912c-18.432 0-33.792 14.848-33.792 33.792V880.64c0 18.432 14.848 33.792 33.792 33.792h147.456c18.432 0 33.792-14.848 33.792-33.792V144.384c0-18.432-15.36-33.792-33.792-33.792z" fill="#4E63DD" p-id="7753"></path><path d="M498.688 325.12h-138.24c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h138.24c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#4E63DD" p-id="7754"></path><path d="M699.392 266.752l148.48 559.104-89.088 23.552-148.48-559.104 89.088-23.552m19.968-67.584c-3.072 0-5.632 0.512-8.704 1.024L568.32 238.08c-17.92 4.608-28.672 23.04-24.064 40.96l162.816 612.352c4.096 14.848 17.408 25.088 32.768 25.088 3.072 0 5.632-0.512 8.704-1.024l142.336-37.888c17.92-4.608 28.672-23.04 24.064-40.96L751.616 224.256c-4.096-14.848-17.408-25.088-32.256-25.088z" fill="#4E63DD" p-id="7755"></path><path d="M616.448 445.952c-13.824 0-26.112-9.216-29.696-23.04-4.608-16.384 5.632-33.28 22.016-37.376l133.632-35.328c16.384-4.608 33.28 5.632 37.376 22.016 4.608 16.384-5.632 33.28-22.016 37.376l-133.12 35.328c-2.56 0.512-5.632 1.024-8.192 1.024z" fill="#4E63DD" p-id="7756"></path></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697857263894" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4061" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M410.67 544H133.33A69.33 69.33 0 0 0 64 613.33v277.34A69.33 69.33 0 0 0 133.33 960h277.34A69.33 69.33 0 0 0 480 890.67V613.33A69.33 69.33 0 0 0 410.67 544zM402 842a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40z m488.67-298H613.33A69.33 69.33 0 0 0 544 613.33v277.34A69.33 69.33 0 0 0 613.33 960h277.34A69.33 69.33 0 0 0 960 890.67V613.33A69.33 69.33 0 0 0 890.67 544zM882 842a40 40 0 0 1-40 40H662a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40zM410.67 64H133.33A69.33 69.33 0 0 0 64 133.33v277.34A69.33 69.33 0 0 0 133.33 480h277.34A69.33 69.33 0 0 0 480 410.67V133.33A69.33 69.33 0 0 0 410.67 64zM402 362a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V182a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40z m292.49 94.18a81.35 81.35 0 0 0 115 0l126.69-126.67a81.35 81.35 0 0 0 0-115L809.51 87.82a81.35 81.35 0 0 0-115 0L567.82 214.49a81.35 81.35 0 0 0 0 115z" fill="#3283FA" p-id="4062"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1697857263894" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4061"
width="64" height="64"><path d="M410.67 544H133.33A69.33 69.33 0 0 0 64 613.33v277.34A69.33 69.33 0 0 0 133.33 960h277.34A69.33 69.33 0 0 0 480 890.67V613.33A69.33 69.33 0 0 0 410.67 544zM402 842a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40z m488.67-298H613.33A69.33 69.33 0 0 0 544 613.33v277.34A69.33 69.33 0 0 0 613.33 960h277.34A69.33 69.33 0 0 0 960 890.67V613.33A69.33 69.33 0 0 0 890.67 544zM882 842a40 40 0 0 1-40 40H662a40 40 0 0 1-40-40V662a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40zM410.67 64H133.33A69.33 69.33 0 0 0 64 133.33v277.34A69.33 69.33 0 0 0 133.33 480h277.34A69.33 69.33 0 0 0 480 410.67V133.33A69.33 69.33 0 0 0 410.67 64zM402 362a40 40 0 0 1-40 40H182a40 40 0 0 1-40-40V182a40 40 0 0 1 40-40h180a40 40 0 0 1 40 40z m292.49 94.18a81.35 81.35 0 0 0 115 0l126.69-126.67a81.35 81.35 0 0 0 0-115L809.51 87.82a81.35 81.35 0 0 0-115 0L567.82 214.49a81.35 81.35 0 0 0 0 115z" fill="#3283FA" p-id="4062"></path></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656066252885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17035" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M682.666667 610.133333v-196.266666l-170.666667-100.266667-170.666667 100.266667v196.266666l170.666667 100.266667z" p-id="17036"></path><path d="M512 236.8l142.933333-83.2L554.666667 96c-27.733333-14.933333-59.733333-14.933333-87.466667 0l-100.266667 57.6 145.066667 83.2zM721.066667 192l-142.933334 83.2 138.666667 81.066667 32 19.2v198.4l142.933333-83.2v-147.2c0-32-17.066667-59.733333-44.8-76.8L721.066667 192z m-330.666667 115.2l55.466667-32L302.933333 192l-128 74.666667c-27.733333 14.933333-44.8 44.8-44.8 76.8V490.666667l142.933334 83.2v-198.4l32-19.2 85.333333-49.066667zM512 787.2l-32-19.2-121.6-70.4-17.066667-10.666667V853.333333l128 74.666667c27.733333 14.933333 59.733333 14.933333 87.466667 0l128-74.666667v-166.4L544 768l-32 19.2zM174.933333 757.333333l100.266667 57.6v-166.4l-142.933333-83.2v115.2c-2.133333 32 14.933333 61.866667 42.666666 76.8z m573.866667 57.6l100.266667-57.6c27.733333-14.933333 44.8-44.8 44.8-76.8v-115.2l-142.933334 83.2v166.4z" p-id="17037"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656066252885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="17035"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M682.666667 610.133333v-196.266666l-170.666667-100.266667-170.666667 100.266667v196.266666l170.666667 100.266667z" p-id="17036"></path><path d="M512 236.8l142.933333-83.2L554.666667 96c-27.733333-14.933333-59.733333-14.933333-87.466667 0l-100.266667 57.6 145.066667 83.2zM721.066667 192l-142.933334 83.2 138.666667 81.066667 32 19.2v198.4l142.933333-83.2v-147.2c0-32-17.066667-59.733333-44.8-76.8L721.066667 192z m-330.666667 115.2l55.466667-32L302.933333 192l-128 74.666667c-27.733333 14.933333-44.8 44.8-44.8 76.8V490.666667l142.933334 83.2v-198.4l32-19.2 85.333333-49.066667zM512 787.2l-32-19.2-121.6-70.4-17.066667-10.666667V853.333333l128 74.666667c27.733333 14.933333 59.733333 14.933333 87.466667 0l128-74.666667v-166.4L544 768l-32 19.2zM174.933333 757.333333l100.266667 57.6v-166.4l-142.933333-83.2v115.2c-2.133333 32 14.933333 61.866667 42.666666 76.8z m573.866667 57.6l100.266667-57.6c27.733333-14.933333 44.8-44.8 44.8-76.8v-115.2l-142.933334 83.2v166.4z" p-id="17037"></path></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657618439838" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10930" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M202.1 885h-102V444h102v441z m-72-30h42V474h-42v381zM339.8 885h-102V320h102v565z m-72-30h42V350h-42v505zM477.5 885h-102l-0.4-297h30l0.3 267h42l-0.3-204h30zM615.1 885h-102V679h30v176h42V691h30z" p-id="10931"></path><path d="M615.1 706c-77.2 0-149.8-30.1-204.4-84.6-54.6-54.6-84.6-127.2-84.6-204.4s30.1-149.8 84.6-204.4C465.3 158 537.9 128 615.1 128s149.8 30.1 204.4 84.6c54.6 54.6 84.6 127.2 84.6 204.4S874 566.8 819.5 621.4C764.9 675.9 692.3 706 615.1 706z m0-548c-69.2 0-134.2 26.9-183.1 75.9-48.9 48.9-75.9 114-75.9 183.1S383 551.2 432 600.1C480.9 649 546 676 615.1 676s134.2-26.9 183.1-75.9c48.9-48.9 75.9-114 75.9-183.1s-26.9-134.2-75.9-183.1c-48.9-49-113.9-75.9-183.1-75.9z" p-id="10932"></path><path d="M777.513 617.637l21.213-21.213 143.966 143.965-21.213 21.213z" p-id="10933"></path><path d="M674.1 686h-30V269h185v334h-30V299h-125zM579.1 688h-30V424h-125v204.4h-30V394h185z" p-id="10934"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1657618439838" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="10930"
width="64" height="64"><defs><style type="text/css"></style></defs><path d="M202.1 885h-102V444h102v441z m-72-30h42V474h-42v381zM339.8 885h-102V320h102v565z m-72-30h42V350h-42v505zM477.5 885h-102l-0.4-297h30l0.3 267h42l-0.3-204h30zM615.1 885h-102V679h30v176h42V691h30z" p-id="10931"></path><path d="M615.1 706c-77.2 0-149.8-30.1-204.4-84.6-54.6-54.6-84.6-127.2-84.6-204.4s30.1-149.8 84.6-204.4C465.3 158 537.9 128 615.1 128s149.8 30.1 204.4 84.6c54.6 54.6 84.6 127.2 84.6 204.4S874 566.8 819.5 621.4C764.9 675.9 692.3 706 615.1 706z m0-548c-69.2 0-134.2 26.9-183.1 75.9-48.9 48.9-75.9 114-75.9 183.1S383 551.2 432 600.1C480.9 649 546 676 615.1 676s134.2-26.9 183.1-75.9c48.9-48.9 75.9-114 75.9-183.1s-26.9-134.2-75.9-183.1c-48.9-49-113.9-75.9-183.1-75.9z" p-id="10932"></path><path d="M777.513 617.637l21.213-21.213 143.966 143.965-21.213 21.213z" p-id="10933"></path><path d="M674.1 686h-30V269h185v334h-30V299h-125zM579.1 688h-30V424h-125v204.4h-30V394h185z" p-id="10934"></path></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656336122357" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3353" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.1953125" height="200"><defs><style type="text/css"></style></defs><path d="M534.75392 0.64l-20.468 0 0 468.719c0 7.685 2.558 12.805 7.676 17.929 5.114 5.119 12.792 7.685 17.912 7.685l483.583 0 0-20.494C1026.01392 208.104 808.53092 0.64 534.75392 0.64L534.75392 0.64zM555.22192 453.99 555.22192 41.624C790.62092 51.868 972.28292 228.597 982.52092 453.99L555.22192 453.99 555.22192 453.99zM486.14292 1022.6c271.214 0 493.818-212.59 493.818-476.405l0-20.489L481.02292 525.706 481.02292 41.623l-20.466 0C207.24692 41.624-0.00208 267.014-0.00208 543.635-0.00208 812.572 214.92192 1022.6 486.14292 1022.6L486.14292 1022.6zM437.52492 85.165l0 458.469c0 7.684 2.563 12.805 7.677 17.928 5.118 5.124 12.795 7.687 17.91 7.687l473.35 0c-10.235 227.958-209.807 412.368-450.32 412.368-248.19 0-445.205-192.095-445.205-437.982C40.93792 297.749 217.47992 95.409 437.52492 85.165L437.52492 85.165z" p-id="3354"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1656336122357" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3353"
width="200.1953125" height="200"><defs><style type="text/css"></style></defs><path d="M534.75392 0.64l-20.468 0 0 468.719c0 7.685 2.558 12.805 7.676 17.929 5.114 5.119 12.792 7.685 17.912 7.685l483.583 0 0-20.494C1026.01392 208.104 808.53092 0.64 534.75392 0.64L534.75392 0.64zM555.22192 453.99 555.22192 41.624C790.62092 51.868 972.28292 228.597 982.52092 453.99L555.22192 453.99 555.22192 453.99zM486.14292 1022.6c271.214 0 493.818-212.59 493.818-476.405l0-20.489L481.02292 525.706 481.02292 41.623l-20.466 0C207.24692 41.624-0.00208 267.014-0.00208 543.635-0.00208 812.572 214.92192 1022.6 486.14292 1022.6L486.14292 1022.6zM437.52492 85.165l0 458.469c0 7.684 2.563 12.805 7.677 17.928 5.118 5.124 12.795 7.687 17.91 7.687l473.35 0c-10.235 227.958-209.807 412.368-450.32 412.368-248.19 0-445.205-192.095-445.205-437.982C40.93792 297.749 217.47992 95.409 437.52492 85.165L437.52492 85.165z" p-id="3354"></path></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,3 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657618234540" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5380" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M124.928 660.48h104.96v238.08h-104.96zM347.136 535.552h104.96v363.52h-104.96zM548.864 644.608h104.96v254.464h-104.96zM766.976 422.4h104.96v476.672h-104.96z" fill="" p-id="5381"></path><path d="M666.112 124.928l110.592 118.784L535.04 473.6 351.744 307.2v-0.512l-0.512-0.512-1.536 2.048L61.44 536.576l32.768 41.472 254.976-202.752 186.368 169.472 1.024-1.024 0.512 0.512 275.456-262.144 100.864 108.544 12.8-260.096z" fill="" p-id="5382"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1657618234540" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5380"
width="64" height="64"><defs><style type="text/css"></style></defs><path d="M124.928 660.48h104.96v238.08h-104.96zM347.136 535.552h104.96v363.52h-104.96zM548.864 644.608h104.96v254.464h-104.96zM766.976 422.4h104.96v476.672h-104.96z" fill="" p-id="5381"></path><path d="M666.112 124.928l110.592 118.784L535.04 473.6 351.744 307.2v-0.512l-0.512-0.512-1.536 2.048L61.44 536.576l32.768 41.472 254.976-202.752 186.368 169.472 1.024-1.024 0.512 0.512 275.456-262.144 100.864 108.544 12.8-260.096z" fill="" p-id="5382"></path></svg>

Before

Width:  |  Height:  |  Size: 824 B

After

Width:  |  Height:  |  Size: 788 B

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576320500202" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="26961" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M959.400375 541.741412a41.765896 41.765896 0 0 1-14.327046 6.076202l-118.581886 29.613492-10.937164 33.642973a325.236727 325.236727 0 0 1-19.188008 45.667458l-15.990006 31.532292 62.680824 104.510681c3.965522 6.396002 5.820362 12.088445 6.396003 15.478326l-42.085697 41.957776a49.696939 49.696939 0 0 1-10.873204-4.477202l-105.278201-67.158026-32.747533 16.949407c-15.798126 8.186883-31.980012 14.966646-48.097939 20.211368L575.640225 827.003123l-26.41549 119.029607c-1.21524 6.396002-4.605122 11.512804-6.907683 13.367645h-57.564023a41.893816 41.893816 0 0 1-6.140162-14.327046l-29.421612-117.686446-34.026733-10.873204a314.171643 314.171643 0 0 1-52.12742-21.874329l-32.875453-17.333166-105.342161 67.158026a24.112929 24.112929 0 0 1-13.047845 4.477202l-41.957777-40.806496a42.277577 42.277577 0 0 1 5.756403-14.327046l65.431105-109.051843-15.542286-31.340412a314.939163 314.939163 0 0 1-17.525047-42.277576l-11.001124-33.642973-117.430606-29.421612A45.283698 45.283698 0 0 1 63.960025 541.741412v-59.482824l0.12792 0.06396c1.08732 0 6.396002-3.709681 10.745284-4.477201l120.628607-26.735291 11.065085-35.305934c4.477202-14.327046 10.681324-29.293691 18.804247-45.731417l15.542286-31.340413L176.145909 230.89569a45.411618 45.411618 0 0 1-6.396003-15.542286l42.021737-42.021736c4.093442 1.2792 8.698563 2.942161 10.873204 4.477201l107.260962 68.437227 32.875453-17.397127c16.821487-8.890443 34.282573-16.245846 51.80762-21.810368l34.026733-10.873204 29.165772-116.663086A45.411618 45.411618 0 0 1 484.177389 63.960025h59.482823c-0.44772 0.6396 3.709681 6.204122 4.477202 10.873204l26.863211 121.332168 34.858213 11.256964c16.373766 5.244722 32.747533 12.152405 48.673579 20.467208l32.747533 16.949407 103.10356-65.686946a23.985009 23.985009 0 0 1 13.111805-4.541162l41.957777 40.742536a42.213616 42.213616 0 0 1-5.820362 14.454966L780.312305 335.150531l16.181886 31.596252c8.698563 17.013367 15.350406 33.003373 20.275328 48.865459l11.065084 35.305934 118.198127 26.22361c7.163523 1.343161 12.728045 5.500562 13.879325 7.739163L959.400375 541.677452z m0.51168-126.96065l-82.060712-18.164647a377.364147 377.364147 0 0 0-24.43273-58.907183l44.452218-74.001749c16.565646-26.47945 24.94441-65.431106 0-90.439475l-45.283698-45.219738c-24.94441-24.94441-67.158026-20.467208-92.550156-2.814241l-72.018988 45.859338a381.841349 381.841349 0 0 0-58.459463-24.56065L611.138039 63.448345C605.637477 33.003373 578.966146 0 543.660212 0h-63.960025c-35.305934 0-56.924422 33.451093-63.960025 63.960025l-20.467208 82.060712a382.73679 382.73679 0 0 0-62.361024 26.22361l-73.745909-47.010618c-25.45609-17.652967-67.605746-22.130169-92.614116 2.814241l-45.219738 45.219738c-24.94441 24.94441-16.629606 63.960025 0 90.439475l46.690819 77.90331a380.370269 380.370269 0 0 0-22.513929 55.005622l-82.060712 18.164647C33.003373 420.281324 0 446.952655 0 482.258588v63.960025c0 35.305934 33.451093 56.924422 63.960025 63.960025l83.148032 20.787008c5.756402 17.589007 12.855965 34.538413 20.978889 50.91218l-46.754779 77.967271c-16.629606 26.47945-24.94441 65.431106 0 90.439475l45.219738 45.219738c24.94441 24.94441 67.158026 20.467208 92.614116 2.814241l73.937789-47.074578c19.955528 10.489444 40.870456 19.379888 62.680825 26.28757l20.467208 81.868832c7.035603 30.508932 28.654091 63.960025 63.960025 63.960025h63.960025c35.305934 0 61.977264-33.003373 67.413866-63.448345l18.548407-83.275953c20.019488-6.523923 39.271455-14.710806 57.755903-24.304809l72.146908 46.051218c25.45609 17.589007 67.605746 22.130169 92.550156-2.878201l45.283698-45.219738c24.94441-24.94441 16.565646-63.960025 0-90.439475l-44.452218-74.065709c8.954403-17.589007 16.629606-35.817614 22.897689-54.813742L959.400375 610.178638c30.508932-7.035603 63.960025-28.654091 63.960025-63.960025v-63.960025c0-35.305934-33.003373-61.977264-63.448345-67.477826z" fill="#5584FF" p-id="26962"></path><path d="M511.6802 383.76015c-70.547908 0-127.92005 57.372142-127.92005 127.92005s57.372142 127.92005 127.92005 127.92005 127.92005-57.372142 127.92005-127.92005-57.372142-127.92005-127.92005-127.92005m0.44772 320.119925A192.647595 192.647595 0 0 1 319.480325 511.6802a192.647595 192.647595 0 0 1 385.23123 0 192.647595 192.647595 0 0 1-192.583635 192.199875" fill="#5584FF" p-id="26963"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576320500202" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="26961"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M959.400375 541.741412a41.765896 41.765896 0 0 1-14.327046 6.076202l-118.581886 29.613492-10.937164 33.642973a325.236727 325.236727 0 0 1-19.188008 45.667458l-15.990006 31.532292 62.680824 104.510681c3.965522 6.396002 5.820362 12.088445 6.396003 15.478326l-42.085697 41.957776a49.696939 49.696939 0 0 1-10.873204-4.477202l-105.278201-67.158026-32.747533 16.949407c-15.798126 8.186883-31.980012 14.966646-48.097939 20.211368L575.640225 827.003123l-26.41549 119.029607c-1.21524 6.396002-4.605122 11.512804-6.907683 13.367645h-57.564023a41.893816 41.893816 0 0 1-6.140162-14.327046l-29.421612-117.686446-34.026733-10.873204a314.171643 314.171643 0 0 1-52.12742-21.874329l-32.875453-17.333166-105.342161 67.158026a24.112929 24.112929 0 0 1-13.047845 4.477202l-41.957777-40.806496a42.277577 42.277577 0 0 1 5.756403-14.327046l65.431105-109.051843-15.542286-31.340412a314.939163 314.939163 0 0 1-17.525047-42.277576l-11.001124-33.642973-117.430606-29.421612A45.283698 45.283698 0 0 1 63.960025 541.741412v-59.482824l0.12792 0.06396c1.08732 0 6.396002-3.709681 10.745284-4.477201l120.628607-26.735291 11.065085-35.305934c4.477202-14.327046 10.681324-29.293691 18.804247-45.731417l15.542286-31.340413L176.145909 230.89569a45.411618 45.411618 0 0 1-6.396003-15.542286l42.021737-42.021736c4.093442 1.2792 8.698563 2.942161 10.873204 4.477201l107.260962 68.437227 32.875453-17.397127c16.821487-8.890443 34.282573-16.245846 51.80762-21.810368l34.026733-10.873204 29.165772-116.663086A45.411618 45.411618 0 0 1 484.177389 63.960025h59.482823c-0.44772 0.6396 3.709681 6.204122 4.477202 10.873204l26.863211 121.332168 34.858213 11.256964c16.373766 5.244722 32.747533 12.152405 48.673579 20.467208l32.747533 16.949407 103.10356-65.686946a23.985009 23.985009 0 0 1 13.111805-4.541162l41.957777 40.742536a42.213616 42.213616 0 0 1-5.820362 14.454966L780.312305 335.150531l16.181886 31.596252c8.698563 17.013367 15.350406 33.003373 20.275328 48.865459l11.065084 35.305934 118.198127 26.22361c7.163523 1.343161 12.728045 5.500562 13.879325 7.739163L959.400375 541.677452z m0.51168-126.96065l-82.060712-18.164647a377.364147 377.364147 0 0 0-24.43273-58.907183l44.452218-74.001749c16.565646-26.47945 24.94441-65.431106 0-90.439475l-45.283698-45.219738c-24.94441-24.94441-67.158026-20.467208-92.550156-2.814241l-72.018988 45.859338a381.841349 381.841349 0 0 0-58.459463-24.56065L611.138039 63.448345C605.637477 33.003373 578.966146 0 543.660212 0h-63.960025c-35.305934 0-56.924422 33.451093-63.960025 63.960025l-20.467208 82.060712a382.73679 382.73679 0 0 0-62.361024 26.22361l-73.745909-47.010618c-25.45609-17.652967-67.605746-22.130169-92.614116 2.814241l-45.219738 45.219738c-24.94441 24.94441-16.629606 63.960025 0 90.439475l46.690819 77.90331a380.370269 380.370269 0 0 0-22.513929 55.005622l-82.060712 18.164647C33.003373 420.281324 0 446.952655 0 482.258588v63.960025c0 35.305934 33.451093 56.924422 63.960025 63.960025l83.148032 20.787008c5.756402 17.589007 12.855965 34.538413 20.978889 50.91218l-46.754779 77.967271c-16.629606 26.47945-24.94441 65.431106 0 90.439475l45.219738 45.219738c24.94441 24.94441 67.158026 20.467208 92.614116 2.814241l73.937789-47.074578c19.955528 10.489444 40.870456 19.379888 62.680825 26.28757l20.467208 81.868832c7.035603 30.508932 28.654091 63.960025 63.960025 63.960025h63.960025c35.305934 0 61.977264-33.003373 67.413866-63.448345l18.548407-83.275953c20.019488-6.523923 39.271455-14.710806 57.755903-24.304809l72.146908 46.051218c25.45609 17.589007 67.605746 22.130169 92.550156-2.878201l45.283698-45.219738c24.94441-24.94441 16.565646-63.960025 0-90.439475l-44.452218-74.065709c8.954403-17.589007 16.629606-35.817614 22.897689-54.813742L959.400375 610.178638c30.508932-7.035603 63.960025-28.654091 63.960025-63.960025v-63.960025c0-35.305934-33.003373-61.977264-63.448345-67.477826z" fill="#5584FF" p-id="26962"></path><path d="M511.6802 383.76015c-70.547908 0-127.92005 57.372142-127.92005 127.92005s57.372142 127.92005 127.92005 127.92005 127.92005-57.372142 127.92005-127.92005-57.372142-127.92005-127.92005-127.92005m0.44772 320.119925A192.647595 192.647595 0 0 1 319.480325 511.6802a192.647595 192.647595 0 0 1 385.23123 0 192.647595 192.647595 0 0 1-192.583635 192.199875" fill="#5584FF" p-id="26963"></path></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576320201223" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19255" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M102.4 0h153.6v1024H102.4A102.4 102.4 0 0 1 0 921.6V102.4A102.4 102.4 0 0 1 102.4 0z" fill="#E9BE35" p-id="19256"></path><path d="M256 0h665.6a102.4 102.4 0 0 1 102.4 102.4v819.2a102.4 102.4 0 0 1-102.4 102.4H256V0z" fill="#FFCE33" p-id="19257"></path><path d="M225.28 0h10.24v1024h-10.24z" fill="#F4D571" p-id="19258"></path><path d="M128 808.96h757.76c93.31712-9.28768 138.24-122.88 138.24-122.88s0.9216 192.57344 0 194.56c-52.224 112.13824-63.68256 93.48096-138.24 112.64h-757.76A87.04 87.04 0 0 1 40.96 906.24v-10.24a87.04 87.04 0 0 1 87.04-87.04z" fill="#DBDADA" p-id="19259"></path><path d="M127.91808 833.536h757.0432C995.98336 829.93152 1024 686.08 1024 686.08s0 207.872-0.9216 209.58208c-52.224 97.18784-63.63136 81.01888-138.11712 97.61792h-757.0432C79.89248 993.28 40.96 959.488 40.96 917.84192v-8.86784C40.96 867.328 79.872 833.536 127.91808 833.536z" fill="#FFFFFF" p-id="19260"></path><path d="M378.88 153.6h501.76v245.76H378.88z" fill="#C47300" p-id="19261"></path><path d="M399.36 174.08h460.8v204.8H399.36z" fill="#FFFFFF" p-id="19262"></path><path d="M450.56 204.8h112.64v143.36H450.56z" fill="#FF6029" p-id="19263"></path><path d="M614.4 204.8h194.56v20.48H614.4v-20.48z m0 61.44h194.56v20.48H614.4v-20.48z m0 61.44h194.56v20.48H614.4v-20.48z" fill="#FF6029" p-id="19264"></path><path d="M296.96 829.44h204.8v194.56L399.36 921.6l-102.4 102.4V829.44z" fill="#FF6029" p-id="19265"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576320201223" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="19255"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M102.4 0h153.6v1024H102.4A102.4 102.4 0 0 1 0 921.6V102.4A102.4 102.4 0 0 1 102.4 0z" fill="#E9BE35" p-id="19256"></path><path d="M256 0h665.6a102.4 102.4 0 0 1 102.4 102.4v819.2a102.4 102.4 0 0 1-102.4 102.4H256V0z" fill="#FFCE33" p-id="19257"></path><path d="M225.28 0h10.24v1024h-10.24z" fill="#F4D571" p-id="19258"></path><path d="M128 808.96h757.76c93.31712-9.28768 138.24-122.88 138.24-122.88s0.9216 192.57344 0 194.56c-52.224 112.13824-63.68256 93.48096-138.24 112.64h-757.76A87.04 87.04 0 0 1 40.96 906.24v-10.24a87.04 87.04 0 0 1 87.04-87.04z" fill="#DBDADA" p-id="19259"></path><path d="M127.91808 833.536h757.0432C995.98336 829.93152 1024 686.08 1024 686.08s0 207.872-0.9216 209.58208c-52.224 97.18784-63.63136 81.01888-138.11712 97.61792h-757.0432C79.89248 993.28 40.96 959.488 40.96 917.84192v-8.86784C40.96 867.328 79.872 833.536 127.91808 833.536z" fill="#FFFFFF" p-id="19260"></path><path d="M378.88 153.6h501.76v245.76H378.88z" fill="#C47300" p-id="19261"></path><path d="M399.36 174.08h460.8v204.8H399.36z" fill="#FFFFFF" p-id="19262"></path><path d="M450.56 204.8h112.64v143.36H450.56z" fill="#FF6029" p-id="19263"></path><path d="M614.4 204.8h194.56v20.48H614.4v-20.48z m0 61.44h194.56v20.48H614.4v-20.48z m0 61.44h194.56v20.48H614.4v-20.48z" fill="#FF6029" p-id="19264"></path><path d="M296.96 829.44h204.8v194.56L399.36 921.6l-102.4 102.4V829.44z" fill="#FF6029" p-id="19265"></path></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1648102180612" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11803" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M136.3 410.2h70v150.2h-70zM206.3 851.3V733.8h-70v117.5c0 40.7 31.5 73.9 70.2 73.9h206.1v-70H207.5c-0.5-0.6-1.2-1.9-1.2-3.9zM206.3 139c0-2 0.7-3.3 1.1-3.9h619.8c0.5 0.6 1.1 1.8 1.1 3.9v151.1h70V139c0-40.7-31.5-73.9-70.2-73.9H206.5c-38.7 0-70.2 33.1-70.2 73.9v97.9h70V139zM886.8 677.2c-20-20-43-35.9-68-47.2 19.2-22.2 30.9-51.2 30.9-82.8 0-69.9-56.8-126.7-126.7-126.7s-126.7 56.8-126.7 126.7c0 31.6 11.7 60.6 30.9 82.8-25 11.4-48 27.2-68 47.2-43.8 43.8-67.9 101.9-67.9 163.8 0 6.1 0.2 12.2 0.7 18.2l69.8-5.5c-0.3-4.2-0.5-8.5-0.5-12.7 0-89.1 72.5-161.6 161.6-161.6S884.6 751.9 884.6 841c0 4.3-0.2 8.6-0.5 12.7l69.8 5.5c0.5-6 0.7-12.1 0.7-18.2 0-61.9-24.1-120-67.8-163.8zM723 490.5c31.3 0 56.7 25.4 56.7 56.7s-25.4 56.7-56.7 56.7-56.7-25.4-56.7-56.7 25.4-56.7 56.7-56.7zM93.9 288.5h154.8v70H93.9zM93.9 612.1h154.8v70H93.9z" p-id="11804"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1648102180612" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="11803"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M136.3 410.2h70v150.2h-70zM206.3 851.3V733.8h-70v117.5c0 40.7 31.5 73.9 70.2 73.9h206.1v-70H207.5c-0.5-0.6-1.2-1.9-1.2-3.9zM206.3 139c0-2 0.7-3.3 1.1-3.9h619.8c0.5 0.6 1.1 1.8 1.1 3.9v151.1h70V139c0-40.7-31.5-73.9-70.2-73.9H206.5c-38.7 0-70.2 33.1-70.2 73.9v97.9h70V139zM886.8 677.2c-20-20-43-35.9-68-47.2 19.2-22.2 30.9-51.2 30.9-82.8 0-69.9-56.8-126.7-126.7-126.7s-126.7 56.8-126.7 126.7c0 31.6 11.7 60.6 30.9 82.8-25 11.4-48 27.2-68 47.2-43.8 43.8-67.9 101.9-67.9 163.8 0 6.1 0.2 12.2 0.7 18.2l69.8-5.5c-0.3-4.2-0.5-8.5-0.5-12.7 0-89.1 72.5-161.6 161.6-161.6S884.6 751.9 884.6 841c0 4.3-0.2 8.6-0.5 12.7l69.8 5.5c0.5-6 0.7-12.1 0.7-18.2 0-61.9-24.1-120-67.8-163.8zM723 490.5c31.3 0 56.7 25.4 56.7 56.7s-25.4 56.7-56.7 56.7-56.7-25.4-56.7-56.7 25.4-56.7 56.7-56.7zM93.9 288.5h154.8v70H93.9zM93.9 612.1h154.8v70H93.9z" p-id="11804"></path></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576320244758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22152" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M665.729808 153.544368V0h-102.733792v153.544368h-255.90728V0H204.725824v153.544368H0v153.544368h870.455632V153.544368h-204.725824zM0 358.270192h255.90728v255.90728H0zM562.996016 430.220934a205.096704 205.096704 0 0 0-51.181456 132.775082 170.604853 170.604853 0 0 0 5.192322 51.181456H307.088736v-255.90728h255.90728zM0 665.358928h255.90728v255.90728H0zM562.996016 696.141978a363.833394 363.833394 0 0 0-189.148859 225.49511h-66.758421v-256.27816h230.316552z" fill="#A6C5F6" p-id="22153"></path><path d="M562.996016 562.996016A153.915248 153.915248 0 1 0 716.911264 407.968127a153.915248 153.915248 0 0 0-153.915248 153.544368z" fill="#4E8CEE" p-id="22154"></path><path d="M716.911264 716.911264A308.201376 308.201376 0 0 0 407.968127 1024h616.031873a307.830496 307.830496 0 0 0-307.088736-307.088736z" fill="#4E8CEE" p-id="22155"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576320244758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="22152"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M665.729808 153.544368V0h-102.733792v153.544368h-255.90728V0H204.725824v153.544368H0v153.544368h870.455632V153.544368h-204.725824zM0 358.270192h255.90728v255.90728H0zM562.996016 430.220934a205.096704 205.096704 0 0 0-51.181456 132.775082 170.604853 170.604853 0 0 0 5.192322 51.181456H307.088736v-255.90728h255.90728zM0 665.358928h255.90728v255.90728H0zM562.996016 696.141978a363.833394 363.833394 0 0 0-189.148859 225.49511h-66.758421v-256.27816h230.316552z" fill="#A6C5F6" p-id="22153"></path><path d="M562.996016 562.996016A153.915248 153.915248 0 1 0 716.911264 407.968127a153.915248 153.915248 0 0 0-153.915248 153.544368z" fill="#4E8CEE" p-id="22154"></path><path d="M716.911264 716.911264A308.201376 308.201376 0 0 0 407.968127 1024h616.031873a307.830496 307.830496 0 0 0-307.088736-307.088736z" fill="#4E8CEE" p-id="22155"></path></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1648102210901" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12945" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M634.88 906.24c-169.472 0-307.2-137.728-307.2-307.2s137.728-307.2 307.2-307.2 307.2 137.728 307.2 307.2-137.728 307.2-307.2 307.2z m0-552.96c-135.68 0-245.76 110.08-245.76 245.76s110.08 245.76 245.76 245.76 245.76-110.08 245.76-245.76-110.08-245.76-245.76-245.76z" fill="#E09527" p-id="12946"></path><path d="M916.48 179.2H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h808.96c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM332.8 353.28H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h225.28c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM261.12 537.6H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h153.6c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM261.12 721.92H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h153.6c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM332.8 906.24H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h225.28c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#A32A1F" p-id="12947"></path><path d="M762.368 629.76H634.88c-16.896 0-30.72-13.824-30.72-30.72V471.552c0-16.896 13.824-30.72 30.72-30.72s30.72 13.824 30.72 30.72V568.32h96.768c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#E09527" p-id="12948"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1648102210901" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="12945"
width="48" height="48"><defs><style type="text/css"></style></defs><path d="M634.88 906.24c-169.472 0-307.2-137.728-307.2-307.2s137.728-307.2 307.2-307.2 307.2 137.728 307.2 307.2-137.728 307.2-307.2 307.2z m0-552.96c-135.68 0-245.76 110.08-245.76 245.76s110.08 245.76 245.76 245.76 245.76-110.08 245.76-245.76-110.08-245.76-245.76-245.76z" fill="#E09527" p-id="12946"></path><path d="M916.48 179.2H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h808.96c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM332.8 353.28H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h225.28c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM261.12 537.6H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h153.6c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM261.12 721.92H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h153.6c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM332.8 906.24H107.52c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h225.28c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#A32A1F" p-id="12947"></path><path d="M762.368 629.76H634.88c-16.896 0-30.72-13.824-30.72-30.72V471.552c0-16.896 13.824-30.72 30.72-30.72s30.72 13.824 30.72 30.72V568.32h96.768c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#E09527" p-id="12948"></path></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1 +1,4 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576321110247" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="35282" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M96 1024V0h448v384h384v640H96z m96-256a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v96z m160-416a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z m128 160a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z m0 320a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z" fill="#3CC451" p-id="35283"></path><path d="M608 0l320 320H608V0z" fill="#B0E7B8" p-id="35284"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1576321110247" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="35282"
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M96 1024V0h448v384h384v640H96z m96-256a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v96z m160-416a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z m128 160a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z m0 320a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h96a32 32 0 0 0 32-32v-96z" fill="#3CC451" p-id="35283"></path><path d="M608 0l320 320H608V0z" fill="#B0E7B8" p-id="35284"></path></svg>

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 868 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,6 +1,6 @@
import { type VNode, cloneVNode, createVNode, defineComponent, h, KeepAlive } from "vue"
import { useRoute } from "vue-router"
import { useTagsViewStore } from "@/store/modules/tags-view"
import {cloneVNode, createVNode, defineComponent, h, KeepAlive, type VNode} from "vue"
import {useRoute} from "vue-router"
import {useTagsViewStore} from "@/store/modules/tags-view"
interface CompConsumerProps {
component: VNode

View File

@@ -1,7 +1,7 @@
import { onBeforeMount, onMounted, onBeforeUnmount } from "vue"
import { useAppStore } from "@/store/modules/app"
import { useRouteListener } from "@/hooks/useRouteListener"
import { DeviceEnum } from "@/constants/app-key"
import {onBeforeMount, onBeforeUnmount, onMounted} from "vue"
import {useAppStore} from "@/store/modules/app"
import {useRouteListener} from "@/hooks/useRouteListener"
import {DeviceEnum} from "@/constants/app-key"
/** 参考 Bootstrap 的响应式设计将最大移动端宽度设置为 992 */
const MAX_MOBILE_WIDTH = 992

View File

@@ -1,14 +1,14 @@
// core
import { createApp } from "vue"
import {createApp} from "vue"
import App from "@/App.vue"
import store from "@/store"
import router from "@/router"
import "@/router/permission"
// load
import { loadSvg } from "@/icons"
import { loadPlugins } from "@/plugins"
import { loadDirectives } from "@/directives"
import { loadGlobalComponent } from "@/components"
import {loadSvg} from "@/icons"
import {loadPlugins} from "@/plugins"
import {loadDirectives} from "@/directives"
import {loadGlobalComponent} from "@/components"
// css
import "uno.css"
import "normalize.css"

View File

@@ -1,4 +1,4 @@
import { type App } from "vue"
import {type App} from "vue"
import * as ElementPlusIconsVue from "@element-plus/icons-vue"
export function loadElementPlusIcon(app: App) {

View File

@@ -1,4 +1,4 @@
import { type App } from "vue"
import {type App} from "vue"
import ElementPlus from "element-plus"
export function loadElementPlus(app: App) {

View File

@@ -1,7 +1,7 @@
import { type App } from "vue"
import { loadElementPlus } from "./element-plus"
import { loadElementPlusIcon } from "./element-plus-icon"
import { loadVxeTable } from "./vxe-table"
import {type App} from "vue"
import {loadElementPlus} from "./element-plus"
import {loadElementPlusIcon} from "./element-plus-icon"
import {loadVxeTable} from "./vxe-table"
export function loadPlugins(app: App) {
loadElementPlus(app)

View File

@@ -1,4 +1,4 @@
import { type App } from "vue"
import {type App} from "vue"
// https://vxetable.cn/#/table/start/install
import VXETable from "vxe-table"
// https://github.com/x-extends/vxe-table-plugin-element

View File

@@ -1,12 +1,12 @@
import {
type Router,
type RouteRecordNormalized,
type RouteRecordRaw,
createRouter,
createWebHashHistory,
createWebHistory
createWebHistory,
type Router,
type RouteRecordNormalized,
type RouteRecordRaw
} from "vue-router"
import { cloneDeep, omit } from "lodash-es"
import {cloneDeep, omit} from "lodash-es"
/** 路由模式 */
export const history =

View File

@@ -1,7 +1,7 @@
import { type RouteRecordRaw, createRouter } from "vue-router"
import { history, flatMultiLevelRoutes } from "./helper"
import {createRouter, type RouteRecordRaw} from "vue-router"
import {flatMultiLevelRoutes, history} from "./helper"
import routeSettings from "@/config/route"
import { loginUrl } from "@/config/white-list"
import {loginUrl} from "@/config/white-list"
const Layouts = () => import("@/layouts/index.vue")

View File

@@ -1,18 +1,18 @@
import router from "@/router"
import { useUserStoreHook } from "@/store/modules/user"
import { useDictStoreHook } from "@/store/modules/dict"
import { usePermissionStoreHook } from "@/store/modules/permission"
import { useNoticeStoreHook } from "@/store/modules/notice"
import {useUserStoreHook} from "@/store/modules/user"
import {useDictStoreHook} from "@/store/modules/dict"
import {usePermissionStoreHook} from "@/store/modules/permission"
import {useNoticeStoreHook} from "@/store/modules/notice"
import { ElMessage } from "element-plus"
import { useTitle } from "@/hooks/useTitle"
import { getToken } from "@/utils/cache/local-storage"
import { fixBlankPage } from "@/utils/fix-blank-page"
import { setRouteChange } from "@/hooks/useRouteListener"
import { isWhiteList, loginUrl } from "@/config/white-list"
import {ElMessage} from "element-plus"
import {useTitle} from "@/hooks/useTitle"
import {getToken} from "@/utils/cache/local-storage"
import {fixBlankPage} from "@/utils/fix-blank-page"
import {setRouteChange} from "@/hooks/useRouteListener"
import {isWhiteList, loginUrl} from "@/config/white-list"
import NProgress from "nprogress"
import "nprogress/nprogress.css"
import { useTenantStoreHook } from "@/store/modules/tenant"
import {useTenantStoreHook} from "@/store/modules/tenant"
const { setTitle } = useTitle()
NProgress.configure({ showSpinner: false })

View File

@@ -1,4 +1,4 @@
import { createPinia } from "pinia"
import {createPinia} from "pinia"
const store = createPinia()

View File

@@ -1,7 +1,7 @@
import { reactive, ref, watch } from "vue"
import { defineStore } from "pinia"
import { getSidebarStatus, setSidebarStatus } from "@/utils/cache/local-storage"
import { DeviceEnum, SIDEBAR_OPENED, SIDEBAR_CLOSED } from "@/constants/app-key"
import {reactive, ref, watch} from "vue"
import {defineStore} from "pinia"
import {getSidebarStatus, setSidebarStatus} from "@/utils/cache/local-storage"
import {DeviceEnum, SIDEBAR_CLOSED, SIDEBAR_OPENED} from "@/constants/app-key"
interface Sidebar {
opened: boolean

View File

@@ -1,8 +1,8 @@
import { computed, ref } from "vue"
import {computed, ref} from "vue"
import store from "@/store"
import { defineStore } from "pinia"
import { mapKeysApi } from "@/api/dict"
import { IMapDictData } from "@/types/dict"
import {defineStore} from "pinia"
import {mapKeysApi} from "@/api/dict"
import {IMapDictData} from "@/types/dict"
export const useDictStore = defineStore("dict", () => {
// 字典 map

View File

@@ -1,13 +1,13 @@
import store from "@/store"
import { defineStore } from "pinia"
import { computed, ref } from "vue"
import { Client } from "@stomp/stompjs"
import {defineStore} from "pinia"
import {computed, ref} from "vue"
import {Client} from "@stomp/stompjs"
// @ts-ignore
import SockJS from "sockjs-client/dist/sockjs.min.js"
import { getToken } from "@/utils/cache/local-storage"
import { useUserStoreHook } from "./user"
import { getEnvBaseURL } from "@/utils"
import { IPushMessage } from "@/types/base"
import {getToken} from "@/utils/cache/local-storage"
import {useUserStoreHook} from "./user"
import {getEnvBaseURL} from "@/utils"
import {IPushMessage} from "@/types/base"
export const useNoticeStore = defineStore("notice", () => {
// 广播消息

View File

@@ -1,12 +1,12 @@
import { ref } from "vue"
import {ref} from "vue"
import store from "@/store"
import { defineStore } from "pinia"
import { type RouteRecordRaw } from "vue-router"
import { constantRoutes } from "@/router"
import { flatMultiLevelRoutes } from "@/router/helper"
import {defineStore} from "pinia"
import {type RouteRecordRaw} from "vue-router"
import {constantRoutes} from "@/router"
import {flatMultiLevelRoutes} from "@/router/helper"
import routeSettings from "@/config/route"
import { IPermsMenus } from "@/types/pms"
import { isExternal } from "@/utils/validate"
import {IPermsMenus} from "@/types/pms"
import {isExternal} from "@/utils/validate"
const Layout = () => import("@/layouts/index.vue")

View File

@@ -1,9 +1,9 @@
import store from "@/store"
import { defineStore } from "pinia"
import { ref } from "vue"
import { ISimpleProject } from "@/types/base"
import { defaultProject } from "@/utils"
import { setCurrentProject as setProject, getCurrentProject as getProject } from "@/utils/cache/local-storage"
import {defineStore} from "pinia"
import {ref} from "vue"
import {ISimpleProject} from "@/types/base"
import {defaultProject} from "@/utils"
import {getCurrentProject as getProject, setCurrentProject as setProject} from "@/utils/cache/local-storage"
export const useProjectStore = defineStore("project", () => {
// 当前项目

View File

@@ -1,8 +1,8 @@
import store from "@/store"
import { defineStore } from "pinia"
import { type Ref, ref, watch } from "vue"
import { type LayoutSettings, layoutSettings } from "@/config/layouts"
import { setConfigLayout, getControlSize, setControlSize } from "@/utils/cache/local-storage"
import {defineStore} from "pinia"
import {type Ref, ref, watch} from "vue"
import {type LayoutSettings, layoutSettings} from "@/config/layouts"
import {getControlSize, setConfigLayout, setControlSize} from "@/utils/cache/local-storage"
type SettingsStore = {
// 使用映射类型来遍历 layoutSettings 对象的键

View File

@@ -1,9 +1,9 @@
import { ref, watchEffect } from "vue"
import {ref, watchEffect} from "vue"
import store from "@/store"
import { defineStore } from "pinia"
import { useSettingsStore } from "./settings"
import { type RouteLocationNormalized } from "vue-router"
import { getVisitedViews, setVisitedViews, getCachedViews, setCachedViews } from "@/utils/cache/local-storage"
import {defineStore} from "pinia"
import {useSettingsStore} from "./settings"
import {type RouteLocationNormalized} from "vue-router"
import {getCachedViews, getVisitedViews, setCachedViews, setVisitedViews} from "@/utils/cache/local-storage"
export type TagView = Partial<RouteLocationNormalized>

View File

@@ -1,9 +1,9 @@
import store from "@/store"
import { defineStore } from "pinia"
import { ref } from "vue"
import { ISimpleTenant } from "@/types/base"
import { useUserStoreHook } from "./user"
import { getSimpleTenantApi } from "@/api/tenant"
import {defineStore} from "pinia"
import {ref} from "vue"
import {ISimpleTenant} from "@/types/base"
import {useUserStoreHook} from "./user"
import {getSimpleTenantApi} from "@/api/tenant"
export const useTenantStore = defineStore("tenant", () => {
// 当前租户

View File

@@ -1,14 +1,14 @@
import { ref } from "vue"
import {ref} from "vue"
import store from "@/store"
import { defineStore } from "pinia"
import { ElMessage } from "element-plus"
import { useNoticeStoreHook } from "./notice"
import { useSettingsStore } from "./settings"
import { useTagsViewStore } from "./tags-view"
import { getToken, removeToken, setToken } from "@/utils/cache/local-storage"
import { loginApi, getUserInfoApi, getUserPermsApi, logoutApi, getPublicKeyApi } from "@/api/login"
import { type IPermsButton, ILoginData, IPermsMenus, ILoginUserInfo } from "@/types/pms"
import { resetRouter } from "@/router"
import {defineStore} from "pinia"
import {ElMessage} from "element-plus"
import {useNoticeStoreHook} from "./notice"
import {useSettingsStore} from "./settings"
import {useTagsViewStore} from "./tags-view"
import {getToken, removeToken, setToken} from "@/utils/cache/local-storage"
import {getPublicKeyApi, getUserInfoApi, getUserPermsApi, loginApi, logoutApi} from "@/api/login"
import {ILoginData, ILoginUserInfo, type IPermsButton, IPermsMenus} from "@/types/pms"
import {resetRouter} from "@/router"
import JSEncrypt from "jsencrypt"
export const useUserStore = defineStore("user", () => {

View File

@@ -71,7 +71,7 @@ export interface IOperateUserEntity {
}
// 简单菜单
export interface ISimpleMenu {
export interface ITreeNode {
/** 菜单ID */
id: number
/** 菜单名称 */
@@ -81,7 +81,7 @@ export interface ISimpleMenu {
/** 排序 */
weight: number
/** 子菜单 */
children: ISimpleMenu[]
children: ITreeNode[]
}
// 修改菜单
@@ -89,7 +89,7 @@ export interface IUpdateMenus {
/** 拥有的菜单ID */
have: number[]
/** 全部的菜单 */
all: ISimpleMenu[]
all: ITreeNode[]
}
// 推送消息

View File

@@ -1,5 +1,5 @@
import { IBaseEntity } from "./base"
import { IPmsDept } from "./pms"
import {IBaseEntity} from "./base"
import {IPmsDept} from "./pms"
/** 项目 */
export interface ICmsProject extends IBaseEntity {

View File

@@ -1,4 +1,4 @@
import { IBaseEntity, ISearchQuery } from "./base"
import {IBaseEntity, ISearchQuery} from "./base"
// 字典搜索分页查询
export interface IDictSearchQuery extends ISearchQuery {

View File

@@ -1,4 +1,4 @@
import { IBaseEntity, ISimpleTenant } from "./base"
import {IBaseEntity, ISimpleTenant} from "./base"
/** 用户登录 */
export interface ILoginData {
@@ -215,10 +215,18 @@ export interface IPmsRole extends IBaseEntity {
* 排序
*/
sort: number
/**
* 数据权限
*/
dataScope: number
/**
* 角色描述
*/
description: string
/**
* 部门ID
*/
deptIds: Array<number>
}
/** 系统部门 */

View File

@@ -1,4 +1,4 @@
import { IBaseEntity } from "./base"
import {IBaseEntity} from "./base"
/** 租户模板 */
export interface ISysTemplate extends IBaseEntity {

View File

@@ -1,15 +1,15 @@
/** 统一处理 localStorage */
import CacheKey from "@/constants/cache-key"
import { type SidebarOpened, type SidebarClosed } from "@/constants/app-key"
import { type ThemeName } from "@/hooks/useTheme"
import { type TagView } from "@/store/modules/tags-view"
import { type LayoutSettings } from "@/config/layouts"
import { ILoginData } from "@/types/pms"
import { encode, decode } from "js-base64"
import { ISimpleProject } from "@/types/base"
import { defaultProject, hashCode } from ".."
import { isJSON } from "../validate"
import {type SidebarClosed, type SidebarOpened} from "@/constants/app-key"
import {type ThemeName} from "@/hooks/useTheme"
import {type TagView} from "@/store/modules/tags-view"
import {type LayoutSettings} from "@/config/layouts"
import {ILoginData} from "@/types/pms"
import {decode, encode} from "js-base64"
import {ISimpleProject} from "@/types/base"
import {defaultProject, hashCode} from ".."
import {isJSON} from "../validate"
//#region token
export const getToken = () => {

View File

@@ -1,4 +1,4 @@
import { useTagsViewStoreHook } from "@/store/modules/tags-view"
import {useTagsViewStoreHook} from "@/store/modules/tags-view"
/**
* 功能:修复 <transition> 和 <keep-alive> 组合使用导致的页面空白

View File

@@ -1,8 +1,8 @@
import dayjs from "dayjs"
import { removeConfigLayout } from "@/utils/cache/local-storage"
import {removeConfigLayout} from "@/utils/cache/local-storage"
import chinaAreaJson from "@/assets/ChinaArea.json"
import { ISimpleProject } from "@/types/base"
import { CascaderOption } from "element-plus"
import {ISimpleProject} from "@/types/base"
import {CascaderOption} from "element-plus"
//#region 格式化日期时间
export const DEFAULT_DATE_TIME_PATTERN = "YYYY-MM-DD HH:mm:ss"

View File

@@ -1,11 +1,11 @@
import axios, { AxiosResponse, type AxiosInstance, type AxiosRequestConfig } from "axios"
import { useUserStoreHook } from "@/store/modules/user"
import { ElMessage, ElMessageBox } from "element-plus"
import { get, merge } from "lodash-es"
import { getToken } from "./cache/local-storage"
import { useProjectStoreHook } from "@/store/modules/project"
import { getEnvBaseURLPrefix } from "."
import { ISimpleProject } from "@/types/base"
import axios, {type AxiosInstance, type AxiosRequestConfig, AxiosResponse} from "axios"
import {useUserStoreHook} from "@/store/modules/user"
import {ElMessage, ElMessageBox} from "element-plus"
import {get, merge} from "lodash-es"
import {getToken} from "./cache/local-storage"
import {useProjectStoreHook} from "@/store/modules/project"
import {getEnvBaseURLPrefix} from "."
import {ISimpleProject} from "@/types/base"
import qs from "qs"
/** 创建请求实例 */

View File

@@ -1,430 +0,0 @@
<template>
<div class="app-container" v-loading="loading" v-has="['pre_menu:view']">
<el-card shadow="never" class="search-wrapper">
<div class="flex">
<el-button type="primary" :icon="Plus" v-has="['pre_menu:create']" @click="handleAdd(null)">新增</el-button>
<el-button type="success" :icon="Sort" @click="switchExpandAndCollapse">{{
expandAndCollapse ? "折叠" : "展开"
}}</el-button>
</div>
</el-card>
<el-card shadow="never">
<div class="toolbar-wrapper">
<el-table ref="tableRef" :data="tableData" row-key="id" :default-expand-all="expandAndCollapse">
<el-table-column prop="menuId" label="权限ID" />
<el-table-column prop="menuName" label="权限名称" />
<el-table-column prop="perms" label="权限标识" />
<el-table-column prop="component" label="权限组件" />
<el-table-column prop="path" label="路由地址">
<template #default="scope">
<el-popover :content="scope.row.path" placement="top-start" :width="200" trigger="hover">
<template #reference>
<el-text class="w-150px mb-2" truncated>
{{ scope.row.path }}
</el-text>
</template>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="icon" label="权限图标">
<template #default="scope">
<svg-icon v-if="scope.row.icon" :name="scope.row.icon" :size="28" />
</template>
</el-table-column>
<el-table-column prop="sort" label="排序" width="80" />
<el-table-column prop="target" label="所属用户">
<template #default="scope">
<el-tag v-if="scope.row.target === 0" effect="dark">
{{ dictStore.getMenuTarget(scope.row.target) }}
</el-tag>
<el-tag v-else-if="scope.row.target === 1" effect="light" type="info">
{{ dictStore.getMenuTarget(scope.row.target) }}
</el-tag>
<el-tag v-else effect="plain" type="danger">
{{ dictStore.getMenuTarget(scope.row.target) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="menuType" label="权限类型">
<template #default="scope">
<el-tag v-if="scope.row.menuType === 0" effect="plain" type="info">
{{ dictStore.getMenuType(scope.row.menuType) }}
</el-tag>
<el-tag v-else effect="light" type="danger">
{{ dictStore.getMenuType(scope.row.menuType) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="visible" label="状态">
<template #default="scope">
{{ dictStore.getShowHide(scope.row.visible) }}
</template>
</el-table-column>
<el-table-column prop="keepAlive" label="保存状态">
<template #default="scope">
{{ dictStore.getYesNo(scope.row.keepAlive) }}
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<template #default="scope">
<operateUser :dateTime="scope.row.createTime" :entity="scope.row.createUserEntity" />
</template>
</el-table-column>
<el-table-column prop="lastUpdateTime" label="修改时间">
<template #default="scope">
<operateUser :dateTime="scope.row.lastUpdateTime" :entity="scope.row.lastUpdateUserEntity" />
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template #default="scope">
<el-link :icon="Plus" v-if="scope.row.menuType === 0" v-has="['pre_menu:create']" type="primary"
@click="handleAdd(scope.row)">新增</el-link>
&nbsp;
<el-link :icon="Edit" type="warning" v-has="['pre_menu:update']"
@click="handleEdit(scope.row)">编辑</el-link>
&nbsp;
<el-link :icon="Delete" v-if="!scope.row.children" type="danger" v-has="['pre_menu:delete']"
@click="handleDelete(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<!-- 新增和修改的弹窗 -->
<el-dialog v-model="dialogVisible" :title="dialogTitle" width="50%" :close-on-click-modal="false">
<el-form ref="entityFormRef" :model="entityForm" :rules="entityFormRules" label-position="right"
label-width="80px" @keyup.enter="handleSaveAndFlush">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="menuName" label="权限名称">
<el-input v-model.trim="entityForm.menuName" placeholder="名称" type="text" tabindex="1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="perms" label="权限标识">
<el-input v-model.trim="entityForm.perms" placeholder="标识" type="text" tabindex="2" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="sort" label="权限排序">
<el-input-number v-model="entityForm.sort" :min="1" :max="9999999" tabindex="6" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="menuType" label="权限类型">
<select-dict-data v-model:value="entityForm.menuType" dictTypeKey="sys_menu_type" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" v-if="entityForm.menuType == 0">
<el-col :span="12">
<el-form-item prop="component" label="权限组件">
<el-input v-model.trim="entityForm.component" placeholder="组件" type="text" tabindex="3" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="icon" label="图标">
<svg-icon-select v-model:value="entityForm.icon" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" v-if="entityForm.menuType == 0">
<el-col :span="12">
<el-form-item prop="visible" label="显示隐藏">
<select-dict-data v-model:value="entityForm.visible" dictTypeKey="sys_show_hide" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="path" label="地址" v-if="entityForm.menuType == 0">
<el-input v-model.trim="entityForm.path" placeholder="路由" type="text" tabindex="5" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="target" label="权限所属">
<select-dict-data v-model:value="entityForm.target" dictTypeKey="sys_menu_target" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="parentId" label="上级权限">
<el-cascader v-model="entityForm.parentId" :options="parentNodes" :props="{ checkStrictly: true }"
@change="cascaderChange" filterable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="keepAlive" label="保持状态">
<select-dict-data v-model:value="entityForm.keepAlive" dictTypeKey="sys_yes_no" />
</el-form-item>
</el-col>
<el-col :span="12"> &nbsp; </el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" v-preventReClick @click="handleSaveAndFlush">确定</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import { treeMenuApi, saveMenuApi, updateMenuApi, deleteMenuApi } from "@/api/menu"
import { useDictStoreHook } from "@/store/modules/dict"
import { cloneDeep } from "lodash-es"
import { ISysMenu } from "@/types/pms"
import { ref, onMounted } from "vue"
import { Plus, Edit, Delete, Sort } from "@element-plus/icons-vue"
import SvgIconSelect from "@/components/SvgIconSelect/index.vue"
import type { CascaderOption, CascaderValue } from "element-plus"
import { ElMessage, ElMessageBox, FormInstance, FormRules, TableInstance } from "element-plus"
import { flatTreeToCascaderOption } from "@/utils"
const dictStore = useDictStoreHook()
/** 加载 */
const loading = ref(false)
// true : 新增false : 修改
const saveFlag = ref(false)
const dialogVisible = ref(false)
const dialogTitle = ref("")
const tableRef = ref<TableInstance | null>(null)
const tableData = ref<ISysMenu[]>([])
/// 表单数据
const entityForm = ref<ISysMenu>({
menuId: 0,
parentId: 0,
menuName: "",
perms: "",
component: "",
icon: "",
sort: 0,
path: "",
target: 2,
menuType: 0,
visible: 0,
keepAlive: 0,
children: []
})
const entityFormRef = ref<FormInstance | null>(null)
/// 表单校验规则
const entityFormRules: FormRules = {
parentId: [{ required: true, message: "请选择上级权限", trigger: "blur" }],
menuName: [{ required: true, message: "请输入名称", trigger: "blur" }],
perms: [
{ required: true, message: "请输入权限标识", trigger: "blur" },
{ min: 5, max: 64, message: "长度最少 5 个字符", trigger: "blur" }
],
component: [{ required: true, message: "请输入组件名称", trigger: "blur" }],
icon: [{ required: true, message: "请输入图标名称", trigger: "blur" }],
sort: [{ required: true, message: "请输入权限排序", trigger: "blur" }],
path: [{ required: true, message: "请输入权限路由", trigger: "blur" }],
target: [{ required: true, message: "请输入权限所属", trigger: "blur" }],
menuType: [{ required: true, message: "请输入权限类型", trigger: "blur" }],
visible: [{ required: true, message: "请输入显示或者隐藏", trigger: "blur" }],
keepAlive: [{ required: true, message: "请选择保持状态", trigger: "blur" }]
}
// 上级权限
const parentNodes = ref<CascaderOption[]>()
const cascaderChange = (data: CascaderValue) => {
const arr1 = data as number[]
entityForm.value.parentId = arr1[arr1.length - 1]
}
const expandAndCollapse = ref(false)
// 展开和折叠
const switchExpandAndCollapse = () => {
expandAndCollapse.value = !expandAndCollapse.value
const deep = (arr1: ISysMenu[]) => {
arr1.forEach((item: ISysMenu) => {
if (item.children) {
deep(item.children)
}
tableRef.value!.toggleRowExpansion(item, expandAndCollapse.value)
})
}
deep(tableData.value!)
}
// 获取数据
const getTableData = () => {
loading.value = true
treeMenuApi()
.then((resp) => {
tableData.value = resp.data
parentNodes.value = flatTreeToCascaderOption(resp.data, { value: "id", label: "menuName" })
const temp: CascaderOption = {
value: 0,
label: "顶级权限"
}
parentNodes.value.unshift(temp)
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
loading.value = false
})
}
// 重置 Entity 属性
const resetEntity = () => {
entityForm.value = {
menuId: 0,
parentId: 0,
menuName: "",
perms: "",
component: "",
icon: "",
sort: 0,
path: "",
target: 2,
menuType: 0,
visible: 0,
keepAlive: 0,
children: []
}
}
// 添加
const handleAdd = (data: ISysMenu | null) => {
resetEntity()
if (data) {
// 上级权限
entityForm.value.parentId = data.menuId
// 排序
if (data.children) {
entityForm.value.sort = (data.children.length + 1) * 10
} else {
entityForm.value.sort = 0
}
} else {
// 上级权限
entityForm.value.parentId = 0
entityForm.value.sort = (tableData.value.length + 1) * 10
}
// 显示和隐藏
entityForm.value.visible = 1
dialogTitle.value = "新增"
saveFlag.value = true
dialogVisible.value = true
}
// 编辑
const handleEdit = (data: ISysMenu) => {
resetEntity()
entityForm.value = cloneDeep(data)
dialogTitle.value = "修改"
saveFlag.value = false
dialogVisible.value = true
}
// 删除
const handleDelete = (data: ISysMenu) => {
ElMessageBox.confirm(`确要删除 ${data.menuName} 吗?`, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
deleteMenuApi(data.menuId)
.then((resp) => {
if (resp.data) {
ElMessage({
message: `删除 ${data.menuName} 成功!`,
type: "success"
})
}
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
getTableData()
})
})
.catch((error) => {
console.log("error :>> ", error)
})
}
// 新增和修改
const handleSaveAndFlush = () => {
entityFormRef.value?.validate((valid: boolean) => {
if (valid) {
loading.value = true
if (saveFlag.value) {
saveMenuApi(entityForm.value)
.then((resp) => {
if (resp.data) {
ElMessage({
message: "新增权限成功!",
type: "success"
})
}
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
loading.value = false
dialogVisible.value = false
getTableData()
})
} else {
updateMenuApi(entityForm.value)
.then((resp) => {
if (resp.data) {
ElMessage({
message: "修改权限成功!",
type: "success"
})
}
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
loading.value = false
dialogVisible.value = false
getTableData()
})
}
} else {
loading.value = false
return false
}
})
}
onMounted(() => {
getTableData()
})
</script>
<style lang="scss" scoped></style>

View File

@@ -20,13 +20,8 @@
<el-table-column prop="roleName" label="名称" />
<el-table-column prop="description" label="描述">
<template #default="scope">
<el-popover
placement="top-start"
:width="300"
trigger="hover"
v-if="scope.row.description"
:content="scope.row.description"
>
<el-popover placement="top-start" :width="300" trigger="hover" v-if="scope.row.description"
:content="scope.row.description">
<template #reference>
<el-link> {{ showStringOverflow(scope.row.description) }}</el-link>
</template>
@@ -46,48 +41,29 @@
</el-table-column>
<el-table-column label="操作" width="200">
<template #default="scope">
<el-link
:icon="EditPen"
type="info"
v-has="['pre_role:update:permissions']"
@click="handleEditMenu(scope.row)"
>权限</el-link
>
<el-link :icon="EditPen" type="info" v-has="['pre_role:update:permissions']"
@click="handleEditMenu(scope.row)">权限</el-link>
&nbsp;
<el-link :icon="Edit" type="warning" v-has="['pre_role:update']" @click="handleEdit(scope.row)"
>编辑</el-link
>
<el-link :icon="Edit" type="warning" v-has="['pre_role:update']"
@click="handleEdit(scope.row)">编辑</el-link>
&nbsp;
<el-link :icon="Delete" type="danger" v-has="['pre_role:delete']" @click="handleDelete(scope.row)"
>删除</el-link
>
<el-link :icon="Delete" type="danger" v-has="['pre_role:delete']"
@click="handleDelete(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
</div>
<div class="pager-wrapper">
<el-pagination
v-model:current-page="params.pageIndex"
:page-size="params.pageSize"
:background="true"
layout="sizes, total, prev, pager, next, jumper"
:total="params.pageTotal"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<el-pagination v-model:current-page="params.pageIndex" :page-size="params.pageSize" :background="true"
layout="sizes, total, prev, pager, next, jumper" :total="params.pageTotal" @size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</div>
</el-card>
<!-- 新增和修改的弹窗 -->
<el-dialog v-model="dialogVisible" :title="dialogTitle" width="30%" :close-on-click-modal="false">
<el-form
ref="entityFormRef"
:model="entityForm"
:rules="entityFormRules"
label-position="right"
label-width="80px"
@keyup.enter="handleSaveAndFlush"
>
<el-dialog v-model="dialogVisible" :title="dialogTitle" width="50%" :close-on-click-modal="false">
<el-form ref="entityFormRef" :model="entityForm" :rules="entityFormRules" label-position="right"
label-width="80px" @keyup.enter="handleSaveAndFlush">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="roleName" label="名称">
@@ -101,14 +77,14 @@
</el-col>
</el-row>
<el-form-item prop="description" label="描述">
<el-input
v-model="entityForm.description"
placeholder="描述"
:rows="3"
:maxlength="100"
type="textarea"
tabindex="3"
/>
<el-input v-model="entityForm.description" placeholder="描述" :rows="3" :maxlength="100" type="textarea"
tabindex="3" />
</el-form-item>
<el-form-item prop="dataScope" label="数据权限">
<select-dict-data v-model:value="dataScope" dictTypeKey="sys_data_scope" />
</el-form-item>
<el-form-item v-if="entityForm.dataScope === 2" prop="deptIds" label="自定部门">
<custom-tree v-if="deptsData" :data="deptsData?.all" ref="deptsRef" />
</el-form-item>
</el-form>
<template #footer>
@@ -120,49 +96,22 @@
</el-dialog>
<!-- 修改权限 -->
<el-dialog v-model="menusDialogVisible" :title="menusDialogTitle" width="30%" :close-on-click-modal="false">
<el-row :gutter="20">
<el-col :span="14">
<el-input v-model="filterMenuText" clearable placeholder="根据菜单名称筛选" />
</el-col>
<el-col :span="5">
<el-button type="success" :icon="Sort" @click="switchExpandAndCollapse">{{
expandAndCollapse ? "折叠" : "展开"
}}</el-button>
</el-col>
<el-col :span="5">
<el-button type="success" :icon="checkAll ? 'CloseBold' : 'Select'" @click="switchCheckAll">{{
checkAll ? "取消" : "全选"
}}</el-button>
</el-col>
</el-row>
<br />
<div :style="{ height: '400px', overflowY: 'scroll' }">
<el-tree
ref="treeRef"
:data="menusData?.all"
:check-strictly="true"
:default-expand-all="expandAndCollapse"
:filter-node-method="filterNode"
show-checkbox
node-key="id"
highlight-current
:props="{ children: 'children', label: 'name' }"
/>
</div>
<el-dialog v-model="menusDialog.visible" :title="menusDialog.title" width="50%" :close-on-click-modal="false">
<custom-tree v-if="menusDialog.data" :data="menusDialog.data?.all" ref="menusRef" />
<template #footer>
<span class="dialog-footer">
<el-button @click="menusDialogVisible = false">取消</el-button>
<el-button @click="menusDialog.visible = false">取消</el-button>
<el-button type="primary" v-preventReClick @click="handleUpdateMenus">确定</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted, watch } from "vue"
import { Plus, Edit, Delete, Search, EditPen, Sort } from "@element-plus/icons-vue"
import { ref, reactive, onMounted, computed } from "vue"
import { Plus, Edit, Delete, Search, EditPen } from "@element-plus/icons-vue"
import { ElMessage, ElMessageBox, FormInstance, FormRules, ElTree } from "element-plus"
import {
queryRoleApi,
@@ -170,12 +119,23 @@ import {
updateRoleApi,
deleteRoleApi,
getRoleMenusApi,
updateRoleMenusApi
updateRoleMenusApi,
getRoleDeptsApi
} from "@/api/role"
import { cloneDeep } from "lodash-es"
import { IPmsRole } from "@/types/pms"
import { showStringOverflow } from "@/hooks/useIndex"
import { ISimpleMenu, IUpdateMenus } from "@/types/base"
import { IUpdateMenus } from "@/types/base"
import CustomTree from "@/components/CustomTree/index.vue"
interface ITreeDialog {
/** 菜单ID */
visible: boolean
/** 菜单名称 */
title: string
/** 上级 */
data?: IUpdateMenus
}
/** 加载 */
const loading = ref(false)
@@ -189,63 +149,16 @@ const dialogTitle = ref("")
const tableData = ref<IPmsRole[]>()
const menusDialogVisible = ref(false)
const deptsRef = ref<any>()
const deptsData = ref<IUpdateMenus>()
const menusDialogTitle = ref("")
const filterMenuText = ref("")
const menusData = ref<IUpdateMenus>()
const treeRef = ref<InstanceType<typeof ElTree>>()
const expandAndCollapse = ref(true)
const checkAll = ref(true)
// 获取 全部菜单ID
const getMenuIdAll = () => {
const result: number[] = []
const deep = (arr1: ISimpleMenu[], arr2: number[]) => {
arr1.forEach((item: ISimpleMenu) => {
arr2.push(item.id)
if (item.children && item.children.length > 0) {
deep(item.children, arr2)
}
})
}
deep(menusData.value!.all, result)
return result
}
// 展开和折叠
const switchExpandAndCollapse = () => {
expandAndCollapse.value = !expandAndCollapse.value
menusData.value!.all.forEach((data) => {
treeRef.value!.store.nodesMap[data.id].expanded = expandAndCollapse.value
})
}
// 全选和取消全选
const switchCheckAll = () => {
checkAll.value = !checkAll.value
if (checkAll.value) {
const result: number[] = getMenuIdAll()
treeRef.value!.setCheckedKeys(result, false)
} else {
treeRef.value!.setCheckedKeys([], false)
}
}
watch(filterMenuText, (val) => {
treeRef.value!.filter(val)
const menusRef = ref<any>()
const menusDialog = reactive<ITreeDialog>({
visible: false,
title: "",
data: undefined
})
const filterNode = (value: string, data: any) => {
if (!value) return true
return data.name.includes(value)
}
const params = reactive({
pageTotal: 0,
pageIndex: 1,
@@ -259,7 +172,9 @@ const entityForm = ref<IPmsRole>({
roleId: 0,
roleName: "",
sort: 0,
description: ""
description: "",
dataScope: 4,
deptIds: []
})
const entityFormRef = ref<FormInstance | null>(null)
@@ -268,7 +183,8 @@ const entityFormRef = ref<FormInstance | null>(null)
const entityFormRules: FormRules = {
roleName: [{ required: true, message: "请输入名称", trigger: "blur" }],
sort: [{ required: true, message: "请输入排序", trigger: "blur" }],
description: [{ required: true, message: "请输入描述", trigger: "blur" }]
description: [{ required: true, message: "请输入描述", trigger: "blur" }],
dataScope: [{ required: true, message: "请选择数据权限", trigger: "blur" }],
}
// 获取数据
@@ -293,7 +209,9 @@ const resetEntity = () => {
roleId: 0,
roleName: "",
sort: 0,
description: ""
description: "",
dataScope: 4,
deptIds: []
}
}
@@ -316,31 +234,25 @@ const handleCurrentChange = (val: number) => {
const handleEditMenu = (data: IPmsRole) => {
loading.value = true
entityForm.value = cloneDeep(data)
menusDialogTitle.value = "修改"
menusDialog.title = "修改"
getRoleMenusApi(data.roleId)
.then((resp) => {
menusData.value = resp.data
menusDialogVisible.value = true
menusDialog.data = resp.data
menusDialog.visible = true
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
const have: number[] = menusData.value!.have
if (have.length > 0) {
checkAll.value = true
} else {
checkAll.value = false
}
treeRef.value!.setCheckedKeys(have, false)
expandAndCollapse.value = true
// 调用子组件的方法,重新渲染 tree
menusRef.value!.setCheckedKeys(menusDialog.data!.have)
loading.value = false
})
}
// 修改权限
const handleUpdateMenus = () => {
const menuIds: number[] = treeRef.value!.getCheckedKeys(false) as number[]
const menuIds: number[] = menusRef.value!.getCheckedKeys()
if (menuIds && menuIds.length < 1) {
ElMessage({
message: "至少选择一个权限",
@@ -371,7 +283,7 @@ const handleUpdateMenus = () => {
console.log("err :>> ", err)
})
.finally(() => {
menusDialogVisible.value = false
menusDialog.visible = false
})
})
.catch((error) => {
@@ -379,10 +291,45 @@ const handleUpdateMenus = () => {
})
}
const dataScope = computed({
get(): number {
return entityForm.value.dataScope
},
set(v: number) {
if (v === 2) {
handleEditDept()
}
entityForm.value.dataScope = v
}
})
// 编辑部门
const handleEditDept = () => {
loading.value = true
getRoleDeptsApi(entityForm.value.roleId)
.then((resp) => {
deptsData.value = resp.data
})
.catch((err) => {
console.log("err :>> ", err)
})
.finally(() => {
// 调用子组件的方法,重新渲染 tree
deptsRef.value!.setCheckedKeys(deptsData.value!.have)
loading.value = false
})
}
// 编辑
const handleEdit = (data: IPmsRole) => {
resetEntity()
entityForm.value = cloneDeep(data)
if (data.dataScope === 2) {
handleEditDept()
}
dialogTitle.value = "修改"
saveFlag.value = false
dialogVisible.value = true
@@ -428,6 +375,18 @@ const handleDelete = (data: IPmsRole) => {
// 新增和修改
const handleSaveAndFlush = () => {
// 自定义权限
if (entityForm.value.dataScope === 2) {
const deptIds: number[] = deptsRef.value!.getCheckedKeys()
if (deptIds && deptIds.length < 1) {
ElMessage({
message: "至少选择一个部门",
type: "warning"
})
return
}
entityForm.value.deptIds = deptIds
}
entityFormRef.value?.validate((valid: boolean) => {
if (valid) {
loading.value = true

View File

@@ -1,5 +1,5 @@
import { shallowMount } from "@vue/test-utils"
import { describe, expect, it } from "vitest"
import {shallowMount} from "@vue/test-utils"
import {describe, expect, it} from "vitest"
import Notify from "@/components/Notify/index.vue"
import NotifyList from "@/components/Notify/NotifyList.vue"

View File

@@ -1,4 +1,4 @@
import { describe, expect, it } from "vitest"
import {describe, expect, it} from "vitest"
/**
* @description 该文件所有示例均是为了向你演示 Vitest 最基本的用法

View File

@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest"
import { isArray } from "@/utils/validate"
import {describe, expect, it} from "vitest"
import {isArray} from "@/utils/validate"
describe("isArray", () => {
it("String", () => {

View File

@@ -1,4 +1,4 @@
import { defineConfig, presetAttributify, presetUno } from "unocss"
import {defineConfig, presetAttributify, presetUno} from "unocss"
export default defineConfig({
/** 预设 */

View File

@@ -1,12 +1,12 @@
/// <reference types="vitest" />
import { type ConfigEnv, type UserConfigExport, loadEnv } from "vite"
import {type ConfigEnv, loadEnv, type UserConfigExport} from "vite"
import UnoCSS from "unocss/vite"
import path, { resolve } from "path"
import path, {resolve} from "path"
import vue from "@vitejs/plugin-vue"
import svgLoader from "vite-svg-loader"
import vueJsx from "@vitejs/plugin-vue-jsx"
import { createSvgIconsPlugin } from "vite-plugin-svg-icons"
import {createSvgIconsPlugin} from "vite-plugin-svg-icons"
/** 配置项文档https://cn.vitejs.dev/config */
export default (configEnv: ConfigEnv): UserConfigExport => {