From 8313ec2ae0f3ce4bd60378a5182029f677023c29 Mon Sep 17 00:00:00 2001 From: donghao <donghao@supervision.ltd> Date: Wed, 17 Jan 2024 11:33:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=98=BF=E9=87=8C=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0=EF=BC=8C=E8=8F=9C=E5=8D=95=E6=A0=8F?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E4=BC=98=E5=8C=96=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 6 +- locales/en.yaml | 5 +- locales/zh-CN.yaml | 5 +- mock/asyncRoutes.ts | 4 +- .../CustomTree/src/collapseTree.tsx | 37 ++++----- .../CustomTree/src/collapseTreeItem.tsx | 65 +++++++++++---- .../CustomTree/src/collapseTreeStyle.scss | 18 +--- src/layout/components/navbar.vue | 12 +-- src/layout/components/notice/index.vue | 13 ++- src/layout/components/search/index.vue | 2 +- src/layout/components/sidebar/breadCrumb.vue | 4 +- src/layout/components/sidebar/mixNav.vue | 12 ++- src/layout/components/sidebar/vertical.vue | 41 +++++---- src/router/modules/device.ts | 6 +- src/router/modules/home.ts | 26 ------ src/router/modules/server.ts | 14 +++- src/router/modules/workbench.ts | 13 ++- src/router/utils.ts | 2 +- src/style/sidebar.scss | 83 +++---------------- src/style/vars.scss | 25 ++++++ src/utils/mitt.ts | 1 + src/views/workbench/components/SwiperShow.vue | 4 +- 22 files changed, 200 insertions(+), 198 deletions(-) delete mode 100644 src/router/modules/home.ts diff --git a/index.html b/index.html index 9b1e58a..cecee51 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-01-12 14:35:28 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-01-16 14:36:28 + * @LastEditTime: 2024-01-17 10:21:07 * @FilePath: \General-AI-Platform-Web-Client\index.html * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE --> @@ -18,10 +18,10 @@ /> <title>pure-admin-thin</title> <link rel="icon" href="/favicon.ico" /> - <!-- update 2024-01-16 14:44 --> + <!-- update 2024-01-17 10:21 --> <link rel="stylesheet" - href="//at.alicdn.com/t/c/font_4406593_7ayrx5x0q77.css" + href="//at.alicdn.com/t/c/font_4412653_ngfc2cgeuc.css" /> <script> window.process = {}; diff --git a/locales/en.yaml b/locales/en.yaml index 44bb70d..c51ea59 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -23,7 +23,10 @@ buttons: hscontentFullScreen: Content FullScreen hscontentExitFullScreen: Content ExitFullScreen menus: - hshome: Home + hshome: Workbench + hsdevice: Device + hsserver: Server + hstest: Test hslogin: Login hsabnormal: Abnormal Page hsfourZeroFour: "404" diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index de0a399..431f0ca 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -23,7 +23,10 @@ buttons: hscontentFullScreen: 内容区全屏 hscontentExitFullScreen: 内容区退出全屏 menus: - hshome: 首页 + hshome: 工作台 + hsdevice: 设备列表 + hsserver: 服务器 + hstest: 测试 hslogin: 登录 hsabnormal: 异常页面 hsfourZeroFour: "404" diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index 80b1228..c9507a1 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-01-12 14:35:28 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-01-15 13:38:56 + * @LastEditTime: 2024-01-17 11:09:58 * @FilePath: \general-work-web\General-AI-Platform-Web-Client\mock\asyncRoutes.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -22,7 +22,7 @@ const demoRouter = { name: "DemoLeftTree", meta: { title: "测试", - icon: "lollipop", + icon: "", roles: ["admin", "common"], rank: 101 } diff --git a/src/components/CustomTree/src/collapseTree.tsx b/src/components/CustomTree/src/collapseTree.tsx index 0aed69b..b8b9664 100644 --- a/src/components/CustomTree/src/collapseTree.tsx +++ b/src/components/CustomTree/src/collapseTree.tsx @@ -115,29 +115,26 @@ export default defineComponent({ <div class={["arrow", vFirst?.expended ? "activeUp" : ""]} ></div> - <i class="iconfont icon-fuwuqi root_tree_icon"></i> + <i class="iconfont icon-fushebeizu root_tree_icon"></i> <p> {vFirst.name}</p> </div> </div> - <transition name="collapseTree_child_box"> - <div class="box" v-show={vFirst?.expended}> - <ul - class="child_info_box" - v-if={ - Array.isArray(vFirst.childList) && - vFirst.childList.length - } - > - {vFirst.childList.map((item, index) => { - return ( - <li key={index}> - <CollapseTreeItem info={item}></CollapseTreeItem> - </li> - ); - })} - </ul> - </div> - </transition> + <div class="box" v-show={vFirst?.expended}> + {Array.isArray(vFirst.childList) && + vFirst.childList.length && ( + <ul class="child_info_box"> + {vFirst.childList.map((item, index) => { + return ( + <li key={index}> + <CollapseTreeItem + info={item} + ></CollapseTreeItem> + </li> + ); + })} + </ul> + )} + </div> </li> ); })} diff --git a/src/components/CustomTree/src/collapseTreeItem.tsx b/src/components/CustomTree/src/collapseTreeItem.tsx index 7693e13..3212438 100644 --- a/src/components/CustomTree/src/collapseTreeItem.tsx +++ b/src/components/CustomTree/src/collapseTreeItem.tsx @@ -1,5 +1,6 @@ -import { computed, defineComponent } from "vue"; +import { computed, defineComponent, nextTick, onBeforeUnmount, ref } from "vue"; import "./collapseTreeStyle.scss"; +import { emitter } from "@/utils/mitt"; export default defineComponent({ name: "CollapseTreeItem", @@ -11,36 +12,64 @@ export default defineComponent({ }, setup(props) { + const currentTreeNodeId = ref(""); // 树节点id const nodeLatestInfo = computed(() => { //实时的树节点数据 return { ...props.info }; }); + // 选择树节点 + function selectTreeNode() { + emitter.emit( + "changCollapseTreeNodeId", + nodeLatestInfo.value.id as unknown as string + ); + console.log("selectTreeNode", nodeLatestInfo.value.id); + } + + nextTick(() => { + emitter.on("changCollapseTreeNodeId", data => { + currentTreeNodeId.value = data; + }); + }); + + onBeforeUnmount(() => { + // 解绑`changCollapseTreeNodeId`公共事件,防止多次触发 + emitter.off("changCollapseTreeNodeId"); + }); + return () => { return ( <div class={["collapseTreeItem_wrap"]}> - <div class={["collapseTreeItem_info flex"]}> + <div + class={[ + "collapseTreeItem_info flex", + currentTreeNodeId.value === nodeLatestInfo.value.id + ? "text-web-font0" + : "text-web-font2" + ]} + onClick={() => { + selectTreeNode(); + }} + > <span class={["collapseTreeItem_line"]}></span> <div class={["collapseTreeItem_main_info"]}> - <i class="iconfont icon-fuwuqi tree_item_icon"></i> + <i class="iconfont icon-zishebeizu tree_item_icon"></i> <span>{nodeLatestInfo.value.name}</span> </div> </div> - <ul - class="collapseTreeItem_child_info_box" - v-if={ - Array.isArray(nodeLatestInfo.value?.childList) && - nodeLatestInfo.value.childList.length - } - > - {nodeLatestInfo.value.childList?.map((item, index) => { - return ( - <li key={index}> - <CollapseTreeItem info={item}></CollapseTreeItem> - </li> - ); - })} - </ul> + {Array.isArray(nodeLatestInfo.value?.childList) && + nodeLatestInfo.value.childList.length && ( + <ul class="collapseTreeItem_child_info_box"> + {nodeLatestInfo.value.childList?.map((item, index) => { + return ( + <li key={index}> + <CollapseTreeItem info={item}></CollapseTreeItem> + </li> + ); + })} + </ul> + )} </div> ); }; diff --git a/src/components/CustomTree/src/collapseTreeStyle.scss b/src/components/CustomTree/src/collapseTreeStyle.scss index 96246d2..5d558d5 100644 --- a/src/components/CustomTree/src/collapseTreeStyle.scss +++ b/src/components/CustomTree/src/collapseTreeStyle.scss @@ -41,27 +41,19 @@ } .collapseTreeItem_wrap { - // border-radius: 2px; padding-top: 0; - - // padding-left: 10px; - // margin-top: 8px; margin-left: 16px; border-left: 2px solid $--theme-color; .collapseTreeItem_info { position: relative; - color: $--web-font2; .tree_item_icon { padding: 0 8px; } .collapseTreeItem_line { - // background-color: red; display: inline-block; - - // margin-bottom: -10px; width: 16px; height: 16px; margin-top: -1px; @@ -73,15 +65,7 @@ } .collapseTreeItem_main_info { - padding: 2px 5px 8px; - padding-left: 10px; - - // padding-top: 16px; - // position: absolute; - // left: -2px; - // top: 12px; + padding: 2px 5px 8px 0; } - - // .icon-fuwuqi {} } } diff --git a/src/layout/components/navbar.vue b/src/layout/components/navbar.vue index 45e61cc..66423b0 100644 --- a/src/layout/components/navbar.vue +++ b/src/layout/components/navbar.vue @@ -8,14 +8,14 @@ import topCollapse from "./sidebar/topCollapse.vue"; import { useTranslationLang } from "../hooks/useTranslationLang"; import globalization from "@/assets/svg/globalization.svg?component"; import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line"; -import Setting from "@iconify-icons/ri/settings-3-line"; +// import Setting from "@iconify-icons/ri/settings-3-line"; import Check from "@iconify-icons/ep/check"; const { layout, device, logout, - onPanel, + // onPanel, pureApp, username, userAvatar, @@ -98,13 +98,13 @@ const { t, locale, translationCh, translationEn } = useTranslationLang(); </el-dropdown-menu> </template> </el-dropdown> - <span + <!-- <span class="set-icon navbar-bg-hover" :title="t('buttons.hssystemSet')" @click="onPanel" > <IconifyIconOffline :icon="Setting" /> - </span> + </span> --> </div> </div> </template> @@ -135,7 +135,8 @@ const { t, locale, translationCh, translationEn } = useTranslationLang(); align-items: center; justify-content: space-around; height: 48px; - padding: 10px; + + /* padding: 10px; */ color: #000000d9; cursor: pointer; @@ -153,7 +154,6 @@ const { t, locale, translationCh, translationEn } = useTranslationLang(); .breadcrumb-container { float: left; - margin-left: 16px; } } diff --git a/src/layout/components/notice/index.vue b/src/layout/components/notice/index.vue index 3a37720..0a99947 100644 --- a/src/layout/components/notice/index.vue +++ b/src/layout/components/notice/index.vue @@ -1,3 +1,11 @@ +<!-- + * @Author: donghao donghao@supervision.ltd + * @Date: 2024-01-12 14:35:28 + * @LastEditors: donghao donghao@supervision.ltd + * @LastEditTime: 2024-01-17 10:02:25 + * @FilePath: \General-AI-Platform-Web-Client\src\layout\components\notice\index.vue + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE +--> <script setup lang="ts"> import { ref } from "vue"; import { noticesData } from "./data"; @@ -13,7 +21,7 @@ notices.value.map(v => (noticesNum.value += v.list.length)); <template> <el-dropdown trigger="click" placement="bottom-end"> - <span class="dropdown-badge navbar-bg-hover select-none"> + <span class="select-none dropdown-badge navbar-bg-hover"> <el-badge :value="noticesNum" :max="99"> <span class="header-notice-icon"> <IconifyIconOffline :icon="Bell" /> @@ -59,7 +67,8 @@ notices.value.map(v => (noticesNum.value += v.list.length)); align-items: center; justify-content: center; width: 40px; - height: 48px; + + /* height: 48px; */ margin-right: 10px; cursor: pointer; diff --git a/src/layout/components/search/index.vue b/src/layout/components/search/index.vue index bfd9c63..3704b47 100644 --- a/src/layout/components/search/index.vue +++ b/src/layout/components/search/index.vue @@ -11,7 +11,7 @@ function handleSearch() { <template> <div - class="search-container w-[40px] h-[48px] flex-c cursor-pointer navbar-bg-hover" + class="search-container w-[40px] flex-c cursor-pointer navbar-bg-hover" @click="handleSearch" > <IconifyIconOffline :icon="Search" /> diff --git a/src/layout/components/sidebar/breadCrumb.vue b/src/layout/components/sidebar/breadCrumb.vue index ea6e60b..af7a592 100644 --- a/src/layout/components/sidebar/breadCrumb.vue +++ b/src/layout/components/sidebar/breadCrumb.vue @@ -96,7 +96,9 @@ watch( v-for="item in levelList" :key="item.path" > - {{ transformI18n(item.meta.title) }} + <span :class="['text-web-font1 text-[14px] font-bold']">{{ + transformI18n(item.meta.title) + }}</span> </el-breadcrumb-item> </transition-group> </el-breadcrumb> diff --git a/src/layout/components/sidebar/mixNav.vue b/src/layout/components/sidebar/mixNav.vue index 5f85922..9c531df 100644 --- a/src/layout/components/sidebar/mixNav.vue +++ b/src/layout/components/sidebar/mixNav.vue @@ -1,3 +1,11 @@ +<!-- + * @Author: donghao donghao@supervision.ltd + * @Date: 2024-01-12 14:35:28 + * @LastEditors: donghao donghao@supervision.ltd + * @LastEditTime: 2024-01-17 10:03:05 + * @FilePath: \General-AI-Platform-Web-Client\src\layout\components\sidebar\mixNav.vue + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE +--> <script setup lang="ts"> import extraIcon from "./extraIcon.vue"; import Search from "../search/index.vue"; @@ -102,7 +110,7 @@ watch( <!-- 国际化 --> <el-dropdown id="header-translation" trigger="click"> <globalization - class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-none" + class="navbar-bg-hover w-[40px] p-[11px] cursor-pointer outline-none" /> <template #dropdown> <el-dropdown-menu class="translation"> @@ -131,7 +139,7 @@ watch( </el-dropdown> <!-- 退出登录 --> <el-dropdown trigger="click"> - <span class="el-dropdown-link navbar-bg-hover select-none"> + <span class="select-none el-dropdown-link navbar-bg-hover"> <img :src="userAvatar" :style="avatarsStyle" /> <p v-if="username" class="dark:text-white">{{ username }}</p> </span> diff --git a/src/layout/components/sidebar/vertical.vue b/src/layout/components/sidebar/vertical.vue index 37efdc5..39104a3 100644 --- a/src/layout/components/sidebar/vertical.vue +++ b/src/layout/components/sidebar/vertical.vue @@ -2,6 +2,7 @@ import Logo from "./logo.vue"; import { useRoute, useRouter } from "vue-router"; import { emitter } from "@/utils/mitt"; +import { transformI18n } from "@/plugins/i18n"; // import SidebarItem from "./sidebarItem.vue"; // import leftCollapse from "./leftCollapse.vue"; import { useNav } from "@/layout/hooks/useNav"; @@ -43,7 +44,7 @@ const defaultActive = computed(() => !isAllEmpty(route.meta?.activePath) ? route.meta.activePath : route.path ); -const activeName = ref(route.name || "Home"); +const activeName = ref(route.name || "Workbench"); function getSubMenuData() { let path = ""; @@ -131,11 +132,9 @@ onBeforeUnmount(() => { @click="changeRoute(routes)" > <div class="flex justify-center"> - <!-- TODO 使用真实图标 --> - <i style="width: 24px; height: 24px" class="iconfont icon-shouye" /> - <!-- <img style="width: 24px;" src="/logo.svg" alt=""> --> + <i :class="['iconfont', routes.meta?.icon || 'icon-morencaidan']" /> </div> - <p>{{ routes.meta.title }}</p> + <p>{{ transformI18n(routes.meta.title) }}</p> </li> </ul> </el-scrollbar> @@ -143,6 +142,8 @@ onBeforeUnmount(() => { </template> <style lang="scss" scoped> +$--noneSelectedColor: rgb(255 255 255 / 80%); + :deep(.el-loading-mask) { opacity: 0.45; } @@ -157,31 +158,39 @@ onBeforeUnmount(() => { border-radius: 12px; .menu_box { - color: #fff; + font-size: 14px; + color: $--noneSelectedColor; text-align: center; - /* background: red; */ - - /* z-index: 10001; */ & > li { - /* height: 60px; */ - - /* background-color: red; */ padding-top: 16px; + cursor: pointer; & > p { padding-top: 6px; } + .iconfont { + width: 32px; + height: 32px; + font-size: 32px; + line-height: 32px; + border-radius: 8px; + } + &.active { + color: #fff; + /* inset: 0 8px; margin: 4px 0; */ - clear: both; + + /* clear: both; content: ""; background: var(--el-color-primary) !important; - border-radius: 3px; - - /* background-color: #155bd4; */ + border-radius: 3px; */ + .iconfont { + background-color: rgb(255 255 255 / 20%); + } } } } diff --git a/src/router/modules/device.ts b/src/router/modules/device.ts index e984392..823cef7 100644 --- a/src/router/modules/device.ts +++ b/src/router/modules/device.ts @@ -1,8 +1,10 @@ +import { $t } from "@/plugins/i18n"; + export default { path: "/device", meta: { - title: "设备列表", - icon: "homeFilled", + title: $t("menus.hsdevice"), + icon: "icon-shebeiliebiao-weixuan", // showLink: false, rank: 2, roles: ["admin", "common"] diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts deleted file mode 100644 index 817a5ab..0000000 --- a/src/router/modules/home.ts +++ /dev/null @@ -1,26 +0,0 @@ -// import { $t } from "@/plugins/i18n"; -const { VITE_HIDE_HOME } = import.meta.env; -const Layout = () => import("@/layout/index.vue"); - -export default { - path: "/", - name: "Home", - component: Layout, - redirect: "/welcome", - meta: { - icon: "homeFilled", - title: "首页", - rank: 0 - }, - children: [ - { - path: "/welcome", - name: "Welcome", - component: () => import("@/views/welcome/index.vue"), - meta: { - title: "首页", - showLink: VITE_HIDE_HOME === "true" ? false : true - } - } - ] -} as RouteConfigsTable; diff --git a/src/router/modules/server.ts b/src/router/modules/server.ts index 7d04804..1058014 100644 --- a/src/router/modules/server.ts +++ b/src/router/modules/server.ts @@ -1,8 +1,18 @@ +/* + * @Author: donghao donghao@supervision.ltd + * @Date: 2024-01-16 13:25:01 + * @LastEditors: donghao donghao@supervision.ltd + * @LastEditTime: 2024-01-17 11:02:23 + * @FilePath: \General-AI-Platform-Web-Client\src\router\modules\server.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { $t } from "@/plugins/i18n"; + export default { path: "/server", meta: { - title: "服务器", - icon: "homeFilled", + title: $t("menus.hsserver"), + icon: "icon-fuwuqi-weixuan", // showLink: false, rank: 3, roles: ["admin", "common"] diff --git a/src/router/modules/workbench.ts b/src/router/modules/workbench.ts index 54fd37c..f875403 100644 --- a/src/router/modules/workbench.ts +++ b/src/router/modules/workbench.ts @@ -1,8 +1,15 @@ +import { $t } from "@/plugins/i18n"; + +const Layout = () => import("@/layout/index.vue"); + export default { - path: "/workbench", + path: "/", + name: "Workbench", + component: Layout, + redirect: "/workbench", meta: { - title: "工作台", - icon: "homeFilled", + title: $t("menus.hshome"), + icon: "", // showLink: false, rank: 1 }, diff --git a/src/router/utils.ts b/src/router/utils.ts index 2436e2b..2390b80 100644 --- a/src/router/utils.ts +++ b/src/router/utils.ts @@ -33,7 +33,7 @@ function handRank(routeInfo: any) { const { name, path, parentId, meta } = routeInfo; return isAllEmpty(parentId) ? isAllEmpty(meta?.rank) || - (meta?.rank === 0 && name !== "Home" && path !== "/") + (meta?.rank === 0 && name !== "Workbench" && path !== "/") ? true : false : false; diff --git a/src/style/sidebar.scss b/src/style/sidebar.scss index bc12070..0ae8588 100644 --- a/src/style/sidebar.scss +++ b/src/style/sidebar.scss @@ -34,7 +34,8 @@ align-items: center; justify-content: center; width: 40px; - height: 48px; + + // height: 48px; cursor: pointer; } @@ -397,7 +398,8 @@ align-items: center; justify-content: space-around; width: 100%; - height: 48px; + + // height: 48px; background: $menuBg; .horizontal-header-left { @@ -459,13 +461,14 @@ } .dropdown-badge { - height: 48px; + // height: 48px; color: $subMenuActiveText; } .globalization { width: 40px; - height: 48px; + + // height: 48px; padding: 11px; color: $subMenuActiveText; cursor: pointer; @@ -476,7 +479,8 @@ display: flex; align-items: center; justify-content: space-around; - height: 48px; + + // height: 48px; padding: 10px; color: $subMenuActiveText; cursor: pointer; @@ -512,8 +516,8 @@ .submenu-title-noDropdown, .el-sub-menu__title { - height: 48px; - line-height: 48px; + // height: 48px; + // line-height: 48px; background: $menuBg; svg { @@ -640,68 +644,3 @@ body[layout="vertical"] { } } } - -body[layout="horizontal"] { - $sideBarWidth: 0; - - @include merge-style($sideBarWidth); - - .fixed-header, - .main-container { - transition: none !important; - } - - .fixed-header { - width: 100%; - } -} - -body[layout="mix"] { - $sideBarWidth: 210px; - - @include merge-style($sideBarWidth); - - .el-menu--collapse { - width: 54px; - } - - .el-menu { - --el-menu-hover-bg-color: transparent !important; - } - - .hideSidebar { - .fixed-header { - width: calc(100% - 54px); - transition: width var(--pure-transition-duration); - } - - .sidebar-container { - width: 54px !important; - transition: width var(--pure-transition-duration); - - .is-active.submenu-title-noDropdown.outer-most { - background: transparent !important; - } - } - - .main-container { - margin-left: 54px; - } - - /* 菜单折叠 */ - .el-menu--collapse { - .el-sub-menu { - & > .el-sub-menu__title { - padding: 0; - - & > span { - width: 100%; - height: 100%; - text-align: center; - visibility: visible; - } - } - } - } - } -} diff --git a/src/style/vars.scss b/src/style/vars.scss index e238bc6..f42c515 100644 --- a/src/style/vars.scss +++ b/src/style/vars.scss @@ -1,4 +1,29 @@ +$--web-font0: #000; $--web-font1: #333; $--web-font2: #666; $--web-font3: #999; $--theme-color: #154ddd; + +.text-web-font0 { + color: $--web-font0; +} + +.text-web-font1 { + color: $--web-font1; +} + +.text-web-font2 { + color: $--web-font2; +} + +.text-web-font3 { + color: $--web-font3; +} + +.theme-color { + color: $--theme-color; +} + +.theme-bg-color { + background-color: $--theme-color; +} diff --git a/src/utils/mitt.ts b/src/utils/mitt.ts index 63816f1..95853a8 100644 --- a/src/utils/mitt.ts +++ b/src/utils/mitt.ts @@ -8,6 +8,7 @@ type Events = { tagViewsShowModel: string; logoChange: boolean; changLayoutRoute: string; + changCollapseTreeNodeId: string; }; export const emitter: Emitter<Events> = mitt<Events>(); diff --git a/src/views/workbench/components/SwiperShow.vue b/src/views/workbench/components/SwiperShow.vue index 79941b9..49c055c 100644 --- a/src/views/workbench/components/SwiperShow.vue +++ b/src/views/workbench/components/SwiperShow.vue @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-01-12 15:35:09 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-01-12 17:45:12 + * @LastEditTime: 2024-01-17 11:31:24 * @FilePath: \general-work-web\General-AI-Platform-Web-Client\src\views\workbench\components\SwiperShow.vue * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE --> @@ -62,7 +62,7 @@ const modules = [Navigation, Pagination, Scrollbar, A11y, Autoplay]; @swiper="onSwiper" @slideChange="onSlideChange" > - <swiper-slide v-for="(v, k) in swiperList" :key="k"> + <swiper-slide v-for="(v, k) in swiperList" :key="k + ''"> <img :src="v.url" alt="" /> </swiper-slide> </swiper>