wupengfei
2025-04-02 b5a0b7dfdb610a2c67f28e6ef9fa714b44ed23ba
feat: init
5个文件已修改
84 ■■■■ 已修改文件
config/config.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/DataBoardCard/DataBoardCard.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/DataBoardCard/DataBoardCardPrice.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/Home.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/config.ts
@@ -4,7 +4,7 @@
  /**
   * @description 网页title
   */
  title: '12333政务服务',
  title: '奖励金审核政务端',
  errorLog: 'production',
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>
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;
src/router/index.ts
@@ -81,7 +81,7 @@
        component: () => import('@/views/Home/Home.vue'),
        meta: {
          rank: 10001,
          title: '首页',
          title: '工作台',
          affix: true,
          rootMenu: true,
        },
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>