feat: 徐州农商银行大屏提交

develop
xiangcongshuai 2 years ago
parent ce8292d0ad
commit 1205ed5fb1

@ -30,7 +30,8 @@ module.exports = {
defineProps: "readonly",
defineEmits: "readonly",
defineExpose: "readonly",
withDefaults: "readonly"
withDefaults: "readonly",
DC: false
},
extends: [
"plugin:vue/vue3-essential",

@ -58,6 +58,8 @@
"devDependencies": {
"@commitlint/cli": "^17.6.6",
"@commitlint/config-conventional": "^17.6.6",
"@dvgis/dc-sdk": "^3.2.0",
"@dvgis/vite-plugin-dc": "^2.1.2",
"@iconify-icons/ant-design": "^1.2.7",
"@iconify-icons/ep": "^1.2.12",
"@iconify-icons/icon-park-outline": "^1.2.11",

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -0,0 +1,25 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i_1316_59093)">
<rect width="56" height="56" fill="#324FAE" fill-opacity="0.1"/>
</g>
<rect x="0.5" y="0.5" width="55" height="55" stroke="#3A56B3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.1667 39.6667C35.61 39.6667 40.8333 34.4434 40.8333 28C40.8333 21.5567 35.61 16.3334 29.1667 16.3334C22.7233 16.3334 17.5 21.5567 17.5 28C17.5 34.4434 22.7233 39.6667 29.1667 39.6667Z" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.5 28H40.8333" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.1667 39.6667C31.744 39.6667 33.8333 34.4434 33.8333 28C33.8333 21.5567 31.744 16.3334 29.1667 16.3334C26.5893 16.3334 24.5 21.5567 24.5 28C24.5 34.4434 26.5893 39.6667 29.1667 39.6667Z" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M20.917 19.9163C23.0282 22.0275 25.9449 23.3334 29.1665 23.3334C32.3882 23.3334 35.3049 22.0275 37.4162 19.9163" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M37.4162 36.0837C35.3049 33.9725 32.3882 32.6666 29.1665 32.6666C25.9449 32.6666 23.0282 33.9725 20.917 36.0837" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M15.1665 1.16663H1.1665V18.6666" stroke="#05C7FF" stroke-width="2"/>
<path d="M40.8335 54.8334H54.8335V37.3334" stroke="#05C7FF" stroke-width="2"/>
<defs>
<filter id="filter0_i_1316_59093" x="0" y="0" width="56" height="60" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.164706 0 0 0 0 0.262745 0 0 0 0 0.560784 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_1316_59093"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#FFB541"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#FFB541"/>
<circle cx="9" cy="10" r="9" fill="#FFD44F"/>
<circle cx="9" cy="10" r="7" fill="#FFB606"/>
<path d="M9.90234 5.432V14H8.59434V7.004C8.06634 7.5 7.41034 7.86 6.62634 8.084V6.788C7.01034 6.692 7.41834 6.524 7.85034 6.284C8.28234 6.012 8.63434 5.728 8.90634 5.432H9.90234Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 577 B

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#FCABAB"/>
<circle cx="9" cy="9" r="7.5" fill="#E02828"/>
<path d="M10.0527 3.504V13.5H8.52673V5.338C7.91073 5.91667 7.1454 6.33667 6.23073 6.598V5.086C6.67873 4.974 7.15473 4.778 7.65873 4.498C8.16273 4.18067 8.5734 3.84933 8.89073 3.504H10.0527Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 401 B

@ -0,0 +1,24 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i_1316_59106)">
<rect width="56" height="56" fill="#324FAE" fill-opacity="0.1"/>
</g>
<rect x="0.5" y="0.5" width="55" height="55" stroke="#3A56B3"/>
<path d="M17.5 29.1666V38.5" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.5 33.25H21.5833L23.9167 29.75" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.0835 25.6666L33.5264 35.9619C33.7139 36.0869 33.9568 36.0927 34.15 35.9767L39.6668 32.6666" stroke="#05C5FE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M18.1289 21.4193C17.8109 21.2073 17.7793 20.7518 18.0649 20.4979L22.4163 16.63C22.6133 16.4549 22.9031 16.4337 23.1236 16.5781L38.9111 26.9216C39.2654 27.1538 39.262 27.6743 38.9046 27.9017L33.5707 31.296C33.3758 31.4201 33.1261 31.4174 32.9339 31.2893L18.1289 21.4193Z" stroke="#05C5FE" stroke-width="1.5"/>
<path d="M15.1665 1.16663H1.1665V18.6666" stroke="#05C7FF" stroke-width="2"/>
<path d="M40.8335 54.8334H54.8335V37.3334" stroke="#05C7FF" stroke-width="2"/>
<defs>
<filter id="filter0_i_1316_59106" x="0" y="0" width="56" height="60" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.164706 0 0 0 0 0.262745 0 0 0 0 0.560784 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_1316_59106"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#D6A184"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#D6A184"/>
<circle cx="9" cy="10" r="9" fill="#F5CBB3"/>
<circle cx="9" cy="10" r="7" fill="#D6A184"/>
<path d="M9.08634 5.264C9.95034 5.264 10.6423 5.472 11.1623 5.888C11.6743 6.312 11.9303 6.888 11.9303 7.616C11.9303 8.56 11.4583 9.188 10.5143 9.5C11.0103 9.652 11.3943 9.888 11.6663 10.208C11.9543 10.528 12.0983 10.944 12.0983 11.456C12.0983 12.248 11.8263 12.896 11.2823 13.4C10.6983 13.912 9.95034 14.168 9.03834 14.168C8.16634 14.168 7.46234 13.944 6.92634 13.496C6.32634 12.992 5.99034 12.26 5.91834 11.3H7.23834C7.26234 11.884 7.45034 12.328 7.80234 12.632C8.11434 12.92 8.52234 13.064 9.02634 13.064C9.57034 13.064 10.0143 12.904 10.3583 12.584C10.6543 12.288 10.8023 11.932 10.8023 11.516C10.8023 11.012 10.6463 10.64 10.3343 10.4C10.0463 10.16 9.61834 10.04 9.05034 10.04H8.42634V9.056H9.03834C9.55834 9.056 9.95434 8.94 10.2263 8.708C10.4983 8.476 10.6343 8.144 10.6343 7.712C10.6343 7.288 10.5103 6.96 10.2623 6.728C10.0063 6.496 9.61834 6.38 9.09834 6.38C8.57834 6.38 8.17434 6.512 7.88634 6.776C7.59034 7.048 7.41834 7.444 7.37034 7.964H6.08634C6.15834 7.116 6.47434 6.452 7.03434 5.972C7.55434 5.5 8.23834 5.264 9.08634 5.264Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#ADBEFF"/>
<circle cx="9" cy="9" r="7.5" fill="#0D15D7"/>
<path d="M8.72573 4.308C9.6964 4.308 10.4711 4.55067 11.0497 5.036C11.6284 5.53067 11.9177 6.19333 11.9177 7.024C11.9177 8.15333 11.3717 8.9 10.2797 9.264C10.8771 9.45067 11.3251 9.73533 11.6237 10.118C11.9597 10.51 12.1277 11 12.1277 11.588C12.1277 12.4933 11.8104 13.2353 11.1757 13.814C10.5317 14.402 9.69173 14.696 8.65573 14.696C7.7224 14.696 6.94773 14.4533 6.33173 13.968C5.6224 13.38 5.22573 12.526 5.14173 11.406H6.30373C6.33173 12.19 6.59307 12.7873 7.08773 13.198C7.51707 13.5433 8.03973 13.716 8.65573 13.716C9.36507 13.716 9.93907 13.5107 10.3777 13.1C10.7791 12.6987 10.9797 12.2087 10.9797 11.63C10.9797 11.0327 10.7837 10.566 10.3917 10.23C10.0091 9.90333 9.46773 9.74 8.76773 9.74H7.95573V8.844H8.72573C9.3884 8.844 9.89707 8.69467 10.2517 8.396C10.6064 8.088 10.7837 7.654 10.7837 7.094C10.7837 6.54333 10.6111 6.10933 10.2657 5.792C9.91107 5.46533 9.4024 5.302 8.73973 5.302C8.0584 5.302 7.53573 5.47933 7.17173 5.834C6.78907 6.18867 6.5604 6.70667 6.48573 7.388H5.35173C5.43573 6.42667 5.7904 5.67067 6.41573 5.12C6.9944 4.57867 7.7644 4.308 8.72573 4.308Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,26 @@
<svg width="34" height="59" viewBox="0 0 34 59" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.2399 54.4H21.4199L32.6399 24.14H1.35986L12.2399 54.4Z" fill="url(#paint0_linear_1326_3099)"/>
<circle cx="17.0002" cy="53.72" r="4.76" fill="#3279FF"/>
<circle cx="17.0002" cy="53.72" r="4.26" stroke="white" stroke-opacity="0.6"/>
<circle cx="17" cy="17" r="16.25" fill="url(#paint1_linear_1326_3099)" stroke="url(#paint2_linear_1326_3099)" stroke-width="1.5"/>
<path d="M12.2397 14.62V23.8H21.7597V14.62" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.54 16.32L12.24 14.62L17 10.2L21.76 14.62L23.46 16.32" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M15.2998 15.2999L16.9998 17.3399L18.6998 15.2999" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.96 19.38H19.04" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.96 17.34H19.04" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17 17.34V21.42" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<defs>
<linearGradient id="paint0_linear_1326_3099" x1="16.9999" y1="24.14" x2="16.9999" y2="54.4" gradientUnits="userSpaceOnUse">
<stop stop-color="#3C65FF" stop-opacity="0"/>
<stop offset="1" stop-color="#3C65FF"/>
</linearGradient>
<linearGradient id="paint1_linear_1326_3099" x1="17" y1="0" x2="17" y2="34" gradientUnits="userSpaceOnUse">
<stop stop-color="#4456FF"/>
<stop offset="1" stop-color="#0FBAFF"/>
</linearGradient>
<linearGradient id="paint2_linear_1326_3099" x1="32.64" y1="15.3" x2="-7.39288e-07" y2="18.36" gradientUnits="userSpaceOnUse">
<stop stop-color="#83D4FF"/>
<stop offset="1" stop-color="#80AAFF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,7 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="4" height="5" transform="matrix(1 0 -0.539947 0.841699 12.6997 0)" fill="#AEB8C2"/>
<rect width="4" height="5" transform="matrix(1 0 0.539947 0.841699 1 0)" fill="#AEB8C2"/>
<circle cx="9" cy="10" r="9" fill="#BDC9D4"/>
<circle cx="9" cy="10" r="7" fill="#AEB8C2"/>
<path d="M9.13434 5.264C9.96634 5.264 10.6423 5.5 11.1623 5.972C11.6823 6.452 11.9423 7.068 11.9423 7.82C11.9423 8.548 11.6623 9.224 11.1023 9.848C10.7663 10.192 10.1743 10.652 9.32634 11.228C8.40634 11.836 7.85434 12.376 7.67034 12.848H11.9543V14H6.05034C6.05034 13.144 6.33434 12.396 6.90234 11.756C7.19834 11.404 7.84234 10.884 8.83434 10.196C9.41834 9.78 9.82634 9.452 10.0583 9.212C10.4503 8.772 10.6463 8.304 10.6463 7.808C10.6463 7.328 10.5143 6.968 10.2503 6.728C9.98634 6.488 9.59834 6.368 9.08634 6.368C8.54234 6.368 8.13434 6.552 7.86234 6.92C7.58234 7.272 7.43034 7.796 7.40634 8.492H6.09834C6.11434 7.532 6.39034 6.764 6.92634 6.188C7.47034 5.572 8.20634 5.264 9.13434 5.264Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,5 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="9" cy="9" r="9" fill="#FFDFAD"/>
<circle cx="9" cy="9" r="7.5" fill="#E58B03"/>
<path d="M9.15673 4.058C10.1274 4.058 10.9161 4.33333 11.5227 4.884C12.1294 5.444 12.4327 6.16267 12.4327 7.04C12.4327 7.88933 12.1061 8.678 11.4527 9.406C11.0607 9.80733 10.3701 10.344 9.38073 11.016C8.3074 11.7253 7.6634 12.3553 7.44873 12.906H12.4467V14.25H5.55873C5.55873 13.2513 5.89007 12.3787 6.55273 11.632C6.89807 11.2213 7.6494 10.6147 8.80673 9.812C9.48807 9.32667 9.96407 8.944 10.2347 8.664C10.6921 8.15067 10.9207 7.60467 10.9207 7.026C10.9207 6.466 10.7667 6.046 10.4587 5.766C10.1507 5.486 9.69807 5.346 9.10073 5.346C8.46607 5.346 7.99007 5.56067 7.67273 5.99C7.34607 6.40067 7.16873 7.012 7.14073 7.824H5.61473C5.6334 6.704 5.9554 5.808 6.58073 5.136C7.2154 4.41733 8.07407 4.058 9.15673 4.058Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 924 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 453 KiB

@ -0,0 +1,132 @@
<script setup lang="ts">
import { reactive } from "vue";
const state = reactive({
time_type_select: "month"
});
const props = defineProps({
title: {
type: String,
default: ""
},
is_date_select: {
type: Boolean,
default: false
}
});
const is_date_selected_class = time_type => {
if (state.time_type_select === time_type) {
return "date-selected";
} else {
return "date-unselected";
}
};
const set_date_type = time_type => {
state.time_type_select = time_type;
};
</script>
<template>
<div class="box_container">
<div class="box_header">
<div class="header_title">{{ props.title }}</div>
<div class="header_time" v-if="is_date_select">
<div
@click="set_date_type('month')"
:class="is_date_selected_class('month')"
>
</div>
<div
@click="set_date_type('week')"
:class="is_date_selected_class('week')"
>
</div>
<div
@click="set_date_type('day')"
:class="is_date_selected_class('day')"
>
</div>
</div>
</div>
<div class="box_content">
<div class="content">
<slot name="content" :time_type="state.time_type_select" />
</div>
</div>
</div>
</template>
<style scoped>
.box_container {
height: 320px;
background-image: url("../../../assets/screen/box_bg.png");
background-size: 100% 100%;
.box_header {
display: flex;
align-items: center;
height: 44px;
.header_title {
margin-top: 35px;
margin-left: 70px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 20px;
font-style: normal;
font-weight: 400;
line-height: 24px;
color: white;
}
.header_time {
display: flex;
.date-selected {
display: flex;
gap: 10px;
align-items: flex-start;
width: 38px;
height: 28px;
padding: 4px 12px;
margin-left: 8px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
color: #1fc6ff;
cursor: pointer;
background: #0f2839;
border-top: 1px solid #1fc6ff;
}
.date-unselected {
display: flex;
gap: 10px;
align-items: flex-start;
width: 38px;
height: 28px;
padding: 4px 12px;
margin-left: 8px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
color: #b4c0cc;
cursor: pointer;
background: #0f2839;
}
}
}
}
</style>

@ -0,0 +1,54 @@
<script setup lang="ts">
import headerBg from "@/assets/svg/header_bg.svg?component";
const props = defineProps({
title: {
type: String,
default: ""
}
});
</script>
<template>
<div
style="
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
"
>
<headerBg />
<div class="title_text">{{ props.title }}</div>
</div>
</template>
<style scoped>
@font-face {
font-family: MyFont;
src: url("@/assets/iconfont/ZiXi.ttf") format("truetype");
}
.title_text {
position: absolute;
top: 20px;
font-family: "Helvetica Neue", Helvetica, "PingFang SC", MyFont,
"Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 40px;
font-style: normal;
font-weight: 500;
line-height: 48px; /* 120% */
text-align: justify;
letter-spacing: 4px;
background: linear-gradient(180deg, #fff 33.78%, #4c99fa 79.09%);
background-clip: text;
-webkit-text-fill-color: transparent;
}
.back-btn {
position: absolute;
top: 20px;
left: 30px;
}
</style>

@ -0,0 +1,36 @@
<template>
<div ref="elChart" style="width: 100%; height: 100%" />
</template>
<script lang="ts" setup>
import { ref, onMounted, onUpdated, onUnmounted } from "vue";
import * as echarts from "echarts";
const props = defineProps({
option: {
type: Object
},
data: {
type: Object
}
});
const elChart = ref();
let chart: any = null;
function clear() {
chart && chart.dispose();
}
function draw() {
if (chart) {
chart.setOption(props.option);
} else {
clear();
chart = echarts.init(elChart.value);
chart.setOption(props.option);
}
}
onMounted(draw);
onUpdated(draw);
onUnmounted(clear);
</script>

@ -0,0 +1,167 @@
<template>
<div style="width: 100%; height: 210px">
<div class="chart-style" style="width: 100%; height: 100%">
<vue-chart :option="chartOption" style="width: 400px; height: 100%" />
</div>
</div>
</template>
<script lang="ts" setup>
import VueChart from "../../components/VueChart.vue";
import * as echarts from "echarts";
import { computed } from "vue";
const props = defineProps({
data: {
type: Array,
default: () => []
}
});
const name_list = computed(() => {
return props.data[0].data.map((item: any) => {
return item.name;
});
});
const value1_list = computed(() => {
return props.data[0].data.map((item: any) => {
return item.value;
});
});
const value2_list = computed(() => {
return props.data[1].data.map((item: any) => {
return item.value;
});
});
const value3_list = computed(() => {
return props.data[2].data.map((item: any) => {
return item.value;
});
});
const chartOption = computed(() => {
return {
grid: {
top: "30px",
left: "60px",
bottom: "50px",
right: "40px"
},
legend: {
show: true,
bottom: 0,
itemWidth: 30, //
// itemGap: 20, //
itemHeight: 10, //
textStyle: {
color: "rgba(255, 255, 255, 0.40)",
fontSize: 12,
padding: [0, 8, 0, 8]
}
},
xAxis: {
type: "category",
data: name_list.value,
axisLabel: {
color: "rgba(255, 255, 255, 0.40)"
}
},
yAxis: {
type: "value",
splitLine: {
lineStyle: {
color: "rgba(255,255,255,0.2)"
}
},
axisLabel: {
color: "rgba(255, 255, 255, 0.40)"
}
},
series: [
{
data: value1_list.value,
type: "bar",
barWidth: "6px",
name: "玩手机",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#2276FC"
},
{
offset: 1,
color: "#2276FC"
}
],
false
)
}
},
{
data: value2_list.value,
type: "bar",
barWidth: "6px",
name: "睡觉",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#FFCF5F"
},
{
offset: 1,
color: "#FFCF5F"
}
],
false
)
}
},
{
data: value3_list.value,
type: "bar",
name: "离岗",
barWidth: "6px",
itemStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#5FD5EC"
},
{
offset: 1,
color: "#5FD5EC"
}
],
false
)
}
}
]
};
});
</script>
<style scoped>
.chart-style {
display: flex;
align-items: center;
justify-content: center;
margin-top: 10px;
}
</style>

