提交 26dfbb32 编写于 作者: H hxr

refactor: 基础框架升级优化

上级 66c2730a
module.exports = {
root: true,
env: {
browser: true,
es2021: true,
......@@ -6,28 +7,83 @@ module.exports = {
},
parser: "vue-eslint-parser",
extends: [
// 参考vuejs官方的eslint配置: https://eslint.vuejs.org/user-guide/#usage
// https://eslint.vuejs.org/user-guide/#usage
"plugin:vue/vue3-recommended",
"./.eslintrc-auto-import.json",
"prettier",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
parser: "@typescript-eslint/parser",
project: "./tsconfig.*?.json",
createDefaultProgram: false,
extraFileExtensions: [".vue"],
},
plugins: ["vue", "@typescript-eslint"],
rules: {
"vue/multi-word-component-names": "off", // 关闭组件名必须多字: https://eslint.vuejs.org/rules/multi-word-component-names.html
// https://eslint.vuejs.org/rules/#priority-a-essential-error-prevention
"vue/multi-word-component-names": "off",
"vue/no-v-model-argument": "off",
"vue/script-setup-uses-vars": "error",
"vue/no-reserved-component-names": "off",
"vue/custom-event-name-casing": "off",
"vue/attributes-order": "off",
"vue/one-component-per-file": "off",
"vue/html-closing-bracket-newline": "off",
"vue/max-attributes-per-line": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/attribute-hyphenation": "off",
"vue/require-default-prop": "off",
"vue/require-explicit-emits": "off",
"vue/html-self-closing": [
"error",
{
html: {
void: "always",
normal: "never",
component: "always",
},
svg: "always",
math: "always",
},
],
"@typescript-eslint/no-empty-function": "off", // 关闭空方法检查
"@typescript-eslint/no-explicit-any": "off", // 关闭any类型的警告
"vue/no-v-model-argument": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"vue/comment-directive": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-unused-vars": "off",
"prettier/prettier": [
"error",
{
useTabs: false, // 不使用制表符
},
],
},
// eslint不能对html文件生效
overrides: [
{
files: ["*.html"],
processor: "vue/.vue",
},
],
// https://eslint.org/docs/latest/use/configure/language-options#specifying-globals
globals: {
DialogType: "readonly",
DialogOption: "readonly",
OptionType: "readonly",
},
};
{
"name": "mall-admin",
"private": true,
"version": "3.0.0",
"version": "3.1.0",
"scripts": {
"preinstall": "npx only-allow pnpm",
"dev": "vite serve --mode development",
......@@ -41,75 +41,73 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.1.0",
"@vitejs/plugin-vue": "^4.4.0",
"@vueuse/core": "^10.1.2",
"@vitejs/plugin-vue": "^4.4.1",
"@vueuse/core": "^10.6.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "5.1.10",
"axios": "^1.4.0",
"echarts": "^5.2.2",
"axios": "^1.6.1",
"echarts": "^5.4.3",
"element-plus": "^2.4.2",
"lodash-es": "^4.17.21",
"mockjs": "^1.1.0",
"net": "^1.0.2",
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.0",
"pinia": "^2.0.33",
"screenfull": "^6.0.0",
"path-to-regexp": "^6.2.1",
"pinia": "^2.1.7",
"screenfull": "^6.0.2",
"sockjs-client": "1.6.1",
"sortablejs": "^1.15.0",
"stompjs": "^2.3.3",
"terser": "^5.19.3",
"vue": "^3.3.4",
"terser": "^5.24.0",
"vue": "^3.3.8",
"vue-i18n": "9.2.2",
"vue-router": "^4.2.0",
"vue-router": "^4.2.5",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.3",
"@iconify-json/ep": "^1.1.10",
"@types/lodash": "^4.14.195",
"@types/nprogress": "^0.2.0",
"@types/path-browserify": "^1.0.0",
"@types/sockjs-client": "^1.5.1",
"@types/sortablejs": "^1.15.1",
"@types/stompjs": "^2.3.5",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.6",
"@commitlint/cli": "^17.8.1",
"@commitlint/config-conventional": "^17.8.1",
"@iconify-json/ep": "^1.1.12",
"@types/lodash": "^4.14.201",
"@types/nprogress": "^0.2.3",
"@types/path-browserify": "^1.0.2",
"@types/sockjs-client": "^1.5.4",
"@types/sortablejs": "^1.15.5",
"@types/stompjs": "^2.3.8",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@vitejs/plugin-vue-jsx": "^3.0.2",
"autoprefixer": "^10.4.14",
"autoprefixer": "^10.4.16",
"commitizen": "^4.3.0",
"cz-git": "^1.6.1",
"eslint": "^8.40.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.28.0",
"cz-git": "^1.7.1",
"eslint": "^8.53.0",
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.13.0",
"fast-glob": "^3.2.11",
"eslint-plugin-vue": "^9.18.1",
"fast-glob": "^3.3.2",
"husky": "^8.0.3",
"lint-staged": "^13.2.2",
"postcss": "^8.4.23",
"lint-staged": "^13.3.0",
"postcss": "^8.4.31",
"postcss-html": "^1.5.0",
"postcss-scss": "^4.0.6",
"postcss-scss": "^4.0.9",
"prettier": "^2.8.8",
"sass": "^1.58.3",
"stylelint": "^15.10.2",
"sass": "^1.69.5",
"stylelint": "^15.11.0",
"stylelint-config-html": "^1.1.0",
"stylelint-config-recess-order": "^4.0.0",
"stylelint-config-recess-order": "^4.3.0",
"stylelint-config-recommended-scss": "^12.0.0",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^34.0.0",
"stylelint-config-standard-scss": "^10.0.0",
"typescript": "^5.0.4",
"typescript": "^5.2.2",
"unocss": "^0.51.13",
"unplugin-auto-import": "^0.15.3",
"unplugin-icons": "^0.16.1",
"unplugin-icons": "^0.16.6",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.4.11",
"vite-plugin-mock": "^3.0.0",
"vite": "^4.5.0",
"vite-plugin-svg-icons": "^2.0.1",
"vue-tsc": "^1.7.0 "
"vue-tsc": "^1.8.22"
},
"repository": "https://gitee.com/youlaiorg/vue3-element-admin.git",
"author": "有来开源组织",
......
......@@ -16,7 +16,7 @@ export function loginApi(data: LoginData): AxiosPromise<LoginResult> {
formData.append("verifyCode", data.verifyCode || "");
formData.append("grant_type", "captcha");
return request({
url: "/youlai-auth/oauth/token",
url: "/youlai-auth/oauth2/token",
method: "post",
data: formData,
headers: {
......
......@@ -5,7 +5,7 @@ import { UserForm, UserInfo, UserPageVO, UserQuery } from "./types";
/**
* 登录成功后获取用户信息(昵称、头像、权限集合和角色集合)
*/
export function getUserInfo(): AxiosPromise<UserInfo> {
export function getUserInfoApi(): AxiosPromise<UserInfo> {
return request({
url: "/youlai-system/api/v1/users/me",
method: "get",
......
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256" xml:space="preserve"><style>.st0{fill:#3a312a}.st1{fill:#d6df58}.st2{fill:#87796f}.st22{fill:#fae6ca}</style><path class="st1" d="M87.5 28.511h73.21v38.46H87.5z"/><path class="st0" d="M160.71 27.011H87.5a1.5 1.5 0 0 0-1.5 1.5v38.46a1.5 1.5 0 0 0 1.5 1.5h73.21a1.5 1.5 0 0 0 1.5-1.5v-38.46a1.5 1.5 0 0 0-1.5-1.5zm-1.5 38.46H89v-35.46h70.21v35.46z"/><path style="fill:#eb6e7a" d="M160.71 44.201H213v22.77h-52.29z"/><path class="st0" d="M213 42.701h-52.29a1.5 1.5 0 0 0-1.5 1.5v22.77a1.5 1.5 0 0 0 1.5 1.5H213a1.5 1.5 0 0 0 1.5-1.5v-22.77a1.5 1.5 0 0 0-1.5-1.5zm-1.5 22.77h-49.29v-19.77h49.29v19.77z"/><circle transform="rotate(-79.1 133.383 217.722)" class="st2" cx="133.392" cy="217.732" r="21.759"/><path class="st0" d="M133.392 194.473c-12.825 0-23.259 10.434-23.259 23.259s10.434 23.259 23.259 23.259c12.825 0 23.259-10.434 23.259-23.259s-10.434-23.259-23.259-23.259zm0 43.518c-11.171 0-20.259-9.088-20.259-20.259 0-11.171 9.088-20.259 20.259-20.259s20.259 9.088 20.259 20.259c-.001 11.171-9.088 20.259-20.259 20.259z"/><path class="st22" d="M133.392 208.831a8.9 8.9 0 0 0-8.901 8.901 8.9 8.9 0 0 0 8.901 8.901 8.9 8.9 0 1 0 0-17.802z"/><path class="st0" d="M133.392 207.331c-5.735 0-10.401 4.666-10.401 10.401 0 5.735 4.666 10.401 10.401 10.401 5.735 0 10.401-4.666 10.401-10.401 0-5.735-4.666-10.401-10.401-10.401zm0 17.802c-4.081 0-7.401-3.32-7.401-7.401 0-4.081 3.32-7.401 7.401-7.401 4.081 0 7.401 3.32 7.401 7.401 0 4.081-3.32 7.401-7.401 7.401z"/><circle transform="rotate(-82.981 188.612 217.733)" class="st2" cx="188.608" cy="217.732" r="21.759"/><path class="st0" d="M188.608 194.473c-12.825 0-23.259 10.434-23.259 23.259s10.434 23.259 23.259 23.259 23.259-10.434 23.259-23.259-10.433-23.259-23.259-23.259zm0 43.518c-11.171 0-20.259-9.088-20.259-20.259 0-11.171 9.088-20.259 20.259-20.259s20.259 9.088 20.259 20.259c0 11.171-9.088 20.259-20.259 20.259z"/><path class="st22" d="M188.608 208.831a8.9 8.9 0 0 0-8.901 8.901 8.9 8.9 0 0 0 8.901 8.901 8.9 8.9 0 0 0 8.901-8.901 8.9 8.9 0 0 0-8.901-8.901z"/><path class="st0" d="M188.608 207.331c-5.735 0-10.401 4.666-10.401 10.401 0 5.735 4.666 10.401 10.401 10.401s10.401-4.666 10.401-10.401c.001-5.735-4.665-10.401-10.401-10.401zm0 17.802c-4.081 0-7.401-3.32-7.401-7.401 0-4.081 3.32-7.401 7.401-7.401 4.081 0 7.401 3.32 7.401 7.401.001 4.081-3.32 7.401-7.401 7.401z"/><path d="M235.986 66.973H77.896l25.01 98.95h105.33a6.744 6.744 0 0 0 6.414-4.661l27.75-85.463c1.414-4.356-1.833-8.826-6.414-8.826z" style="fill:#8ac5dc"/><path class="st0" d="M242.654 68.871a8.157 8.157 0 0 0-6.668-3.397H77.896a1.5 1.5 0 0 0-1.455 1.868l25.01 98.95a1.499 1.499 0 0 0 1.454 1.132h58.657a1.5 1.5 0 1 0 0-3h-57.489l-24.252-95.95h156.164a5.19 5.19 0 0 1 4.241 2.161 5.188 5.188 0 0 1 .745 4.702l-27.75 85.463a5.232 5.232 0 0 1-4.987 3.625h-31.769a1.5 1.5 0 1 0 0 3h31.769a8.227 8.227 0 0 0 7.841-5.697l27.75-85.463a8.157 8.157 0 0 0-1.171-7.394z"/><path class="st2" d="M219.014 181.471H106.831L66.521 21.984a7.252 7.252 0 0 0-7.03-5.475H20.517a7.251 7.251 0 0 0 0 14.502h33.328l5.531 21.885 3.836 15.175 30.943 122.427a7.25 7.25 0 0 0 7.03 5.474h117.83a7.25 7.25 0 1 0-.001-14.501z"/><path class="st0" d="M219.015 179.971H107.999L67.975 21.616a8.742 8.742 0 0 0-8.484-6.607H20.517c-4.825 0-8.751 3.926-8.751 8.751 0 4.826 3.926 8.751 8.751 8.751h32.16l5.245 20.752a1.5 1.5 0 0 0 2.908-.736l-5.531-21.884a1.499 1.499 0 0 0-1.454-1.132H20.517a5.758 5.758 0 0 1-5.751-5.751 5.758 5.758 0 0 1 5.751-5.751h38.975a5.746 5.746 0 0 1 5.576 4.342l40.31 159.487a1.499 1.499 0 0 0 1.454 1.132h112.184c3.171 0 5.751 2.58 5.751 5.751s-2.58 5.751-5.751 5.751h-117.83a5.745 5.745 0 0 1-5.575-4.342L64.666 67.704a1.5 1.5 0 1 0-2.908.736l30.943 122.426a8.74 8.74 0 0 0 8.484 6.607h117.83c4.825 0 8.751-3.926 8.751-8.751 0-4.825-3.926-8.751-8.751-8.751z"/><path d="M240.226 70.633c-1-1.37-2.54-2.16-4.24-2.16h-15c1.7 0 3.24.79 4.24 2.16s1.27 3.09.75 4.7l-27.75 85.47a5.245 5.245 0 0 1-4.99 3.62h15c2.28 0 4.28-1.46 4.99-3.62l27.75-85.47c.52-1.61.25-3.33-.75-4.7z" style="fill:#6ca6be"/><path d="M219.016 182.973h-15c3.17 0 5.75 2.58 5.75 5.75s-2.58 5.75-5.75 5.75h15c3.17 0 5.75-2.58 5.75-5.75s-2.58-5.75-5.75-5.75z" style="fill:#6a5c52"/><path class="st1" d="M50.246 93.193c-.974 11.564-13.025 13.389-13.025 13.389 10.347.487 12.925 14.059 12.925 14.059.221-9.677 13.321-14.202 13.321-14.202-9.813-.587-13.221-13.246-13.221-13.246z"/><path class="st0" d="M63.557 104.942c-8.604-.514-11.831-12.024-11.863-12.14a1.5 1.5 0 0 0-2.942.265c-.86 10.215-11.313 11.963-11.754 12.032a1.5 1.5 0 0 0 .154 2.982c9.028.425 11.499 12.719 11.523 12.843a1.5 1.5 0 0 0 2.973-.247c.194-8.509 12.191-12.777 12.313-12.819a1.501 1.501 0 0 0-.404-2.916zm-13.566 10.346c-1.357-3.13-3.709-6.907-7.587-8.876 2.931-1.405 6.409-3.913 8.202-8.273 1.551 3.071 4.2 6.88 8.334 8.722-3.007 1.64-6.922 4.405-8.949 8.427z"/><path class="st1" d="M28.547 110.174c-.689 8.179-9.213 9.471-9.213 9.471 7.318.344 9.142 9.944 9.142 9.944.156-6.844 9.422-10.045 9.422-10.045-6.94-.416-9.351-9.37-9.351-9.37z"/><path class="st0" d="M37.988 118.045c-5.766-.345-7.972-8.185-7.994-8.264a1.5 1.5 0 0 0-2.942.266c-.579 6.871-7.646 8.066-7.942 8.113a1.5 1.5 0 0 0 .154 2.982c6.036.284 7.724 8.644 7.739 8.726a1.5 1.5 0 0 0 2.973-.246c.13-5.709 8.332-8.634 8.413-8.662a1.499 1.499 0 0 0-.401-2.915zm-9.584 6.796c-.924-1.886-2.34-3.947-4.447-5.28 1.856-1.041 3.697-2.63 4.871-4.916 1.057 1.874 2.654 3.955 4.941 5.224-1.85 1.1-3.989 2.74-5.365 4.972z"/><path class="st1" d="M28.547 83.516c-.689 8.179-9.213 9.471-9.213 9.471 7.318.344 9.142 9.944 9.142 9.944.156-6.845 9.422-10.045 9.422-10.045-6.94-.416-9.351-9.37-9.351-9.37z"/><path class="st0" d="M37.989 91.388c-5.767-.345-7.973-8.186-7.994-8.265a1.5 1.5 0 0 0-2.942.266c-.579 6.871-7.646 8.067-7.942 8.114a1.5 1.5 0 0 0 .155 2.982c6.035.284 7.723 8.644 7.739 8.726a1.5 1.5 0 0 0 2.973-.246c.13-5.709 8.331-8.634 8.413-8.662a1.5 1.5 0 0 0-.402-2.915zm-9.585 6.795c-.924-1.885-2.34-3.947-4.447-5.28 1.856-1.041 3.697-2.63 4.871-4.916 1.057 1.874 2.655 3.954 4.941 5.224-1.85 1.101-3.989 2.74-5.365 4.972z"/></svg>
<svg t="1699488416033" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2847" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F15BB5" p-id="2848"></path><path d="M772 432.8l-7.9-63.3v-0.2c-0.1-1-0.4-2.1-0.7-3.1v-0.3l-0.2-0.4-25.7-72.1c-0.3-0.7-0.6-1.5-1-2.2-7-14.4-21.5-23.7-37.5-24h-24.1c-10 0-18.6 7.8-18.9 17.8-0.4 10.5 8 19.1 18.4 19.1H699c1.9 0.3 3.4 1.4 4.2 3.1l13.5 37.9c0.7 1.9 0.4 3.9-0.7 5.6-1.1 1.6-3 2.6-5 2.6h-67.3c-3.5 0-6.2-2.8-6.2-6.2v-24.5c0-67.9-55.1-123-123-123s-123 55.1-123 123v24.5c0 3.5-2.8 6.2-6.2 6.2h-69.8c-3.4 0-6.2-2.8-6.2-6.2 0-0.8 0.2-1.6 0.5-2.3l15.5-36.8c0.7-2.1 2.5-3.5 4.7-3.9h24.1c10 0 18.6-7.8 18.9-17.8 0.4-10.5-8-19.1-18.4-19.1H330c-16.5 0.5-31.3 10.2-38.1 25.3l-30.6 72.1v0.2c-0.2 0.4-0.3 0.8-0.5 1.2v0.4c-0.3 1-0.6 2.1-0.7 3.1l-39 310.8c-6.4 50.5 29.5 96.7 80.1 103 3.8 0.5 7.7 0.7 11.5 0.7h94.5C514.8 718.5 680.7 597.9 772 432.8zM440.7 322.5c0-41 33.3-74.1 74.3-73.8 40.7 0.3 73.3 34.1 73.3 74.8V347c0 3.5-2.8 6.2-6.2 6.2H446.9c-3.5 0-6.2-2.8-6.2-6.2v-24.5z m152.7 257L514 662.4c-2.3 2.4-6.3 2.5-8.7 0.2l-0.2-0.2-79.4-82.9c-15.1-15.1-18.8-38.2-9.3-57.3 13.4-26.8 47.7-36.1 73.3-18.2 2.3 1.6 4.4 3.5 6.4 5.5l9.2 9.2c2.4 2.4 6.3 2.4 8.7 0l9.4-9.4c19.4-19.4 50.8-19.4 70.2 0 19.3 19.4 19.3 50.8-0.2 70.2z" fill="#FFFDF3" p-id="2849"></path><path d="M803.7 691.6c0-3.8-0.3-7.7-0.7-11.4l-31-247.4c-91.3 165.1-257.2 285.7-364.8 351h304.1c51 0 92.4-41.2 92.4-92.2z" fill="#FFFFFF" opacity=".9" p-id="2850"></path></svg>
<svg t="1699574162110" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1543" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#FD8E66" p-id="1544"></path><path d="M377.745 354.306h63.05l-78.638 315.388h-63.05l78.638-315.388zM518.387 354.306h103.519c69.926 0 117.527 24.3 98.942 98.896-17.958 72.017-80.148 104.401-147.89 104.401H530.77L502.8 669.694h-63.05l78.637-315.388z m62.702 153.443c43.489 0 68.927-18.329 77.964-54.547 9.153-36.659-10.779-49.018-54.222-49.018h-35.823l-25.833 103.565h37.914z" fill="#FFFFFF" p-id="1545"></path></svg>
<svg t="1650329183188" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3135" width="200" height="200"><path d="M958.88 1022.5H64.63C29.37 1022.46 0.79 993.89 0.75 958.62V64.38C0.79 29.11 29.36 0.54 64.63 0.5h894.25c35.26 0.04 63.84 28.62 63.88 63.88v894.25c-0.05 35.26-28.62 63.83-63.88 63.87zM64.63 51.6c-7.06 0-12.78 5.72-12.78 12.78v894.25c0 7.05 5.72 12.78 12.78 12.78h894.25c7.05 0 12.78-5.72 12.78-12.78V64.38c0-7.06-5.72-12.78-12.78-12.78H64.63z m0 0" p-id="3136"></path><path d="M593.5 752.12l-27.29-32.76 240.21-256.59 32.76 32.76L593.5 752.12c5.46 0 5.46 0 0 0zM282.32 255.31l87.35-92.81-32.76-32.76-87.35 92.81 32.76 32.76z m442.21 616.92c0 5.46 0 10.92-5.46 16.38-5.46 5.46-10.92 5.46-16.38 5.46h-496.8c-10.92 0-21.84-10.92-21.84-21.84s10.92-21.84 21.84-21.84h185.62c-5.46-5.46-16.38-10.92-21.84-16.38-92.81-98.27-92.81-251.14 0-349.4-5.46-21.84-10.92-43.68-5.46-65.51l-65.51-70.97c-16.38-16.38-16.38-49.14 0-65.51l92.81-98.27c16.38-16.38 49.13-16.38 65.51 0l256.6 272.97c16.38 16.38 16.38 49.14 0 65.51L620.8 621.1c-16.38 16.38-49.13 16.38-65.51 0L446.1 506.45c-5.46 0-10.92 5.46-16.38 5.46-5.46 0-10.92 0-16.37-5.46l-5.46 5.46c-70.97 76.43-70.97 202 0 278.43 27.29 27.3 54.59 43.68 92.81 54.6h207.46c10.91-0.01 16.37 10.91 16.37 27.29zM446.1 424.56c-5.46-5.46-10.92-10.92-16.38-10.92-5.46 0-10.92 0-16.37 5.46-5.46 10.92-5.46 27.3 0 38.22 10.92 10.92 21.83 10.92 32.75 0 5.46-10.93 5.46-27.31 0-32.76z m-54.59-43.68c10.92-10.92 27.3-10.92 38.21-10.92 16.38 0 32.76 5.46 49.14 21.84 21.84 21.84 21.84 60.05 5.46 87.35l103.73 109.19 92.81-98.27-256.6-272.97-92.81 92.81 60.06 70.97z m0 0" p-id="3137"></path><path d="M593.5 752.12l-27.29-32.76 240.21-256.59 32.76 32.76L593.5 752.12c5.46 0 5.46 0 0 0zM282.32 255.31l87.35-92.81-32.76-32.76-87.35 92.81 32.76 32.76z m442.21 616.92c0 5.46 0 10.92-5.46 16.38-5.46 5.46-10.92 5.46-16.38 5.46h-496.8c-10.92 0-21.84-10.92-21.84-21.84s10.92-21.84 21.84-21.84h185.62c-5.46-5.46-16.38-10.92-21.84-16.38-92.81-98.27-92.81-251.14 0-349.4-5.46-21.84-10.92-43.68-5.46-65.51l-65.51-70.97c-16.38-16.38-16.38-49.14 0-65.51l92.81-98.27c16.38-16.38 49.13-16.38 65.51 0l256.6 272.97c16.38 16.38 16.38 49.14 0 65.51L620.8 621.1c-16.38 16.38-49.13 16.38-65.51 0L446.1 506.45c-5.46 0-10.92 5.46-16.38 5.46-5.46 0-10.92 0-16.37-5.46l-5.46 5.46c-70.97 76.43-70.97 202 0 278.43 27.29 27.3 54.59 43.68 92.81 54.6h207.46c10.91-0.01 16.37 10.91 16.37 27.29zM446.1 424.56c-5.46-5.46-10.92-10.92-16.38-10.92-5.46 0-10.92 0-16.37 5.46-5.46 10.92-5.46 27.3 0 38.22 10.92 10.92 21.83 10.92 32.75 0 5.46-10.93 5.46-27.31 0-32.76z m-54.59-43.68c10.92-10.92 27.3-10.92 38.21-10.92 16.38 0 32.76 5.46 49.14 21.84 21.84 21.84 21.84 60.05 5.46 87.35l103.73 109.19 92.81-98.27-256.6-272.97-92.81 92.81 60.06 70.97z m0 0" p-id="3138"></path></svg>
\ No newline at end of file
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256" xml:space="preserve"><style>.st0{fill:#3a312a}.st2{fill:#87796f}.st7{fill:#d34e5c}.st10{fill:#d7e057}.st12{fill:#f16c7a}.st17{fill:#6a5c52}</style><path class="st2" d="m16.658 103.572 99.646 82.848c6.48 5.388 17.009 5.388 23.49 0l99.646-82.848H16.658z"/><path class="st0" d="M240.851 103.062a1.5 1.5 0 0 0-1.411-.99H16.658a1.5 1.5 0 0 0-.959 2.653l99.646 82.848c3.503 2.913 8.103 4.369 12.704 4.368 4.6 0 9.202-1.456 12.704-4.368l99.646-82.848a1.5 1.5 0 0 0 .452-1.663zm-102.016 82.204c-5.947 4.945-15.625 4.944-21.572 0l-96.455-80.194H235.29l-96.455 80.194z"/><path class="st2" d="M139.794 20.724c-6.481-5.388-17.009-5.388-23.49 0l-99.646 82.848H239.44l-99.646-82.848z"/><path class="st0" d="M240.399 102.418 140.753 19.57c-7.004-5.824-18.402-5.824-25.408 0l-99.646 82.848a1.5 1.5 0 0 0 .959 2.653H239.44a1.5 1.5 0 0 0 .959-2.653zm-219.591-.346 96.455-80.195c5.947-4.944 15.625-4.944 21.572 0l96.455 80.195H20.808z"/><path d="M196.844 58.341H59.255c-8.852 0-16.027 7.175-16.027 16.027v149.234c0 8.852 7.176 16.027 16.027 16.027h137.589c8.852 0 16.027-7.176 16.027-16.027V74.368c0-8.852-7.176-16.027-16.027-16.027z" style="fill:#fce8cb"/><path class="st0" d="M196.844 56.841h-33.465a1.5 1.5 0 1 0 0 3h33.465c8.01 0 14.527 6.517 14.527 14.527v149.234c0 8.01-6.517 14.527-14.527 14.527H59.254c-8.01 0-14.527-6.517-14.527-14.527V74.368c0-8.01 6.517-14.527 14.527-14.527h89.368a1.5 1.5 0 1 0 0-3H59.254c-9.665 0-17.527 7.863-17.527 17.527v149.234c0 9.665 7.863 17.527 17.527 17.527h137.589c9.664 0 17.527-7.863 17.527-17.527V74.368c.001-9.664-7.862-17.527-17.526-17.527z"/><path class="st0" d="M187.89 83.889H68.11a1.5 1.5 0 1 0 0 3h119.78a1.5 1.5 0 1 0 0-3zM187.89 108.961H68.11a1.5 1.5 0 1 0 0 3h119.78a1.5 1.5 0 1 0 0-3zM187.89 134.034H68.11a1.5 1.5 0 1 0 0 3h119.78a1.5 1.5 0 1 0 0-3z"/><path class="st12" d="M157.43 171.76h-.01l-17.63 14.66c-6.48 5.39-17.01 5.39-23.49 0l-17.63-14.66-82.01-68.19v122.58c0 4 1.76 7.58 4.54 10.03 2.35 2.06 5.43 3.32 8.81 3.32h196.08c3.38 0 6.46-1.26 8.81-3.32 2.78-2.45 4.54-6.03 4.54-10.03V103.57l-82.01 68.19z"/><path class="st0" d="M240.077 102.212a1.5 1.5 0 0 0-1.596.205l-81.908 68.105a1.556 1.556 0 0 0-.112.084l-17.63 14.66c-5.946 4.947-15.623 4.948-21.572 0l-99.64-82.85a1.5 1.5 0 0 0-2.459 1.153v55.324a1.5 1.5 0 1 0 3 0v-52.126l97.181 80.805c7.005 5.827 18.403 5.828 25.408 0l17.528-14.576c.039-.026.076-.054.112-.084l79.551-66.145V226.15c0 3.401-1.47 6.647-4.029 8.902A11.862 11.862 0 0 1 226.09 238H30.01a11.86 11.86 0 0 1-7.818-2.945 11.878 11.878 0 0 1-4.032-8.905v-53.044a1.5 1.5 0 1 0-3 0v53.044c0 4.262 1.84 8.328 5.051 11.158A14.857 14.857 0 0 0 30.009 241h196.08c3.603 0 7.083-1.311 9.802-3.694a14.882 14.882 0 0 0 5.048-11.156V103.57a1.496 1.496 0 0 0-.862-1.358z"/><path class="st10" d="M47.471 25.724c-.974 11.564-13.025 13.39-13.025 13.39 10.346.487 12.925 14.059 12.925 14.059.221-9.677 13.321-14.202 13.321-14.202-9.813-.587-13.221-13.247-13.221-13.247z"/><path class="st0" d="M60.782 37.473c-8.604-.514-11.831-12.024-11.863-12.14a1.51 1.51 0 0 0-1.584-1.102 1.5 1.5 0 0 0-1.359 1.367c-.86 10.215-11.314 11.963-11.754 12.032a1.5 1.5 0 0 0 .154 2.981c9.028.425 11.498 12.719 11.522 12.843a1.5 1.5 0 0 0 2.972-.247c.195-8.509 12.192-12.777 12.313-12.819a1.502 1.502 0 0 0 .994-1.623 1.499 1.499 0 0 0-1.395-1.292zM47.216 47.819c-1.356-3.13-3.709-6.907-7.587-8.876 2.931-1.405 6.409-3.913 8.202-8.273 1.551 3.071 4.199 6.88 8.334 8.722-3.007 1.64-6.922 4.406-8.949 8.427z"/><path class="st10" d="M25.772 42.705c-.689 8.179-9.212 9.471-9.212 9.471 7.318.344 9.142 9.944 9.142 9.944.156-6.845 9.422-10.045 9.422-10.045-6.941-.416-9.352-9.37-9.352-9.37z"/><path class="st0" d="M35.213 50.577c-5.766-.345-7.972-8.185-7.994-8.264a1.5 1.5 0 0 0-2.942.266c-.579 6.871-7.646 8.067-7.942 8.114a1.5 1.5 0 0 0 .155 2.982c6.035.284 7.724 8.644 7.739 8.726a1.5 1.5 0 0 0 2.974-.246c.13-5.709 8.331-8.634 8.412-8.662a1.502 1.502 0 0 0-.402-2.916zm-9.584 6.795c-.924-1.885-2.34-3.947-4.447-5.28 1.855-1.041 3.697-2.63 4.871-4.917 1.057 1.874 2.654 3.955 4.941 5.224-1.85 1.101-3.989 2.741-5.365 4.973z"/><path class="st10" d="M25.772 16.048c-.689 8.179-9.212 9.471-9.212 9.471 7.318.344 9.142 9.944 9.142 9.944.156-6.845 9.422-10.045 9.422-10.045-6.941-.416-9.352-9.37-9.352-9.37z"/><path class="st0" d="M35.214 23.919c-5.766-.345-7.973-8.185-7.994-8.265a1.5 1.5 0 0 0-2.942.266c-.579 6.871-7.646 8.067-7.942 8.114a1.5 1.5 0 0 0 .155 2.981c6.035.284 7.724 8.644 7.739 8.726a1.5 1.5 0 0 0 2.974-.246c.13-5.709 8.331-8.634 8.412-8.662a1.5 1.5 0 0 0-.402-2.914zm-9.585 6.795c-.924-1.885-2.34-3.947-4.447-5.28 1.855-1.041 3.697-2.63 4.871-4.916 1.057 1.873 2.654 3.954 4.941 5.224-1.85 1.101-3.989 2.74-5.365 4.972z"/><path class="st12" d="M157.43 171.76h-.01l-17.63-14.66c-6.48-5.38-17.01-5.38-23.49 0l-17.63 14.66-77.47 64.42c2.35 2.06 5.43 3.32 8.81 3.32h196.08c3.38 0 6.46-1.26 8.81-3.32l-77.47-64.42z"/><path class="st0" d="m235.859 235.027-77.47-64.42a1.507 1.507 0 0 0-.11-.083l-17.531-14.578c-7.004-5.815-18.401-5.815-25.407.001l-95.1 79.08a1.503 1.503 0 0 0-.03 2.282 14.857 14.857 0 0 0 9.798 3.692h196.08c3.603 0 7.083-1.311 9.799-3.692a1.5 1.5 0 0 0-.029-2.282zM226.09 238H30.01c-2.278 0-4.495-.657-6.396-1.876l93.644-77.87c5.948-4.939 15.626-4.939 21.573-.001l17.63 14.66c.035.029.072.057.109.083l75.916 63.128A11.847 11.847 0 0 1 226.09 238z"/><path class="st17" d="M222.44 105.07v10.68l12.85-10.68zM222.44 91.39v10.68h12.85z"/><path class="st7" d="M222.44 119.66v104.21l12.38 10.29c1.99-2.18 3.12-5.03 3.12-8.01V106.77l-15.5 12.89zM222.35 227.69c-.39 3.37-2.03 6.36-4.45 8.49-.81.71-1.71 1.32-2.67 1.82h10.86c2.28 0 4.49-.66 6.4-1.88l-10.14-8.43z"/></svg>
<svg t="1699460574600" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1651" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#50DCB6" p-id="1652"></path><path d="M790.14809 502.821512c0-30.855682-25.013375-55.869057-55.869056-55.869057H483.666407c-30.855682 0-55.869057 25.013375-55.869057 55.869057v158.432674c0 30.855682 25.013375 55.869057 55.869057 55.869056h229.557973a47.894148 47.894148 0 0 1 26.280007 7.854392l35.810469 23.508103c6.369072 4.180602 14.833235-0.387891 14.833234-8.006834V502.821512z" fill="#FFFFFF" fill-opacity=".4" p-id="1653"></path><path d="M233.85191 320.848012c0-30.855682 25.013375-55.869057 55.869056-55.869056h366.341388c30.855682 0 55.869057 25.013375 55.869057 55.869056v245.025721c0 30.855682-25.013375 55.869057-55.869057 55.869057H330.782329a47.894148 47.894148 0 0 0-26.295171 7.864767l-55.798821 36.660477c-6.369072 4.184592-14.836427-0.3839-14.836427-8.004439V320.848012z" fill="#FFFFFF" p-id="1654"></path><path d="M357.561964 446.952455m-34.319563 0a34.319564 34.319564 0 1 0 68.639127 0 34.319564 34.319564 0 1 0-68.639127 0Z" fill="#46D7B0" p-id="1655"></path><path d="M473.290725 446.952455m-34.319564 0a34.319564 34.319564 0 1 0 68.639127 0 34.319564 34.319564 0 1 0-68.639127 0Z" fill="#46D7B0" p-id="1656"></path><path d="M589.019486 446.952455m-34.319564 0a34.319564 34.319564 0 1 0 68.639127 0 34.319564 34.319564 0 1 0-68.639127 0Z" fill="#46D7B0" p-id="1657"></path></svg>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256" xml:space="preserve"><style>.st0{fill:#ef6d7a}.st1{fill:#3a312a}.st2{fill:#87796f}.st4{fill:#d5de58}.st6{fill:#d34e5c}</style><path class="st0" d="M235.7 89.1 165.6 19c-4-4-10.6-4-14.6 0l-19.7 19.7-10 10-76.6 76.6c-4 4-4 10.6 0 14.6l70.1 70.1c4 4 10.6 4 14.6 0l106.4-106.4c3.9-3.9 3.9-10.5-.1-14.5z"/><path class="st1" d="M236.8 88.1 166.7 18c-2.2-2.2-5.2-3.5-8.4-3.5s-6.1 1.2-8.4 3.5l-19.7 19.7c-.6.6-.6 1.5 0 2.1.6.6 1.5.6 2.1 0L152 20.1c1.7-1.7 3.9-2.6 6.2-2.6s4.6.9 6.2 2.6l70.1 70.1c1.7 1.7 2.6 3.9 2.6 6.2s-.9 4.6-2.6 6.2L128.3 209c-1.7 1.7-3.9 2.6-6.2 2.6-2.4 0-4.6-.9-6.2-2.6l-70.1-70.1c-1.7-1.7-2.6-3.9-2.6-6.2s.9-4.6 2.6-6.2l76.6-76.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-76.6 76.6c-2.2 2.2-3.5 5.2-3.5 8.4s1.2 6.1 3.5 8.4l70.1 70.1c2.2 2.2 5.2 3.5 8.4 3.5s6.1-1.2 8.4-3.5L237 104.9c2.2-2.2 3.5-5.2 3.5-8.4s-1.5-6.2-3.7-8.4z"/><path transform="rotate(-45.001 121.075 95.469)" class="st2" d="M35.5 84.2h171.1v22.5H35.5z"/><path class="st1" d="M190.6 41.9 174.7 26c-.6-.6-1.5-.6-2.1 0l-121 121c-.6.6-.6 1.5 0 2.1L67.5 165c.3.3.7.4 1.1.4s.8-.2 1.1-.4l121-121c.3-.3.4-.7.4-1.1s-.2-.8-.5-1zM68.5 161.8 54.8 148 173.6 29.1l13.8 13.8L68.5 161.8z"/><path d="M178.5 120.2H28c-5.7 0-10.3 4.6-10.3 10.3V229.6c0 5.7 4.6 10.3 10.3 10.3h150.5c5.7 0 10.3-4.6 10.3-10.3v-99.1c0-5.7-4.6-10.3-10.3-10.3z" style="fill:#fce8cb"/><path class="st1" d="M178.5 118.7H28c-6.5 0-11.8 5.3-11.8 11.8v51.2c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5v-51.2c0-4.9 4-8.8 8.8-8.8h150.5c4.9 0 8.8 4 8.8 8.8v99.1c0 4.9-4 8.8-8.8 8.8H28c-4.9 0-8.8-4-8.8-8.8v-33.7c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5v33.7c0 6.5 5.3 11.8 11.8 11.8h150.5c6.5 0 11.8-5.3 11.8-11.8v-99.1c0-6.5-5.3-11.8-11.8-11.8z"/><path class="st4" d="M48.2 26.3c-1 11.6-13 13.4-13 13.4 10.3.5 12.9 14.1 12.9 14.1.2-9.7 13.3-14.2 13.3-14.2-9.8-.6-13.2-13.3-13.2-13.3z"/><path class="st1" d="M61.5 38.1c-8.6-.5-11.8-12-11.9-12.1-.2-.7-.9-1.2-1.6-1.1-.7.1-1.3.6-1.4 1.4-.9 10.2-11.3 12-11.8 12-.8.1-1.3.8-1.3 1.6s.7 1.4 1.4 1.4c9 .4 11.5 12.7 11.5 12.8.1.7.8 1.2 1.5 1.2h.1c.8-.1 1.4-.7 1.4-1.5.4-8.5 12.4-12.8 12.5-12.8.7-.2 1.1-.9 1-1.6s-.7-1.3-1.4-1.3zM47.9 48.4c-1.4-3.1-3.7-6.9-7.6-8.9 2.9-1.4 6.4-3.9 8.2-8.3 1.6 3.1 4.2 6.9 8.3 8.7-2.9 1.7-6.9 4.5-8.9 8.5z"/><path class="st4" d="M26.5 43.3c-.7 8.2-9.2 9.5-9.2 9.5 7.3.3 9.1 9.9 9.1 9.9.2-6.8 9.4-10 9.4-10-6.9-.4-9.3-9.4-9.3-9.4z"/><path class="st1" d="M35.9 51.2c-5.8-.3-8-8.2-8-8.3-.2-.7-.9-1.2-1.6-1.1-.7.1-1.3.6-1.4 1.4-.6 6.9-7.6 8.1-7.9 8.1-.8.1-1.3.8-1.3 1.6s.7 1.4 1.4 1.4c6 .3 7.7 8.6 7.7 8.7.1.7.8 1.2 1.5 1.2h.1c.8-.1 1.4-.7 1.4-1.5.1-5.7 8.3-8.6 8.4-8.7.7-.2 1.1-.9 1-1.6 0-.6-.6-1.2-1.3-1.2zM26.3 58c-.9-1.9-2.3-3.9-4.4-5.3 1.9-1 3.7-2.6 4.9-4.9 1.1 1.9 2.7 4 4.9 5.2-1.9 1.1-4 2.7-5.4 5z"/><path class="st4" d="M26.4 16.7c-.7 8.2-9.2 9.5-9.2 9.5 7.3.3 9.2 9.9 9.2 9.9.1-6.8 9.4-10.1 9.4-10.1-6.9-.4-9.4-9.3-9.4-9.3z"/><path class="st1" d="M35.9 24.5c-5.7-.3-8-8.1-8-8.2-.2-.7-.9-1.2-1.6-1.1-.7.1-1.3.6-1.4 1.4-.6 6.9-7.6 8.1-7.9 8.1-.8.1-1.3.8-1.3 1.6s.7 1.4 1.4 1.4c6 .3 7.8 8.6 7.8 8.7.1.7.8 1.2 1.5 1.2h.1c.8-.1 1.4-.7 1.4-1.5.1-5.7 8.3-8.7 8.4-8.7.7-.2 1.1-.9 1-1.6-.1-.7-.7-1.3-1.4-1.3zm-9.5 6.8c-.9-1.9-2.4-3.9-4.5-5.3 1.9-1 3.7-2.6 4.9-4.9 1.1 1.9 2.7 3.9 5 5.2-1.9 1.1-4.1 2.8-5.4 5zM84 166.6H37.7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5H84c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5zM169.7 218.5h-132c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h132c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5zM84 145.8H37.7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5H84c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5z"/><circle cx="194" cy="194.7" style="fill-rule:evenodd;clip-rule:evenodd;fill:#d5de58" r="44.7"/><path class="st1" d="M194 148.5c-25.5 0-46.2 20.7-46.2 46.2S168.5 241 194 241s46.2-20.7 46.2-46.2-20.7-46.3-46.2-46.3zm0 89.5c-23.8 0-43.2-19.4-43.2-43.2s19.4-43.2 43.2-43.2 43.2 19.4 43.2 43.2S217.8 238 194 238z"/><path class="st2" d="M194.1 163.3c-8.4 0-15.2 6.8-15.2 15.2v11.7c0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5v-11.7c0-4.6 3.7-8.3 8.3-8.3 4.6 0 8.3 3.7 8.3 8.3v11.7c0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5v-11.7c-.2-8.4-7-15.2-15.4-15.2z"/><path class="st1" d="M194.1 161.8c-9.2 0-16.7 7.5-16.7 16.7v11.7c0 2.7 2.2 5 5 5s5-2.2 5-5v-11.7c0-3.7 3-6.8 6.8-6.8s6.8 3 6.8 6.8v11.7c0 2.7 2.2 5 5 5s5-2.2 5-5v-11.7c-.2-9.2-7.7-16.7-16.9-16.7zm13.7 28.4c0 1.1-.9 2-2 2s-2-.9-2-2v-11.7c0-5.4-4.4-9.8-9.8-9.8s-9.8 4.4-9.8 9.8v11.7c0 1.1-.9 2-2 2s-2-.9-2-2v-11.7c0-7.6 6.2-13.7 13.7-13.7s13.7 6.2 13.7 13.7l.2 11.7z"/><path class="st0" d="M204.8 189.1h-21.5c-4.3 0-7.8 3.5-7.8 7.8v21.5c0 4.3 3.5 7.8 7.8 7.8h21.5c4.3 0 7.8-3.5 7.8-7.8v-21.5c0-4.3-3.5-7.8-7.8-7.8z"/><path class="st1" d="M204.8 187.6h-21.5c-5.1 0-9.3 4.2-9.3 9.3v21.5c0 5.1 4.2 9.3 9.3 9.3h21.5c5.1 0 9.3-4.2 9.3-9.3v-21.5c0-5.1-4.2-9.3-9.3-9.3zm6.3 30.7c0 3.5-2.8 6.3-6.3 6.3h-21.5c-3.5 0-6.3-2.8-6.3-6.3v-21.5c0-3.5 2.8-6.3 6.3-6.3h21.5c3.5 0 6.3 2.8 6.3 6.3v21.5z"/><path class="st2" d="M194.1 197.3c-3.1 0-5.6 2.5-5.6 5.6 0 2.2 1.3 4.2 3.2 5.1v7.4c0 1.3 1.1 2.4 2.4 2.4 1.3 0 2.4-1.1 2.4-2.4V208c1.9-.9 3.2-2.8 3.2-5.1 0-3-2.5-5.6-5.6-5.6z"/><path class="st1" d="M194.1 195.8c-3.9 0-7.1 3.2-7.1 7.1 0 2.4 1.2 4.6 3.2 6v6.5c0 2.2 1.8 3.9 3.9 3.9s3.9-1.8 3.9-3.9v-6.5c2-1.3 3.2-3.5 3.2-6 0-3.9-3.2-7.1-7.1-7.1zm1.8 10.9c-.5.2-.9.8-.9 1.4v7.4c0 .5-.4.9-.9.9s-.9-.4-.9-.9v-7.4c0-.6-.3-1.1-.9-1.4-1.5-.7-2.4-2.1-2.4-3.7 0-2.3 1.9-4.1 4.1-4.1s4.1 1.9 4.1 4.1c.1 1.6-.8 3-2.2 3.7z"/><path class="st6" d="M164.6 20.1c-1.7-1.7-3.9-2.6-6.2-2.6-2.4 0-4.6.9-6.2 2.6l-2.7 2.7L162.6 36l8.9-8.9-6.9-7zM234.7 90.2 189.5 45l-8.9 8.9L215.7 89c4 4 4 10.6 0 14.6l-25.5 25.5c.1.4.1.9.1 1.4V147l44.3-44.3c1.7-1.7 2.6-3.9 2.6-6.2 0-2.4-.9-4.7-2.5-6.3z"/><path transform="rotate(-45.033 176.04 40.505)" style="fill:#695b51" d="M169.7 30.8h12.6v19.5h-12.6z"/></svg>
<svg t="1699460938272" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15147" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#FF822B" p-id="15148"></path><path d="M324.408781 655.018925C505.290126 655.018925 651.918244 508.387706 651.918244 327.509463c0-152.138029-103.733293-280.047334-244.329811-316.853972C205.813923 52.463528 47.497011 213.017581 8.987325 415.981977 47.587706 553.880127 174.183098 655.018925 324.408781 655.018925z" fill="#FFFFFF" fill-opacity=".2" p-id="15149"></path><path d="M512 1024c282.766631 0 512-229.233369 512-512 0-31.765705-2.891385-62.853911-8.433853-93.018889C928.057169 336.0999 809.874701 285.26268 679.824375 285.26268c-269.711213 0-488.357305 218.645317-488.357305 488.357305 0 54.959576 9.084221 107.802937 25.822474 157.10377C300.626556 989.489417 402.283167 1024 512 1024z" fill="#FFFFFF" fill-opacity=".15" p-id="15150"></path><path d="M732.535958 756.566238c36.389596 0 65.889478-29.499882 65.889477-65.889478 0 36.389596 29.502983 65.889478 65.889478 65.889478-17.053747 0-65.889478 29.502983-65.889478 65.889477 0-36.386495-29.499882-65.889478-65.889477-65.889477zM159.685087 247.279334c25.686819 0 46.51022-20.8234 46.51022-46.51022 0 25.686819 20.8234 46.51022 46.510219 46.51022-12.03607 0-46.51022 20.8234-46.510219 46.510219 0-25.686819-20.8234-46.51022-46.51022-46.510219z" fill="#FFFFFF" fill-opacity=".5" p-id="15151"></path><path d="M206.195307 333.32324c8.562531 0 15.503407-6.940875 15.503406-15.503407 0 8.562531 6.940875 15.503407 15.503407 15.503407-4.012282 0-15.503407 6.940875-15.503407 15.503406 0-8.562531-6.940875-15.503407-15.503406-15.503406z" fill="#FFFFFF" fill-opacity=".3" p-id="15152"></path><path d="M802.301287 726.987288c0 8.109832-1.387555 15.685572-4.154913 22.727994-2.77511 7.042422-6.712975 13.231382-11.829099 18.566105-5.116124 5.335497-11.084936 9.493511-17.90566 12.485668-6.820724 2.984406-14.280963 4.480484-22.379942 4.480485H281.80542c-8.099755 0-15.773166-1.496079-23.019458-4.480485-7.247067-2.992157-13.641447-7.150171-19.18314-12.485668-5.541693-5.334722-9.911328-11.523682-13.10813-18.566105-3.197578-7.042422-4.795979-14.618162-4.795979-22.727994V407.517893c0-16.218889 5.648666-29.983588 16.945223-41.294874 11.296557-11.31051 25.044203-16.965378 41.242938-16.965378h464.226252c16.198734 0 29.94638 5.654868 41.242938 16.965378 11.294232 11.311285 16.945223 25.075985 16.945223 41.294874v87.069456H657.150643c-16.198734 0-29.94638 5.548669-41.242937 16.646008-11.296557 11.097338-16.945223 24.755064-16.945223 40.973953 0.426344 11.097338 2.771234 20.914095 7.033896 29.450271 3.409974 7.255594 9.05864 13.871673 16.944448 19.846685 7.886583 5.975788 19.290114 8.963294 34.209816 8.963295H802.301287v116.519727zM715.338804 319.80737h-290.301287c23.019458-11.950801 44.759885-23.474483 65.222056-34.571821a6020.558002 6020.558002 0 0 0 53.072812-28.16969c17.477765-9.389638 31.118438-16.646008 40.923567-21.767558 14.919703-8.109057 28.241005-11.843827 39.963906-11.203536 11.722901 0.640291 21.634229 2.667361 29.733983 6.081986 9.378011 4.694431 17.477765 10.883391 24.297714 18.566104l37.087249 71.064515zM628.376321 552.20731c0-8.109057 2.770459-14.938307 8.312927-20.486977 5.541693-5.548669 12.361641-8.323004 20.461395-8.323004 8.099755 0 14.919703 2.774335 20.461396 8.323004 5.542468 5.548669 8.312927 12.37792 8.312927 20.486977 0 8.109832-2.770459 15.045281-8.312927 20.807121-5.541693 5.761841-12.361641 8.643149-20.461396 8.64315-8.099755 0-14.919703-2.881308-20.461395-8.64315-5.542468-5.761841-8.312927-12.69729-8.312927-20.807121z" fill="#FFFFFF" p-id="15153"></path></svg>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 256 256" style="enable-background:new 0 0 256 256" xml:space="preserve"><style>.st0{fill:#3a312a}.st1{fill:#d6df58}.st2{fill:#87796f}.st22,.st43{fill:#fae6ca}.st43{fill-rule:evenodd;clip-rule:evenodd}.st44{fill:#f59689}</style><path class="st1" d="M71.173 94.861c-.984 11.697-13.157 13.543-13.157 13.543 10.452.492 13.056 14.221 13.056 14.221.224-9.788 13.456-14.365 13.456-14.365-9.912-.595-13.355-13.399-13.355-13.399z"/><path class="st0" d="M84.619 106.762c-8.703-.522-11.966-12.175-11.998-12.292a1.5 1.5 0 0 0-2.943.266c-.869 10.346-11.439 12.116-11.886 12.186a1.5 1.5 0 0 0 .155 2.982c9.131.43 11.63 12.878 11.653 13.003a1.502 1.502 0 0 0 1.599 1.213 1.5 1.5 0 0 0 1.375-1.459c.196-8.619 12.325-12.939 12.448-12.982a1.5 1.5 0 0 0-.403-2.917zm-13.704 10.484c-1.371-3.178-3.756-7.024-7.701-9.016 2.972-1.42 6.51-3.965 8.322-8.405 1.566 3.116 4.254 6.996 8.458 8.858-3.047 1.66-7.03 4.47-9.079 8.563z"/><path class="st1" d="M49.255 112.036c-.696 8.273-9.306 9.579-9.306 9.579 7.392.348 9.235 10.058 9.235 10.058.158-6.923 9.518-10.161 9.518-10.161-7.012-.419-9.447-9.476-9.447-9.476z"/><path class="st0" d="M58.791 120.016c-5.836-.35-8.066-8.292-8.088-8.372a1.5 1.5 0 0 0-2.943.266c-.586 6.963-7.737 8.175-8.036 8.222a1.5 1.5 0 0 0 .155 2.982c6.108.288 7.816 8.757 7.832 8.84a1.5 1.5 0 0 0 2.974-.246c.131-5.787 8.426-8.749 8.508-8.777a1.5 1.5 0 0 0-.402-2.915zm-9.683 6.888c-.936-1.919-2.375-4.022-4.523-5.374 1.888-1.055 3.764-2.671 4.952-5.005 1.07 1.906 2.694 4.03 5.025 5.316-1.878 1.117-4.059 2.785-5.454 5.063z"/><path class="st1" d="M49.255 85.072c-.696 8.273-9.306 9.579-9.306 9.579 7.392.348 9.235 10.058 9.235 10.058.158-6.923 9.518-10.161 9.518-10.161-7.012-.419-9.447-9.476-9.447-9.476z"/><path class="st0" d="M58.791 93.053c-5.836-.35-8.066-8.292-8.088-8.373a1.512 1.512 0 0 0-1.582-1.102 1.5 1.5 0 0 0-1.361 1.368c-.586 6.964-7.737 8.175-8.036 8.223a1.5 1.5 0 0 0 .155 2.982c6.108.288 7.815 8.757 7.832 8.84a1.5 1.5 0 0 0 2.974-.246c.131-5.788 8.426-8.749 8.508-8.777a1.5 1.5 0 0 0-.402-2.915zm-9.683 6.887c-.936-1.919-2.375-4.022-4.523-5.374 1.888-1.055 3.764-2.671 4.952-5.005 1.07 1.907 2.694 4.03 5.025 5.316-1.878 1.117-4.059 2.786-5.454 5.063z"/><path class="st22" d="M163.837 240.717h72.079v-27.095c0-16.514-13.368-29.9-29.86-29.9h-19.728v-12.839c-5.457 3.788-11.103 6.023-16.582 6.023-5.256 0-10.802-2.257-16.236-6.09h-.335v12.906h-19.74c-16.492 0-29.86 13.386-29.86 29.9v27.095h45.345"/><path class="st0" d="M206.056 182.222h-18.229v-11.339a1.5 1.5 0 0 0-2.356-1.232c-5.501 3.819-10.792 5.755-15.727 5.755-4.729 0-9.899-1.957-15.371-5.815a1.495 1.495 0 0 0-.864-.274h-.335a1.5 1.5 0 0 0-1.5 1.5v11.406h-18.239c-17.292 0-31.36 14.086-31.36 31.4v27.095a1.5 1.5 0 0 0 1.5 1.5h45.345a1.5 1.5 0 1 0 0-3h-43.845v-25.595c0-15.66 12.723-28.4 28.36-28.4h19.739a1.5 1.5 0 0 0 1.5-1.5V173.4c5.259 3.324 10.319 5.006 15.07 5.006 4.829 0 9.893-1.598 15.082-4.756v10.072a1.5 1.5 0 0 0 1.5 1.5h19.729c15.638 0 28.36 12.74 28.36 28.4v25.595h-70.579a1.5 1.5 0 1 0 0 3h72.079a1.5 1.5 0 0 0 1.5-1.5v-27.095c.001-17.314-14.067-31.4-31.359-31.4z"/><path d="M163.837 240.72h72.079v-27.107c0-16.514-13.368-29.9-29.861-29.9h-4.72l.123.089-20.521 27.252-10.59-7.989-10.589 7.989-20.521-27.252.123-.089h-5.925c-16.492 0-29.86 13.386-29.86 29.9v27.107h45.345" style="fill:#8ac5dc"/><path class="st0" d="M206.056 182.213h-4.72a1.5 1.5 0 0 0-1.473 1.215l-19.221 25.525-9.391-7.084a1.502 1.502 0 0 0-1.807 0l-9.392 7.084-19.22-25.525a1.5 1.5 0 0 0-1.473-1.215h-5.926c-17.292 0-31.36 14.086-31.36 31.4v27.107a1.5 1.5 0 0 0 1.5 1.5h45.345a1.5 1.5 0 1 0 0-3h-43.845v-25.607c0-15.66 12.723-28.4 28.36-28.4h4.987l20.138 26.744a1.499 1.499 0 0 0 2.101.295l9.687-7.307 9.686 7.307a1.498 1.498 0 0 0 2.101-.295l20.139-26.744h3.781c15.638 0 28.36 12.74 28.36 28.4v25.607h-70.579a1.5 1.5 0 1 0 0 3h72.079a1.5 1.5 0 0 0 1.5-1.5v-27.107c.003-17.314-14.065-31.4-31.357-31.4z"/><ellipse class="st43" cx="118.471" cy="109.602" rx="11.749" ry="11.765"/><path class="st0" d="M118.472 96.336c-7.306 0-13.25 5.951-13.25 13.265s5.944 13.265 13.25 13.265 13.249-5.951 13.249-13.265-5.944-13.265-13.249-13.265zm0 23.531c-5.652 0-10.25-4.605-10.25-10.265s4.598-10.265 10.25-10.265c5.651 0 10.249 4.605 10.249 10.265s-4.598 10.265-10.249 10.265z"/><ellipse class="st43" cx="221.023" cy="109.602" rx="11.749" ry="11.765"/><path class="st0" d="M221.023 96.336c-7.306 0-13.25 5.951-13.25 13.265s5.944 13.265 13.25 13.265 13.249-5.951 13.249-13.265-5.943-13.265-13.249-13.265zm0 23.531c-5.652 0-10.25-4.605-10.25-10.265s4.598-10.265 10.25-10.265c5.651 0 10.249 4.605 10.249 10.265s-4.597 10.265-10.249 10.265z"/><path class="st22" d="M169.747 51.735c-28.766 0-52.086 23.351-52.086 52.156s28.813 73.018 52.086 73.018c24.382 0 52.086-44.213 52.086-73.018s-23.319-52.156-52.086-52.156z"/><path class="st0" d="M169.747 50.235c-29.548 0-53.586 24.07-53.586 53.656 0 13.993 6.736 32.448 17.581 48.163 11.388 16.502 24.848 26.355 36.005 26.355 11.746 0 25.022-9.609 36.426-26.363 10.585-15.551 17.16-34.003 17.16-48.155 0-29.586-24.038-53.656-53.586-53.656zm0 125.173c-10.171 0-22.708-9.368-33.536-25.059-10.517-15.24-17.05-33.042-17.05-46.458 0-27.932 22.692-50.656 50.586-50.656s50.586 22.724 50.586 50.656c0 28.238-27.133 71.517-50.586 71.517z"/><path class="st0" d="M151.358 98.211a5.087 5.087 0 0 0-5.084 5.091 5.087 5.087 0 0 0 5.084 5.091 5.087 5.087 0 0 0 5.084-5.091 5.087 5.087 0 0 0-5.084-5.091zM188.136 98.211a5.087 5.087 0 0 0-5.084 5.091c0 2.812 2.276 5.091 5.084 5.091s5.084-2.279 5.084-5.091a5.087 5.087 0 0 0-5.084-5.091z"/><path class="st44" d="M141.197 111.881c-4.836 0-8.757 2.935-8.757 6.556 0 3.62 3.921 6.556 8.757 6.556 4.837 0 8.758-2.935 8.758-6.556s-3.921-6.556-8.758-6.556z"/><ellipse class="st44" cx="198.297" cy="118.436" rx="8.757" ry="6.556"/><path class="st2" d="M224.26 91.835c0-28.504-24.137-51.611-53.911-51.611s-53.911 23.107-53.911 51.612c0 3.016.545 5.264 1.558 8.073.477 1.324 8.197-2.904 8.854-3.368 3.287-2.317 5.973-5.458 7.981-8.931a30.477 30.477 0 0 0 2.08-4.383c1.777-4.688 6.605-17.734 11.508-16.711 6.574 1.372 14.026 2.148 21.931 2.148s15.356-.776 21.931-2.148c4.902-1.023 9.731 12.022 11.508 16.711a30.47 30.47 0 0 0 2.079 4.383c3.316 5.744 8.918 11.213 15.733 12.208.017-.33.433-.442.743-.555 2.229-.811 1.916-5.637 1.916-7.428z"/><path class="st0" d="m225.766 92.417-.006-.582c0-29.286-24.857-53.111-55.411-53.111s-55.411 23.826-55.411 53.112c0 3.347.63 5.765 1.646 8.582.196.543.637.958 1.21 1.139.188.059.405.086.648.086 2.877 0 9.209-3.832 9.271-3.875 3.289-2.319 6.199-5.571 8.417-9.409a32.034 32.034 0 0 0 2.182-4.599l.11-.291c5.342-14.118 8.369-15.761 9.688-15.483 6.93 1.446 14.411 2.18 22.237 2.18 7.824 0 15.307-.733 22.237-2.18 1.331-.28 4.347 1.375 9.685 15.475l.114.299a31.938 31.938 0 0 0 2.183 4.602c4.141 7.171 10.427 12.009 16.814 12.942a1.51 1.51 0 0 0 1.441-.618l.031-.011c3.018-1.099 2.951-5.757 2.914-8.258zm-4.012 5.464c-.151.053-.422.148-.7.32-5.229-1.069-10.373-5.252-13.887-11.337a29.136 29.136 0 0 1-1.978-4.167l-.113-.299c-3.484-9.204-7.755-18.461-13.104-17.349-6.729 1.404-14.005 2.116-21.624 2.116-7.62 0-14.896-.712-21.624-2.116-5.348-1.116-9.623 8.15-13.107 17.358l-.109.289a29.063 29.063 0 0 1-1.977 4.164c-2 3.461-4.609 6.385-7.542 8.453-.882.6-5.104 2.763-6.875 3.253-.734-2.169-1.177-4.146-1.177-6.729 0-27.632 23.512-50.112 52.411-50.112s52.411 22.479 52.411 50.111l.007.625c.064 4.372-.56 5.256-1.012 5.42z"/><path class="st2" d="m149.877 175.774-10.633 8.024 20.514 27.257 10.634-8.025z"/><path class="st0" d="m171.59 202.128-20.514-27.256a1.499 1.499 0 0 0-2.101-.295l-10.634 8.025a1.5 1.5 0 0 0-.295 2.099l20.514 27.256a1.499 1.499 0 0 0 2.101.295l10.634-8.025a1.499 1.499 0 0 0 .295-2.099zm-11.537 6.825-18.709-24.859 8.239-6.218 18.709 24.859-8.239 6.218z"/><path class="st2" d="m190.819 175.774-20.514 27.256 10.634 8.025 20.514-27.257z"/><path class="st0" d="m202.356 182.601-10.634-8.025a1.499 1.499 0 0 0-2.101.295l-20.514 27.256a1.499 1.499 0 0 0 .295 2.099l10.633 8.025a1.497 1.497 0 0 0 2.101-.295l20.515-27.256c.498-.661.367-1.6-.295-2.099zm-21.712 26.352-8.238-6.218 18.709-24.859 8.239 6.218-18.71 24.859zM128.364 217.804a1.5 1.5 0 0 0-1.5 1.5v21.416a1.5 1.5 0 1 0 3 0v-21.416a1.5 1.5 0 0 0-1.5-1.5zM212.333 217.804a1.5 1.5 0 0 0-1.5 1.5v21.416a1.5 1.5 0 1 0 3 0v-21.416a1.5 1.5 0 0 0-1.5-1.5z"/><path class="st2" d="M169.375 21.491c-36.717 21.629-58.028-19.949-58.028-.987 0 5.993 2.411 11.971 5.577 17.41l8.763 12.439c8.841 11.148 19.418 23.033 32.191 26.67 20.574 5.857 56.99-1.45 56.99-31.102-.001-18.963-15.872-41.88-45.493-24.43z"/><path class="st0" d="M201.304 16.966c-6.298-3.599-17.083-5.961-32.691 3.232-21.365 12.588-37.273 3.032-46.778-2.677-4.511-2.709-7.491-4.498-9.8-3.191-1.938 1.097-2.188 3.875-2.188 6.174 0 5.539 1.891 11.48 5.779 18.165.022.038.046.074.07.109l8.763 12.438c.017.023.033.046.052.068 9.47 11.94 20.017 23.497 32.955 27.18 4.348 1.237 9.457 1.917 14.825 1.917 10.917 0 22.901-2.811 31.696-9.451 8.099-6.115 12.38-14.764 12.38-25.01 0-10.126-4.657-23.006-15.063-28.954zm.876 51.57c-12.336 9.315-31.417 10.595-43.892 7.043-12.11-3.448-22.249-14.59-31.4-26.125l-8.701-12.35c-3.593-6.19-5.34-11.62-5.34-16.6 0-3.15.638-3.547.665-3.563.783-.445 4.108 1.549 6.778 3.152 9.415 5.655 26.941 16.181 49.846 2.69 11.371-6.699 21.636-7.811 29.68-3.212 9.361 5.351 13.552 17.089 13.552 26.35-.001 9.401-3.764 17.01-11.188 22.615zM184.663 135.821a1.5 1.5 0 0 0-1.931.879c-1.034 2.766-5.079 7.996-12.987 7.996-6.177 0-10.441-2.654-13.037-8.114a1.5 1.5 0 0 0-2.709 1.289c3.1 6.52 8.397 9.826 15.746 9.826 8.299 0 14.007-5.155 15.798-9.945a1.5 1.5 0 0 0-.88-1.931z"/><path d="M206.057 185.235h-3.778l-1.859 2.468c9.899 4.42 16.809 14.373 16.809 25.914v25.591h17.172v-25.591c0-15.657-12.718-28.382-28.344-28.382z" style="fill:#68a6b9"/><ellipse cx="65.257" cy="195.205" rx="45.174" ry="45.234" style="fill-rule:evenodd;clip-rule:evenodd;fill:#d5dc57"/><path class="st0" d="M65.257 148.471c-25.735 0-46.673 20.964-46.673 46.733s20.938 46.734 46.673 46.734c25.736 0 46.674-20.965 46.674-46.734s-20.938-46.733-46.674-46.733zm0 90.467c-24.081 0-43.673-19.619-43.673-43.734s19.592-43.733 43.673-43.733c24.082 0 43.674 19.619 43.674 43.733s-19.592 43.734-43.674 43.734z"/><path class="st2" d="M65.267 163.544c-8.423 0-15.277 6.862-15.277 15.297v11.805a3.49 3.49 0 0 0 3.488 3.493 3.49 3.49 0 0 0 3.488-3.493v-11.805c0-4.583 3.724-8.312 8.301-8.312s8.301 3.729 8.301 8.312v11.805a3.49 3.49 0 0 0 3.488 3.493 3.49 3.49 0 0 0 3.488-3.493v-11.805c0-8.435-6.854-15.297-15.277-15.297z"/><path class="st0" d="M65.267 162.043c-9.251 0-16.776 7.535-16.776 16.797v11.805a4.996 4.996 0 0 0 4.987 4.993 4.996 4.996 0 0 0 4.988-4.993V178.84c0-3.756 3.051-6.812 6.801-6.812s6.801 3.056 6.801 6.812v11.805c0 2.753 2.237 4.993 4.988 4.993s4.988-2.24 4.988-4.993V178.84c0-9.261-7.526-16.797-16.777-16.797zm13.777 28.603c0 1.099-.892 1.993-1.988 1.993s-1.988-.894-1.988-1.993v-11.805c0-5.41-4.396-9.812-9.801-9.812s-9.801 4.402-9.801 9.812v11.805a1.993 1.993 0 0 1-1.988 1.993 1.992 1.992 0 0 1-1.987-1.993v-11.805c0-7.608 6.18-13.797 13.776-13.797s13.777 6.189 13.777 13.797v11.805z"/><path d="M76.036 189.51H54.498a7.809 7.809 0 0 0-7.809 7.809v21.588a7.809 7.809 0 0 0 7.809 7.809h21.538a7.809 7.809 0 0 0 7.809-7.809V197.32a7.81 7.81 0 0 0-7.809-7.81z" style="fill:#ed6e7a"/><path class="st0" d="M76.035 188.01H54.497c-5.133 0-9.309 4.176-9.309 9.309v21.587c0 5.133 4.176 9.309 9.309 9.309h21.538c5.134 0 9.31-4.176 9.31-9.309v-21.587c0-5.132-4.176-9.309-9.31-9.309zm6.31 30.897a6.316 6.316 0 0 1-6.31 6.309H54.497a6.316 6.316 0 0 1-6.309-6.309V197.32a6.316 6.316 0 0 1 6.309-6.309h21.538c3.479 0 6.31 2.83 6.31 6.309v21.587z"/><path class="st2" d="M65.267 197.794a5.673 5.673 0 0 0-5.669 5.677c0 2.261 1.33 4.196 3.24 5.109v7.46a2.431 2.431 0 0 0 2.43 2.433 2.431 2.431 0 0 0 2.43-2.433v-7.46c1.91-.913 3.24-2.849 3.24-5.109a5.675 5.675 0 0 0-5.671-5.677z"/><path class="st0" d="M65.267 196.294c-3.953 0-7.169 3.219-7.169 7.177a7.096 7.096 0 0 0 3.239 5.983v6.586c0 2.168 1.763 3.933 3.93 3.933s3.93-1.764 3.93-3.933v-6.586a7.095 7.095 0 0 0 3.239-5.983c0-3.958-3.216-7.177-7.169-7.177zm1.783 10.932c-.521.25-.854.776-.854 1.354v7.46c0 .514-.417.933-.93.933s-.93-.418-.93-.933v-7.46c0-.578-.332-1.104-.854-1.354-1.472-.704-2.386-2.143-2.386-3.755 0-2.303 1.87-4.177 4.169-4.177s4.169 1.874 4.169 4.177c.002 1.612-.913 3.051-2.384 3.755z"/></svg>
<svg t="1699676610821" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8035" width="200" height="200"><path d="M507.642553 518.53617m-501.106383 0a501.106383 501.106383 0 1 0 1002.212766 0 501.106383 501.106383 0 1 0-1002.212766 0Z" fill="#FA6B6D" p-id="8036"></path><path d="M513.089362 262.53617c68.629787 0 125.276596 55.557447 125.276595 123.097873 0 67.540426-55.557447 123.097872-125.276595 123.097872-68.629787 0-125.276596-55.557447-125.276596-123.097872 1.089362-68.629787 56.646809-123.097872 125.276596-123.097873z m0 0c68.629787 0 125.276596 55.557447 125.276595 123.097873 0 67.540426-55.557447 123.097872-125.276595 123.097872-68.629787 0-125.276596-55.557447-125.276596-123.097872 1.089362-68.629787 56.646809-123.097872 125.276596-123.097873z m-46.842553 286.502128h104.578723c89.32766 0 161.225532 70.808511 161.225532 159.046808v9.804256c0 34.859574-71.897872 35.948936-161.225532 35.948936h-104.578723c-89.32766 0-161.225532 0-161.225532-35.948936V708.085106c0-88.238298 72.987234-159.046809 161.225532-159.046808z" fill="#FFFFFF" p-id="8037"></path></svg>
......@@ -24,7 +24,7 @@ const props = defineProps({
default: "",
},
size: {
type: String,
type: [String, Number],
default: "1em",
},
});
......
......@@ -3,7 +3,6 @@ import { useSettingsStore } from "@/store/modules/settings";
import { usePermissionStore } from "@/store/modules/permission";
import { useAppStore } from "@/store/modules/app";
import { useRoute } from "vue-router";
import defaultSettings from "@/settings";
const route = useRoute();
......
<template>
<i
v-if="icon && icon.includes('el-icon')"
:class="icon"
class="sub-el-icon"
></i>
<el-icon v-if="icon && icon.includes('el-icon')" class="sub-el-icon" />
<SvgIcon v-else-if="icon" :icon-class="icon" />
<span v-if="title">{{ translateRouteTitle(title) }}</span>
</template>
......@@ -12,7 +8,7 @@
import SvgIcon from "@/components/SvgIcon/index.vue";
import { translateRouteTitle } from "@/utils/i18n";
const props = defineProps({
defineProps({
icon: {
type: String,
default: "",
......
<script lang="ts" setup>
import defaultSettings from "@/settings";
import { useSettingsStore } from "@/store/modules/settings";
const settingsStore = useSettingsStore();
......@@ -10,8 +11,6 @@ defineProps({
},
});
const layout = computed(() => settingsStore.layout);
const logo = ref(new URL(`../../../assets/logo.png`, import.meta.url).href);
</script>
......@@ -37,7 +36,7 @@ const logo = ref(new URL(`../../../assets/logo.png`, import.meta.url).href);
>
<img v-if="settingsStore.sidebarLogo" :src="logo" class="w-5 h-5" />
<span class="ml-3 text-white text-sm font-bold">
{{ $t("login.title") }}</span
{{ defaultSettings.title }}</span
>
</router-link>
</transition>
......
......@@ -26,9 +26,9 @@ watch(
<template>
<div
v-if="layout !== 'mix'"
:class="{ 'has-logo': sidebarLogo }"
class="menu-wrap"
v-if="layout !== 'mix'"
>
<logo v-if="sidebarLogo" :collapse="!appStore.sidebar.opened" />
<el-scrollbar v-if="showContent">
......
......@@ -88,8 +88,6 @@ function toggleSideBar() {
<Sidebar class="sidebar-container" />
<template v-if="layout === 'mix'">
<div class="mix-wrap">
<!-- :menu-list="mixLeftMenu -->
<!-- :menu-list="permissionStore.routes -->
<div class="left-wrap">
<LeftMenu :menu-list="mixLeftMenu" :base-path="activeTopMenu" />
<div class="menu-action">
......@@ -155,6 +153,7 @@ function toggleSideBar() {
.main-container {
padding-top: 50px;
margin-left: 0;
overflow: hidden;
}
// 顶部模式全局变量修改
......
......@@ -24,6 +24,7 @@ const fixedHeader = computed(() => settingsStore.fixedHeader);
const showTagsView = computed(() => settingsStore.tagsView);
const showSettings = computed(() => settingsStore.showSettings);
const layout = computed(() => settingsStore.layout);
const device = computed(() => appStore.device);
watchEffect(() => {
if (width.value < WIDTH) {
......@@ -43,7 +44,7 @@ watchEffect(() => {
</script>
<template>
<div :class="{ hasTagsView: showTagsView }" class="main-container">
<div :class="{ 'fixed-header': fixedHeader }">
<div :class="{ 'fixed-header': fixedHeader, device: device }">
<navbar v-if="layout === 'left'" />
<tags-view v-if="showTagsView" />
</div>
......@@ -70,6 +71,10 @@ watchEffect(() => {
width: calc(100% - 54px);
}
.hideSidebar.mobile .fixed-header {
width: 100%;
}
.isTop .fixed-header {
width: 100% !important;
}
......
......@@ -32,7 +32,7 @@ router.beforeEach(async (to, from, next) => {
}
} else {
try {
const { roles } = await userStore.getInfo();
const { roles } = await userStore.getUserInfo();
const accessRoutes = await permissionStore.generateRoutes(roles);
accessRoutes.forEach((route) => {
router.addRoute(route);
......@@ -40,7 +40,7 @@ router.beforeEach(async (to, from, next) => {
next({ ...to, replace: true });
} catch (error) {
// 移除 token 并跳转登录页
await userStore.resetStore();
await userStore.resetToken();
next(`/login?redirect=${to.path}`);
NProgress.done();
}
......
import { defineStore } from "pinia";
import { loginApi, logoutApi } from "@/api/auth";
import { getUserInfo } from "@/api/system/user";
import { getUserInfoApi } from "@/api/system/user";
import { resetRouter } from "@/router";
import { store } from "@/store";
......@@ -28,8 +28,8 @@ export const useUserStore = defineStore("user", () => {
return new Promise<void>((resolve, reject) => {
loginApi(loginData)
.then((response) => {
const { token_type, access_token } = response.data;
token.value = token_type + " " + access_token; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx
const { tokenType, accessToken } = response.data;
token.value = tokenType + " " + accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx
resolve();
})
.catch((error) => {
......@@ -39,9 +39,9 @@ export const useUserStore = defineStore("user", () => {
}
// 获取信息(用户昵称、头像、角色集合、权限集合)
function getInfo() {
function getUserInfo() {
return new Promise<UserInfo>((resolve, reject) => {
getUserInfo()
getUserInfoApi()
.then(({ data }) => {
if (!data) {
reject("Verification failed, please Login again.");
......@@ -60,12 +60,12 @@ export const useUserStore = defineStore("user", () => {
});
}
// 注销
// user logout
function logout() {
return new Promise<void>((resolve, reject) => {
logoutApi()
.then(() => {
resetStore();
token.value = "";
location.reload(); // 清空路由
resolve();
})
......@@ -75,19 +75,22 @@ export const useUserStore = defineStore("user", () => {
});
}
/** 清空缓存 */
function resetStore() {
resetRouter();
token.value = "";
Object.assign(user, { roles: [], perms: [] });
// remove token
function resetToken() {
return new Promise<void>((resolve) => {
token.value = "";
resetRouter();
resolve();
});
}
return {
token,
user,
login,
getInfo,
getUserInfo,
logout,
resetStore,
resetToken,
};
});
......
import axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';
import { useUserStoreHook } from '@/store/modules/user';
import axios, { InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { useUserStoreHook } from "@/store/modules/user";
// 创建 axios 实例
const service = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API,
timeout: 50000,
headers: { 'Content-Type': 'application/json;charset=utf-8' }
headers: { "Content-Type": "application/json;charset=utf-8" },
});
// 请求拦截器
......@@ -26,7 +26,7 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response: AxiosResponse) => {
const { code, msg } = response.data;
if (code === '00000') {
if (code === "00000") {
return response.data;
}
// 响应数据为二进制流处理(Excel导出)
......@@ -34,23 +34,25 @@ service.interceptors.response.use(
return response;
}
ElMessage.error(msg || '系统出错');
return Promise.reject(new Error(msg || 'Error'));
ElMessage.error(msg || "系统出错");
return Promise.reject(new Error(msg || "Error"));
},
(error: any) => {
if (error.response.data) {
const { code, msg } = error.response.data;
// token 过期,重新登录
if (code === 'A0230') {
ElMessageBox.confirm('当前页面已失效,请重新登录', '提示', {
confirmButtonText: '确定',
type: 'warning'
if (code === "A0230") {
ElMessageBox.confirm("当前页面已失效,请重新登录", "提示", {
confirmButtonText: "确定",
type: "warning",
}).then(() => {
localStorage.clear();
window.location.href = '/';
const userStore = useUserStoreHook();
userStore.resetToken().then(() => {
location.reload();
});
});
} else {
ElMessage.error(msg || '系统出错');
ElMessage.error(msg || "系统出错");
}
}
return Promise.reject(error.message);
......
<script setup lang="ts">
import { useUserStore } from "@/store/modules/user";
import { useTransition, TransitionPresets } from "@vueuse/core";
defineOptions({
// eslint-disable-next-line
name: "Dashboard",
inheritAttrs: false,
});
const userStore = useUserStore();
import { useUserStore } from "@/store/modules/user";
import { useTransition, TransitionPresets } from "@vueuse/core";
const userStore = useUserStore();
const date: Date = new Date();
const greetings = computed(() => {
......@@ -17,11 +15,11 @@ const greetings = computed(() => {
if (hours >= 6 && hours < 8) {
return "晨起披衣出草堂,轩窗已自喜微凉🌅!";
} else if (hours >= 8 && hours < 12) {
return "上午好🌞";
return "上午好" + useUserStore().user.nickname + "";
} else if (hours >= 12 && hours < 18) {
return "下午好";
return "下午好" + useUserStore().user.nickname + "";
} else if (hours >= 18 && hours < 24) {
return "晚上好🌃";
return "晚上好" + useUserStore().user.nickname + "";
} else if (hours >= 0 && hours < 6) {
return "偷偷向银河要了一把碎星,只等你闭上眼睛撒入你的梦中,晚安🌛!";
}
......@@ -29,7 +27,7 @@ const greetings = computed(() => {
const duration = 5000;
// 收入金
// 销售
const amount = ref(0);
const amountOutput = useTransition(amount, {
duration: duration,
......@@ -37,7 +35,7 @@ const amountOutput = useTransition(amount, {
});
amount.value = 2000;
// 访
// 访
const visitCount = ref(0);
const visitCountOutput = useTransition(visitCount, {
duration: duration,
......@@ -45,15 +43,15 @@ const visitCountOutput = useTransition(visitCount, {
});
visitCount.value = 2000;
//消息
const messageCount = ref(0);
const messageCountOutput = useTransition(messageCount, {
// IP
const dauCount = ref(0);
const dauCountOutput = useTransition(dauCount, {
duration: duration,
transition: TransitionPresets.easeOutExpo,
});
messageCount.value = 2000;
dauCount.value = 2000;
// 订单
// 订单
const orderCount = ref(0);
const orderCountOutput = useTransition(orderCount, {
duration: duration,
......@@ -67,111 +65,165 @@ orderCount.value = 2000;
<!-- github角标 -->
<github-corner class="github-corner" />
<!-- 用户信息 -->
<el-row class="mb-8">
<el-card class="w-full">
<div class="flex justify-between flex-wrap">
<div class="flex items-center">
<el-card shadow="never">
<el-row justify="space-between">
<el-col :span="18" :xs="24">
<div class="flex h-full items-center">
<img
class="user-avatar"
class="w-20 h-20 mr-5 rounded-full"
:src="userStore.user.avatar + '?imageView2/1/w/80/h/80'"
/>
<span class="ml-[10px] text-[16px]">
{{ userStore.user.nickname }}
</span>
<div>
<p>{{ greetings }}</p>
<p class="text-sm text-gray">
今日天气晴朗,气温在15℃至25℃之间,东南风。
</p>
</div>
</div>
</el-col>
<div class="leading-[40px]">
{{ greetings }}
</div>
<el-col :span="6" :xs="24">
<div class="flex h-full items-center justify-around">
<el-statistic :value="99">
<template #title>
<div class="flex items-center">
<svg-icon icon-class="message" :size="20" />
<span class="text-[16px] ml-1">消息</span>
</div>
</template>
</el-statistic>
<el-statistic :value="50">
<template #title>
<div class="flex items-center">
<svg-icon icon-class="todolist" :size="20" />
<span class="text-[16px] ml-1">待办</span>
</div>
</template>
<template #suffix>/100</template>
</el-statistic>
<div class="space-x-2 flex items-center justify-end">
<el-link
target="_blank"
type="danger"
href="https://blog.csdn.net/u013737132/article/details/130191394"
>💥官方从零到一文档</el-link
>
<el-divider direction="vertical" />
<el-link
target="_blank"
type="success"
href="https://gitee.com/youlaiorg"
>Gitee</el-link
>
<el-divider direction="vertical" />
<el-link
target="_blank"
type="primary"
href="https://github.com/youlaitech"
>GitHub
</el-link>
<el-statistic :value="10">
<template #title>
<div class="flex items-center">
<svg-icon icon-class="project" :size="20" />
<span class="text-[16px] ml-1">项目</span>
</div>
</template>
</el-statistic>
</div>
</div>
</el-card>
</el-row>
</el-col>
</el-row>
</el-card>
<!-- 数据卡片 -->
<el-row :gutter="40" class="mb-4">
<el-col :xs="24" :sm="12" :lg="6" class="mb-4">
<div class="data-box">
<div class="p-3 rounded">
<svg-icon icon-class="visit" size="3em" />
</div>
<div class="flex flex-col space-y-3">
<div class="text-[var(--el-text-color-secondary)]">访问数</div>
<el-row :gutter="10" class="mt-3">
<el-col :xs="24" :sm="12" :lg="6">
<el-card shadow="never">
<template #header>
<div class="flex items-center justify-between">
<span class="text-[var(--el-text-color-secondary)]">访客数</span>
<el-tag type="success"></el-tag>
</div>
</template>
<div class="flex items-center justify-between mt-5">
<div class="text-lg text-right">
{{ Math.round(visitCountOutput) }}
</div>
<svg-icon icon-class="visit" size="2em" />
</div>
<div
class="flex items-center justify-between mt-5 text-sm text-[var(--el-text-color-secondary)]"
>
<span> 总访客数 </span>
<span> {{ Math.round(visitCountOutput * 15) }} </span>
</div>
</div>
</el-card>
</el-col>
<!--消息数-->
<el-col :xs="24" :sm="12" :lg="6" class="mb-4">
<div class="data-box">
<div class="p-3 rounded">
<svg-icon icon-class="message" size="3em" />
</div>
<div class="flex flex-col space-y-3">
<div class="text-[var(--el-text-color-secondary)]">消息数</div>
<el-col :xs="24" :sm="12" :lg="6">
<el-card shadow="never">
<template #header>
<div class="flex items-center justify-between">
<span class="text-[var(--el-text-color-secondary)]">IP数</span>
<el-tag type="success"></el-tag>
</div>
</template>
<div class="flex items-center justify-between mt-5">
<div class="text-lg text-right">
{{ Math.round(messageCountOutput) }}
{{ Math.round(dauCountOutput) }}
</div>
<svg-icon icon-class="ip" size="2em" />
</div>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6" class="mb-4">
<div class="data-box">
<div class="p-3 rounded">
<svg-icon icon-class="money" size="3em" />
<div
class="flex items-center justify-between mt-5 text-sm text-[var(--el-text-color-secondary)]"
>
<span> 总IP数 </span>
<span> {{ Math.round(dauCountOutput) }} </span>
</div>
<div class="flex flex-col space-y-3">
<div class="text-[var(--el-text-color-secondary)]">收入金额</div>
</el-card>
</el-col>
<!--销售额-->
<el-col :xs="24" :sm="12" :lg="6">
<el-card shadow="never">
<template #header>
<div class="flex items-center justify-between">
<span class="text-[var(--el-text-color-secondary)]">销售额</span>
<el-tag></el-tag>
</div>
</template>
<div class="flex items-center justify-between mt-5">
<div class="text-lg text-right">
{{ Math.round(amountOutput) }}
</div>
<svg-icon icon-class="money" size="2em" />
</div>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6" class="mb-2">
<div class="data-box">
<div class="p-3 rounded">
<svg-icon icon-class="cart" size="3em" />
<div
class="flex items-center justify-between mt-5 text-sm text-[var(--el-text-color-secondary)]"
>
<span> 总销售额 </span>
<span> {{ Math.round(amountOutput * 15) }} </span>
</div>
<div class="flex flex-col space-y-3">
<div class="text-[var(--el-text-color-secondary)]">订单数</div>
</el-card>
</el-col>
<!--订单量-->
<el-col :xs="24" :sm="12" :lg="6">
<el-card shadow="never">
<template #header>
<div class="flex items-center justify-between">
<span class="text-[var(--el-text-color-secondary)]">订单量</span>
<el-tag type="danger"></el-tag>
</div>
</template>
<div class="flex items-center justify-between mt-5">
<div class="text-lg text-right">
{{ Math.round(orderCountOutput) }}
</div>
<svg-icon icon-class="shopping" size="2em" />
</div>
<div
class="flex items-center justify-between mt-5 text-sm text-[var(--el-text-color-secondary)]"
>
<span> 总订单量 </span>
<span> {{ Math.round(orderCountOutput * 15) }} </span>
</div>
</div>
</el-card>
</el-col>
</el-row>
<!-- Echarts 图表 -->
<el-row :gutter="40">
<el-row :gutter="10" class="mt-3">
<el-col :sm="24" :lg="8" class="mb-2">
<BarChart
id="barChart"
......
......@@ -11,10 +11,6 @@ import IconsResolver from "unplugin-icons/resolver";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
import { viteMockServe } from "vite-plugin-mock";
import vueJsx from "@vitejs/plugin-vue-jsx";
import UnoCSS from "unocss/vite";
import path from "path";
......@@ -69,7 +65,6 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
},
plugins: [
vue(),
vueJsx(),
UnoCSS({
hmrTopLevelAwait: false,
}),
......@@ -113,11 +108,6 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
// 指定symbolId格式
symbolId: "icon-[dir]-[name]",
}),
viteMockServe({
ignore: /^\_/,
mockPath: "mock",
enable: mode === "development",
}),
],
// 预加载项目必需的组件
optimizeDeps: {
......@@ -176,6 +166,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
"element-plus/es/components/steps/style/css",
"element-plus/es/components/step/style/css",
"element-plus/es/components/cascader-panel/style/css",
"element-plus/es/components/statistic/style/css",
"@vueuse/core",
"sortablejs",
"path-to-regexp",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册