From 406a398a94d54b854472063f219ae87e8fcf4a98 Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期三, 21 八月 2024 09:50:20 +0800 Subject: [PATCH] fix: 组件 --- src/views/oneThree/unit/index.vue | 7 + src/assets/images/icon-house.png | 0 src/assets/svg/icon-people.svg | 1 src/views/components/the-icon-card/index.vue | 112 ++++++++++----- src/assets/images/people.png | 0 src/layout/components/app-header-right/index.vue | 4 src/views/oneThree/actualPopulation/index.vue | 7 + src/config/router/oneThree.ts | 57 ++++++++ src/assets/svg/icon-house.svg | 1 src/views/oneThree/house/index.vue | 7 + src/views/oneThree/comprehensiveQuery/index.vue | 86 ++++++++++++ src/views/components/the-box-card/index.vue | 135 +++++++++++++++++++ src/styles/index.scss | 2 src/assets/svg/menu-house.svg | 1 14 files changed, 379 insertions(+), 41 deletions(-) diff --git a/src/assets/images/icon-house.png b/src/assets/images/icon-house.png new file mode 100644 index 0000000..7cc56e8 --- /dev/null +++ b/src/assets/images/icon-house.png Binary files differ diff --git a/src/assets/images/people.png b/src/assets/images/people.png new file mode 100644 index 0000000..153b77e --- /dev/null +++ b/src/assets/images/people.png Binary files differ diff --git a/src/assets/svg/icon-house.svg b/src/assets/svg/icon-house.svg new file mode 100644 index 0000000..989f7d6 --- /dev/null +++ b/src/assets/svg/icon-house.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1724140529007" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3660" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M755.2 972.8H268.8c-68.266667 0-128-64-128-119.466667v-320c0-17.066667 12.8-34.133333 34.133333-34.133333s34.133333 12.8 34.133334 34.133333V853.333333c0 17.066667 29.866667 51.2 64 51.2h486.4c38.4 0 64-38.4 64-51.2v-320c0-17.066667 12.8-34.133333 34.133333-34.133333s34.133333 12.8 34.133333 34.133333V853.333333c-4.266667 51.2-68.266667 119.466667-136.533333 119.466667z" fill="#0091FF" p-id="3661"></path><path d="M938.666667 503.466667c-8.533333 0-17.066667-4.266667-21.333334-8.533334l-366.933333-320c-21.333333-17.066667-59.733333-17.066667-81.066667 0l-366.933333 320c-12.8 12.8-34.133333 8.533333-46.933333-4.266666-12.8-12.8-8.533333-34.133333 4.266666-46.933334L430.933333 128c46.933333-42.666667 115.2-42.666667 162.133334 0l366.933333 320c12.8 12.8 12.8 29.866667 4.266667 46.933333-8.533333 4.266667-17.066667 8.533333-25.6 8.533334zM682.666667 972.8h-85.333334c-42.666667 0-76.8-34.133333-76.8-76.8v-256c0-64 51.2-119.466667 119.466667-119.466667s119.466667 51.2 119.466667 119.466667v256c0 42.666667-34.133333 76.8-76.8 76.8z m-42.666667-384c-29.866667 0-51.2 25.6-51.2 51.2v256c0 4.266667 4.266667 8.533333 8.533333 8.533333h85.333334c4.266667 0 8.533333-4.266667 8.533333-8.533333v-256c0-29.866667-21.333333-51.2-51.2-51.2zM384 716.8H341.333333c-42.666667 0-76.8-34.133333-76.8-72.533333v-42.666667c0-42.666667 34.133333-76.8 76.8-76.8h42.666667c42.666667 0 76.8 34.133333 76.8 76.8v42.666667c0 38.4-34.133333 72.533333-76.8 72.533333z m-42.666667-128c-4.266667 0-8.533333 4.266667-8.533333 8.533333v42.666667c0 4.266667 4.266667 8.533333 8.533333 8.533333h42.666667c4.266667 0 8.533333-4.266667 8.533333-8.533333v-42.666667c0-4.266667-4.266667-8.533333-8.533333-8.533333H341.333333z" fill="#0091FF" p-id="3662"></path></svg> \ No newline at end of file diff --git a/src/assets/svg/icon-people.svg b/src/assets/svg/icon-people.svg new file mode 100644 index 0000000..4a203d1 --- /dev/null +++ b/src/assets/svg/icon-people.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1724140637720" class="icon" viewBox="0 0 1126 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4778" xmlns:xlink="http://www.w3.org/1999/xlink" width="35.1875" height="32"><path d="M312.8832 612.1216a363.9552 363.9552 0 0 0 153.6 33.2544c55.7824 0 108.1856-12.1088 153.5744-33.2544h49.024c141.0048 0 256.3072 116.7872 256.3072 259.4816v28.5952c0 61.824-49.9712 112.4352-111.0528 112.4352H118.6304c-61.056 0-111.0528-50.6112-111.0528-112.4352v-28.5952c0-142.72 115.3536-259.4816 256.3328-259.4816h48.9728z m729.9072-168.3712c32.768 0.64 58.752 24.064 58.0096 52.352-0.7168 27.392-26.2656 49.408-58.0096 50.0224h-154.3168c-32.768 0.64-59.9552-21.76-60.6976-50.0224-0.7424-28.2624 25.2416-51.712 58.0096-52.352h157.0048z m-1.3312-204.8c32.768 0 59.392 30.5664 59.392 68.2496 0 37.7088-26.624 68.2752-59.392 68.2752h-154.3168c-32.7936 0-59.392-30.5664-59.392-68.2752 0-37.6832 26.5984-68.2496 59.392-68.2496h154.3168zM466.4832 11.3664c144.8192 0 262.2464 119.552 262.2464 267.008s-117.4784 267.008-262.2464 267.008c-144.7936 0-262.2464-119.552-262.2464-267.008S321.7408 11.3664 466.4832 11.3664z m575.744 56.9088c33.1008 0.64 59.3408 24.064 58.5728 52.352-0.7168 27.392-26.5216 49.408-58.5728 50.048h-155.8528c-33.1008-0.64-59.3408-24.064-58.5984-52.352 0.7168-27.392 26.5472-49.408 58.5984-50.048h155.8528z" fill="#1afa29" p-id="4779"></path></svg> \ No newline at end of file diff --git a/src/assets/svg/menu-house.svg b/src/assets/svg/menu-house.svg new file mode 100644 index 0000000..44fd0e6 --- /dev/null +++ b/src/assets/svg/menu-house.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1724137249929" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1477" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M34.133333 887.466667h955.733334v68.266666H34.133333z" p-id="1478"></path><path d="M509.994667 105.216a34.133333 34.133333 0 0 1 2.005333 11.52V955.733333H136.533333V252.928A68.266667 68.266667 0 0 1 181.845333 188.586667l284.544-104.106667a34.133333 34.133333 0 0 1 43.605334 20.693333zM409.6 750.933333H341.333333v68.266667h68.266667v-68.266667z m-102.4 0H238.933333v68.266667h68.266667v-68.266667z m102.4-170.666666H341.333333v68.266666h68.266667v-68.266666z m-102.4 0H238.933333v68.266666h68.266667v-68.266666z m102.4-170.666667H341.333333v68.266667h68.266667V409.6z m-102.4 0H238.933333v68.266667h68.266667V409.6z m102.4-170.666667H341.333333v68.266667h68.266667V238.933333z m219.392-105.813333l3.498667 1.92 257.024 117.973333a68.266667 68.266667 0 0 1 31.829333 52.053334l0.256 5.845333V955.733333h-341.333333V163.968a34.133333 34.133333 0 0 1 48.725333-30.848z m19.541333 84.394667V887.466667H853.333333l0.042667-573.653334L853.333333 311.509333 648.533333 217.514667zM785.066667 750.933333v68.266667h-68.266667v-68.266667h68.266667z m0-170.666666v68.266666h-68.266667v-68.266666h68.266667z m0-170.666667v68.266667h-68.266667V409.6h68.266667z" p-id="1479"></path></svg> \ No newline at end of file diff --git a/src/config/router/oneThree.ts b/src/config/router/oneThree.ts new file mode 100644 index 0000000..4907f78 --- /dev/null +++ b/src/config/router/oneThree.ts @@ -0,0 +1,57 @@ +import { RouteConfig } from "types"; +import Layout from "@/layout/index.vue"; + +const routers: RouteConfig[] = [ + { + path: "/oneThree", + name: "oneThree", + meta: { + title: "缁煎悎鏌ヨ", + icon: "menu-house", + sort: 2 + }, + redirect: "/oneThree/comprehensiveQuery", + component: Layout, + children: [ + { + path: "/oneThree/comprehensiveQuery", + name: "comprehensive-query", + meta: { + title: "缁煎悎鏌ヨ", + sort: 16, + keepAliveName: "comprehensiveQuery" + }, + component: () => import("@/views/oneThree/comprehensiveQuery/index.vue") + }, + { + path: "/oneThree/actualPopulation", + name: "actual-population", + meta: { + title: "瀹炴湁浜哄彛", + sort: 14 + }, + component: () => import("@/views/oneThree/actualPopulation/index.vue") + }, + { + path: "/oneThree/house", + name: "oneThree-house", + meta: { + title: "瀹炴湁鎴垮眿", + sort: 13 + }, + component: () => import("@/views/oneThree/house/index.vue") + }, + { + path: "/oneThree/unit", + name: "oneThree-unit", + meta: { + title: "瀹炴湁鍗曚綅", + sort: 12 + }, + component: () => import("@/views/oneThree/unit/index.vue") + } + ] + } +]; + +export default routers; diff --git a/src/layout/components/app-header-right/index.vue b/src/layout/components/app-header-right/index.vue index fc3f764..0286840 100644 --- a/src/layout/components/app-header-right/index.vue +++ b/src/layout/components/app-header-right/index.vue @@ -2,7 +2,7 @@ <div class="app-header-right"> <div class="right-side"> <div class="side-item"> - <a-dropdown @select="changeLocale"> + <!-- <a-dropdown @select="changeLocale"> <div class="nav-btn"> <a-tooltip :content="$t('璇█')"> <a-button class="nav-btn" type="outline" :shape="'circle'"> @@ -18,7 +18,7 @@ {{ item.label }} </a-doption> </template> - </a-dropdown> + </a-dropdown> --> </div> <div class="side-item"> <a-dropdown @select="handleThemeChange"> diff --git a/src/styles/index.scss b/src/styles/index.scss index 22d43a1..e07e6a8 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,5 +1,5 @@ @import "transition.scss"; -@import "style-web.scss"; +// @import "style-web.scss"; html { font-size: 10vw; diff --git a/src/views/components/the-box-card/index.vue b/src/views/components/the-box-card/index.vue new file mode 100644 index 0000000..0e28087 --- /dev/null +++ b/src/views/components/the-box-card/index.vue @@ -0,0 +1,135 @@ +<template> + <div class="the-box-card" :class="currentThemeMode === 'dark' ? 'box-card-dark' : ''"> + <a-card class="card-box"> + <div class="card-title"> + <div class="title-left"> + <icon-home /> + <div style="margin-left: 10px">A灏忓尯</div> + </div> + <div class="card-more">璇︽儏 ></div> + </div> + <div class="card-content"> + <div :span="8" class="card-box-col"> + <div class="card-box-title"> + <div>瀹炵敤浜哄彛</div> + <div>></div> + </div> + <div>2323 浜�</div> + </div> + <div :span="8" class="card-box-col"> + <div class="card-box-title"> + <div>瀹炵敤浜哄彛</div> + <div>></div> + </div> + <div>2323 浜�</div> + </div> + <div :span="8" class="card-box-col"> + <div class="card-box-title"> + <div>瀹炵敤浜哄彛</div> + <div>></div> + </div> + <div>2323 浜�</div> + </div> + </div> + <div class="card-content"></div> + </a-card> + </div> +</template> +<script lang="ts" setup name="TheIconCard"> +import { useTheme } from "@/hooks/useTheme"; +import { Svg } from "@easyfe/admin-component"; + +const { themeModeOptions, currentThemeMode, handleThemeChange } = useTheme(); +const props = withDefaults( + defineProps<{ + icon?: string; + title?: string; + unit?: string; + metering?: number; + }>(), + { + icon: "", + title: "", + unit: "", + metering: 0 + } +); +// const dateType = ref("hour"); + +// const emits = defineEmits<{ +// (e: "init", value: echarts.ECharts): void; +// }>(); + +// function initChart(v: any) { +// emits("init", v); +// } +</script> +<style lang="scss" scoped> +.box-card-dark { + .card-box { + // display: flex; + } +} +.the-box-card { + border-radius: 5px; + box-sizing: border-box; + margin-right: 10px; + min-width: 188px; + width: 382.5px; + max-height: 257px; + border-radius: 5px; + opacity: 1; + .card-title { + display: flex; + justify-content: space-between; + align-items: center; + .title-left { + display: flex; + color: rgb(var(--link-6)); + font-size: 20px; + } + .card-more { + color: var(--color-text-3); + font-size: 14px; + } + } + .card-content { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 13px; + .card-box-col { + background-color: var(--color-bg-3); + // margin-right: 10px; + width: 108px; + height: 70px; + border-radius: 5px; + padding: 10px; + line-height: 24px; + .card-box-title { + display: flex; + justify-content: space-between; + align-items: center; + color: var(--color-text-3); + font-size: 14px; + } + } + } + + .card-box { + width: 100%; + height: 100%; + } + :deep(.arco-card-body) { + // display: flex; + // align-items: center; + // justify-content: center; + } + .card-content { + // margin-left: 20px; + // line-height: 22px; + // color: var(--color-text-1); + // font-size: 12px; + } +} +</style> diff --git a/src/views/components/the-icon-card/index.vue b/src/views/components/the-icon-card/index.vue index 8f598c6..a541fa1 100644 --- a/src/views/components/the-icon-card/index.vue +++ b/src/views/components/the-icon-card/index.vue @@ -1,55 +1,91 @@ <template> - <div class="icon-card"></div> + <div class="icon-card" :class="currentThemeMode === 'dark' ? 'card-dark' : ''"> + <a-card class="card-box"> + <div class="card-icon" :style="dynamicStyle"> + <Svg :name="icon" :width="26" :height="26"></Svg> + <!-- <img src="../../../assets/images/icon-house.png" alt="" /> --> + </div> + <div class="card-content"> + <p>{{ title }}</p> + <p> + <span>{{ metering }}</span> + <span>{{ unit }}</span> + </p> + </div> + </a-card> + </div> </template> -<script lang="ts" setup name="TheChartCard"> +<script lang="ts" setup name="TheIconCard"> +import { useTheme } from "@/hooks/useTheme"; +import { Svg } from "@easyfe/admin-component"; + +const { themeModeOptions, currentThemeMode, handleThemeChange } = useTheme(); const props = withDefaults( defineProps<{ - chartConfig?: ChartType; + icon?: string; title?: string; + unit?: string; + metering?: number; + colorBg?: string; }>(), { - chartConfig: undefined, - title: "" + icon: "", + title: "", + unit: "", + metering: 0, + colorBg: "#fff" } ); -const dateType = ref("hour"); -const emits = defineEmits<{ - (e: "init", value: echarts.ECharts): void; -}>(); - -function initChart(v: any) { - emits("init", v); -} +const colorBg = computed(() => { + return props.colorBg; +}); +const dynamicStyle = { + backgroundColor: colorBg.value // 鍔ㄦ�佽儗鏅壊 +}; </script> <style lang="scss" scoped> -.icon-card { - background-color: $bg2; - width: 100%; - padding: 24px; - margin-top: 20px; - .top { +.card-dark { + .card-box { + border: 1px solid #0e9cff; display: flex; align-items: center; - justify-content: space-between; - padding-bottom: 20px; - .left { - font-size: 18px; - font-weight: 700; - position: relative; - padding-left: 18px; - &::before { - position: absolute; - top: 50%; - left: 0; - width: 8px; - height: 8px; - background-color: #315efb; - border: 1px solid #b4c0da; - transform: translateY(-50%); - content: " "; - } - } + // justify-content: center; + } +} +.icon-card { + min-width: 88px; + max-width: 208px; + width: 100%; + min-height: 77px; + border-radius: 4px; + box-sizing: border-box; + margin-right: 10px; + .card-box { + width: 100%; + height: 100%; + } + .card-icon { + width: 50px; + height: 50px; + + border-radius: 10px; + opacity: 1; + // background: #2e85ff; + display: flex; + align-items: center; + justify-content: center; + } + :deep(.arco-card-body) { + display: flex; + align-items: center; + // justify-content: center; + } + .card-content { + margin-left: 20px; + line-height: 22px; + color: var(--color-text-1); + font-size: 12px; } } </style> diff --git a/src/views/oneThree/actualPopulation/index.vue b/src/views/oneThree/actualPopulation/index.vue index e69de29..01508db 100644 --- a/src/views/oneThree/actualPopulation/index.vue +++ b/src/views/oneThree/actualPopulation/index.vue @@ -0,0 +1,7 @@ +<template> + <div class="actualPopulation">瀹炴湁浜哄彛</div> +</template> + +<script lang="ts" setup name="actualPopulation"></script> + +<style lang="scss" scoped></style> diff --git a/src/views/oneThree/comprehensiveQuery/index.vue b/src/views/oneThree/comprehensiveQuery/index.vue index e69de29..cbbf7fb 100644 --- a/src/views/oneThree/comprehensiveQuery/index.vue +++ b/src/views/oneThree/comprehensiveQuery/index.vue @@ -0,0 +1,86 @@ +<template> + <!-- 缁煎悎鏌ヨ --> + <div class="comprehensiveQuery"> + <div class="top-title"> + <the-icon-card + v-for="(item, index) in dataList" + :key="index" + :title="item.title" + :icon="item.icon" + :unit="item.unit" + :metering="item.metering" + :colorBg="item.colorBg" + ></the-icon-card> + </div> + <div></div> + <div> + <the-box-card></the-box-card> + </div> + </div> +</template> + +<script lang="ts" setup name="TheIconCard"> +import { useTheme } from "@/hooks/useTheme"; +import { Svg } from "@easyfe/admin-component"; + +const { themeModeOptions, currentThemeMode, handleThemeChange } = useTheme(); +const dataList = reactive([ + { + title: "瀹炴湁鎴垮眿", + icon: "icon-house", + unit: "鏍�", + metering: 110, + colorBg: "#2e85ff" + }, + { + title: "鑷富", + icon: "icon-people", + unit: "鏍�", + metering: 10, + colorBg: "#30C1A9" + }, + { + title: "鍑虹", + icon: "icon-house", + unit: "鏍�", + metering: 220, + colorBg: "#E36B4D" + }, + { + title: "瀹炴湁浜哄彛", + icon: "icon-people", + unit: "浜�", + metering: 420, + colorBg: "#2E85FF" + }, + { + title: "娴佸姩浜哄憳", + icon: "icon-people", + unit: "浜�", + metering: 220, + colorBg: "#30C1A9" + }, + { + title: "瀹炴湁鍗曚綅", + icon: "menu-house", + unit: "涓�", + metering: 220, + colorBg: "#FF4343" + }, + { + title: "鍐嶄笟", + icon: "menu-house", + unit: "涓�", + metering: 220, + colorBg: "#9747FF" + } +]); +</script> + +<style lang="scss" scoped> +.comprehensiveQuery { + .top-title { + display: flex; + } +} +</style> diff --git a/src/views/oneThree/house/index.vue b/src/views/oneThree/house/index.vue index e69de29..47354f1 100644 --- a/src/views/oneThree/house/index.vue +++ b/src/views/oneThree/house/index.vue @@ -0,0 +1,7 @@ +<template> + <div class="house">瀹炴湁鎴垮眿</div> +</template> + +<script lang="ts" setup name="house"></script> + +<style lang="scss" scoped></style> diff --git a/src/views/oneThree/unit/index.vue b/src/views/oneThree/unit/index.vue index e69de29..19ae8ff 100644 --- a/src/views/oneThree/unit/index.vue +++ b/src/views/oneThree/unit/index.vue @@ -0,0 +1,7 @@ +<template> + <div class="unit">瀹炴湁鎴垮眿</div> +</template> + +<script lang="ts" setup name="unit"></script> + +<style lang="scss" scoped></style> -- Gitblit v1.8.0