@ -0,0 +1,96 @@
<template>
<div style="width: 100%; height: 210px">
<div class="header_title">
<div class="title_text">网点名称</div>
<div class="title_text">在线数量</div>
</div>
<div class="list_container scroll-container">
<vue3-seamless-scroll :list="props.data" class="scroll" :step="0.5">
<div class="list_box" v-for="(d, index) in props.data" :key="index">
<div class="list_title_name">{{ d.name }}</div>
<div class="list_title_value">{{ d.value }}</div>
</div>
</vue3-seamless-scroll>
</div>
</div>
</template>
<script lang="ts" setup>
import { Vue3SeamlessScroll } from "vue3-seamless-scroll";
interface DataItem {
name: string;
value: string;
}
const props = defineProps<{
data: DataItem[];
}>();
</script>
<style scoped>
.header_title {
position: relative;
top: 18px;
left: 20px;
display: flex;
flex-shrink: 0;
gap: 10px;
align-items: center;
justify-content: space-between;
width: 300;
width: 389px;
height: 42px;
padding: 10px 20px;
background: rgb(50 92 193 / 40%);
.title_text {
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
"Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
color: rgb(255 255 255 / 80%);
}
}
.list_container {
position: relative;
top: 18px;
left: 20px;
width: 389px;
height: calc(100% - 42px);
padding: 10px 20px;
overflow-y: auto;
.list_box {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
.list_title_name {
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px;
color: rgb(255 255 255 / 80%);
}
.list_title_value {
font-family: "Helvetica Neue", Helvetica, "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px;
color: #fff;
}
}
}
.scroll-container::-webkit-scrollbar {
display: none; /* Chrome, Safari, and Opera */
}
</style>

