From b5a0b7dfdb610a2c67f28e6ef9fa714b44ed23ba Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 02 四月 2025 13:25:55 +0800
Subject: [PATCH] feat: init
---
src/components/DataBoardCard/DataBoardCard.vue | 13 +++++-
src/components/DataBoardCard/DataBoardCardPrice.vue | 8 +++
config/config.ts | 2
src/router/index.ts | 2
src/views/Home/Home.vue | 59 ++++++++++++++++++++++-------
5 files changed, 64 insertions(+), 20 deletions(-)
diff --git a/config/config.ts b/config/config.ts
index 592ec91..53bb2f6 100644
--- a/config/config.ts
+++ b/config/config.ts
@@ -4,7 +4,7 @@
/**
* @description 缃戦〉title
*/
- title: '12333鏀垮姟鏈嶅姟',
+ title: '濂栧姳閲戝鏍告斂鍔$',
errorLog: 'production',
diff --git a/src/components/DataBoardCard/DataBoardCard.vue b/src/components/DataBoardCard/DataBoardCard.vue
index d337f37..3928ffd 100644
--- a/src/components/DataBoardCard/DataBoardCard.vue
+++ b/src/components/DataBoardCard/DataBoardCard.vue
@@ -1,7 +1,7 @@
<template>
<div class="data-board-card-wrapper">
<div class="data-board-card-title">{{ title }}</div>
- <div class="data-board-card-content">
+ <div class="data-board-card-content" :class="contentBetween && 'content-between'">
<slot></slot>
</div>
</div>
@@ -14,9 +14,12 @@
type Props = {
title?: string;
+ contentBetween?: boolean;
};
-const props = withDefaults(defineProps<Props>(), {});
+const props = withDefaults(defineProps<Props>(), {
+ contentBetween: false,
+});
</script>
<style lang="scss" scoped>
@@ -39,6 +42,12 @@
.data-board-card-content {
flex: 1;
min-height: 0;
+
+ &.content-between {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
}
}
</style>
diff --git a/src/components/DataBoardCard/DataBoardCardPrice.vue b/src/components/DataBoardCard/DataBoardCardPrice.vue
index 8ea0630..12d6feb 100644
--- a/src/components/DataBoardCard/DataBoardCardPrice.vue
+++ b/src/components/DataBoardCard/DataBoardCardPrice.vue
@@ -1,5 +1,5 @@
<template>
- <div class="data-board-card-price">
+ <div class="data-board-card-price" :class="isInline && 'inline'">
<div class="data-board-card-value">{{ displayValue }}</div>
<div class="data-board-card-unit">{{ unit }}</div>
</div>
@@ -15,11 +15,13 @@
type Props = {
value?: number;
useThousand?: boolean;
+ isInline?: boolean;
unit?: string;
};
const props = withDefaults(defineProps<Props>(), {
useThousand: true,
+ isInline: false,
unit: '鍏�',
});
@@ -33,6 +35,10 @@
display: flex;
align-items: flex-end;
+ &.inline {
+ display: inline-flex;
+ }
+
.data-board-card-value {
margin-right: 4px;
font-size: 20px;
diff --git a/src/router/index.ts b/src/router/index.ts
index e80a65e..7e3ec75 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -81,7 +81,7 @@
component: () => import('@/views/Home/Home.vue'),
meta: {
rank: 10001,
- title: '棣栭〉',
+ title: '宸ヤ綔鍙�',
affix: true,
rootMenu: true,
},
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 743c705..c5ab28b 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -1,26 +1,48 @@
<template>
<LoadingLayout :loading="isLoading">
<AppContainer>
- <ChunkCell title="寰呭鐞�"> </ChunkCell>
- <ChunkCell title="鏁版嵁鐪嬫澘"> </ChunkCell>
+ <ChunkCell title="寰呭鐞�">
+ <div class="data-board-card-list">
+ <DataBoardCard title="寰呭鏍镐紒涓�" :contentBetween="true">
+ <DataBoardCardPrice :value="20000" :isInline="true" :useThousand="false" unit="瀹�" />
+ <el-button type="primary" link>鍘诲鏍�</el-button>
+ </DataBoardCard>
+ <DataBoardCard title="濂栧姳閲戝緟鍙戞斁" :contentBetween="true">
+ <DataBoardCardPrice :isInline="true" :value="20000" :useThousand="false" unit="瀹�" />
+ <el-button type="primary" link>鍘诲彂鏀�</el-button>
+ </DataBoardCard>
+ </div>
+ </ChunkCell>
+ <ChunkCell title="鏁版嵁鐪嬫澘">
+ <div class="data-board-card-list">
+ <DataBoardCard title="绱宸插鏍镐紒涓�">
+ <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" />
+ </DataBoardCard>
+ <DataBoardCard title="绱宸插鏍搁�氳繃浼佷笟">
+ <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" />
+ </DataBoardCard>
+ <DataBoardCard title="绱鏈鏍搁�氳繃浼佷笟">
+ <DataBoardCardPrice :value="20000" :useThousand="false" unit="瀹�" />
+ </DataBoardCard>
+ <DataBoardCard title="绱宸插彂鏀惧鍔遍噾">
+ <DataBoardCardPrice :value="20000" unit="鍏�" />
+ </DataBoardCard>
+ <DataBoardCard title="绱寰呭彂鏀惧鍔遍噾">
+ <DataBoardCardPrice :value="20000" unit="鍏�" />
+ </DataBoardCard>
+ <DataBoardCard title="绱宸蹭娇鐢ㄥ鍔遍噾">
+ <DataBoardCardPrice :value="20000" unit="鍏�" />
+ </DataBoardCard>
+ </div>
+ </ChunkCell>
</AppContainer>
</LoadingLayout>
</template>
<script setup lang="ts">
-import {
- ProForm,
- ProFormItemV2,
- ProFormSelect,
- ProFormText,
- ProFormCol,
- ProFormColItem,
- ProFormInputNumber,
- ProFormTextArea,
- ProFormRadio,
- ChunkCell,
- AppScrollContainer,
-} from '@bole-core/components';
+import { AppContainer, ChunkCell } from '@bole-core/components';
+import DataBoardCard from '@/components/DataBoardCard/DataBoardCard.vue';
+import DataBoardCardPrice from '@/components/DataBoardCard/DataBoardCardPrice.vue';
defineOptions({
name: 'Home',
@@ -31,4 +53,11 @@
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
+
+.data-board-card-list {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-gap: 40px;
+ padding: 20px;
+}
</style>
--
Gitblit v1.9.1