Compare commits

...

14 Commits

@ -6,3 +6,6 @@ VITE_PUBLIC_PATH = ./
# 开发环境路由历史模式Hash模式传"hash"、HTML5模式传"h5"、Hash模式带base参数传"hash,base参数"、HTML5模式带base参数传"h5,base参数"
VITE_ROUTER_HISTORY = "hash"
# 开发环境后端地址
VITE_APP_BASE_URL = 'http://192.168.10.13:8000'

@ -30,7 +30,8 @@ module.exports = {
defineProps: "readonly",
defineEmits: "readonly",
defineExpose: "readonly",
withDefaults: "readonly"
withDefaults: "readonly",
DC: false
},
extends: [
"plugin:vue/vue3-essential",

@ -17,15 +17,7 @@ export function viteBuildInfo(): Plugin {
outDir = resolvedConfig.build?.outDir ?? "dist";
},
buildStart() {
console.log(
bold(
green(
`👏欢迎使用${blue(
"[admin]"
)}star💖 https://github.com/pure-admin/vue-pure-admin`
)
)
);
console.log(bold(green(`👏欢迎使用${blue("[admin]")}`)));
if (config.command === "build") {
startTime = dayjs(new Date());
}

@ -25,7 +25,8 @@ const include = [
const exclude = [
"@iconify-icons/ep",
"@iconify-icons/ri",
"@pureadmin/theme/dist/browser-utils"
"@pureadmin/theme/dist/browser-utils",
"@iconify-icons/ant-design"
];
export { include, exclude };

@ -8,7 +8,7 @@
name="viewport"
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
/>
<title>pure-admin-thin</title>
<title>LNYD</title>
<link rel="icon" href="/favicon.ico" />
<script>
window.process = {};

@ -35,51 +35,51 @@ import { MockMethod } from "vite-plugin-mock";
// ]
// };
const projectRouter = {
path: "/project",
meta: {
title: "项目管理",
icon: "lollipop",
rank: 11
},
children: [
{
path: "/project/list/index",
name: "ProjectList",
meta: {
title: "项目列表",
roles: ["admin", "common"]
}
},
{
path: "/project/details/index",
name: "ProjectDetails",
meta: {
title: "项目详情",
roles: ["admin", "common"]
}
}
]
};
// const projectRouter = {
// path: "/project",
// meta: {
// title: "项目管理",
// icon: "lollipop",
// rank: 11
// },
// children: [
// {
// path: "/project/list/index",
// name: "ProjectList",
// meta: {
// title: "项目列表",
// roles: ["admin", "common"]
// }
// },
// {
// path: "/project/details/index",
// name: "ProjectDetails",
// meta: {
// title: "项目详情",
// roles: ["admin", "common"]
// }
// }
// ]
// };
const modelRouter = {
path: "/aiModel",
meta: {
title: "模型管理",
icon: "lollipop",
rank: 12
},
children: [
{
path: "/aiModel",
name: "AiModelPage",
meta: {
title: "模型管理",
roles: ["admin", "common"]
}
}
]
};
// const modelRouter = {
// path: "/aiModel",
// meta: {
// title: "模型管理",
// icon: "lollipop",
// rank: 12
// },
// children: [
// {
// path: "/aiModel",
// name: "AiModelPage",
// meta: {
// title: "模型管理",
// roles: ["admin", "common"]
// }
// }
// ]
// };
// const deviceRouter = {
// path: "/device",
@ -100,19 +100,76 @@ const modelRouter = {
// ]
// };
const warningRouter = {
path: "/warning",
// const warningRouter = {
// path: "/warning",
// meta: {
// title: "告警管理",
// icon: "Alarm",
// rank: 14
// },
// children: [
// {
// path: "/warning/list/index",
// name: "WarningList",
// meta: {
// title: "告警列表",
// roles: ["admin", "common"]
// }
// }
// ]
// };
const enterpriseRouter = {
path: "/enterprise",
meta: {
title: "企业管理",
icon: "buildingOne",
rank: 16
},
children: [
{
path: "/enterprise/index",
name: "EnterpriseList",
meta: {
title: "企业管理",
roles: ["admin"]
}
}
]
};
const myAlgorithmRouter = {
path: "/myAlgorithm",
meta: {
title: "我的算法库",
icon: "terminal",
rank: 17
},
children: [
{
path: "/myAlgorithm/index",
name: "myAlgorithm",
meta: {
title: "我的算法库",
roles: ["admin", "common"]
}
}
]
};
const algorithmTestingRouter = {
path: "/algorithmTesting",
meta: {
title: "告警管理",
icon: "lollipop",
rank: 14
title: "算法实测",
icon: "camera",
rank: 18
},
children: [
{
path: "/warning/list/index",
name: "WarningList",
path: "/algorithmTesting/index",
name: "algorithmTesting",
meta: {
title: "告警列表",
title: "算法实测",
roles: ["admin", "common"]
}
}
@ -126,7 +183,7 @@ export default [
response: () => {
return {
success: true,
data: [projectRouter, modelRouter, warningRouter]
data: [enterpriseRouter, myAlgorithmRouter, algorithmTestingRouter]
};
}
}

File diff suppressed because it is too large Load Diff

@ -6,7 +6,7 @@ export default [
url: "/login",
method: "post",
response: ({ body }) => {
if (body.username === "admin") {
if (body.username === "admin" && body.password === "admin123") {
return {
success: true,
data: {
@ -18,7 +18,7 @@ export default [
expires: "2023/10/30 00:00:00"
}
};
} else {
} else if (body.username === "common" && body.password === "common123") {
return {
success: true,
data: {
@ -30,7 +30,37 @@ export default [
expires: "2023/10/30 00:00:00"
}
};
} else {
return {
success: false,
msg: "用户名密码错误"
};
}
// if (body.username === "admin") {
// return {
// success: true,
// data: {
// username: "admin",
// // 一个用户可能有多个角色
// roles: ["admin"],
// accessToken: "eyJhbGciOiJIUzUxMiJ9.admin",
// refreshToken: "eyJhbGciOiJIUzUxMiJ9.adminRefresh",
// expires: "2023/10/30 00:00:00"
// }
// };
// } else {
// return {
// success: true,
// data: {
// username: "common",
// // 一个用户可能有多个角色
// roles: ["common"],
// accessToken: "eyJhbGciOiJIUzUxMiJ9.common",
// refreshToken: "eyJhbGciOiJIUzUxMiJ9.commonRefresh",
// expires: "2023/10/30 00:00:00"
// }
// };
// }
}
}
] as MockMethod[];

@ -38,6 +38,7 @@
"axios": "^1.4.0",
"dayjs": "^1.11.8",
"echarts": "^5.4.2",
"echarts-gl": "^2.0.9",
"element-plus": "2.3.6",
"js-cookie": "^3.0.5",
"mitt": "^3.0.0",
@ -51,12 +52,17 @@
"sortablejs": "^1.15.0",
"vue": "^3.3.4",
"vue-router": "^4.2.2",
"vue-types": "^5.1.0"
"vue-types": "^5.1.0",
"vue3-seamless-scroll": "^2.0.1"
},
"devDependencies": {
"@commitlint/cli": "^17.6.6",
"@commitlint/config-conventional": "^17.6.6",
"@dvgis/dc-sdk": "^3.2.0",
"@dvgis/vite-plugin-dc": "^2.1.2",
"@iconify-icons/ant-design": "^1.2.7",
"@iconify-icons/ep": "^1.2.12",
"@iconify-icons/icon-park-outline": "^1.2.11",
"@iconify-icons/ri": "^1.2.9",
"@iconify/vue": "^4.1.1",
"@pureadmin/theme": "^3.1.0",
@ -129,7 +135,5 @@
"stable": "*"
}
},
"repository": "git@github.com:pure-admin/pure-admin-thin.git",
"author": "xiaoxian521",
"license": "MIT"
}

File diff suppressed because it is too large Load Diff

@ -1 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" class="icon" viewBox="0 0 1024 1024"><path fill="#386BF3" d="M410.558.109c0 210.974-300.876 361.752-300.876 633.548 0 174.943 134.704 316.787 300.876 316.787s300.877-141.817 300.877-316.787C711.408 361.752 410.558 210.974 410.558.109z"/><path fill="#C3D2FB" d="M613.469 73.665c0 211.055-300.877 361.914-300.877 633.547C312.592 882.156 447.296 1024 613.47 1024s300.876-141.817 300.876-316.788C914.29 435.58 613.469 284.72 613.469 73.665z"/><path fill="#303F5B" d="M312.592 707.212c0-183.713 137.636-312.171 226.723-441.39 81.702 106.112 172.12 218.74 172.12 367.726A309.755 309.755 0 0 1 420.36 950.064a323.114 323.114 0 0 1-107.769-242.852z"/></svg>
<svg width="30" height="32" viewBox="0 0 30 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29.262 16.7252L23.5229 11.0259L20.9578 8.47347C20.9217 8.43538 20.8781 8.40503 20.8298 8.38428C20.7815 8.36354 20.7294 8.35284 20.6767 8.35284C20.6241 8.35284 20.572 8.36354 20.5237 8.38428C20.4753 8.40503 20.4318 8.43538 20.3956 8.47347L9.11646 19.6972C9.0244 19.7875 8.90027 19.8382 8.77094 19.8382C8.6416 19.8382 8.51747 19.7875 8.42542 19.6972L6.08291 17.3662C5.99207 17.2746 5.94114 17.151 5.94114 17.0224C5.94114 16.8937 5.99207 16.7701 6.08291 16.6785L15.4529 7.3546C15.5254 7.27699 15.5656 7.17499 15.5656 7.06906C15.5656 6.96313 15.5254 6.86112 15.4529 6.78351L12.9816 4.3826C12.9455 4.3445 12.9019 4.31415 12.8536 4.29341C12.8052 4.27267 12.7531 4.26196 12.7005 4.26196C12.6479 4.26196 12.5958 4.27267 12.5474 4.29341C12.4991 4.31415 12.4555 4.3445 12.4194 4.3826L0.121232 16.6203C0.0829476 16.6562 0.0524462 16.6996 0.0315998 16.7477C0.0107533 16.7958 0 16.8476 0 16.9C0 16.9524 0.0107533 17.0042 0.0315998 17.0523C0.0524462 17.1004 0.0829476 17.1437 0.121232 17.1797L5.83695 22.8906L8.40199 25.4314C8.47999 25.5035 8.5825 25.5435 8.68895 25.5435C8.7954 25.5435 8.89791 25.5035 8.97591 25.4314L20.2551 14.2077C20.2997 14.1633 20.3526 14.1281 20.4109 14.104C20.4692 14.08 20.5317 14.0676 20.5947 14.0676C20.6578 14.0676 20.7203 14.08 20.7786 14.104C20.8369 14.1281 20.8898 14.1633 20.9344 14.2077L23.2769 16.5387C23.3245 16.5813 23.3626 16.6334 23.3887 16.6916C23.4148 16.7499 23.4283 16.8129 23.4283 16.8767C23.4283 16.9404 23.4148 17.0035 23.3887 17.0617C23.3626 17.1199 23.3245 17.172 23.2769 17.2147L11.9977 28.45C11.9234 28.5243 11.8816 28.6249 11.8816 28.7297C11.8816 28.8346 11.9234 28.9352 11.9977 29.0094L14.4339 31.422C14.4701 31.4601 14.5136 31.4904 14.562 31.5112C14.6103 31.5319 14.6624 31.5426 14.715 31.5426C14.7677 31.5426 14.8198 31.5319 14.8681 31.5112C14.9164 31.4904 14.96 31.4601 14.9961 31.422L29.262 17.2962C29.3345 17.2186 29.3747 17.1166 29.3747 17.0107C29.3747 16.9048 29.3345 16.8028 29.262 16.7252Z" fill="url(#paint0_linear_562_16235)"/>
<path d="M17.7134 1.99314L13.86 2.79733C13.839 2.80347 13.8199 2.81483 13.8045 2.83035C13.7892 2.84587 13.778 2.86504 13.7722 2.88603C13.7663 2.90703 13.7659 2.92917 13.771 2.95035C13.7762 2.97154 13.7866 2.99108 13.8015 3.00712L16.8467 6.02574C16.8572 6.04261 16.8719 6.05653 16.8893 6.06618C16.9067 6.07583 16.9263 6.0809 16.9463 6.0809C16.9662 6.0809 16.9858 6.07583 17.0032 6.06618C17.0207 6.05653 17.0353 6.04261 17.0458 6.02574L17.8657 2.19128C17.884 2.16893 17.8942 2.14109 17.8947 2.11226C17.8951 2.08343 17.8858 2.05529 17.8682 2.03238C17.8506 2.00948 17.8257 1.99315 17.7977 1.98603C17.7696 1.97891 17.7399 1.98141 17.7134 1.99314Z" fill="#C50F08"/>
<path d="M19.5056 0.0356277L14.5278 1.35263C14.4812 1.36466 14.4387 1.3889 14.4047 1.42283C14.3707 1.45675 14.3464 1.49912 14.3345 1.54553C14.3225 1.59193 14.3233 1.64068 14.3367 1.6867C14.3501 1.73271 14.3756 1.77431 14.4107 1.80717L18.0533 5.43185C18.0849 5.46742 18.1258 5.49356 18.1715 5.50735C18.2171 5.52115 18.2657 5.52205 18.3119 5.50996C18.358 5.49788 18.3999 5.47328 18.4328 5.43891C18.4657 5.40454 18.4884 5.36175 18.4983 5.3153L19.8921 0.361966C19.9116 0.310297 19.9145 0.253924 19.9005 0.200539C19.8865 0.147153 19.8564 0.0993544 19.8141 0.0636642C19.7718 0.027974 19.7195 0.00612861 19.6643 0.00111125C19.6091 -0.00390611 19.5537 0.00814786 19.5056 0.0356277Z" fill="#FAEC18"/>
<defs>
<linearGradient id="paint0_linear_562_16235" x1="12.2203" y1="25.3498" x2="17.9654" y2="5.36981" gradientUnits="userSpaceOnUse">
<stop stop-color="#3785B7"/>
<stop offset="0.69" stop-color="#2F3E8F"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 27 KiB

@ -1,5 +1,5 @@
{
"Version": "4.5.0",
"Version": "1.0.0",
"Title": "Admin",
"FixedHeader": true,
"HiddenSideBar": false,
@ -10,9 +10,9 @@
"DarkMode": false,
"Grey": false,
"Weak": false,
"HideTabs": false,
"HideTabs": true,
"SidebarStatus": true,
"EpThemeColor": "#409EFF",
"EpThemeColor": "rgba(28, 13, 130)",
"ShowLogo": true,
"ShowModel": "smart",
"MenuArrowIconNoTransition": true,

@ -17,3 +17,8 @@ export const getCardList = (data?: object) => {
export const getReleases = () => {
return http.request<Result>("get", "/releases");
};
/** 平台算法库 */
export const getAlgorithmList = (data?: object) => {
return http.request<Result>("post", "/algorithmList", { data });
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 KiB

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,41 @@
<svg width="38" height="26" viewBox="0 0 38 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_iiii_181_1048)">
<path d="M0 2C0 0.89543 0.895431 0 2 0H36C37.1046 0 38 0.895431 38 2V24C38 25.1046 37.1046 26 36 26H2C0.89543 26 0 25.1046 0 24V2Z" fill="url(#paint0_linear_181_1048)" fill-opacity="0.32"/>
<path d="M14.8749 7L12.25 9.25L14.8749 11.875" stroke="white" stroke-opacity="0.8" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12.25 9.25H20.8727C23.4538 9.25 25.6458 11.3576 25.7464 13.9375C25.8527 16.6636 23.6002 19 20.8727 19H14.4994" stroke="white" stroke-opacity="0.8" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<filter id="filter0_iiii_181_1048" x="-1" y="-1" width="40" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.12 0 0 0 0 0.777349 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_181_1048"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.12 0 0 0 0 0.777349 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="effect1_innerShadow_181_1048" result="effect2_innerShadow_181_1048"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.12 0 0 0 0 0.777349 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="effect2_innerShadow_181_1048" result="effect3_innerShadow_181_1048"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="-1"/>
<feGaussianBlur stdDeviation="1"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.12 0 0 0 0 0.777349 0 0 0 0 1 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="effect3_innerShadow_181_1048" result="effect4_innerShadow_181_1048"/>
</filter>
<linearGradient id="paint0_linear_181_1048" x1="19" y1="0" x2="19" y2="26" gradientUnits="userSpaceOnUse">
<stop stop-color="#1FC6FF"/>
<stop offset="1" stop-color="#1FC6FF" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 18.3332C14.6024 18.3332 18.3334 14.6022 18.3334 9.99984C18.3334 5.39746 14.6024 1.6665 10 1.6665C5.39765 1.6665 1.66669 5.39746 1.66669 9.99984C1.66669 14.6022 5.39765 18.3332 10 18.3332Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
<path d="M10 6.6665V13.3332" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.66669 10H13.3334" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 596 B

@ -0,0 +1,9 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.66675 8.33333C4.66675 6.4924 6.15915 5 8.00008 5C9.84101 5 11.3334 6.4924 11.3334 8.33333V13.6667H4.66675V8.33333Z" stroke="#333333" stroke-linejoin="round"/>
<path d="M8 1.66667V2.66667" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.9638 3.10941L11.321 3.87546" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.073 6.76244L13.0881 6.9361" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.927 6.76247L2.91181 6.9361" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.03613 3.10934L4.67893 3.8754" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 13.6667H14.3333" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 893 B

@ -0,0 +1,9 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.6665 8.33333C4.6665 6.4924 6.1589 5 7.99984 5C9.84077 5 11.3332 6.4924 11.3332 8.33333V13.6667H4.6665V8.33333Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
<path d="M8 1.66675V2.66675" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.9641 3.10938L11.3213 3.87543" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.0727 6.76245L13.0879 6.93612" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.92725 6.76245L2.91205 6.93608" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.03613 3.10938L4.67893 3.87543" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 13.6667H14.3333" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,11 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_529_12491)">
<path d="M8.00016 1.33325L6.00016 3.33325H3.3335V5.99992L1.3335 7.99992L3.3335 9.99992V12.6666H6.00016L8.00016 14.6666L10.0002 12.6666H12.6668V9.99992L14.6668 7.99992L12.6668 5.99992V3.33325H10.0002L8.00016 1.33325Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
<path d="M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_529_12491">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 709 B

@ -0,0 +1,25 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i_1316_59093)">
<rect width="56" height="56" fill="#324FAE" fill-opacity="0.1"/>
</g>
<rect x="0.5" y="0.5" width="55" height="55" stroke="#3A56B3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.1667 39.6667C35.61 39.6667 40.8333 34.4434 40.8333 28C40.8333 21.5567 35.61 16.3334 29.1667 16.3334C22.7233 16.3334 17.5 21.5567 17.5 28C17.5 34.4434 22.7233 39.6667 29.1667 39.6667Z" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.5 28H40.8333" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.1667 39.6667C31.744 39.6667 33.8333 34.4434 33.8333 28C33.8333 21.5567 31.744 16.3334 29.1667 16.3334C26.5893 16.3334 24.5 21.5567 24.5 28C24.5 34.4434 26.5893 39.6667 29.1667 39.6667Z" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M20.917 19.9163C23.0282 22.0275 25.9449 23.3334 29.1665 23.3334C32.3882 23.3334 35.3049 22.0275 37.4162 19.9163" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M37.4162 36.0837C35.3049 33.9725 32.3882 32.6666 29.1665 32.6666C25.9449 32.6666 23.0282 33.9725 20.917 36.0837" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M15.1665 1.16663H1.1665V18.6666" stroke="#05C7FF" stroke-width="2"/>
<path d="M40.8335 54.8334H54.8335V37.3334" stroke="#05C7FF" stroke-width="2"/>
<defs>
<filter id="filter0_i_1316_59093" x="0" y="0" width="56" height="60" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.164706 0 0 0 0 0.262745 0 0 0 0 0.560784 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_1316_59093"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#FFB541"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#FFB541"/>
<circle cx="9" cy="10" r="9" fill="#FFD44F"/>
<circle cx="9" cy="10" r="7" fill="#FFB606"/>
<path d="M9.90234 5.432V14H8.59434V7.004C8.06634 7.5 7.41034 7.86 6.62634 8.084V6.788C7.01034 6.692 7.41834 6.524 7.85034 6.284C8.28234 6.012 8.63434 5.728 8.90634 5.432H9.90234Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 577 B

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#FCABAB"/>
<circle cx="9" cy="9" r="7.5" fill="#E02828"/>
<path d="M10.0527 3.504V13.5H8.52673V5.338C7.91073 5.91667 7.1454 6.33667 6.23073 6.598V5.086C6.67873 4.974 7.15473 4.778 7.65873 4.498C8.16273 4.18067 8.5734 3.84933 8.89073 3.504H10.0527Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 401 B

@ -0,0 +1,24 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i_1316_59106)">
<rect width="56" height="56" fill="#324FAE" fill-opacity="0.1"/>
</g>
<rect x="0.5" y="0.5" width="55" height="55" stroke="#3A56B3"/>
<path d="M17.5 29.1666V38.5" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.5 33.25H21.5833L23.9167 29.75" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.0835 25.6666L33.5264 35.9619C33.7139 36.0869 33.9568 36.0927 34.15 35.9767L39.6668 32.6666" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.1289 21.4193C17.8109 21.2073 17.7793 20.7518 18.0649 20.4979L22.4163 16.63C22.6133 16.4549 22.9031 16.4337 23.1236 16.5781L38.9111 26.9216C39.2654 27.1538 39.262 27.6743 38.9046 27.9017L33.5707 31.296C33.3758 31.4201 33.1261 31.4174 32.9339 31.2893L18.1289 21.4193Z" stroke="#05C5FE" stroke-width="1.5"/>
<path d="M15.1665 1.16663H1.1665V18.6666" stroke="#05C7FF" stroke-width="2"/>
<path d="M40.8335 54.8334H54.8335V37.3334" stroke="#05C7FF" stroke-width="2"/>
<defs>
<filter id="filter0_i_1316_59106" x="0" y="0" width="56" height="60" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.164706 0 0 0 0 0.262745 0 0 0 0 0.560784 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_1316_59106"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#D6A184"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#D6A184"/>
<circle cx="9" cy="10" r="9" fill="#F5CBB3"/>
<circle cx="9" cy="10" r="7" fill="#D6A184"/>
<path d="M9.08634 5.264C9.95034 5.264 10.6423 5.472 11.1623 5.888C11.6743 6.312 11.9303 6.888 11.9303 7.616C11.9303 8.56 11.4583 9.188 10.5143 9.5C11.0103 9.652 11.3943 9.888 11.6663 10.208C11.9543 10.528 12.0983 10.944 12.0983 11.456C12.0983 12.248 11.8263 12.896 11.2823 13.4C10.6983 13.912 9.95034 14.168 9.03834 14.168C8.16634 14.168 7.46234 13.944 6.92634 13.496C6.32634 12.992 5.99034 12.26 5.91834 11.3H7.23834C7.26234 11.884 7.45034 12.328 7.80234 12.632C8.11434 12.92 8.52234 13.064 9.02634 13.064C9.57034 13.064 10.0143 12.904 10.3583 12.584C10.6543 12.288 10.8023 11.932 10.8023 11.516C10.8023 11.012 10.6463 10.64 10.3343 10.4C10.0463 10.16 9.61834 10.04 9.05034 10.04H8.42634V9.056H9.03834C9.55834 9.056 9.95434 8.94 10.2263 8.708C10.4983 8.476 10.6343 8.144 10.6343 7.712C10.6343 7.288 10.5103 6.96 10.2623 6.728C10.0063 6.496 9.61834 6.38 9.09834 6.38C8.57834 6.38 8.17434 6.512 7.88634 6.776C7.59034 7.048 7.41834 7.444 7.37034 7.964H6.08634C6.15834 7.116 6.47434 6.452 7.03434 5.972C7.55434 5.5 8.23834 5.264 9.08634 5.264Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#ADBEFF"/>
<circle cx="9" cy="9" r="7.5" fill="#0D15D7"/>
<path d="M8.72573 4.308C9.6964 4.308 10.4711 4.55067 11.0497 5.036C11.6284 5.53067 11.9177 6.19333 11.9177 7.024C11.9177 8.15333 11.3717 8.9 10.2797 9.264C10.8771 9.45067 11.3251 9.73533 11.6237 10.118C11.9597 10.51 12.1277 11 12.1277 11.588C12.1277 12.4933 11.8104 13.2353 11.1757 13.814C10.5317 14.402 9.69173 14.696 8.65573 14.696C7.7224 14.696 6.94773 14.4533 6.33173 13.968C5.6224 13.38 5.22573 12.526 5.14173 11.406H6.30373C6.33173 12.19 6.59307 12.7873 7.08773 13.198C7.51707 13.5433 8.03973 13.716 8.65573 13.716C9.36507 13.716 9.93907 13.5107 10.3777 13.1C10.7791 12.6987 10.9797 12.2087 10.9797 11.63C10.9797 11.0327 10.7837 10.566 10.3917 10.23C10.0091 9.90333 9.46773 9.74 8.76773 9.74H7.95573V8.844H8.72573C9.3884 8.844 9.89707 8.69467 10.2517 8.396C10.6064 8.088 10.7837 7.654 10.7837 7.094C10.7837 6.54333 10.6111 6.10933 10.2657 5.792C9.91107 5.46533 9.4024 5.302 8.73973 5.302C8.0584 5.302 7.53573 5.47933 7.17173 5.834C6.78907 6.18867 6.5604 6.70667 6.48573 7.388H5.35173C5.43573 6.42667 5.7904 5.67067 6.41573 5.12C6.9944 4.57867 7.7644 4.308 8.72573 4.308Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,26 @@
<svg width="34" height="59" viewBox="0 0 34 59" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.2399 54.4H21.4199L32.6399 24.14H1.35986L12.2399 54.4Z" fill="url(#paint0_linear_1326_3099)"/>
<circle cx="17.0002" cy="53.72" r="4.76" fill="#3279FF"/>
<circle cx="17.0002" cy="53.72" r="4.26" stroke="white" stroke-opacity="0.6"/>
<circle cx="17" cy="17" r="16.25" fill="url(#paint1_linear_1326_3099)" stroke="url(#paint2_linear_1326_3099)" stroke-width="1.5"/>
<path d="M12.2397 14.62V23.8H21.7597V14.62" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.54 16.32L12.24 14.62L17 10.2L21.76 14.62L23.46 16.32" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M15.2998 15.2999L16.9998 17.3399L18.6998 15.2999" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.96 19.38H19.04" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.96 17.34H19.04" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17 17.34V21.42" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<defs>
<linearGradient id="paint0_linear_1326_3099" x1="16.9999" y1="24.14" x2="16.9999" y2="54.4" gradientUnits="userSpaceOnUse">
<stop stop-color="#3C65FF" stop-opacity="0"/>
<stop offset="1" stop-color="#3C65FF"/>
</linearGradient>
<linearGradient id="paint1_linear_1326_3099" x1="17" y1="0" x2="17" y2="34" gradientUnits="userSpaceOnUse">
<stop stop-color="#4456FF"/>
<stop offset="1" stop-color="#0FBAFF"/>
</linearGradient>
<linearGradient id="paint2_linear_1326_3099" x1="32.64" y1="15.3" x2="-7.39288e-07" y2="18.36" gradientUnits="userSpaceOnUse">
<stop stop-color="#83D4FF"/>
<stop offset="1" stop-color="#80AAFF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#AEB8C2"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#AEB8C2"/>
<circle cx="9" cy="10" r="9" fill="#BDC9D4"/>
<circle cx="9" cy="10" r="7" fill="#AEB8C2"/>
<path d="M9.13434 5.264C9.96634 5.264 10.6423 5.5 11.1623 5.972C11.6823 6.452 11.9423 7.068 11.9423 7.82C11.9423 8.548 11.6623 9.224 11.1023 9.848C10.7663 10.192 10.1743 10.652 9.32634 11.228C8.40634 11.836 7.85434 12.376 7.67034 12.848H11.9543V14H6.05034C6.05034 13.144 6.33434 12.396 6.90234 11.756C7.19834 11.404 7.84234 10.884 8.83434 10.196C9.41834 9.78 9.82634 9.452 10.0583 9.212C10.4503 8.772 10.6463 8.304 10.6463 7.808C10.6463 7.328 10.5143 6.968 10.2503 6.728C9.98634 6.488 9.59834 6.368 9.08634 6.368C8.54234 6.368 8.13434 6.552 7.86234 6.92C7.58234 7.272 7.43034 7.796 7.40634 8.492H6.09834C6.11434 7.532 6.39034 6.764 6.92634 6.188C7.47034 5.572 8.20634 5.264 9.13434 5.264Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#FFDFAD"/>
<circle cx="9" cy="9" r="7.5" fill="#E58B03"/>
<path d="M9.15673 4.058C10.1274 4.058 10.9161 4.33333 11.5227 4.884C12.1294 5.444 12.4327 6.16267 12.4327 7.04C12.4327 7.88933 12.1061 8.678 11.4527 9.406C11.0607 9.80733 10.3701 10.344 9.38073 11.016C8.3074 11.7253 7.6634 12.3553 7.44873 12.906H12.4467V14.25H5.55873C5.55873 13.2513 5.89007 12.3787 6.55273 11.632C6.89807 11.2213 7.6494 10.6147 8.80673 9.812C9.48807 9.32667 9.96407 8.944 10.2347 8.664C10.6921 8.15067 10.9207 7.60467 10.9207 7.026C10.9207 6.466 10.7667 6.046 10.4587 5.766C10.1507 5.486 9.69807 5.346 9.10073 5.346C8.46607 5.346 7.99007 5.56067 7.67273 5.99C7.34607 6.40067 7.16873 7.012 7.14073 7.824H5.61473C5.6334 6.704 5.9554 5.808 6.58073 5.136C7.2154 4.41733 8.07407 4.058 9.15673 4.058Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 924 B

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.5" y="2.5" width="11" height="9.28572" rx="1.5" stroke="#333333"/>
<path d="M4.57153 14H11.4287" stroke="#333333" stroke-linecap="round"/>
<path d="M7.07728 4.90192L8.92258 4.90192C9.10121 4.90192 9.26628 4.99722 9.35559 5.15192L10.2782 6.74999C10.3676 6.90469 10.3676 7.09529 10.2782 7.24999L9.35559 8.84807C9.26628 9.00277 9.10121 9.09807 8.92258 9.09807L7.07728 9.09807C6.89865 9.09807 6.73359 9.00277 6.64427 8.84807L5.72162 7.24999C5.6323 7.09529 5.6323 6.90469 5.72162 6.74999L6.64427 5.15192C6.73359 4.99722 6.89865 4.90192 7.07728 4.90192Z" stroke="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 682 B

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.66675 13.3333C2.66675 12 2.66675 4.33333 2.66675 4.33333C2.66675 3.22876 3.62188 2.33333 4.80008 2.33333H13.3334V12C13.3334 12 6.66058 12 4.80008 12C3.12083 12 2.66675 12.2281 2.66675 13.3333Z" stroke="#333333" stroke-linejoin="round"/>
<path d="M5 9L7.66667 6.33333L9 8.66667L11.6667 6" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00008 14.6667H13.3334V12H4.00008C3.2637 12 2.66675 12.597 2.66675 13.3333C2.66675 14.0697 3.2637 14.6667 4.00008 14.6667Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 710 B

@ -0,0 +1,4 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.5 10.8333V16.6667C17.5 17.1269 17.1269 17.5 16.6667 17.5H3.33333C2.8731 17.5 2.5 17.1269 2.5 16.6667V3.33333C2.5 2.8731 2.8731 2.5 3.33333 2.5H9.16667" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.83331 11.1333V14.1667H8.88215L17.5 5.54504L14.4563 2.5L5.83331 11.1333Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 500 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 453 KiB

@ -0,0 +1,12 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_529_12469)">
<path d="M1.93945 2.24243V4.66667H4.3637" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.3335 7.99992C1.3335 11.6818 4.31826 14.6666 8.00016 14.6666C11.6821 14.6666 14.6668 11.6818 14.6668 7.99992C14.6668 4.31802 11.6821 1.33325 8.00016 1.33325C5.53283 1.33325 3.37853 2.67362 2.22575 4.66595" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8.00186 4L8.00146 8.00293L10.8279 10.8294" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_529_12469">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 816 B

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.26175 2.65666L3.11758 5.10666C2.59258 5.51499 2.16675 6.38416 2.16675 7.04333V11.3658C2.16675 12.7192 3.26925 13.8275 4.62258 13.8275H11.3776C12.7309 13.8275 13.8334 12.7192 13.8334 11.3717V7.12499C13.8334 6.41916 13.3609 5.51499 12.7834 5.11249L9.17842 2.58666C8.36175 2.01499 7.04925 2.04416 6.26175 2.65666Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 11.4942V9.74417" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 588 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 136 KiB

@ -0,0 +1,5 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 10.9382V5.6618C3 5.58747 3.07823 5.53912 3.14472 5.57236L6.94472 7.47236C6.9786 7.4893 7 7.52393 7 7.5618V12.8382C7 12.9125 6.92177 12.9609 6.85528 12.9276L3.05528 11.0276C3.0214 11.0107 3 10.9761 3 10.9382Z" stroke="#333333"/>
<path d="M13 10.9382V5.6618C13 5.58747 12.9218 5.53912 12.8553 5.57236L9.05528 7.47236C9.0214 7.4893 9 7.52393 9 7.5618V12.8382C9 12.9125 9.07823 12.9609 9.14472 12.9276L12.9447 11.0276C12.9786 11.0107 13 10.9761 13 10.9382Z" stroke="#333333"/>
<path d="M7.95939 2.01805L3.70561 3.90862C3.62643 3.94381 3.62643 4.05619 3.70561 4.09138L7.95939 5.98195C7.98524 5.99344 8.01476 5.99344 8.04061 5.98195L12.2944 4.09138C12.3736 4.05619 12.3736 3.94381 12.2944 3.90862L8.04061 2.01805C8.01476 2.00656 7.98524 2.00656 7.95939 2.01805Z" stroke="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 891 B

@ -0,0 +1,12 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_529_12475)">
<path d="M8.00016 9L4.66683 7L1.3335 9V13L4.66683 15L8.00016 13V9Z" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.6667 9L11.3333 7L8 9V13L11.3333 15L14.6667 13V9Z" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.3332 3L7.99984 1L4.6665 3V7L7.99984 9L11.3332 7V3Z" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_529_12475">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 700 B

@ -0,0 +1,8 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.4333 3H3.23325C2.7362 3 2.33325 3.40294 2.33325 3.9V12.9C2.33325 13.3971 2.7362 13.8 3.23325 13.8H13.4333C13.9303 13.8 14.3333 13.3971 14.3333 12.9V3.9C14.3333 3.40294 13.9303 3 13.4333 3Z" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2.33325 5.39999H14.3333" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7.1333 8.39999H11.9333" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7.1333 10.8H11.9333" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.73315 8.39999H5.33315" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.73315 10.8H5.33315" stroke="#1C0D82" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 869 B

@ -8,7 +8,23 @@ import { addIcon } from "@iconify/vue/dist/offline";
import HomeFilled from "@iconify-icons/ep/home-filled";
import InformationLine from "@iconify-icons/ri/information-line";
import Lollipop from "@iconify-icons/ep/lollipop";
import ProjectIcon from "@iconify-icons/icon-park-outline/list-view";
import Terminal from "@iconify-icons/icon-park-outline/terminal";
import Computer from "@iconify-icons/icon-park-outline/computer";
import CategoryManagement from "@iconify-icons/icon-park-outline/category-management";
import WeixinFavorites from "@iconify-icons/icon-park-outline/weixin-favorites";
import BuildingOne from "@iconify-icons/icon-park-outline/building-one";
import Alarm from "@iconify-icons/icon-park-outline/alarm";
import Camera from "@iconify-icons/icon-park-outline/camera";
addIcon("homeFilled", HomeFilled);
addIcon("informationLine", InformationLine);
addIcon("lollipop", Lollipop);
addIcon("projectIcon", ProjectIcon);
addIcon("terminal", Terminal);
addIcon("computer", Computer);
addIcon("categoryManagement", CategoryManagement);
addIcon("weixinFavorites", WeixinFavorites);
addIcon("buildingOne", BuildingOne);
addIcon("alarm", Alarm);
addIcon("camera", Camera);

@ -5,7 +5,8 @@ import mixNav from "./sidebar/mixNav.vue";
import { useNav } from "@/layout/hooks/useNav";
import Breadcrumb from "./sidebar/breadCrumb.vue";
import topCollapse from "./sidebar/topCollapse.vue";
import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line";
// import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line";
import IconParkOutline from "@iconify-icons/icon-park-outline/logout";
import Setting from "@iconify-icons/ri/settings-3-line";
const {
@ -45,7 +46,7 @@ const {
<!-- 通知 -->
<Notice id="header-notice" />
<!-- 退出登录 -->
<el-dropdown trigger="click">
<el-dropdown trigger="click" class="mr-6">
<span class="el-dropdown-link navbar-bg-hover select-none">
<img :src="userAvatar" :style="avatarsStyle" />
<p v-if="username" class="dark:text-white">{{ username }}</p>
@ -53,22 +54,20 @@ const {
<template #dropdown>
<el-dropdown-menu class="logout">
<el-dropdown-item @click="logout">
<IconifyIconOffline
:icon="LogoutCircleRLine"
style="margin: 5px"
/>
<IconifyIconOffline :icon="IconParkOutline" style="margin: 5px" />
退出系统
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<!-- <span
<span
class="set-icon navbar-bg-hover"
title="打开项目配置"
@click="onPanel"
v-if="false"
>
<IconifyIconOffline :icon="Setting" />
</span> -->
</span>
</div>
</div>
</template>

@ -30,7 +30,8 @@ const { title } = useNav();
:to="getTopMenu()?.path ?? '/'"
>
<img src="/logo.svg" alt="logo" />
<span class="sidebar-title">{{ title }}</span>
<img src="/logo_font.svg" class="logo-font" alt="logo" />
<!-- <span class="sidebar-title">{{ title }}</span> -->
</router-link>
</transition>
</div>
@ -66,6 +67,11 @@ const { title } = useNav();
text-overflow: ellipsis;
white-space: nowrap;
}
.logo-font {
height: 24px;
margin: 2px 0 0 4px;
}
}
}
</style>

@ -14,7 +14,7 @@ export function useDataThemeChange() {
const { layoutTheme, layout } = useLayout();
const themeColors = ref<Array<themeColorsType>>([
/* 道奇蓝(默认) */
{ color: "#1b2a47", themeColor: "default" },
{ color: "rgba(28, 13, 130,.1)", themeColor: "default" },
/* 亮白色 */
{ color: "#ffffff", themeColor: "light" },
/* 猩红色 */

@ -7,15 +7,15 @@ import { type multipleScopeVarsOptions } from "@pureadmin/theme";
/** 预设主题色 */
const themeColors = {
default: {
subMenuActiveText: "#fff",
menuBg: "#001529",
menuHover: "#4091f7",
subMenuBg: "#0f0303",
subMenuActiveBg: "#4091f7",
menuText: "rgb(254 254 254 / 65%)",
sidebarLogo: "#002140",
menuTitleHover: "#fff",
menuActiveBefore: "#4091f7"
subMenuActiveText: "#333333",
menuBg: "#fff",
menuHover: "#1C0D82",
subMenuBg: "#fff",
subMenuActiveBg: "#1C0D82",
menuText: "#333333",
sidebarLogo: "#fff",
menuTitleHover: "#1C0D82",
menuActiveBefore: "#1C0D82"
},
light: {
subMenuActiveText: "#409eff",

@ -5,11 +5,11 @@ import ElementPlus from "element-plus";
import { getServerConfig } from "./config";
import { createApp, Directive } from "vue";
import { MotionPlugin } from "@vueuse/motion";
// import { useEcharts } from "@/plugins/echarts";
import { useEcharts } from "@/plugins/echarts";
import { injectResponsiveStorage } from "@/utils/responsive";
// import Table from "@pureadmin/table";
// import PureDescriptions from "@pureadmin/descriptions";
import Table from "@pureadmin/table";
import PureDescriptions from "@pureadmin/descriptions";
// 引入重置样式
import "./style/reset.scss";
@ -49,9 +49,11 @@ getServerConfig(app).then(async config => {
app.use(router);
await router.isReady();
injectResponsiveStorage(app, config);
app.use(MotionPlugin).use(ElementPlus);
// .use(useEcharts);
// .use(Table);
// .use(PureDescriptions);
app
.use(MotionPlugin)
.use(ElementPlus)
.use(useEcharts)
.use(Table)
.use(PureDescriptions);
app.mount("#app");
});

@ -1,7 +1,7 @@
import type { App } from "vue";
import * as echarts from "echarts/core";
import { CanvasRenderer } from "echarts/renderers";
import { PieChart, BarChart, LineChart } from "echarts/charts";
import { PieChart, BarChart, LineChart, RadarChart } from "echarts/charts";
import {
GridComponent,
TitleComponent,
@ -19,6 +19,7 @@ use([
PieChart,
BarChart,
LineChart,
RadarChart,
CanvasRenderer,
GridComponent,
TitleComponent,

@ -0,0 +1,20 @@
export default {
path: "/warning",
meta: {
title: "告警管理",
icon: "alarm",
showLink: false,
rank: 14
},
children: [
{
path: "/warning/list/index",
name: "WarningList",
component: () => import("@/views/warning/list/index.vue"),
meta: {
title: "告警列表",
roles: ["admin", "common"]
}
}
]
} as RouteConfigsTable;

@ -0,0 +1,19 @@
export default {
path: "/device",
meta: {
title: "设备管理",
icon: "categoryManagement",
rank: 19
},
children: [
{
path: "/device",
name: "DevicePage",
component: () => import("@/views/device/index.vue"),
meta: {
title: "设备管理",
roles: ["admin", "common"]
}
}
]
} as RouteConfigsTable;

@ -1,21 +1,22 @@
const { VITE_HIDE_HOME } = import.meta.env;
const Layout = () => import("@/layout/index.vue");
import HomeFill from "@/assets/svg/home.svg?component";
export default {
path: "/",
name: "Home",
component: Layout,
redirect: "/welcome",
meta: {
icon: "homeFilled",
icon: HomeFill,
title: "首页",
rank: 0
showLink: false
// rank: 0
},
children: [
{
path: "/welcome",
name: "Welcome",
component: () => import("@/views/project/list/index.vue"),
component: () => import("@/views/welcome/index.vue"),
meta: {
title: "首页",
showLink: VITE_HIDE_HOME === "true" ? false : true

@ -0,0 +1,19 @@
export default {
path: "/platformAlgorithm",
meta: {
title: "平台算法库",
icon: "terminal",
rank: 15
},
children: [
{
path: "/platformAlgorithm",
name: "platformAlgorithm",
component: () => import("@/views/platformAlgorithm/index.vue"),
meta: {
title: "平台算法库",
roles: ["admin"]
}
}
]
} as RouteConfigsTable;

@ -0,0 +1,46 @@
export default {
path: "/project",
redirect: "/project/list",
meta: {
title: "项目管理",
icon: "projectIcon",
rank: 11
},
children: [
{
path: "/project/list",
name: "ProjectList",
component: () => import("@/views/project/list/index.vue"),
meta: {
title: "项目列表",
showLink: true,
// showParent: true,
roles: ["admin", "common"]
}
// children: [
// {
// path: "/project/details",
// name: "ProjectDetails",
// component: () => import("@/views/project/details/index.vue"),
// meta: {
// title: "项目详情",
// // showLink: false,
// showParent: true,
// roles: ["admin", "common"]
// }
// }
// ]
},
{
path: "/project/details",
name: "ProjectDetails",
component: () => import("@/views/project/details/index.vue"),
meta: {
title: "项目详情",
showLink: false,
activePath: "/project/list",
roles: ["admin", "common"]
}
}
]
} as RouteConfigsTable;

@ -30,12 +30,64 @@ export default [
{
path: "/screen",
name: "Screen",
component: () => import("@/views/error/404.vue"),
meta: {
title: "数据大屏",
icon: "lollipop",
icon: "computer",
// showLink: true,
rank: 102
}
rank: 1
},
children: [
{
path: "/screen",
name: "Sereen",
component: () => import("@/views/screen/index.vue"),
meta: {
title: "数据大屏",
roles: ["admin"]
}
}
]
},
{
path: "/screen1",
name: "Screen1",
meta: {
title: "企业大屏",
icon: "computer",
// showLink: true,
rank: 2
},
children: [
{
path: "/screen1",
name: "Sereen1",
component: () => import("@/views/screen1/index.vue"),
meta: {
title: "企业大屏",
roles: ["admin", "common"]
}
}
]
},
{
path: "/bankScreen",
name: "bankScreen",
meta: {
title: "银行大屏",
icon: "computer",
// showLink: true,
rank: 2
},
children: [
{
path: "/bankScreen",
name: "bankScreen",
component: () => import("@/views/bankScreen/index.vue"),
meta: {
title: "企业大屏",
roles: ["admin", "common"]
}
}
]
}
] as Array<RouteConfigsTable>;

@ -38,4 +38,5 @@ export type setType = {
export type userType = {
username?: string;
roles?: Array<string>;
currentPage?: number;
};

@ -16,7 +16,9 @@ export const useUserStore = defineStore({
username:
storageSession().getItem<DataInfo<number>>(sessionKey)?.username ?? "",
// 页面级别权限
roles: storageSession().getItem<DataInfo<number>>(sessionKey)?.roles ?? []
roles: storageSession().getItem<DataInfo<number>>(sessionKey)?.roles ?? [],
// 判断登录页面显示哪个组件0登录默认、1手机登录、2二维码登录、3注册、4忘记密码
currentPage: 0
}),
actions: {
/** 存储用户名 */
@ -27,6 +29,10 @@ export const useUserStore = defineStore({
SET_ROLES(roles: Array<string>) {
this.roles = roles;
},
/** 存储登录页面显示哪个组件 */
SET_CURRENTPAGE(value: number) {
this.currentPage = value;
},
/** 登入 */
async loginByUsername(data) {
return new Promise<UserResult>((resolve, reject) => {

@ -1,41 +1,89 @@
.wave {
position: fixed;
width: 100%;
height: 100%;
left: 0;
bottom: 0;
z-index: -1;
}
.logo-small {
position: fixed;
/* width: 100%;
height: 100%; */
left: 10%;
top: 10%;
}
.login-container {
width: 100vw;
height: 100vh;
display: grid;
/* display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 18rem;
padding: 0 2rem;
align-items: start; */
display: flex;
justify-content: center;
align-items: center;
/* padding: 0 2rem; */
/* justify-content: end; */
}
.img {
padding: 40px 0 33px;
width: 35%;
height: 60vh;
display: flex;
justify-content: flex-end;
/* justify-content: flex-end; */
flex-direction: column;
justify-content: space-between;
align-items: center;
width: 500px;
height: 380px;
background-image: url("../assets/login/login-bg.png");
background-repeat: no-repeat;
background-size: cover;
background-position: left center;
/* width: 500px; */
/* height: 380px; */
}
.img img {
width: 500px;
.describe {
/* margin: 32px 0 64px; */
/* width: 480px; */
/* font-family: PingFang SC; */
/* font-size: 48px; */
/* font-weight: 400; */
height: 54px;
/* letter-spacing: 0em; */
text-align: left;
font-family: Open Sans;
font-size: 40px;
font-weight: 700;
line-height: 54px;
color: #fff;
}
.platform-logo {
width: 464px;
height: 68px;
/* text-align: left; */
}
/* .img img {
width: 500px;
} */
.login-box {
padding: 25px 0 24px;
width: 45%;
height: 60vh;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
text-align: center;
background: rgb(255, 255, 255);
}
.login-form {
width: 360px;
margin-bottom: 130px;
width: 80%;
}
.avatar {
@ -46,8 +94,31 @@
.login-form h2 {
text-transform: uppercase;
margin: 15px 0;
/* color: #999;
font: bold 200% Consolas, Monaco, monospace; */
/* font-family: "PingFang SC";
font-size: 32px;
font-weight: 400;
line-height: 45px;
letter-spacing: 0em;
text-align: left; */
height: 45px;
font-family: PingFang SC;
font-size: 32px;
font-weight: bold;
line-height: 45px;
text-align: left;
color: #333;
}
.login-form-footer {
font-family: PingFang SC;
font-size: 14px;
font-weight: 400;
line-height: 20px;
letter-spacing: 0em;
color: #999;
font: bold 200% Consolas, Monaco, monospace;
text-align: left;
}
@media screen and (max-width: 1180px) {

@ -0,0 +1,172 @@
<script setup lang="ts">
import { onBeforeUnmount, ref } from "vue";
defineOptions({
name: "AlgorithmTesting"
});
const loading = ref(true);
const svg = `
<path class="path" d="
M 30 15
L 28 17
M 25.61 25.61
A 15 15, 0, 0, 1, 15 30
A 15 15, 0, 1, 1, 27.99 7.5
L 15 15
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
`;
setTimeout(() => {
loading.value = !loading.value;
}, 800);
const type = ref("");
const captureStatus = ref(false);
const restore = ref(false);
function capture() {
captureStatus.value = !captureStatus.value;
if (captureStatus.value) {
onStart();
} else {
onPauseOrClose("close");
}
}
const picUrl = ref(
"https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg"
);
const playCamera = ref(true);
let wsPlayVideo;
let wsClosePause;
function onStart() {
playCamera.value = true;
if (wsPlayVideo === undefined) {
wsPlayVideo = new WebSocket(
// window.serverConfig.VUE_APP_HOST_WS + "/camera"
"ws://192.168.10.14:9001" + "/camera"
);
} else {
wsPlayVideo.send("continue");
console.log("1111");
}
wsPlayVideo.onmessage = function (evt) {
console.log(playCamera.value, "connect");
if (evt.data === "connect") {
wsPlayVideo.send("start");
} else if (playCamera.value) {
picUrl.value = "data:image/png;base64," + evt.data;
}
};
}
function onPauseOrClose(command) {
playCamera.value = false;
if (command === "close") {
picUrl.value =
"https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg";
restore.value = false;
}
if (command === "pause") {
loading.value = true;
setTimeout(() => {
loading.value = !loading.value;
picUrl.value =
"https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg";
restore.value = true;
}, 800);
}
if (wsClosePause === undefined) {
wsClosePause = new WebSocket("ws://192.168.10.14:9001" + "/pause");
wsClosePause.onopen = function (evt) {
console.log(evt);
if (command === "close") {
wsClosePause.send("close");
wsClosePause = undefined;
} else if (command === "pause") {
wsClosePause.send("pause");
}
};
} else {
if (command === "close") {
wsClosePause.send("close");
wsClosePause = undefined;
wsClosePause = undefined;
} else if (command === "pause") {
wsClosePause.send("pause");
}
}
}
function onRestore() {
if (!restore.value) {
onPauseOrClose("pause");
} else {
onStart();
restore.value = false;
}
}
onBeforeUnmount(() => {
if (wsClosePause !== undefined) {
wsClosePause.send("close");
}
});
</script>
<template>
<div class="main">
<h2 class="mb-4 text-xl">算法实测</h2>
<el-card shadow="hover">
<el-row :gutter="24" justify="space-between">
<el-col :xs="12" :sm="12">
<div
v-loading="loading"
element-loading-text="Loading..."
:element-loading-spinner="svg"
element-loading-svg-view-box="-10, -10, 50, 50"
element-loading-background="rgba(122, 122, 122, 0.8)"
>
<img id="imgCamera" :src="picUrl" class="w-[100%] h-[100%]" />
</div>
<!-- <el-image :src="picUrl" class="w-[100%] h-[100%]" /> -->
</el-col>
<el-col :xs="12" :sm="12">
<div class="mb-2">检测类型</div>
<el-select
v-model="type"
placeholder="请选择类型"
:style="{ width: '100%' }"
>
<el-option label="周长" value="1" />
<el-option label="材料" value="2" />
</el-select>
<div class="mt-6">
<el-button
:color="captureStatus ? '#F56C6C' : '#1C0D82'"
@click="capture"
style="color: #fff"
>{{ captureStatus ? "关闭相机" : "开启相机" }}</el-button
>
<el-button
:disabled="!captureStatus"
color="#1C0D82"
@click="onRestore"
>{{ restore ? "恢复" : "拍摄" }}</el-button
>
<!-- <el-button color="#1C0D82" @click="onStart()">{{
"恢复"
}}</el-button> -->
</div>
</el-col>
</el-row>
</el-card>
</div>
</template>
<style lang="scss">
.el-input__inner {
color: #333;
}
</style>

@ -0,0 +1,132 @@
<script setup lang="ts">
import { reactive } from "vue";
const state = reactive({
time_type_select: "month"
});
const props = defineProps({
title: {
type: String,
default: ""
},
is_date_select: {
type: Boolean,
default: false
}
});
const is_date_selected_class = time_type => {
if (state.time_type_select === time_type) {
return "date-selected";
} else {
return "date-unselected";
}
};
const set_date_type = time_type => {
state.time_type_select = time_type;
};
</script>
<template>
<div class="box_container">
<div class="box_header">
<div class="header_title">{{ props.title }}</div>
<div class="header_time" v-if="is_date_select">
<div
@click="set_date_type('month')"
:class="is_date_selected_class('month')"
>
</div>
<div
@click="set_date_type('week')"
:class="is_date_selected_class('week')"
>
</div>
<div
@click="set_date_type('day')"
:class="is_date_selected_class('day')"
>
</div>
</div>
</div>
<div class="box_content">
<div class="content">
<slot name="content" :time_type="state.time_type_select" />
</div>
</div>
</div>
</template>
<style scoped>
.box_container {
height: 320px;
background-image: url("../../../assets/screen/box_bg.png");
background-size: 100% 100%;
.box_header {
display: flex;
align-items: center;
height: 44px;
.header_title {
margin-top: 35px;
margin-left: 70px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 20px;
font-style: normal;
font-weight: 400;
line-height: 24px;
color: white;
}
.header_time {
display: flex;
.date-selected {
display: flex;
gap: 10px;
align-items: flex-start;
width: 38px;
height: 28px;
padding: 4px 12px;
margin-left: 8px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
color: #1fc6ff;
cursor: pointer;
background: #0f2839;
border-top: 1px solid #1fc6ff;
}
.date-unselected {
display: flex;
gap: 10px;
align-items: flex-start;
width: 38px;
height: 28px;
padding: 4px 12px;
margin-left: 8px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
color: #b4c0cc;
cursor: pointer;
background: #0f2839;
}
}
}
}
</style>

@ -0,0 +1,54 @@
<script setup lang="ts">
import headerBg from "@/assets/svg/header_bg.svg?component";
const props = defineProps({
title: {
type: String,
default: ""
}
});
</script>
<template>
<div
style="
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
"
>
<headerBg />
<div class="title_text">{{ props.title }}</div>
</div>
</template>
<style scoped>
@font-face {
font-family: MyFont;
src: url("@/assets/iconfont/ZiXi.ttf") format("truetype");
}
.title_text {
position: absolute;
top: 20px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC", MyFont,
"Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 40px;
font-style: normal;
font-weight: 500;
line-height: 48px; /* 120% */
text-align: justify;
letter-spacing: 4px;
background: linear-gradient(180deg, #fff 33.78%, #4c99fa 79.09%);
background-clip: text;
-webkit-text-fill-color: transparent;
}
.back-btn {
position: absolute;
top: 20px;
left: 30px;
}
</style>

@ -0,0 +1,36 @@
<template>
<div ref="elChart" style="width: 100%; height: 100%" />
</template>
<script lang="ts" setup>
import { ref, onMounted, onUpdated, onUnmounted } from "vue";
import * as echarts from "echarts";
const props = defineProps({
option: {
type: Object
},
data: {
type: Object
}
});
const elChart = ref();
let chart: any = null;
function clear() {
chart && chart.dispose();
}
function draw() {
if (chart) {
chart.setOption(props.option);
} else {
clear();
chart = echarts.init(elChart.value);
chart.setOption(props.option);
}
}
onMounted(draw);
onUpdated(draw);
onUnmounted(clear);
</script>

@ -0,0 +1,167 @@
<template>
<div style="width: 100%; height: 210px">
<div class="chart-style" style="width: 100%; height: 100%">
<vue-chart :option="chartOption" style="width: 400px; height: 100%" />
</div>
</div>
</template>
<script lang="ts" setup>
import VueChart from "../../components/VueChart.vue";
import * as echarts from "echarts";
import { computed } from "vue";
const props = defineProps({
data: {
type: Array,
default: () => []
}
});
const name_list = computed(() => {
return props.data[0].data.map((item: any) => {
return item.name;
});
});
const value1_list = computed(() => {
return props.data[0].data.map((item: any) => {
return item.value;
});
});
const value2_list = computed(() => {
return props.data[1].data.map((item: any) => {
return item.value;
});
});
const value3_list = computed(() => {
return props.data[2].data.map((item: any) => {
return item.value;
});
});
const chartOption = computed(() => {
return {
grid: {
top: "30px",
left: "60px",
bottom: "50px",
right: "40px"
},
legend: {
show: true,
bottom: 0,
itemWidth: 30, //
// itemGap: 20, //
itemHeight: 10, //
textStyle: {
color: "rgba(255, 255, 255, 0.40)",
fontSize: 12,
padding: [0, 8, 0, 8]
}
},
xAxis: {
type: "category",
data: name_list.value,
axisLabel: {
color: "rgba(255, 255, 255, 0.40)"
}
},
yAxis: {
type: "value",
splitLine: {
lineStyle: {
color: "rgba(255,255,255,0.2)"
}
},
axisLabel: {
color: "rgba(255, 255, 255, 0.40)"
}
},
series: [
{
data: value1_list.value,
type: "bar",
barWidth: "6px",
name: "玩手机",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#2276FC"
},
{
offset: 1,
color: "#2276FC"
}
],
false
)
}
},
{
data: value2_list.value,
type: "bar",
barWidth: "6px",
name: "睡觉",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#FFCF5F"
},
{
offset: 1,
color: "#FFCF5F"
}
],
false
)
}
},
{
data: value3_list.value,
type: "bar",
name: "离岗",
barWidth: "6px",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#5FD5EC"
},
{
offset: 1,
color: "#5FD5EC"
}
],
false
)
}
}
]
};
});
</script>
<style scoped>
.chart-style {
display: flex;
align-items: center;
justify-content: center;
margin-top: 10px;
}
</style>

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

Loading…
Cancel
Save