@ -0,0 +1,252 @@
<template>
<div style="width: 100%; height: 245px">
<div class="chart-style" style="width: 100%; height: 100%">
<vue-chart :option="chartOption" style="width: 400px; height: 90%" />
</div>
</div>
</template>
<script lang="ts" setup>
import VueChart from "../../components/VueChart.vue";
import * as echarts from "echarts";
import { computed } from "vue";
const props = defineProps({
data: {
type: Array,
default: () => []
}
});
const name_list = computed(() => {
return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
});
const value1_list = computed(() => {
return props.data[0].data.map((item: any) => {
return item.value;
});
});
const value2_list = computed(() => {
return props.data[1].data.map((item: any) => {
return item.value;
});
});
const value3_list = computed(() => {
return props.data[2].data.map((item: any) => {
return item.value;
});
});
const chartOption = computed(() => {
return {
tooltip: {
trigger: "axis",
axisPointer: {
lineStyle: {
color: "rgb(126,199,255)"
}
}
},
legend: {
show: true,
bottom: 10,
itemWidth: 30, //
// itemGap: 20, //
itemHeight: 10, //
textStyle: {
color: "rgba(255, 255, 255, 0.40)",
fontSize: 12,
padding: [0, 8, 0, 8]
}
},
grid: {
top: "30",
left: "60",
right: "40",
bottom: "60"
},
xAxis: [
{
type: "category",
boundaryGap: false,
axisLine: {
//线x
show: true,
lineStyle: {
color: "rgba(255, 255, 255, 0.20)"
}
},
axisLabel: {
color: "#rgba(255, 255, 255, 0.40)",
fontSize: 12,
fontWeight: 400
//
},
splitLine: {
show: false,
lineStyle: {
color: "#233653"
}
},
axisTick: {
show: false
},
data: name_list.value
}
],
yAxis: [
{
name: "",
nameTextStyle: {
color: "#fff",
fontSize: 12,
padding: [0, 60, 0, 0]
},
// minInterval: 1,
type: "value",
splitLine: {
show: true,
lineStyle: {
color: "rgba(255, 255, 255, 0.20)"
}
},
axisLine: {
show: false
},
axisLabel: {
show: true,
color: "rgba(255, 255, 255, 0.40)",
fontSize: 14
},
axisTick: {
show: false
}
}
],
series: [
{
name: "玩手机",
type: "line",
symbol: "circle", //
smooth: true,
lineStyle: {
width: 1,
color: "#E19056"
},
itemStyle: {
color: "#E19056", //
// borderColor: '#fff600',//
// borderWidth: 13//
label: {
show: false
}
},
symbolSize: 6, //
areaStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "rgba(221,120,47, 0.40)"
},
{
offset: 1,
color: "rgba(221,120,47, 0)"
}
],
false
)
},
data: value1_list.value
},
{
name: "睡觉",
type: "line",
symbol: "circle", //
smooth: false,
lineStyle: {
width: 1,
color: "#FCD67C"
},
itemStyle: {
color: "#FCD67C", //
// borderColor: '#fff600',//
// borderWidth: 13//
label: {
show: false
}
},
symbolSize: 6, //
areaStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "rgba(255,207,95, 0.4)"
},
{
offset: 1,
color: "rgba(255,207,95, 0)"
}
],
false
)
},
data: value2_list.value
},
{
name: "离岗",
type: "line",
symbol: "circle", //
smooth: false,
lineStyle: {
width: 1,
color: "#79BF86" // 线
},
itemStyle: {
color: "#79BF86", //
// borderColor: '#fff600',//
// borderWidth: 13//
label: {
show: false
}
},
symbolSize: 6, //
areaStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "rgba(91,179,107, 0.4)"
},
{
offset: 1,
color: "rgba(91,179,107, 0)"
}
],
false
)
},
data: value3_list.value
}
]
};
});
</script>
<style scoped>
.chart-style {
display: flex;
align-items: center;
justify-content: center;
}
</style>

