浏览代码

style: 暂时隐藏多余ui + 弹窗样式

zhaonan 6 天之前
父节点
当前提交
a0ce62b47d
共有 6 个文件被更改,包括 86 次插入32 次删除
  1. 4 0
      src/assets/icon/title.svg
  2. 3 0
      src/utils/utils.js
  3. 3 3
      src/views/layout.css
  4. 4 3
      src/views/layout.html
  5. 71 24
      src/views/layout.vue
  6. 1 2
      src/views/servers/create.vue

+ 4 - 0
src/assets/icon/title.svg

@@ -0,0 +1,4 @@
+<svg width="35" height="27" viewBox="0 0 35 27" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M28.4924 11.5385H0L5.71176 0.384521H34.1377L28.4924 11.5385Z" fill="#1E65FF"/>
+<path opacity="0.5" d="M26.2341 15.5085H11.4234L11.0913 16.1702C8.56752 21.0383 13.3495 26.1899 20.456 26.6153L26.2341 15.5085Z" fill="#1E65FF"/>
+</svg>

+ 3 - 0
src/utils/utils.js

@@ -399,6 +399,9 @@ export default function useUtils() {
 
 				dialog.style("width", width)
 				dialog.style("height", height)
+				dialog.style("position", "absolute")
+				dialog.style("top", "130px");
+				dialog.style("border-radius", "8px");
 				const dialogInstance = dialog.show()
 				popupState.dialogInstance = dialogInstance
 

+ 3 - 3
src/views/layout.css

@@ -233,9 +233,9 @@ div.margin, p.margin {
 }
 
 .main .child-box {
-	padding: 30px;
-	min-height: calc(100vh - 100px);
-	background-color: white;
+	/* padding: 30px; */
+	/* min-height: calc(100vh - 100px); */
+	/* background-color: white; */
 }
 
 /** 右侧文本子菜单 **/

+ 4 - 3
src/views/layout.html

@@ -4,11 +4,12 @@
     <meta charset="UTF-8"/>
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <title>{$ htmlEncode .teaTitle}</title>
-    {$if eq .teaFaviconFileId 0}
+    <!-- 本地开发注释,后续可能需要打开 devTest -->
+    <!-- {$if eq .teaFaviconFileId 0} -->
     <link rel="shortcut icon" href="/images/favicon.png"/>
-    {$else}
+    <!-- {$else} -->
     <link rel="shortcut icon" href="/ui/image/{$.teaFaviconFileId}"/>
-    {$end}
+    <!-- {$end} -->
 </head>
 <body>
 <div id="app"></div>

+ 71 - 24
src/views/layout.vue

@@ -3,7 +3,7 @@ import "./layout.css"
 import "@/assets/table.css"
 import Context from "./layout.js"
 import ctxRef from "@/utils/ctx_ref.js";
-import {provide, ref} from "vue";
+import { provide, ref } from "vue";
 import BasicLayout from "@/layouts/BasicLayout.vue";
 import TMenubar from "@/components/ui/TMenubar.vue";
 import TMenuAccordion from "@/components/ui/TMenuAccordion.vue";
@@ -37,24 +37,38 @@ const showMainMenu = () => {
 		<div class="top-nav">
 			<TMenubar>
 				<template #start>
-					<a href="" class="inline-block sm:hidden" :class="{'bg-gray-200': mainMenuVisible, '!bg-transparent': !mainMenuVisible}" @click.prevent="showMainMenu"><i class="icon bars"></i></a>
+					<a href="" class="inline-block sm:hidden"
+						:class="{ 'bg-gray-200': mainMenuVisible, '!bg-transparent': !mainMenuVisible }"
+						@click.prevent="showMainMenu"><i class="icon bars"></i></a>
 					<a href="/dashboard" class="hidden sm:flex">
-						<i class="ui icon cloud" v-if="ctx.teaCommon.teaLogoFileId == 0"></i><img v-if="ctx.teaCommon.teaLogoFileId > 0" :src="'/ui/image/' + ctx.teaCommon.teaLogoFileId" style="width: auto;height: 1.6em" alt="Logo" class="dark:invert"/> &nbsp; {{ ctx.teaTitle }}&nbsp;<sup v-if="ctx.teaCommon.teaShowVersion">v{{ ctx.teaVersion }}</sup><sup v-if="ctx.teaFrontMode == 'proxy'">front:{{ctx.teaFrontMode}}</sup> &nbsp;
+						<div class="flex gap-[8px] items-center">
+							<span class="title-icon text-[24px] text-[#1e65ff]"></span>
+							<span class="font-bold text-[24px]">Faven.</span>
+						</div>
+						<!-- <i class="ui icon cloud" v-if="ctx.teaCommon.teaLogoFileId == 0"></i><img
+							v-if="ctx.teaCommon.teaLogoFileId > 0" :src="'/ui/image/' + ctx.teaCommon.teaLogoFileId"
+							style="width: auto;height: 1.6em" alt="Logo" class="dark:invert" /> &nbsp; {{ ctx.teaTitle
+						}}&nbsp;<sup v-if="ctx.teaCommon.teaShowVersion">v{{ ctx.teaVersion }}</sup><sup
+							v-if="ctx.teaFrontMode == 'proxy'">front:{{ ctx.teaFrontMode }}</sup> &nbsp; -->
 					</a>
 				</template>
 				<template #end>
 					<div class="flex flex-wrap items-center">
-						<a href="/messages" class="item" :class="{active:ctx.teaMenu == 'message'}"><span :class="{'blink':ctx.globalMessageBadge > 0}" class="flex items-center gap-0.5"><i class="icon bell mr-1"></i><span class="hidden sm:inline-block">消息({{ ctx.globalMessageBadge }}) </span></span></a>
-						<a href="/settings/profile" class="item" :class="{active:ctx.teaMenu == 'settings'}">
+						<a href="/messages" class="item" :class="{ active: ctx.teaMenu == 'message' }"><span
+								:class="{ 'blink': ctx.globalMessageBadge > 0 }" class="flex items-center gap-0.5"><i
+									class="icon bell mr-1"></i><span class="hidden sm:inline-block">消息({{
+										ctx.globalMessageBadge }}) </span></span></a>
+						<a href="/settings/profile" class="item" :class="{ active: ctx.teaMenu == 'settings' }">
 							<i class="icon setting mr-1"></i><span class="hidden sm:inline-block">设置</span>
 						</a>
 						<a href="/" class="item" v-show="ctx.teaShowIndexPage">
 							<i class="icon home"></i><span class="hidden sm:inline-block">&nbsp;首页</span>
 						</a>
-						<a href="/docs" class="item" :class="{active: ctx.teaMenu == 'docs'}"><i class="icon file mr-1"></i><span class="hidden sm:inline-block">文档</span></a>
+						<a href="/docs" class="item" :class="{ active: ctx.teaMenu == 'docs' }"><i
+								class="icon file mr-1"></i><span class="hidden sm:inline-block">文档</span></a>
 						<a href="/settings/profile" class="item">
 							<i class="icon user mr-1" v-if="ctx.teaUserAvatar.length == 0"></i>
-							<img class="avatar" alt="" :src="ctx.teaUserAvatar" v-if="ctx.teaUserAvatar.length > 0"/>
+							<img class="avatar" alt="" :src="ctx.teaUserAvatar" v-if="ctx.teaUserAvatar.length > 0" />
 							<span class="hidden sm:inline-block">{{ ctx.teaCommon.teaUsername }}</span>
 						</a>
 						<!-- color scheme -->
@@ -64,7 +78,8 @@ const showMainMenu = () => {
 							<span class="hidden sm:inline-block" v-if="ctx.currentColorScheme == 'dark'">暗色</span>
 							<span class="hidden sm:inline-block" v-if="ctx.currentColorScheme == 'light'">亮色</span>
 						</a>
-						<a :href="ctx.$url('logout')" class="item" title="安全退出登录"><i class="icon sign out mr-1"></i><span class="hidden sm:inline-block">退出</span></a>
+						<a :href="ctx.$url('logout')" class="item" title="安全退出登录"><i
+								class="icon sign out mr-1"></i><span class="hidden sm:inline-block">退出</span></a>
 					</div>
 				</template>
 			</TMenubar>
@@ -81,46 +96,68 @@ const showMainMenu = () => {
 		</div>
 
 		<!-- 右侧主操作栏 -->
-		<div class="main" :class="{'opacity-30': mainMenuVisible}">
+		<div class="main" :class="{ 'opacity-30': mainMenuVisible }">
 			<!-- 操作菜单 -->
 			<div class="mb-4 -mt-3">
 				<TTabView v-if="ctx.teaTabbar.length > 1" code="RANDOM" :value="ctx.tabValue" @change="ctx.changeTab">
 					<TTabs>
-						<TTab v-for="(item, index) in ctx.teaTabbar" :code="item.url" @click="ctx.clickTab($event, item)" :disabled="item.isDisabled && !item.isActive">
+						<TTab v-for="(item, index) in ctx.teaTabbar" :code="item.url"
+							@click="ctx.clickTab($event, item)" :disabled="item.isDisabled && !item.isActive">
 							<!-- TODO, right, title, icon, subName -->
 							<!-- right:item.isRight, title: item.isTitle, icon: item.icon != null && item.icon.length > 0-->
 
 							<var class="not-italic">
 								<span>{{ item.name }}</span>
 								<span v-if="item.subName.length > 0">({{ item.subName }})</span>
-								<i class="icon small" :class="item.icon" v-if="index == 0 && item.icon != null && item.icon.length > 0"></i>
+								<i class="icon small" :class="item.icon"
+									v-if="index == 0 && item.icon != null && item.icon.length > 0"></i>
 							</var>
-							<var class="not-italic" v-if="item.isTitle && typeof ctx.node == 'object'">{{ ctx.node.name }}</var>
+							<var class="not-italic" v-if="item.isTitle && typeof ctx.node == 'object'">{{ ctx.node.name
+							}}</var>
 						</TTab>
 					</TTabs>
 				</TTabView>
 			</div>
-			
+
 			<!-- 功能区 -->
 			<div class="main-box md:mb-0">
 				<RouterView :key="$route.fullPath"></RouterView>
 			</div>
 
 			<!-- 底部 -->
-			<div class="footer md:fixed left-0 right-0 bottom-0 z-50 flex flex-wrap gap-8 leading-10 py-2 bg-black border-t-2 border-gray-200 dark:border-gray-700 pl-4" v-if="ctx.teaShowPageFooter && ctx.teaPageFooterHTML.length == 0">
+			<div class="footer md:fixed left-0 right-0 bottom-0 z-50 flex flex-wrap gap-8 leading-10 py-2 bg-black border-t-2 border-gray-200 dark:border-gray-700 pl-4"
+				v-if="ctx.teaShowPageFooter && ctx.teaPageFooterHTML.length == 0">
 				<a class="item" title="点击进入检查版本更新页面">{{ ctx.teaName }} v{{ ctx.teaVersion }}</a>
 			</div>
-			<div class="footer md:fixed left-0 right-0 bottom-0 z-50 flex flex-wrap gap-8 leading-10 py-2 bg-black border-t-2 border-gray-200 dark:border-gray-700 pl-4" v-if="ctx.teaShowPageFooter && ctx.teaPageFooterHTML.length > 0" v-html="ctx.teaPageFooterHTML"></div>
+			<div class="footer md:fixed left-0 right-0 bottom-0 z-50 flex flex-wrap gap-8 leading-10 py-2 bg-black border-t-2 border-gray-200 dark:border-gray-700 pl-4"
+				v-if="ctx.teaShowPageFooter && ctx.teaPageFooterHTML.length > 0" v-html="ctx.teaPageFooterHTML"></div>
 		</div>
 	</BasicLayout>
 </template>
 
 <style scoped lang="postcss">
-:deep(td a), :deep(.comment a), :deep(form a) {
+.title-icon {
+	width: 1em;
+	height: 1em;
+	mask-image: var(--svg);
+	--svg: url(@/assets/icon/title.svg);
+	background-color: currentColor;
+	display: inline-block;
+	-webkit-mask-size: 100% 100%;
+	mask-size: 100% 100%;
+	-webkit-mask-repeat: no-repeat;
+	mask-repeat: no-repeat;
+}
+
+:deep(td a),
+:deep(.comment a),
+:deep(form a) {
 	color: var(--p-primary-color);
 }
 
-:deep(td a:hover), :deep(.comment a:hover), :deep(.form a:hover) {
+:deep(td a:hover),
+:deep(.comment a:hover),
+:deep(.form a:hover) {
 	color: var(--p-primary-700);
 }
 
@@ -212,7 +249,8 @@ const showMainMenu = () => {
 	@apply bg-gray-100 dark:bg-gray-700 rounded-md;
 }
 
-.hover-span, .hover-span a {
+.hover-span,
+.hover-span a {
 	@apply flex items-center gap-2;
 }
 
@@ -220,7 +258,8 @@ const showMainMenu = () => {
 	width: 10em;
 }
 
-p.comment em, div.comment em {
+p.comment em,
+div.comment em {
 	font-style: italic;
 }
 
@@ -241,7 +280,8 @@ p.comment em, div.comment em {
 }
 
 /** footer **/
-.footer a, .footer :deep(a) {
+.footer a,
+.footer :deep(a) {
 	@apply text-white;
 }
 
@@ -251,8 +291,9 @@ p.comment em, div.comment em {
 }
 
 .main-box {
-	/* padding: 30px; */
-	/* min-height: calc(100vh - 100px); */
+	background-color: #FFFFFF;
+	padding: 30px;
+	min-height: calc(100vh - 100px);
 }
 
 :deep(.p-menu-item-link) {
@@ -262,19 +303,25 @@ p.comment em, div.comment em {
 	color: rgba(49, 49, 49, 1);
 	padding: 12px 20px;
 }
+
 :deep(.p-menu-list) {
 	padding: 10px 10px;
 }
+
 :deep(.p-menu-item-link.on) {
 	text-decoration: none;
 }
+
 :deep(.t-active-item) {
-	color: rgba(30, 101, 255, 1)!important;
+	color: rgba(30, 101, 255, 1) !important;
 }
 </style>
 <style lang="postcss">
 .dark {
-	td a:hover, .comment a:hover, .form a:hover {
+
+	td a:hover,
+	.comment a:hover,
+	.form a:hover {
 		color: var(--p-primary-200);
 	}
 }

+ 1 - 2
src/views/servers/create.vue

@@ -34,8 +34,7 @@ const ctx = ctxRef(new Context(), {
 		需要管理员在后台设置当前用户所属集群后才能继续操作。
 	</WarningMessage>
 
-	<PostForm action="$" @success="ctx.success" @fail="ctx.fail" v-show="ctx.clusterId > 0"
-		class="ml-[30px] mt-[20px] mr-[29px]">
+	<PostForm action="$" @success="ctx.success" @fail="ctx.fail" v-show="ctx.clusterId > 0">
 		<DefinitionTable>
 			<tbody>
 				<tr>