mirror of
https://github.com/MCSManager/MCSManager.git
synced 2024-12-27 07:59:08 +08:00
Optimize: Card & UI
This commit is contained in:
parent
80052e6afc
commit
aafebeab53
@ -9,4 +9,6 @@
|
|||||||
|
|
||||||
--phone-width: 992px;
|
--phone-width: 992px;
|
||||||
--app-max-width: 1360px;
|
--app-max-width: 1360px;
|
||||||
|
|
||||||
|
--color-always-white: #ffffff;
|
||||||
}
|
}
|
||||||
|
@ -68,14 +68,6 @@ html {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
.global-text-white-border {
|
|
||||||
text-shadow:
|
|
||||||
-1px -1px 0 #ffffff75,
|
|
||||||
1px -1px 0 #ffffff75,
|
|
||||||
-1px 1px 0 #ffffff75,
|
|
||||||
1px 1px 0 #ffffff75;
|
|
||||||
}
|
|
||||||
|
|
||||||
.global-app-container {
|
.global-app-container {
|
||||||
max-width: var(--app-max-width);
|
max-width: var(--app-max-width);
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
@ -23,6 +23,11 @@
|
|||||||
.app-header-wrapper {
|
.app-header-wrapper {
|
||||||
border-bottom: 1px solid var(--color-gray-5);
|
border-bottom: 1px solid var(--color-gray-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Antdv for dark mode
|
||||||
|
.ant-btn-default {
|
||||||
|
background-color: var(--vscode-bg-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-dark-base-color {
|
.app-dark-base-color {
|
||||||
|
@ -378,6 +378,7 @@ const openPhoneMenu = (b = false) => {
|
|||||||
.phone-menu-btn {
|
.phone-menu-btn {
|
||||||
padding: 16px 8px;
|
padding: 16px 8px;
|
||||||
border-bottom: 1px solid var(--color-gray-4);
|
border-bottom: 1px solid var(--color-gray-4);
|
||||||
|
color: var(--color-gray-12);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -394,11 +395,12 @@ const openPhoneMenu = (b = false) => {
|
|||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
color: var(--color-gray-4);
|
color: var(--color-always-white) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.phone-nav-button {
|
.phone-nav-button,
|
||||||
|
.phone-nav-button * {
|
||||||
margin: 0px 6px;
|
margin: 0px 6px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,21 +18,37 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 10px;
|
gap: 12px;
|
||||||
|
|
||||||
.menus-item-center {
|
.menus-item-center {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 30%;
|
width: 30%;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.menus-item-left {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.menus-item-right {
|
||||||
|
text-align: right;
|
||||||
|
flex: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 585px) {
|
@media (max-width: 585px) {
|
||||||
|
.between-menus-container {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.menus-item-center {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
.menus-item-left {
|
.menus-item-left {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.menus-item-center {
|
.menus-item-center,
|
||||||
|
.menus-item-right {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
|
text-align: left !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -42,9 +42,9 @@ const props = defineProps({
|
|||||||
@import "@/assets/global.scss";
|
@import "@/assets/global.scss";
|
||||||
.padding {
|
.padding {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
border: 1px solid var(--card-border-color);
|
|
||||||
}
|
}
|
||||||
.card-panel {
|
.card-panel {
|
||||||
|
border: 1px solid var(--card-border-color);
|
||||||
background-color: var(--background-color-white);
|
background-color: var(--background-color-white);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
@ -13,6 +13,7 @@ import type { NewCardItem } from "../../config/index";
|
|||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
|
|
||||||
import { reportError } from "@/tools/validator";
|
import { reportError } from "@/tools/validator";
|
||||||
|
import { AppstoreOutlined, BarsOutlined } from "@ant-design/icons-vue";
|
||||||
|
|
||||||
const { getCardPool } = useCardPool();
|
const { getCardPool } = useCardPool();
|
||||||
const { insertLayoutItem } = useLayoutConfigStore();
|
const { insertLayoutItem } = useLayoutConfigStore();
|
||||||
@ -60,10 +61,10 @@ const cardCategoryList = [
|
|||||||
label: t("TXT_CODE_d941eb89"),
|
label: t("TXT_CODE_d941eb89"),
|
||||||
value: NEW_CARD_TYPE.INSTANCE
|
value: NEW_CARD_TYPE.INSTANCE
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
label: t("TXT_CODE_765d34e6"),
|
// label: t("TXT_CODE_765d34e6"),
|
||||||
value: NEW_CARD_TYPE.USER
|
// value: NEW_CARD_TYPE.USER
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
label: t("TXT_CODE_76b2a495"),
|
label: t("TXT_CODE_76b2a495"),
|
||||||
value: NEW_CARD_TYPE.OTHER
|
value: NEW_CARD_TYPE.OTHER
|
||||||
@ -95,11 +96,12 @@ const handleTabClick = (value: string) => {
|
|||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<div v-for="card in cardPool" :key="card.id + currentCardCategory">
|
<div v-for="card in cardPool" :key="card.id + currentCardCategory">
|
||||||
<a-row v-if="card.category === currentCardCategory" style="margin-bottom: 20px">
|
<a-row v-if="card.category === currentCardCategory" style="margin-bottom: 48px">
|
||||||
<a-col span="24">
|
<a-col span="24">
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-title :level="4">
|
<a-typography-title :level="4">
|
||||||
<span class="global-text-white-border">
|
<AppstoreOutlined />
|
||||||
|
<span class="ml-4">
|
||||||
{{ card.title }}
|
{{ card.title }}
|
||||||
</span>
|
</span>
|
||||||
</a-typography-title>
|
</a-typography-title>
|
||||||
|
@ -127,14 +127,6 @@ const showCardOperator = (card: ILayoutCard) => {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.is-order-mode[data-card-type="EmptyCard"] {
|
|
||||||
.layout-card-container {
|
|
||||||
border: 1px dashed var(--gray-border-color);
|
|
||||||
background-color: var(--drag-background-color);
|
|
||||||
border-radius: 6px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -10,3 +10,14 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
.is-order-mode[data-card-type="EmptyCard"] {
|
||||||
|
.layout-card-container {
|
||||||
|
border: 1px dashed var(--gray-border-color);
|
||||||
|
background-color: var(--color-gray-3);
|
||||||
|
border-radius: 6px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -21,7 +21,7 @@ watch(state, () => {
|
|||||||
const MAX_TIME = source.length - 1;
|
const MAX_TIME = source.length - 1;
|
||||||
for (const key in source) {
|
for (const key in source) {
|
||||||
const v = source[key] as JsonData;
|
const v = source[key] as JsonData;
|
||||||
v.time = `${MAX_TIME - Number(key) * 1} MIN`;
|
v.time = `${MAX_TIME - Number(key) * 1}s`;
|
||||||
}
|
}
|
||||||
chart.setOption({
|
chart.setOption({
|
||||||
yAxis: {
|
yAxis: {
|
||||||
|
@ -306,14 +306,17 @@ onMounted(async () => {
|
|||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
<a-button class="mr-12">
|
<a-button class="mr-12" style="max-width: 200px; overflow: hidden">
|
||||||
{{
|
<a-typography-paragraph
|
||||||
computeNodeName(
|
:ellipsis="{ rows: 1, expandable: false }"
|
||||||
currentRemoteNode?.ip || "",
|
:content="
|
||||||
currentRemoteNode?.available || true,
|
computeNodeName(
|
||||||
currentRemoteNode?.remarks
|
currentRemoteNode?.ip || '',
|
||||||
)
|
currentRemoteNode?.available || true,
|
||||||
}}
|
currentRemoteNode?.remarks
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
<DownOutlined />
|
<DownOutlined />
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
@ -452,7 +455,7 @@ onMounted(async () => {
|
|||||||
.search-input {
|
.search-input {
|
||||||
transition: all 0.6s;
|
transition: all 0.6s;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 50%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 992px) {
|
@media (max-width: 992px) {
|
||||||
|
@ -21,7 +21,7 @@ watch(state, () => {
|
|||||||
const MAX_TIME = source.length - 1;
|
const MAX_TIME = source.length - 1;
|
||||||
for (const key in source) {
|
for (const key in source) {
|
||||||
const v = source[key] as JsonData;
|
const v = source[key] as JsonData;
|
||||||
v.time = `${MAX_TIME - Number(key) * 1} MIN`;
|
v.time = `${MAX_TIME - Number(key) * 1}s`;
|
||||||
}
|
}
|
||||||
const max = Math.max(...source.map((v) => v.value));
|
const max = Math.max(...source.map((v) => v.value));
|
||||||
chart.setOption({
|
chart.setOption({
|
||||||
|
@ -445,6 +445,7 @@ const innerTerminalType = viewType === "inner";
|
|||||||
}
|
}
|
||||||
|
|
||||||
.terminal-wrapper {
|
.terminal-wrapper {
|
||||||
|
border: 1px solid var(--card-border-color);
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
Loading…
Reference in New Issue
Block a user