@ -0,0 +1,74 @@
<script setup>
import { onMounted } from "vue";
import tipIcon from "@/assets/screen/tip.png";
const nameList = [
"牌楼支行",
"铜山支行",
"南京路支行",
"湖滨分理处",
"奔腾大道支行",
"金桥路支行",
"北京路支行",
"东路支行",
"牌楼支行",
"铜山支行"
];
function generatePosition(num) {
const list = [];
for (let i = 0; i < num; i++) {
const lng = 120.38105869 + Math.random() * 0.5;
const lat = 31.10115627 + Math.random() * 0.5;
list.push(new DC.Position(lng, lat));
}
return list;
}
function initViewer() {
const viewer = new DC.Viewer("viewer-container");
const baseLayer = DC.ImageryLayerFactory.createImageryLayer(
DC.ImageryType.AMAP,
{
style: "img",
crs: "WGS84"
}
);
viewer.addBaseLayer(baseLayer);
const layer = new DC.VectorLayer("layer");
viewer.addLayer(layer);
const positions = generatePosition(10);
positions.forEach((item, index) => {
const billboard = new DC.CustomBillboard(item, tipIcon);
const label = new DC.Label(item, nameList[index]);
label.setStyle({
fillColor: DC.Color.WHITE,
pixelOffset: { x: 0, y: -35 },
font: "12px"
});
layer.addOverlay(label);
layer.addOverlay(billboard);
});
viewer.flyToPosition(
"120.62244801448453,31.358576663788927,92653.79773798586,0,-90,0"
);
viewer.flyTo(layer);
}
onMounted(() => {
DC.ready({}).then(initViewer);
});
</script>
<template>
<div id="viewer-container" class="viewer-container" />
</template>
<style scoped>
.container {
width: 100%;
height: 100%;
}
.viewer-container {
width: 100%;
height: 100%;
}
</style>

@ -0,0 +1,318 @@
<template>
<div
style="display: flex; justify-content: center; width: 100%; height: 278px"
>
<div style="position: relative; width: 100%; height: 100%">
<img class="pie_img" :src="pieBg" alt="" />
<vue-chart
:option="chartOption"
style="position: absolute; width: 100%; height: 100%"
/>
</div>
</div>
</template>
<script lang="ts" setup>
import VueChart from "../../components/VueChart.vue";
// import * as echarts from "echarts";
import "echarts-gl";
import { computed } from "vue";
import pieBg from "@/assets/screen/bank_pie_bg.png";
const props = defineProps({
data: {
type: Array,
default: () => []
}
});
// const selectedIndex = "";
// const hoveredIndex = "";
// const option_data = getPie3D(props.data, 0);
//
function getParametricEquation(
startRatio,
endRatio,
isSelected,
isHovered,
k,
h
) {
//
const midRatio = (startRatio + endRatio) / 2;
const startRadian = startRatio * Math.PI * 2;
const endRadian = endRatio * Math.PI * 2;
const midRadian = midRatio * Math.PI * 2;
//
if (startRatio === 0 && endRatio === 1) {
// eslint-disable-next-line no-param-reassign
isSelected = false;
}
// / k 1/3
// eslint-disable-next-line no-param-reassign
k = typeof k !== "undefined" ? k : 1 / 3;
// x y 0
const offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
const offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
// 1
const hoverRate = isHovered ? 1.05 : 1;
//
return {
u: {
min: -Math.PI,
max: Math.PI * 3,
step: Math.PI / 32
},
v: {
min: 0,
max: Math.PI * 2,
step: Math.PI / 20
},
x(u, v) {
if (u < startRadian) {
return (
offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate
);
}
if (u > endRadian) {
return (
offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate
);
}
return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
},
y(u, v) {
if (u < startRadian) {
return (
offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate
);
}
if (u > endRadian) {
return (
offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate
);
}
return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
},
z(u, v) {
if (u < -Math.PI * 0.5) {
return Math.sin(u);
}
if (u > Math.PI * 2.5) {
return Math.sin(u) * h * 0.1;
}
// Zhvalue
return Math.sin(v) > 0 ? 1 * h * 0.1 : -1;
}
};
}
// 3D
function getPie3D(pieData, internalDiameterRatio) {
const series = [];
//
let sumValue = 0;
let startValue = 0;
let endValue = 0;
const legendData = [];
const k =
typeof internalDiameterRatio !== "undefined"
? (1 - internalDiameterRatio) / (1 + internalDiameterRatio)
: 1 / 3;
// series-surface
for (let i = 0; i < pieData.length; i += 1) {
sumValue += pieData[i].value;
const seriesItem = {
name:
typeof pieData[i].name === "undefined" ? `series${i}` : pieData[i].name,
type: "surface",
parametric: true,
wireframe: {
show: false
},
pieData: pieData[i],
pieStatus: {
selected: false,
hovered: false,
k
},
itemStyle: {}
};
if (typeof pieData[i].itemStyle !== "undefined") {
const { itemStyle } = pieData[i];
// eslint-disable-next-line no-unused-expressions
typeof pieData[i].itemStyle.color !== "undefined"
? (itemStyle.color = pieData[i].itemStyle.color)
: null;
// eslint-disable-next-line no-unused-expressions
typeof pieData[i].itemStyle.opacity !== "undefined"
? (itemStyle.opacity = pieData[i].itemStyle.opacity)
: null;
seriesItem.itemStyle = itemStyle;
}
series.push(seriesItem);
}
// 使 sumValue getParametricEquation
// series-surface series-surface.parametricEquation
for (let i = 0; i < series.length; i += 1) {
endValue = startValue + series[i].pieData.value;
series[i].pieData.startRatio = startValue / sumValue;
series[i].pieData.endRatio = endValue / sumValue;
series[i].parametricEquation = getParametricEquation(
series[i].pieData.startRatio,
series[i].pieData.endRatio,
false,
false,
k,
// 使10
series[i].pieData.value === series[0].pieData.value ? 35 : 10
);
startValue = endValue;
legendData.push(series[i].name);
}
series.push({
name: "pie2d",
type: "pie",
label: {
opacity: 10,
lineHeight: 10,
fontSize: 14,
color: "#fff",
fontWeight: 500,
formatter: function (params) {
return params.name + " " + "{hr|" + params.value + "}" + "%";
},
rich: {
hr: {
align: "center",
color: "inherit",
fontSize: 14,
fontFamily: "D-DIN",
fontWeight: 600
}
}
},
labelLine: {
length: 40,
length2: 20,
lineStyle: {
color: "#fff" // 线
}
},
startAngle: 0, //[0, 360]
clockwise: false, //3d
radius: ["50%", "20%"],
center: ["50%", "45%"],
data: props.data,
itemStyle: {
opacity: 0
}
});
// legendDataseries
const option = {
color: ["#ffa41a", "#029fed"],
// title: {
// text: "GPU",
// textStyle: {
// color: "#fff",
// fontSize: 24,
// fontWeight: 400,
// letterSpacing: 3.6
// },
// left: "center", // center horizontally
// bottom: 0
// },
// animation: false,
tooltip: {
formatter: params => {
if (params.seriesName !== "mouseoutSeries") {
return `${
params.seriesName
}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${
params.color
};"></span>${option.series[params.seriesIndex].pieData?.value || ""}`;
}
return "{value} %";
}
},
xAxis3D: {
min: -1,
max: 1
},
yAxis3D: {
min: -1,
max: 1
},
zAxis3D: {
min: -1,
max: 1
},
grid3D: {
show: false,
boxHeight: 12,
top: "-10%",
viewControl: {
// 3d
alpha: 14,
// beta: 30,
rotateSensitivity: 1,
zoomSensitivity: 0,
panSensitivity: 0,
// autoRotate: true,
distance: 3000
},
// SSAO
postEffect: {
// 齿
enable: false,
bloom: {
enable: true,
bloomIntensity: 0.1
},
SSAO: {
enable: true,
quality: "medium",
radius: 2
}
// temporalSuperSampling: {
// enable: true,
// },
}
},
series
};
return option;
}
const chartOption = computed(() => {
return getPie3D(props.data, 0);
});
</script>
<style scoped>
.pie_img {
position: absolute;
bottom: 114px;
left: 114px;
width: 205px;
}
</style>

@ -0,0 +1,105 @@
<template>
<div class="sort_list">
<div class="sort_list_left">
<div
class="sort_item"
v-for="(item, index) in props.data.slice(0, 5)"
:key="index"
>
<div v-show="isViolation">
<oneErrorIcon v-show="index === 0" />
<towErrorIcon v-show="index === 1" />
<threeErrorIcon v-show="index === 2" />
</div>
<div v-show="!isViolation">
<oneIcon v-show="index === 0" />
<towIcon v-show="index === 1" />
<threeIcon v-show="index === 2" />
</div>
<div
v-show="[3, 4].includes(index)"
class="circle"
:data-number="index + 1"
/>
<span>{{ item }}</span>
</div>
</div>
<div class="sort_list_right">
<div
class="sort_item"
v-for="(item, index) in props.data.slice(5, 10)"
:key="index"
>
<div class="circle" :data-number="index + 6" />
<span>{{ item }}</span>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import oneIcon from "@/assets/svg/bank/one.svg?component";
import towIcon from "@/assets/svg/bank/tow.svg?component";
import threeIcon from "@/assets/svg/bank/three.svg?component";
import oneErrorIcon from "@/assets/svg/bank/one_error.svg?component";
import towErrorIcon from "@/assets/svg/bank/tow_error.svg?component";
import threeErrorIcon from "@/assets/svg/bank/three_error.svg?component";
const props = defineProps({
data: {
type: Array,
default: () => []
},
isViolation: {
type: Boolean,
default: false
}
});
</script>
<style scoped>
.sort_list {
display: flex;
flex-direction: row;
padding: 40px 50px;
.sort_list_left,
.sort_list_right {
width: 50%;
}
.sort_item {
display: flex;
margin-bottom: 16px;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 18px;
color: #fff;
span {
margin-left: 10px;
}
}
}
.circle {
width: 18px;
height: 18px;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 18px;
line-height: normal;
color: #fff;
text-align: center;
background-color: rgb(36 124 254 / 60%);
border-radius: 50%;
}
.circle::before {
display: block;
margin-top: 1px;
margin-left: 1px;
content: attr(data-number);
}
</style>

@ -0,0 +1,94 @@
.data-dashboard {
width: 1920px;
height: 1080px;
position: relative;
/* 添加其他样式 */
}
.data-dashboard-bg {
width: 1920px;
height: 1080px;
position: absolute;
left: 0;
bottom: 0;
z-index: 99;
pointer-events: none;
/* 添加其他样式 */
}
section {
position: absolute;
/*border: red 1px solid;*/
z-index: 999999;
}
.card1 {
top: 125px;
left: 26px;
width: 430px;
}
.card2 {
top: 420px;
left: 26px;
width: 430px;
}
.card3 {
top: 715px;
left: 26px;
width: 430px;
}
.card4 {
top: 125px;
right: 26px;
width: 430px;
}
.card5 {
top: 420px;
right: 26px;
width: 430px;
}
.card6 {
top: 715px;
right: 26px;
width: 430px;
}
.card7 {
left: 50%;
top: 125px;
width: 340px;
margin-left: -170px;
display: flex;
flex-direction: row;
}
.card7_left {
display: flex;
margin-right: 40px;
}
.card7_right {
display: flex;
}
.text {
display: flex;
flex-direction: column;
color: #fff;
font-family: PingFang SC;
font-size: 18px;
font-style: normal;
font-weight: 400;
line-height: normal;
letter-spacing: 0.9px;
margin-left: 12px;
}
.num {
color: #01f9fd;
font-family: Source Sans 3;
font-size: 28px;
font-style: normal;
font-weight: 600;
line-height: normal;
}
.map {
top: 125px;
left: 0;
width: 1920px;
height: 900px;
position: absolute;
}

@ -0,0 +1,111 @@
<template>
<div class="data-dashboard">
<div class="data-dashboard-bg">
<img
style="width: 1920px; height: 1080px; filter: brightness(60%)"
:src="bg2"
alt=""
/>
</div>
<section class="header">
<Header title="徐州农商行数据可视化平台" />
</section>
<section class="card1">
<BoxGroup title="GPU占用">
<template v-slot:content>
<Pie3D :data="state.data.card1.data" />
</template>
</BoxGroup>
</section>
<section class="card2">
<BoxGroup title="月模范网点TOP10">
<template v-slot:content>
<sortChart :data="state.data.card2.data" />
</template>
</BoxGroup>
</section>
<section class="card3">
<BoxGroup title="月违规网点TOP10">
<template v-slot:content>
<sortChart :data="state.data.card2.data" :isViolation="true" />
</template>
</BoxGroup>
</section>
<section class="card4">
<BoxGroup title="月违规总量">
<template v-slot:content>
<LineChart1 :data="state.data.card4.month_data" />
</template>
</BoxGroup>
</section>
<section class="card5">
<BoxGroup title="工作时间违规分布">
<template v-slot:content>
<BarChart1 :data="state.data.card5.data" />
</template>
</BoxGroup>
</section>
<section class="card6">
<BoxGroup title="网点设备在线">
<template v-slot:content>
<DeviceOnline :data="state.data.card6.data" />
</template>
</BoxGroup>
</section>
<section class="card7">
<div class="card7_left">
<leftIcon />
<div class="text">
<span>覆盖网点</span>
<span class="num">999</span>
</div>
</div>
<div class="card7_right">
<rightIcon />
<div class="text">
<span>设备总量</span>
<span class="num">999</span>
</div>
</div>
</section>
<div class="map">
<MapChart />
</div>
</div>
</template>
<script setup lang="ts">
import Header from "@/views/bankScreen/components/Header.vue";
import BoxGroup from "@/views/bankScreen/components/BoxGroup.vue";
import sortChart from "@/views/bankScreen/components/sortChart.vue";
import Pie3D from "@/views/bankScreen/components/charts/Pie3D.vue";
import LineChart1 from "@/views/bankScreen/components/charts/LineChart1.vue";
import BarChart1 from "@/views/bankScreen/components/charts/BarChart1.vue";
import DeviceOnline from "@/views/bankScreen/components/charts/DeviceOnline.vue";
import leftIcon from "@/assets/svg/bank/left.svg?component";
import rightIcon from "@/assets/svg/bank/right.svg?component";
import MapChart from "@/views/bankScreen/components/charts/MapChart.vue";
import { reactive } from "vue";
import {
card1_data,
card2_data,
card4_data,
card5_data,
card6_data
} from "./mock";
import bg2 from "@/assets/screen/bank_bg.png";
const state = reactive({
data: {
card1: card1_data,
card2: card2_data,
card4: card4_data,
card5: card5_data,
card6: card6_data
}
});
setInterval(() => {}, 10000);
</script>
<style scoped>
@import url("./index.css");
</style>

@ -0,0 +1,357 @@
export const card1_data = {
data: [
{
name: "已占用",
value: 90
},
{
name: "未占用",
value: 10
}
]
};
export const card2_data = {
data: [
"牌楼支行",
"铜山支行",
"南京路支行",
"湖滨分理处",
"奔腾大道支行",
"金桥路支行",
"北京路支行",
"东路支行",
"牌楼支行",
"铜山支行"
]
};
export const card4_data = {
month_data: [
{
data: [
{
name: "1",
value: 150
},
{
name: "2",
value: 60
},
{
name: "3",
value: 120
},
{
name: "4",
value: 90
},
{
name: "5",
value: 210
},
{
name: "6",
value: 150
},
{
name: "7",
value: 60
},
{
name: "8",
value: 120
},
{
name: "9",
value: 90
},
{
name: "10",
value: 210
},
{
name: "11",
value: 150
},
{
name: "12",
value: 60
}
]
},
{
data: [
{
name: "1",
value: 200
},
{
name: "2",
value: 110
},
{
name: "3",
value: 170
},
{
name: "4",
value: 140
},
{
name: "5",
value: 260
},
{
name: "6",
value: 200
},
{
name: "7",
value: 110
},
{
name: "8",
value: 170
},
{
name: "9",
value: 140
},
{
name: "10",
value: 260
},
{
name: "11",
value: 200
},
{
name: "12",
value: 110
}
]
},
{
data: [
{
name: "1",
value: 250
},
{
name: "2",
value: 160
},
{
name: "3",
value: 220
},
{
name: "4",
value: 190
},
{
name: "5",
value: 310
},
{
name: "6",
value: 250
},
{
name: "7",
value: 160
},
{
name: "8",
value: 220
},
{
name: "9",
value: 190
},
{
name: "10",
value: 310
},
{
name: "11",
value: 250
},
{
name: "12",
value: 160
}
]
}
]
};
export const card5_data = {
data: [
{
data: [
{
name: "09:00",
value: 150
},
{
name: "10:00",
value: 60
},
{
name: "11:00",
value: 120
},
{
name: "12:00",
value: 90
},
{
name: "13:00",
value: 210
},
{
name: "14:00",
value: 100
},
{
name: "15:00",
value: 40
},
{
name: "16:00",
value: 30
},
{
name: "17:00",
value: 88
},
{
name: "18:00",
value: 150
}
]
},
{
data: [
{
name: "09:00",
value: 50
},
{
name: "10:00",
value: 100
},
{
name: "11:00",
value: 40
},
{
name: "12:00",
value: 70
},
{
name: "13:00",
value: 140
},
{
name: "14:00",
value: 80
},
{
name: "15:00",
value: 130
},
{
name: "16:00",
value: 150
},
{
name: "17:00",
value: 77
},
{
name: "18:00",
value: 44
}
]
},
{
data: [
{
name: "09:00",
value: 110
},
{
name: "10:00",
value: 60
},
{
name: "11:00",
value: 70
},
{
name: "12:00",
value: 40
},
{
name: "13:00",
value: 10
},
{
name: "14:00",
value: 60
},
{
name: "15:00",
value: 200
},
{
name: "16:00",
value: 130
},
{
name: "17:00",
value: 40
},
{
name: "18:00",
value: 20
}
]
}
]
};
export const card6_data = {
data: [
{
name: "牌楼支行",
value: "8/10"
},
{
name: "铜山支行",
value: "4/5"
},
{
name: "南京路支行",
value: "12/12"
},
{
name: "湖滨分理处",
value: "3/5"
},
{
name: "奔腾大道支行",
value: "9/9"
},
{
name: "CMR-029",
value: "在线"
},
{
name: "CMR-029",
value: "在线"
}
]
};

@ -1,7 +1,7 @@
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"module": "ESNext",
"moduleResolution": "Node",
"strict": false,
"jsx": "preserve",

@ -5,6 +5,7 @@ import { warpperEnv } from "./build";
import { getPluginsList } from "./build/plugins";
import { include, exclude } from "./build/optimize";
import { UserConfigExport, ConfigEnv, loadEnv } from "vite";
import DC from "@dvgis/vite-plugin-dc";
/** 当前执行node命令时文件夹的地址工作目录 */
const root: string = process.cwd();
@ -45,7 +46,7 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
// 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
proxy: {}
},
plugins: getPluginsList(command, VITE_CDN, VITE_COMPRESSION),
plugins: getPluginsList(command, VITE_CDN, VITE_COMPRESSION).concat(DC()),
// https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options
optimizeDeps: {
include,

Loading…
Cancel
Save