兴蜀来了平台业务数据大屏页面、三级劳务体系⼈员数据大屏页面、“产教评”融合培训平台大屏页面
BIN
src/assets/images/largeScreen/all-bg.png
Normal file
|
After Width: | Height: | Size: 5.9 MiB |
BIN
src/assets/images/largeScreen/bhqs-bg.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/images/largeScreen/bigBox-bg.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
src/assets/images/largeScreen/bigBox-title.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
src/assets/images/largeScreen/bottomBorder.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
src/assets/images/largeScreen/branch.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
src/assets/images/largeScreen/broker.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
src/assets/images/largeScreen/close.png
Normal file
|
After Width: | Height: | Size: 335 B |
BIN
src/assets/images/largeScreen/dataBox-line-bg.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/images/largeScreen/largeScreen2-kuang1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/assets/images/largeScreen/largeScreen2-kuang2.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/assets/images/largeScreen/largeScreen2-kuang3.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
src/assets/images/largeScreen/leftBorder.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/assets/images/largeScreen/listIcon-kc.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/assets/images/largeScreen/mainBox-bg.png
Normal file
|
After Width: | Height: | Size: 560 KiB |
BIN
src/assets/images/largeScreen/mainBox-title.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/assets/images/largeScreen/map-dian-active.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
src/assets/images/largeScreen/map-dian.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
src/assets/images/largeScreen/map-tip-box.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
src/assets/images/largeScreen/otherBox-li-bg.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
src/assets/images/largeScreen/pubTitle-bg60.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/assets/images/largeScreen/rankList-bg.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
src/assets/images/largeScreen/rightBorder.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/assets/images/largeScreen/statistics-bg.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
src/assets/images/largeScreen/tabs-main-bg.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
src/assets/images/largeScreen/tabs1-active.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
src/assets/images/largeScreen/tabs1.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
src/assets/images/largeScreen/tabs2-active.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
src/assets/images/largeScreen/tabs2.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
src/assets/images/largeScreen/tabs3-active.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
src/assets/images/largeScreen/tabs3.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
src/assets/images/largeScreen/tongji-pxjg.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
src/assets/images/largeScreen/tongji-pxkc.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
src/assets/images/largeScreen/tongji-pxrs.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/largeScreen/tongji2-dtzxfz.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
src/assets/images/largeScreen/tongji2-hyyh.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
src/assets/images/largeScreen/tongji2-yhjh.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
src/assets/images/largeScreen/tongji3-jgzgz.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
src/assets/images/largeScreen/tongji3-jjrzs.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
src/assets/images/largeScreen/top-bg.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
src/assets/images/largeScreen/topStatistics-bg.png
Normal file
|
After Width: | Height: | Size: 690 KiB |
BIN
src/assets/images/largeScreen/topStatistics-jyfwz.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/largeScreen/topStatistics-rzqy.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/largeScreen/topStatistics-wczpjh.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/largeScreen/topStatistics-zhytj.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/assets/images/largeScreen/topStatistics-zpgw.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
18
src/components/largeScreen/bottomBorder.vue
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bottomBorder"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.bottomBorder {
|
||||||
|
height: 36px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bottomBorder.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
122
src/components/largeScreen/headHome.vue
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<template>
|
||||||
|
<div class="homeHeadsmall">
|
||||||
|
<div class="left_Head">
|
||||||
|
<el-icon style="top: 5px" color="#0DE7EE" :size="20"><Cloudy /></el-icon>
|
||||||
|
<span class="head_text ml5 mr5">小雨</span>
|
||||||
|
<span class="head_text ml5">13°C</span>
|
||||||
|
</div>
|
||||||
|
<div class="center_head" :text="props.title">
|
||||||
|
<span>{{ props.title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="right_head">
|
||||||
|
<span class="head_text ml5 mr5">{{
|
||||||
|
hour + ":" + minute + ":" + second
|
||||||
|
}}</span>
|
||||||
|
<span class="head_text ml5 mr5">{{ weekenday }} </span>
|
||||||
|
<span class="head_text ml5">{{ datatime }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { timeValidate, weekValidate } from "@/utils/tools.js";
|
||||||
|
import { qcckPost, qcckGet } from "@/api/qcckApi.js";
|
||||||
|
import emitter from "@/utils/eventBus.js";
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
reactive,
|
||||||
|
onMounted,
|
||||||
|
onUnmounted,
|
||||||
|
getCurrentInstance,
|
||||||
|
onBeforeUnmount
|
||||||
|
} from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const minute = ref("00"); //分
|
||||||
|
const second = ref("00"); //秒
|
||||||
|
const hour = ref("00"); //时
|
||||||
|
const day = ref();
|
||||||
|
const weekenday = weekValidate(); //星期几
|
||||||
|
const datatime = ref(timeValidate(null, "ymd"));
|
||||||
|
const timersfm = ref(null);
|
||||||
|
const props = defineProps({
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: "兴蜀数智化驾驶舱"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
onMounted(() => {
|
||||||
|
timersfm.value = setInterval(() => {
|
||||||
|
CurrentTime();
|
||||||
|
}, 1000);
|
||||||
|
});
|
||||||
|
// 获取时分秒
|
||||||
|
function CurrentTime() {
|
||||||
|
const date = new Date();
|
||||||
|
hour.value = date.getHours();
|
||||||
|
minute.value = date.getMinutes();
|
||||||
|
second.value = date.getSeconds();
|
||||||
|
day.value = day.value < 10 ? "0" + day.value : day.value;
|
||||||
|
hour.value = hour.value < 10 ? "0" + hour.value : hour.value;
|
||||||
|
minute.value = minute.value < 10 ? "0" + minute.value : minute.value;
|
||||||
|
second.value = second.value < 10 ? "0" + second.value : second.value;
|
||||||
|
}
|
||||||
|
onUnmounted(() => {
|
||||||
|
clearInterval(timersfm.value);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.head_text {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
// 头部
|
||||||
|
.homeHead,
|
||||||
|
.homeHeadsmall {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
position: relative;
|
||||||
|
z-index: 8;
|
||||||
|
height: 90px;
|
||||||
|
background: url("~@/assets/images/largeScreen/top-bg.png") no-repeat center;
|
||||||
|
background-size: 100%;
|
||||||
|
|
||||||
|
.left_Head {
|
||||||
|
position: absolute;
|
||||||
|
left: 30px;
|
||||||
|
top: 40px;
|
||||||
|
font-family: "DigifaceWide";
|
||||||
|
}
|
||||||
|
|
||||||
|
.center_head {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 50%;
|
||||||
|
height: 90px;
|
||||||
|
line-height: 90px;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
font-size: 44px;
|
||||||
|
font-family: "YSBTH";
|
||||||
|
letter-spacing: 5px;
|
||||||
|
font-weight: 400;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
span {
|
||||||
|
background-image: linear-gradient(to top, #165493 10%, #ffffff 50%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: attr(text);
|
||||||
|
position: absolute;
|
||||||
|
z-index: -2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right_head {
|
||||||
|
position: absolute;
|
||||||
|
right: 30px;
|
||||||
|
top: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
17
src/components/largeScreen/leftBorder.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<template>
|
||||||
|
<div class="leftBorder"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.leftBorder {
|
||||||
|
width: 20px;
|
||||||
|
height: 3240px;
|
||||||
|
background: url("~@/assets/images/largeScreen/leftBorder.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
17
src/components/largeScreen/rightBorder.vue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<template>
|
||||||
|
<div class="rightBorder"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.rightBorder {
|
||||||
|
width: 20px;
|
||||||
|
height: 3240px;
|
||||||
|
background: url("~@/assets/images/largeScreen/rightBorder.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -55,6 +55,27 @@ export const publicRoutes = [
|
|||||||
name: "/mapCount",
|
name: "/mapCount",
|
||||||
component: () => import("@/views/mapCount/index"),
|
component: () => import("@/views/mapCount/index"),
|
||||||
meta: {}
|
meta: {}
|
||||||
|
},
|
||||||
|
// 三级劳务体系⼈员数据大屏
|
||||||
|
{
|
||||||
|
path: "/threeLaborService",
|
||||||
|
name: "/threeLaborService",
|
||||||
|
component: () => import("@/views/threeLaborService/index"),
|
||||||
|
meta: {}
|
||||||
|
},
|
||||||
|
// “产教评”融合培训平台
|
||||||
|
{
|
||||||
|
path: "/integratedTrainingPlatform",
|
||||||
|
name: "/integratedTrainingPlatform",
|
||||||
|
component: () => import("@/views/integratedTrainingPlatform/index"),
|
||||||
|
meta: {}
|
||||||
|
},
|
||||||
|
// 兴蜀来了平台业务数据
|
||||||
|
{
|
||||||
|
path: "/platformBusinessData",
|
||||||
|
name: "/platformBusinessData",
|
||||||
|
component: () => import("@/views/platformBusinessData/index"),
|
||||||
|
meta: {}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,122 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="rankList">
|
||||||
|
<li v-for="(item, index) in rankData" :key="index">
|
||||||
|
<div class="jdtBox">
|
||||||
|
<div class="jdt" :style="{ width: item.proportion }"></div>
|
||||||
|
</div>
|
||||||
|
<div class="left">
|
||||||
|
<div class="sequence red" v-if="index == 0">{{ index + 1 }}</div>
|
||||||
|
<div class="sequence orange" v-else-if="index == 1">
|
||||||
|
{{ index + 1 }}
|
||||||
|
</div>
|
||||||
|
<div class="sequence yellow" v-else-if="index == 2">
|
||||||
|
{{ index + 1 }}
|
||||||
|
</div>
|
||||||
|
<div class="sequence" v-else>{{ index + 1 }}</div>
|
||||||
|
<div class="name">{{ item.name }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">{{ item.count }}</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from "vue";
|
||||||
|
const rankData = ref([
|
||||||
|
{ name: "省级劳务经济人证书培训", count: "120" },
|
||||||
|
{ name: "市级劳务经济人证书培训", count: "100" },
|
||||||
|
{ name: "平台劳务经济人证书培训", count: "95" },
|
||||||
|
{ name: "电工证书培训", count: "78" },
|
||||||
|
{ name: "焊工证书培训", count: "72" },
|
||||||
|
{ name: "厨师证书培训", count: "63" },
|
||||||
|
{ name: "英语四六级考试培训", count: "48" },
|
||||||
|
{ name: "雅思托福集训", count: "40" },
|
||||||
|
{ name: "会计从业资格证培训", count: "32" },
|
||||||
|
{ name: "Java开发培训", count: "29" }
|
||||||
|
]);
|
||||||
|
const computeProportion = (num) => {
|
||||||
|
const counts = rankData.value.map((item) => parseInt(item.count));
|
||||||
|
|
||||||
|
const maxNumb = Math.max(...counts);
|
||||||
|
console.log("最大值", maxNumb);
|
||||||
|
for (let i = 0; i < rankData.value.length; i++) {
|
||||||
|
rankData.value[i].proportion =
|
||||||
|
((parseInt(rankData.value[i].count) / maxNumb) * 100).toFixed(2) + "%";
|
||||||
|
}
|
||||||
|
console.log("比例", rankData.value);
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
computeProportion();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.rankList {
|
||||||
|
width: 828px;
|
||||||
|
margin: 0 auto;
|
||||||
|
li {
|
||||||
|
width: 100%;
|
||||||
|
height: 36px;
|
||||||
|
background: url("~@/assets/images/largeScreen/rankList-bg.png") no-repeat 0
|
||||||
|
0;
|
||||||
|
margin: 20px 0 0 0;
|
||||||
|
position: relative;
|
||||||
|
.left {
|
||||||
|
float: left;
|
||||||
|
.sequence {
|
||||||
|
position: absolute;
|
||||||
|
text-align: right;
|
||||||
|
top: 0px;
|
||||||
|
right: 750px;
|
||||||
|
font-size: 18px;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 12px;
|
||||||
|
color: #0a9eb5;
|
||||||
|
font-weight: bold;
|
||||||
|
&.red {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
&.orange {
|
||||||
|
color: #ffa500;
|
||||||
|
}
|
||||||
|
&.yellow {
|
||||||
|
color: #ffd700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
font-size: 20px;
|
||||||
|
margin: 0 0 0 100px;
|
||||||
|
line-height: 40px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
float: right;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 20px;
|
||||||
|
display: block;
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.jdtBox {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 97px;
|
||||||
|
right: 0px;
|
||||||
|
height: 2px;
|
||||||
|
.jdt {
|
||||||
|
height: 2px;
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
rgba(53, 168, 235, 0) 0%,
|
||||||
|
#00ddff 100%
|
||||||
|
);
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,115 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tableBox">
|
||||||
|
<el-table :data="tableData" style="width: 100%">
|
||||||
|
<el-table-column label="序号" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="name" label="课程名称" />
|
||||||
|
<el-table-column prop="startTime" label="开始时间" />
|
||||||
|
<el-table-column prop="endTime" label="结束时间" />
|
||||||
|
<el-table-column prop="address" label="地点" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
|
||||||
|
const tableData = ref([
|
||||||
|
{
|
||||||
|
name: "会计学",
|
||||||
|
startTime: "2025-05-22",
|
||||||
|
endTime: "2025-05-25",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "电工培训",
|
||||||
|
startTime: "2025-05-23",
|
||||||
|
endTime: "2025-05-24",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "焊工培训",
|
||||||
|
startTime: "2025-05-23",
|
||||||
|
endTime: "2025-05-25",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "钳工培训",
|
||||||
|
startTime: "2025-05-24",
|
||||||
|
endTime: "2025-05-27",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "厨师培训",
|
||||||
|
startTime: "2025-06-08",
|
||||||
|
endTime: "2025-06-10",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "会计学",
|
||||||
|
startTime: "2025-06-10",
|
||||||
|
endTime: "2025-06-11",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "管理学",
|
||||||
|
startTime: "2025-06-14",
|
||||||
|
endTime: "2025-06-17",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成功学",
|
||||||
|
startTime: "2025-06-22",
|
||||||
|
endTime: "2025-06-25",
|
||||||
|
address: "崇州重阳街道"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.tableBox {
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
.el-table {
|
||||||
|
background-color: transparent;
|
||||||
|
--el-table-border-color: rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep .el-table__header-wrapper {
|
||||||
|
margin: 0 0 1px 0;
|
||||||
|
}
|
||||||
|
::v-deep .el-table .el-table__cell {
|
||||||
|
padding: 17px 0;
|
||||||
|
}
|
||||||
|
::v-deep .el-table th.el-table__cell {
|
||||||
|
background-color: #164155 !important;
|
||||||
|
color: #c4f3fe;
|
||||||
|
margin: 0 0 2px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
::v-deep .el-table tr {
|
||||||
|
background-color: rgba(22, 65, 85, 0.5);
|
||||||
|
}
|
||||||
|
::v-deep .el-table tr:nth-child(even) {
|
||||||
|
background-color: rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep .el-table td.el-table__cell,
|
||||||
|
.el-table th.el-table__cell.is-leaf {
|
||||||
|
border-bottom: 1px solid rgba(22, 65, 85, 0.5);
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
::v-deep .el-table th.el-table__cell.is-leaf {
|
||||||
|
border-bottom: 1px solid rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep
|
||||||
|
.el-table--enable-row-hover
|
||||||
|
.el-table__body
|
||||||
|
tr:hover
|
||||||
|
> td.el-table__cell {
|
||||||
|
background-color: rgb(16, 104, 171);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,162 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 页面的 HTML 模板部分 -->
|
||||||
|
<div class="pieBigBox">
|
||||||
|
<div class="pieMain">
|
||||||
|
<div class="pieBox" ref="pieRef"></div>
|
||||||
|
<div class="pieTitle">证书占比</div>
|
||||||
|
</div>
|
||||||
|
<ul class="pieLsit">
|
||||||
|
<li>
|
||||||
|
<div><span class="blockOne"></span><span>劳务经济人证书</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">47</span><span class="proportion">34.55%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><span class="blockTwo"></span><span>初级证书</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">58</span><span class="proportion">42.02%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><span class="blockThree"></span><span>中级证书</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">23</span><span class="proportion">16.66%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><span class="blockFour"></span><span>高级证书</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">8</span><span class="proportion">5.79%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const pieRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
tooltip: {
|
||||||
|
trigger: "item"
|
||||||
|
},
|
||||||
|
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "学历占比",
|
||||||
|
type: "pie",
|
||||||
|
radius: ["65%", "80%"],
|
||||||
|
avoidLabelOverlap: false,
|
||||||
|
padAngle: 5,
|
||||||
|
itemStyle: {
|
||||||
|
borderRadius: 1
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false,
|
||||||
|
position: "center"
|
||||||
|
},
|
||||||
|
|
||||||
|
labelLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
data: [
|
||||||
|
{ value: 47, name: "劳务经济人证书", itemStyle: { color: "#58A8FF" } },
|
||||||
|
{ value: 58, name: "初级证书", itemStyle: { color: "#30DCFF" } },
|
||||||
|
{ value: 23, name: "中级证书", itemStyle: { color: "#ffffff" } },
|
||||||
|
{ value: 8, name: "高级证书", itemStyle: { color: "#dd7d4d" } }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (pieRef.value) {
|
||||||
|
const chart = echarts.init(pieRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.pieBigBox {
|
||||||
|
width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
height: 274px;
|
||||||
|
.pieMain {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
float: left;
|
||||||
|
.pieBox {
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 20px;
|
||||||
|
width: 230px;
|
||||||
|
height: 230px;
|
||||||
|
background: url("~@/assets/images/recruitment/pie-bg@2x.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
.pieTitle {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 10;
|
||||||
|
margin-top: -0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul.pieLsit {
|
||||||
|
float: left;
|
||||||
|
margin: 10px 0 0 20px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
padding: 10px 0 0 0;
|
||||||
|
width: 340px;
|
||||||
|
li {
|
||||||
|
// font-size: 16px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
padding: 0 10px;
|
||||||
|
background: rgba(203, 242, 250, 0.2);
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
border: 1px solid rgba(203, 242, 250, 0.2);
|
||||||
|
margin-top: 12px;
|
||||||
|
> div {
|
||||||
|
height: 100%;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
.blockOne,
|
||||||
|
.blockTwo,
|
||||||
|
.blockThree,
|
||||||
|
.blockFour {
|
||||||
|
display: inline-block;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
.blockOne {
|
||||||
|
background-color: #58a8ff;
|
||||||
|
}
|
||||||
|
.blockTwo {
|
||||||
|
background-color: #30dcff;
|
||||||
|
}
|
||||||
|
.blockThree {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
.blockFour {
|
||||||
|
background-color: #dd7d4d;
|
||||||
|
}
|
||||||
|
.proportion {
|
||||||
|
display: inline-block;
|
||||||
|
width: 80px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
<template>
|
||||||
|
<div class="chartBox" ref="institutionalTrendsRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const institutionalTrendsRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "30px",
|
||||||
|
left: "50px",
|
||||||
|
right: "40px",
|
||||||
|
bottom: "50px"
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: "axis"
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "category",
|
||||||
|
data: [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"3月",
|
||||||
|
"4月",
|
||||||
|
"5月",
|
||||||
|
"6月",
|
||||||
|
"7月",
|
||||||
|
"8月",
|
||||||
|
"9月",
|
||||||
|
"10月",
|
||||||
|
"11月",
|
||||||
|
"12月"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: "value"
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "证书发证数量",
|
||||||
|
type: "line",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [38, 62, 52, 41, 37, 62, 52, 41, 67, 62, 52, 41],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" }
|
||||||
|
// { offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (institutionalTrendsRef.value) {
|
||||||
|
const chart = echarts.init(institutionalTrendsRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.chartBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 274px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<div class="chartBox" ref="laborSystemOneRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const laborSystemOneRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "30px",
|
||||||
|
left: "50px",
|
||||||
|
right: "40px",
|
||||||
|
bottom: "40px"
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: "axis",
|
||||||
|
axisPointer: {
|
||||||
|
type: "none"
|
||||||
|
},
|
||||||
|
formatter: function (params) {
|
||||||
|
return params[0].name + ": " + params[0].value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
data: [
|
||||||
|
"崇州",
|
||||||
|
"武侯",
|
||||||
|
"高新",
|
||||||
|
"金牛",
|
||||||
|
"锦江",
|
||||||
|
"青羊",
|
||||||
|
"新津",
|
||||||
|
"简阳",
|
||||||
|
"郫县",
|
||||||
|
"新都"
|
||||||
|
],
|
||||||
|
axisLabel: {
|
||||||
|
textStyle: {
|
||||||
|
color: "#CBF2FA"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// color: ["#fff"],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "hill",
|
||||||
|
type: "pictorialBar",
|
||||||
|
barCategoryGap: "30%",
|
||||||
|
symbol: "triangle",
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 1,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" },
|
||||||
|
{ offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: [123, 60, 125, 80, 90, 100, 120, 80, 100, 120],
|
||||||
|
z: 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "glyph",
|
||||||
|
type: "pictorialBar",
|
||||||
|
barGap: "-100%",
|
||||||
|
symbolPosition: "end",
|
||||||
|
symbolSize: 50,
|
||||||
|
symbolOffset: [0, "-120%"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (laborSystemOneRef.value) {
|
||||||
|
const chart = echarts.init(laborSystemOneRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.chartBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 274px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,116 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="rankList">
|
||||||
|
<li v-for="(item, index) in rankData" :key="index">
|
||||||
|
<div class="jdtBox">
|
||||||
|
<div class="jdt" :style="{ width: item.proportion }"></div>
|
||||||
|
</div>
|
||||||
|
<div class="left">
|
||||||
|
<div class="sequence red" v-if="index == 0">{{ index + 1 }}</div>
|
||||||
|
<div class="sequence orange" v-else-if="index == 1">
|
||||||
|
{{ index + 1 }}
|
||||||
|
</div>
|
||||||
|
<div class="sequence yellow" v-else-if="index == 2">
|
||||||
|
{{ index + 1 }}
|
||||||
|
</div>
|
||||||
|
<div class="sequence" v-else>{{ index + 1 }}</div>
|
||||||
|
<div class="name">{{ item.name }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">{{ item.count }}</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from "vue";
|
||||||
|
const rankData = ref([
|
||||||
|
{ name: "省级劳务经纪人证书", count: "120" },
|
||||||
|
{ name: "市级劳务经纪人证书", count: "100" },
|
||||||
|
{ name: "兴蜀平台劳务经纪人证书", count: "95" },
|
||||||
|
{ name: "高级技工职业资格证", count: "78" }
|
||||||
|
]);
|
||||||
|
const computeProportion = (num) => {
|
||||||
|
const counts = rankData.value.map((item) => parseInt(item.count));
|
||||||
|
|
||||||
|
const maxNumb = Math.max(...counts);
|
||||||
|
console.log("最大值", maxNumb);
|
||||||
|
for (let i = 0; i < rankData.value.length; i++) {
|
||||||
|
rankData.value[i].proportion =
|
||||||
|
((parseInt(rankData.value[i].count) / maxNumb) * 100).toFixed(2) + "%";
|
||||||
|
}
|
||||||
|
console.log("比例", rankData.value);
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
computeProportion();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.rankList {
|
||||||
|
width: 828px;
|
||||||
|
margin: 0 auto;
|
||||||
|
li {
|
||||||
|
width: 100%;
|
||||||
|
height: 36px;
|
||||||
|
background: url("~@/assets/images/largeScreen/rankList-bg.png") no-repeat 0
|
||||||
|
0;
|
||||||
|
margin: 25px 0 0 0;
|
||||||
|
position: relative;
|
||||||
|
.left {
|
||||||
|
float: left;
|
||||||
|
.sequence {
|
||||||
|
position: absolute;
|
||||||
|
text-align: right;
|
||||||
|
top: 0px;
|
||||||
|
right: 750px;
|
||||||
|
font-size: 18px;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 12px;
|
||||||
|
color: #0a9eb5;
|
||||||
|
font-weight: bold;
|
||||||
|
&.red {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
&.orange {
|
||||||
|
color: #ffa500;
|
||||||
|
}
|
||||||
|
&.yellow {
|
||||||
|
color: #ffd700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
font-size: 20px;
|
||||||
|
margin: 0 0 0 100px;
|
||||||
|
line-height: 40px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
float: right;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 20px;
|
||||||
|
display: block;
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.jdtBox {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 97px;
|
||||||
|
right: 0px;
|
||||||
|
height: 2px;
|
||||||
|
.jdt {
|
||||||
|
height: 2px;
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
rgba(53, 168, 235, 0) 0%,
|
||||||
|
#00ddff 100%
|
||||||
|
);
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
<template>
|
||||||
|
<div class="institutionalTrendsBox" ref="institutionalTrendsRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const institutionalTrendsRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "50px",
|
||||||
|
left: "50px",
|
||||||
|
right: "40px",
|
||||||
|
bottom: "50px"
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: "axis"
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "category",
|
||||||
|
data: [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"3月",
|
||||||
|
"4月",
|
||||||
|
"5月",
|
||||||
|
"6月",
|
||||||
|
"7月",
|
||||||
|
"8月",
|
||||||
|
"9月",
|
||||||
|
"10月",
|
||||||
|
"11月",
|
||||||
|
"12月"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: "value"
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "培训机构数量",
|
||||||
|
type: "line",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [38, 62, 52, 41, 37, 62, 52, 41, 67, 62, 52, 41],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" }
|
||||||
|
// { offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (institutionalTrendsRef.value) {
|
||||||
|
const chart = echarts.init(institutionalTrendsRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.institutionalTrendsBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 638px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,148 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 页面的 HTML 模板部分 -->
|
||||||
|
|
||||||
|
<ul class="schoolLsit">
|
||||||
|
<li v-for="(item, index) in workList" :key="index">
|
||||||
|
<div class="name">{{ item.name }}</div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">{{ item.num }}</span
|
||||||
|
><span>人</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
const workList = ref([
|
||||||
|
{
|
||||||
|
name: "省级劳务经济人培训",
|
||||||
|
num: 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "市级劳务经济人培训",
|
||||||
|
num: 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "平台劳务经济人培训",
|
||||||
|
num: 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "会计从业资格证培训",
|
||||||
|
num: 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "厨师培训",
|
||||||
|
num: 154
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "钳工培训",
|
||||||
|
num: 28
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "电工培训",
|
||||||
|
num: 34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "焊工培训",
|
||||||
|
num: 51
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "英语四六级培训",
|
||||||
|
num: 27
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "雅思托福培训",
|
||||||
|
num: 49
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "少儿英语培训",
|
||||||
|
num: 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "街舞培训",
|
||||||
|
num: 82
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "名族舞培训",
|
||||||
|
num: 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "管理学培训",
|
||||||
|
num: 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "奥数培训",
|
||||||
|
num: 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "机修培训",
|
||||||
|
num: 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "汽修培训",
|
||||||
|
num: 154
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AI训练员培训",
|
||||||
|
num: 28
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "高级技工培训",
|
||||||
|
num: 34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "数学培训",
|
||||||
|
num: 51
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.schoolLsit {
|
||||||
|
margin: 0 18px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
li {
|
||||||
|
height: 42px;
|
||||||
|
width: 220px;
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
border: 1px solid rgba(48, 220, 255, 0.2);
|
||||||
|
// box-sizing: border-box;
|
||||||
|
margin: 20px 0 0 48px;
|
||||||
|
position: relative;
|
||||||
|
padding: 0 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
background: url("~@/assets/images/largeScreen/listIcon-kc.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
left: -48px;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
> div {
|
||||||
|
height: 100%;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
color: #cbf2fa;
|
||||||
|
}
|
||||||
|
.numb {
|
||||||
|
color: #30dcff;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 0.3vw 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,142 @@
|
|||||||
|
<template>
|
||||||
|
<div class="chartsBox" ref="rcgyRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const rcgyRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "50px",
|
||||||
|
left: "50px",
|
||||||
|
right: "30px",
|
||||||
|
bottom: "50px"
|
||||||
|
},
|
||||||
|
// 设置图例
|
||||||
|
legend: {
|
||||||
|
itemWidth: 10, // 方块宽度
|
||||||
|
itemHeight: 10, // 方块高度
|
||||||
|
textStyle: {
|
||||||
|
color: "#B2D9DF" // 文字颜色
|
||||||
|
},
|
||||||
|
x: "center", // 图例在左(left)、右(right)、居中(center)、100px
|
||||||
|
y: "top", // 图例在上(top)、下(bottom)、居中(center、100px)、100px
|
||||||
|
padding: [20, 50, 0, 0] // 图例[距上右下左方距离
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "category",
|
||||||
|
data: [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"3月",
|
||||||
|
"4月",
|
||||||
|
"5月",
|
||||||
|
"6月",
|
||||||
|
"7月",
|
||||||
|
"8月",
|
||||||
|
"9月",
|
||||||
|
"10月",
|
||||||
|
"11月",
|
||||||
|
"12月"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: "value"
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "总人数",
|
||||||
|
type: "bar",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [76, 32, 87, 65, 34, 23, 52, 60, 75, 53, 62, 41],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" },
|
||||||
|
{ offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "完成培训人数",
|
||||||
|
type: "bar",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [34, 15, 45, 24, 12, 10, 35, 23, 42, 31, 33, 25],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#CBF2FA"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(203, 242, 250, 1)" },
|
||||||
|
{ offset: 1, color: "rgba(203, 242, 250, 0.08)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (rcgyRef.value) {
|
||||||
|
const chart = echarts.init(rcgyRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.chartsBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 638px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="statisticOne">
|
||||||
|
<li v-for="(item, index) in statisticData" :key="index">
|
||||||
|
<img :src="item.imgURL" :alt="item.title" />
|
||||||
|
<div class="infoBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>{{ item.title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="count">
|
||||||
|
<span class="numb">{{ item.count }}</span
|
||||||
|
>({{ item.unit }})
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import tongjiPxrs from "@/assets/images/largeScreen/tongji-pxrs.png";
|
||||||
|
import tongjiPxkc from "@/assets/images/largeScreen/tongji-pxkc.png";
|
||||||
|
import tongjiPxjg from "@/assets/images/largeScreen/tongji-pxjg.png";
|
||||||
|
const statisticData = ref([
|
||||||
|
{
|
||||||
|
imgURL: tongjiPxjg,
|
||||||
|
title: "培训机构数",
|
||||||
|
count: "46",
|
||||||
|
unit: "家"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imgURL: tongjiPxkc,
|
||||||
|
title: "培训课程数",
|
||||||
|
count: "236",
|
||||||
|
unit: "节"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imgURL: tongjiPxrs,
|
||||||
|
title: "培训⼈数",
|
||||||
|
count: "5623",
|
||||||
|
unit: "人"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.statisticOne {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
li {
|
||||||
|
width: 450px;
|
||||||
|
height: 190px;
|
||||||
|
margin: 0 10px;
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
width: 190px;
|
||||||
|
height: 190px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.infoBox {
|
||||||
|
float: left;
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
.title {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
margin-top: 36px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
font-size: 24px;
|
||||||
|
padding: 18px 0 0 0;
|
||||||
|
span.numb {
|
||||||
|
font-size: 64px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,75 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="statisticOne">
|
||||||
|
<li v-for="(item, index) in props.tabsData" :key="index">
|
||||||
|
<img :src="item.imgURL" :alt="item.title" />
|
||||||
|
<div class="infoBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>{{ item.title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="count">
|
||||||
|
<span class="numb">{{ item.count }}</span
|
||||||
|
>({{ item.unit }})
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, defineProps, onMounted } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
tabsData: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
onMounted(() => {
|
||||||
|
console.log(props.tabsData);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.statisticOne {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin-top: 14px;
|
||||||
|
li {
|
||||||
|
width: 450px;
|
||||||
|
height: 190px;
|
||||||
|
margin: 0 10px;
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
float: left;
|
||||||
|
margin: 60px 10px 0 0;
|
||||||
|
}
|
||||||
|
.infoBox {
|
||||||
|
float: left;
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
.title {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
margin-top: 36px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
font-size: 24px;
|
||||||
|
padding: 10px 0 0 0;
|
||||||
|
span.numb {
|
||||||
|
font-size: 64px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
223
src/views/integratedTrainingPlatform/index.vue
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
<template>
|
||||||
|
<div class="allBox">
|
||||||
|
<!-- 头部 -->
|
||||||
|
<Head title="“产教评”融合培训平台"></Head>
|
||||||
|
<LeftBorder></LeftBorder>
|
||||||
|
<RightBorder></RightBorder>
|
||||||
|
<BottomBorder></BottomBorder>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="title"><span>兴蜀来了培训产品 online</span></div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<StatisticOne style="margin-top: 50px"></StatisticOne>
|
||||||
|
<ul class="contentOne">
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">培训内容TOP10</div>
|
||||||
|
<ConentOneBoxOne></ConentOneBoxOne>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">培训课程计划</div>
|
||||||
|
<ConentOneBoxTwo></ConentOneBoxTwo>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="title"><span>培训机构情况</span></div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<StatisticTwo :tabsData="pxjgTabData"></StatisticTwo>
|
||||||
|
<ul class="contentTwo">
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">培训机构数量变化趋势</div>
|
||||||
|
<ContentTwoBoxOne></ContentTwoBoxOne>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">培训用户数量统计</div>
|
||||||
|
<ContentTwoBoxTwo></ContentTwoBoxTwo>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">各类培训课程人数统计</div>
|
||||||
|
<ContentTwoBoxThree></ContentTwoBoxThree>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="title"><span>证书发证情况</span></div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<StatisticTwo :tabsData="zsfzTabData"></StatisticTwo>
|
||||||
|
<ul class="contentThree">
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">证书发证变化趋势</div>
|
||||||
|
<ContentThreeBoxOne></ContentThreeBoxOne>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">热门证书TOP5</div>
|
||||||
|
<ContentThreeBoxTwo></ContentThreeBoxTwo>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">各地区发证数量统计</div>
|
||||||
|
<ContentThreeBoxThree></ContentThreeBoxThree>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">各类证书发证数量占比</div>
|
||||||
|
<ContentThreeBoxFour></ContentThreeBoxFour>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import Head from "../../components/largeScreen/headHome.vue";
|
||||||
|
import LeftBorder from "../../components/largeScreen/leftBorder.vue";
|
||||||
|
import RightBorder from "../../components/largeScreen/rightBorder.vue";
|
||||||
|
import BottomBorder from "../../components/largeScreen/bottomBorder.vue";
|
||||||
|
import StatisticOne from "./components/statisticOne.vue";
|
||||||
|
import ConentOneBoxOne from "./components/contentOneBoxOne.vue";
|
||||||
|
import ConentOneBoxTwo from "./components/contentOneBoxTwo.vue";
|
||||||
|
import StatisticTwo from "./components/statisticTwo.vue";
|
||||||
|
import ContentTwoBoxOne from "./components/contentTwoBoxOne.vue";
|
||||||
|
import ContentTwoBoxTwo from "./components/contentTwoBoxTwo.vue";
|
||||||
|
import ContentTwoBoxThree from "./components/contentTwoBoxThree.vue";
|
||||||
|
import ContentThreeBoxOne from "./components/contentThreeBoxOne.vue";
|
||||||
|
import ContentThreeBoxTwo from "./components/contentThreeBoxTwo.vue";
|
||||||
|
import ContentThreeBoxThree from "./components/contentThreeBoxThree.vue";
|
||||||
|
import ContentThreeBoxFour from "./components/contentThreeBoxFour.vue";
|
||||||
|
|
||||||
|
import tongji2Yhjh from "@/assets/images/largeScreen/tongji2-yhjh.png";
|
||||||
|
import tongji2Hyyh from "@/assets/images/largeScreen/tongji2-hyyh.png";
|
||||||
|
import tongji2Dtzxfz from "@/assets/images/largeScreen/tongji2-dtzxfz.png";
|
||||||
|
import tongji3Jjrzs from "@/assets/images/largeScreen/tongji3-jjrzs.png";
|
||||||
|
import tongji3Jgzgz from "@/assets/images/largeScreen/tongji3-jgzgz.png";
|
||||||
|
// 定义标题名称
|
||||||
|
const title = "三级劳务体系⼈员数据";
|
||||||
|
const pxjgTabData = ref([
|
||||||
|
{
|
||||||
|
imgURL: tongji2Yhjh,
|
||||||
|
title: "用户激活总数",
|
||||||
|
count: "5243",
|
||||||
|
unit: "人"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imgURL: tongji2Hyyh,
|
||||||
|
title: "近30天活跃用户数",
|
||||||
|
count: "2315",
|
||||||
|
unit: "人"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imgURL: tongji2Dtzxfz,
|
||||||
|
title: "当天在线峰值",
|
||||||
|
count: "623",
|
||||||
|
unit: "人"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
const zsfzTabData = ref([
|
||||||
|
{
|
||||||
|
imgURL: tongji3Jjrzs,
|
||||||
|
title: "劳务经纪人证书总数",
|
||||||
|
count: "243",
|
||||||
|
unit: "个"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imgURL: tongji3Jgzgz,
|
||||||
|
title: "技工资格证总数",
|
||||||
|
count: "1315",
|
||||||
|
unit: "个"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.pubTitle {
|
||||||
|
height: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 24px;
|
||||||
|
color: #c4f3fe;
|
||||||
|
margin-top: 20px;
|
||||||
|
background: url("~@/assets/images/largeScreen/pubTitle-bg60.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: auto 100%;
|
||||||
|
}
|
||||||
|
.allBox {
|
||||||
|
width: 1920px;
|
||||||
|
height: 3240px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: url("~@/assets/images/largeScreen/all-bg.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.mainBox {
|
||||||
|
width: 1862px;
|
||||||
|
height: 1000px;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 30px;
|
||||||
|
.title {
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-title.png") no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#dbf9ff, #a9f0ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.contentBox {
|
||||||
|
height: 966px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-bg.png") no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
background-position: center bottom;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
ul.contentOne {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin: 30px 30px 0;
|
||||||
|
li {
|
||||||
|
width: 886px;
|
||||||
|
height: 665px;
|
||||||
|
background: url("~@/assets/images/largeScreen/largeScreen2-kuang1.png")
|
||||||
|
no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul.contentTwo {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin: 10px 30px 0;
|
||||||
|
li {
|
||||||
|
width: 588px;
|
||||||
|
height: 720px;
|
||||||
|
background: url("~@/assets/images/largeScreen/largeScreen2-kuang2.png")
|
||||||
|
no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul.contentThree {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 0px 30px 0;
|
||||||
|
li {
|
||||||
|
width: 891px;
|
||||||
|
height: 355px;
|
||||||
|
background: url("~@/assets/images/largeScreen/largeScreen2-kuang3.png")
|
||||||
|
no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
#app {
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
85
src/views/platformBusinessData/components/mainBoxFive.vue
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>重点人群</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>帮扶就业困难人员</span></div>
|
||||||
|
<div class="count"><span class="numb">3539</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>城镇零就业家庭成员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">619</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>城镇低保家庭成员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">597</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>残疾人</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">583</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>现役军人配偶</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">511</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>烈属</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">493</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>贫困劳动力</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">427</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>农村低收入劳动力</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">309</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>高校毕业生</span></div>
|
||||||
|
<div class="count"><span class="numb">57962</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>退役军人</span></div>
|
||||||
|
<div class="count"><span class="numb">25173</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>长期失业人员</span></div>
|
||||||
|
<div class="count"><span class="numb">5426</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
47
src/views/platformBusinessData/components/mainBoxFour.vue
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>创业撮合情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>上架创业项目</span></div>
|
||||||
|
<div class="count"><span class="numb">73</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>撮合成功项目</span></div>
|
||||||
|
<div class="count"><span class="numb">59</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>创业导师提供</span></div>
|
||||||
|
<div class="count"><span class="numb">42</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>创业孵化企业</span></div>
|
||||||
|
<div class="count"><span class="numb">32</span>(家)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>创业孵化就业人数</span></div>
|
||||||
|
<div class="count"><span class="numb">215</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
81
src/views/platformBusinessData/components/mainBoxOne.vue
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>全职招聘情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>用人单位数</span></div>
|
||||||
|
<div class="count"><span class="numb">34</span>(家)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>发布岗位数</span></div>
|
||||||
|
<div class="count"><span class="numb">138</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>招聘热门岗位</span></div>
|
||||||
|
<!-- <div class="count"><span class="numb">230</span>(人)</div> -->
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">01</span><span>普工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">32</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">02</span><span>技工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">29</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">03</span><span>操作工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">17</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>入职热门岗位</span></div>
|
||||||
|
<!-- <div class="count"><span class="numb">230</span>(人)</div> -->
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">01</span><span>普工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">32</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">02</span><span>技工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">29</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span class="rankNumb">03</span><span>操作工</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">17</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
106
src/views/platformBusinessData/components/mainBoxSix.vue
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>技能培训</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>平台培训机构数</span></div>
|
||||||
|
<div class="count"><span class="numb">32</span>(家)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>上架课程</span></div>
|
||||||
|
<div class="count"><span class="numb">143</span>(门)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>技能岗位需求增长</span></div>
|
||||||
|
<div class="count"><span class="numb">63</span>(%)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>培训后就业成功率</span></div>
|
||||||
|
<div class="count"><span class="numb">79</span>(%)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ul class="list">
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>报名人数</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">2658</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>培训期数</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">46</span>(期)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>培训课程数</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">135</span>(门)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>培训完结人数</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">2143</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>发证人数</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">2019</span>(人)</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "../index.scss";
|
||||||
|
ul.list {
|
||||||
|
width: 560px;
|
||||||
|
margin: 0 auto;
|
||||||
|
li {
|
||||||
|
height: 70px;
|
||||||
|
line-height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.liTitle {
|
||||||
|
font-size: 32px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.rankNumb {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 10px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
line-height: 70px;
|
||||||
|
font-size: 24px;
|
||||||
|
.numb {
|
||||||
|
font-size: 48px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 15px 0 0;
|
||||||
|
text-shadow: 0 0 5px #2ab9d6, 0 0 20px #2ab9d6, 0 0 30px #2ab9d6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
47
src/views/platformBusinessData/components/mainBoxThree.vue
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>实习招聘情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>实习合作企业</span></div>
|
||||||
|
<div class="count"><span class="numb">23</span>(家)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>实习合作院校</span></div>
|
||||||
|
<div class="count"><span class="numb">9</span>(家)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>校企联合实习基地</span></div>
|
||||||
|
<div class="count"><span class="numb">13</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>定向推送实习岗位</span></div>
|
||||||
|
<div class="count"><span class="numb">58</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>实习入职人员</span></div>
|
||||||
|
<div class="count"><span class="numb">324</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
85
src/views/platformBusinessData/components/mainBoxTwo.vue
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<li class="mainBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>零工招聘情况</span>
|
||||||
|
</div>
|
||||||
|
<div class="contentBox">
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>零工岗位</span></div>
|
||||||
|
<div class="count"><span class="numb">152</span>(个)</div>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>外卖配送员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">35</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>快递分拣员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">28</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>家政保洁员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">22</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>网约车司机</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">18</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>电商客服(兼职)</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">15</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>商超理货员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">12</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>短视频剪辑师(兼职)</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">8</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="liTitle">
|
||||||
|
<span>活动协助员</span>
|
||||||
|
</div>
|
||||||
|
<div class="count"><span class="numb">4</span>(个)</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>零工人才库</span></div>
|
||||||
|
<div class="count"><span class="numb">237</span>(人)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="countBox">
|
||||||
|
<div class="countTitle"><span>就业人次</span></div>
|
||||||
|
<div class="count"><span class="numb">524</span>(次)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
115
src/views/platformBusinessData/components/topStatistics.vue
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="topStatisticsBox">
|
||||||
|
<li
|
||||||
|
v-for="(item, index) in statisticsData"
|
||||||
|
:key="index"
|
||||||
|
:style="{ margin: item.margin }"
|
||||||
|
>
|
||||||
|
<img :src="item.imgURL" :alt="item.title" />
|
||||||
|
<div class="infoBox">
|
||||||
|
<div class="title">
|
||||||
|
<span>{{ item.title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="count">
|
||||||
|
<span class="numb">{{ item.value }}</span
|
||||||
|
>({{ item.unit }})
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import topStatisticsJyfwz from "@/assets/images/largeScreen/topStatistics-jyfwz.png";
|
||||||
|
import topStatisticsRzqy from "@/assets/images/largeScreen/topStatistics-rzqy.png";
|
||||||
|
import topStatisticsWczpjh from "@/assets/images/largeScreen/topStatistics-wczpjh.png";
|
||||||
|
import topStatisticsZhytj from "@/assets/images/largeScreen/topStatistics-zhytj.png";
|
||||||
|
import topStatisticsZpgw from "@/assets/images/largeScreen/topStatistics-zpgw.png";
|
||||||
|
|
||||||
|
const statisticsData = ref([
|
||||||
|
{
|
||||||
|
title: "招聘岗位",
|
||||||
|
value: "325",
|
||||||
|
imgURL: topStatisticsZpgw,
|
||||||
|
unit: "个",
|
||||||
|
margin: "-326px 0 0 -685px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "完成招聘计划",
|
||||||
|
value: "312",
|
||||||
|
imgURL: topStatisticsWczpjh,
|
||||||
|
unit: "个",
|
||||||
|
margin: "-467px 0px 0px -228px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "入住企业",
|
||||||
|
value: "35",
|
||||||
|
imgURL: topStatisticsRzqy,
|
||||||
|
unit: "家",
|
||||||
|
margin: "-232px 0px 0px 306px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "综合一体机",
|
||||||
|
value: "78",
|
||||||
|
imgURL: topStatisticsZhytj,
|
||||||
|
unit: "个",
|
||||||
|
margin: "-76px 0px 0px -500px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "就业服务站",
|
||||||
|
value: "18",
|
||||||
|
imgURL: topStatisticsJyfwz,
|
||||||
|
unit: "家",
|
||||||
|
margin: "-48px 0px 0 9px"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.topStatisticsBox {
|
||||||
|
height: 1055px;
|
||||||
|
background: url("~@/assets/images/largeScreen/topStatistics-bg.png") no-repeat
|
||||||
|
center;
|
||||||
|
position: relative;
|
||||||
|
li {
|
||||||
|
position: absolute;
|
||||||
|
width: 450px;
|
||||||
|
height: 190px;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
width: 190px;
|
||||||
|
height: 190px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.infoBox {
|
||||||
|
float: left;
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
.title {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
margin-top: 36px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
font-size: 24px;
|
||||||
|
padding: 18px 0 0 0;
|
||||||
|
span.numb {
|
||||||
|
font-size: 64px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
111
src/views/platformBusinessData/index.scss
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
.allBox {
|
||||||
|
width: 1920px;
|
||||||
|
height: 3240px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: url("~@/assets/images/largeScreen/all-bg.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
ul.bigBox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
li.mainBox {
|
||||||
|
width: 600px;
|
||||||
|
height: 1000px;
|
||||||
|
margin: 15px;
|
||||||
|
background: url("~@/assets/images/largeScreen/mainBox-bg.png") no-repeat;
|
||||||
|
background-size: auto 100%;
|
||||||
|
background-position: center bottom;
|
||||||
|
.title {
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
background: url("~@/assets/images/largeScreen/mainBox-title.png")
|
||||||
|
no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#dbf9ff, #a9f0ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.contentBox {
|
||||||
|
height: 966px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
flex-direction: column;
|
||||||
|
.dataBox {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 560px;
|
||||||
|
min-height: 40px;
|
||||||
|
background: url("~@/assets/images/largeScreen/dataBox-line-bg.png")
|
||||||
|
no-repeat;
|
||||||
|
background-position: center bottom;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0 0 15px;
|
||||||
|
.countBox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 85px;
|
||||||
|
background: url("~@/assets/images/largeScreen/tongji3-jjrzs.png")
|
||||||
|
no-repeat left top;
|
||||||
|
.countTitle {
|
||||||
|
line-height: 70px;
|
||||||
|
font-size: 32px;
|
||||||
|
padding: 0 0 0 84px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
line-height: 70px;
|
||||||
|
font-size: 24px;
|
||||||
|
.numb {
|
||||||
|
font-size: 48px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 15px 0 0;
|
||||||
|
text-shadow: 0 0 5px #2ab9d6, 0 0 20px #2ab9d6, 0 0 30px #2ab9d6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
li {
|
||||||
|
height: 70px;
|
||||||
|
line-height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.liTitle {
|
||||||
|
font-size: 32px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #75e8ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.rankNumb {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 10px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.count {
|
||||||
|
line-height: 70px;
|
||||||
|
font-size: 24px;
|
||||||
|
.numb {
|
||||||
|
font-size: 48px;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 15px 0 0;
|
||||||
|
text-shadow: 0 0 5px #2ab9d6, 0 0 20px #2ab9d6, 0 0 30px #2ab9d6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
53
src/views/platformBusinessData/index.vue
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div class="allBox">
|
||||||
|
<!-- 头部 -->
|
||||||
|
<Head title="兴蜀来了平台业务数据"></Head>
|
||||||
|
<LeftBorder></LeftBorder>
|
||||||
|
<RightBorder></RightBorder>
|
||||||
|
<BottomBorder></BottomBorder>
|
||||||
|
<!-- 顶部统计 -->
|
||||||
|
<TopStatistics></TopStatistics>
|
||||||
|
<!-- 数据统计 -->
|
||||||
|
<ul class="bigBox">
|
||||||
|
<!-- 全职招聘情况 -->
|
||||||
|
<MainBoxOne></MainBoxOne>
|
||||||
|
<!-- 零工招聘情况 -->
|
||||||
|
<MainBoxTwo></MainBoxTwo>
|
||||||
|
<!-- 实习招聘情况 -->
|
||||||
|
<MainBoxThree></MainBoxThree>
|
||||||
|
<!-- 创业撮合情况 -->
|
||||||
|
<MainBoxFour></MainBoxFour>
|
||||||
|
<!-- 重点人群 -->
|
||||||
|
<MainBoxFive></MainBoxFive>
|
||||||
|
<!-- 技能培训 -->
|
||||||
|
<MainBoxSix></MainBoxSix>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import Head from "../../components/largeScreen/headHome.vue";
|
||||||
|
import LeftBorder from "../../components/largeScreen/leftBorder.vue";
|
||||||
|
import RightBorder from "../../components/largeScreen/rightBorder.vue";
|
||||||
|
import BottomBorder from "../../components/largeScreen/bottomBorder.vue";
|
||||||
|
import TopStatistics from "./components/topStatistics";
|
||||||
|
import MainBoxOne from "./components/mainBoxOne";
|
||||||
|
import MainBoxTwo from "./components/mainBoxTwo";
|
||||||
|
import MainBoxThree from "./components/mainBoxThree";
|
||||||
|
import MainBoxFour from "./components/mainBoxFour";
|
||||||
|
import MainBoxFive from "./components/mainBoxFive";
|
||||||
|
import MainBoxSix from "./components/mainBoxSix";
|
||||||
|
|
||||||
|
// 定义标题名称
|
||||||
|
const title = "三级劳务体系⼈员数据";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./index.scss";
|
||||||
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
#app {
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
592
src/views/threeLaborService/components/companyProfile.vue
Normal file
@ -0,0 +1,592 @@
|
|||||||
|
<template>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="title"><span>服务企业情况</span></div>
|
||||||
|
<div class="content">
|
||||||
|
<!-- tabs切换 -->
|
||||||
|
<ul class="tabsBox">
|
||||||
|
<li
|
||||||
|
v-for="(item, index) in tabsData"
|
||||||
|
:key="item.title"
|
||||||
|
:class="{ active: activeIndex === index }"
|
||||||
|
@click="handleTabClick(index)"
|
||||||
|
>
|
||||||
|
<div class="tabsMainBox">
|
||||||
|
<div class="tabsTitle">{{ item.title }}</div>
|
||||||
|
<div class="tabsContent">
|
||||||
|
<div>
|
||||||
|
<span>{{ item.content[0].title }}</span
|
||||||
|
><br />
|
||||||
|
<span class="num">{{ item.content[0].num }}</span
|
||||||
|
><span>家</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>{{ item.content[1].title }}</span
|
||||||
|
><br />
|
||||||
|
<span class="num">{{ item.content[1].num }}</span
|
||||||
|
><span>个</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tableBox">
|
||||||
|
<el-table :data="tableData" style="width: 100%">
|
||||||
|
<el-table-column label="序号" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="name" label="企业名称" />
|
||||||
|
<el-table-column prop="street" label="所属街道" />
|
||||||
|
<el-table-column prop="position" label="招聘岗位" />
|
||||||
|
<el-table-column prop="recruitmentNum" label="招聘人数" />
|
||||||
|
<el-table-column prop="broker" label="服务经济人" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { el } from "element-plus/es/locale.mjs";
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
const tabsData = ref([
|
||||||
|
{
|
||||||
|
title: "第一产业企业",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "服务企业数",
|
||||||
|
num: "25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推荐岗位数",
|
||||||
|
num: "67"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "第二产业企业",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "服务企业数",
|
||||||
|
num: "14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推荐岗位数",
|
||||||
|
num: "47"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "第三产业企业",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "服务企业数",
|
||||||
|
num: "34"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推荐岗位数",
|
||||||
|
num: "135"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
// 添加选中项状态
|
||||||
|
const activeIndex = ref(0); // 默认选中第一项
|
||||||
|
// 添加点击处理函数
|
||||||
|
const handleTabClick = (index) => {
|
||||||
|
activeIndex.value = index;
|
||||||
|
if (index == 0) {
|
||||||
|
tableData.value = table1Data.value;
|
||||||
|
} else if (index == 1) {
|
||||||
|
tableData.value = table2Data.value;
|
||||||
|
} else if (index == 2) {
|
||||||
|
tableData.value = table3Data.value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const tableData = ref([
|
||||||
|
{
|
||||||
|
name: "比亚迪电子科技 (崇州)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "检验员",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "张强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "日东材料科技(成都)有限公司",
|
||||||
|
street: "重阳街道",
|
||||||
|
position: "检验员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "李强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "全友家私有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "木工",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "田伟"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "融通农发牧原(崇州)有限责任公司",
|
||||||
|
street: "三江街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "80",
|
||||||
|
broker: "张天爱"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都领益科技有限公司",
|
||||||
|
street: "江源街道",
|
||||||
|
position: "科技研发员",
|
||||||
|
recruitmentNum: "2",
|
||||||
|
broker: "王艾伦"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川福蓉科技股份公司",
|
||||||
|
street: "重阳街道",
|
||||||
|
position: "重阳街道",
|
||||||
|
recruitmentNum: "80",
|
||||||
|
broker: "周有方"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "索菲亚家居(成都)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "车床操作员",
|
||||||
|
recruitmentNum: "12",
|
||||||
|
broker: "范俊明"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都招安信息科技有限公司",
|
||||||
|
street: "重阳街道",
|
||||||
|
position: "操作员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "赵旭日"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "比亚迪电子科技 (崇州)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "3",
|
||||||
|
broker: "李强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "比亚迪电子科技 (崇州)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "100",
|
||||||
|
broker: "李强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都领益科技有限公司",
|
||||||
|
street: "江源街道",
|
||||||
|
position: "技术工",
|
||||||
|
recruitmentNum: "3",
|
||||||
|
broker: "王芳"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都领益科技有限公司",
|
||||||
|
street: "江源街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "王芳"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
const table1Data = ref([
|
||||||
|
{
|
||||||
|
name: "捷普科技(成都)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "技术员",
|
||||||
|
recruitmentNum: "5",
|
||||||
|
broker: "田家强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "全友家私有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "科技员",
|
||||||
|
recruitmentNum: "12",
|
||||||
|
broker: "章尤为"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都领益科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "开发员",
|
||||||
|
recruitmentNum: "5",
|
||||||
|
broker: "周雨薇"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川福蓉科技股份公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "30",
|
||||||
|
broker: "张天爱"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都市裕同印刷有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "印刷工",
|
||||||
|
recruitmentNum: "8",
|
||||||
|
broker: "周伟"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "明珠家具股份有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "木工",
|
||||||
|
recruitmentNum: "8",
|
||||||
|
broker: "李伟芳"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "康泰塑胶科技集团有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "30",
|
||||||
|
broker: "赵德柱"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "索菲亚家居(成都)有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "操作员",
|
||||||
|
recruitmentNum: "17",
|
||||||
|
broker: "田一鸣"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川一宇钢结构工程有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "7",
|
||||||
|
broker: "胡江"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川省川建管道有限公司",
|
||||||
|
street: "元通镇",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "王杰"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "日东材料科技(成都)有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "12",
|
||||||
|
broker: "李堃"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "崇州君健塑胶有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "6",
|
||||||
|
broker: "范军"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
const table2Data = ref([
|
||||||
|
{
|
||||||
|
name: "成都川西蓄电池(集团)有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "检验员",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "张强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川省旺达饲料有限公司",
|
||||||
|
street: "三江镇",
|
||||||
|
position: "销售员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "周伟"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川展新胶粘材料有限公司",
|
||||||
|
street: "崇庆街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "30",
|
||||||
|
broker: "章尤为"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都青洋电子材料有限公司",
|
||||||
|
street: "崇庆街道",
|
||||||
|
position: "质检员",
|
||||||
|
recruitmentNum: "18",
|
||||||
|
broker: "熊忠"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川辉达管业科技有限公司",
|
||||||
|
street: "观胜镇",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "赵德钢"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川聚力建材科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "销售员",
|
||||||
|
recruitmentNum: "8",
|
||||||
|
broker: "张强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川汇源塑料光纤有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "质检员",
|
||||||
|
recruitmentNum: "9",
|
||||||
|
broker: "王军辉"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川雨嘉建筑科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "销售员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "田军"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都智能美航空科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "王安国"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川金戈铁马钢结构有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "30",
|
||||||
|
broker: "王维"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都通发工程机械有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "技术工",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "章维"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川盛旭科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "8",
|
||||||
|
broker: "范俊茂"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
const table3Data = ref([
|
||||||
|
{
|
||||||
|
name: "崇州市鸿立机械有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "检验员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "王刚"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川铭扬电气设备有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "检验员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "赵德柱"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川汇控机电设备有限公司",
|
||||||
|
street: "羊马街道",
|
||||||
|
position: "机床工",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "周嘉"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川省万国盛数控",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "30",
|
||||||
|
broker: "周伟"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都天特模具科技有限公司",
|
||||||
|
street: "羊马街道",
|
||||||
|
position: "操作员",
|
||||||
|
recruitmentNum: "20",
|
||||||
|
broker: "田刚"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都烨腾金属制品制造有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "50",
|
||||||
|
broker: "赵旭日"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "捷普科技(成都)有限公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "技术员",
|
||||||
|
recruitmentNum: "5",
|
||||||
|
broker: "田家强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "全友家私有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "科技员",
|
||||||
|
recruitmentNum: "12",
|
||||||
|
broker: "章尤为"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都领益科技有限公司",
|
||||||
|
street: "崇阳街道",
|
||||||
|
position: "开发员",
|
||||||
|
recruitmentNum: "5",
|
||||||
|
broker: "周雨薇"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四川福蓉科技股份公司",
|
||||||
|
street: "大划街道",
|
||||||
|
position: "普工",
|
||||||
|
recruitmentNum: "100",
|
||||||
|
broker: "李强"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "成都市裕同印刷有限公司",
|
||||||
|
street: "江源街道",
|
||||||
|
position: "技术工",
|
||||||
|
recruitmentNum: "3",
|
||||||
|
broker: "王芳"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "明珠家具股份有限公司",
|
||||||
|
street: "江源街道",
|
||||||
|
position: "研发员",
|
||||||
|
recruitmentNum: "10",
|
||||||
|
broker: "王芳"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.mainBox {
|
||||||
|
width: 1862px;
|
||||||
|
height: 1000px;
|
||||||
|
margin: 0 auto;
|
||||||
|
.title {
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-title.png") no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#dbf9ff, #a9f0ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
height: 966px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-bg.png") no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
background-position: center bottom;
|
||||||
|
ul.tabsBox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
padding: 30px 0 0 0;
|
||||||
|
li {
|
||||||
|
width: 308px;
|
||||||
|
height: 95px;
|
||||||
|
cursor: pointer;
|
||||||
|
margin: 0 15px;
|
||||||
|
&:nth-child(1) {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs1.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
&.active {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs1-active.png")
|
||||||
|
no-repeat center;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:nth-child(2) {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs2.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
&.active {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs2-active.png")
|
||||||
|
no-repeat center;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:nth-child(3) {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs3.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
&.active {
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs3-active.png")
|
||||||
|
no-repeat center;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.tabsMainBox {
|
||||||
|
width: 213px;
|
||||||
|
height: 73px;
|
||||||
|
background: url("~@/assets/images/largeScreen/tabs-main-bg.png")
|
||||||
|
no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
margin: 14px 0 0 80px;
|
||||||
|
.tabsTitle {
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
text-align: center;
|
||||||
|
color: #cbf2fa;
|
||||||
|
}
|
||||||
|
.tabsContent {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
& > div {
|
||||||
|
width: 50%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 7px 0 0 0;
|
||||||
|
color: #cbf2fa;
|
||||||
|
span.num {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
color: #d9e7ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.tableBox {
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-table {
|
||||||
|
background-color: transparent;
|
||||||
|
--el-table-border-color: rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep .el-table__header-wrapper {
|
||||||
|
margin: 0 0 1px 0;
|
||||||
|
}
|
||||||
|
::v-deep .el-table .el-table__cell {
|
||||||
|
padding: 17px 0;
|
||||||
|
}
|
||||||
|
::v-deep .el-table th.el-table__cell {
|
||||||
|
background-color: #164155 !important;
|
||||||
|
color: #c4f3fe;
|
||||||
|
margin: 0 0 2px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
::v-deep .el-table tr {
|
||||||
|
background-color: rgba(22, 65, 85, 0.5);
|
||||||
|
}
|
||||||
|
::v-deep .el-table tr:nth-child(even) {
|
||||||
|
background-color: rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep .el-table td.el-table__cell,
|
||||||
|
.el-table th.el-table__cell.is-leaf {
|
||||||
|
border-bottom: 1px solid rgba(22, 65, 85, 0.5);
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
::v-deep .el-table th.el-table__cell.is-leaf {
|
||||||
|
border-bottom: 1px solid rgba(22, 65, 85, 0.9);
|
||||||
|
}
|
||||||
|
::v-deep
|
||||||
|
.el-table--enable-row-hover
|
||||||
|
.el-table__body
|
||||||
|
tr:hover
|
||||||
|
> td.el-table__cell {
|
||||||
|
background-color: rgb(16, 104, 171);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
317
src/views/threeLaborService/components/map.vue
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
<template>
|
||||||
|
<div class="map-container">
|
||||||
|
<div class="mapBox" ref="map"></div>
|
||||||
|
<!-- 自定义数据展示面板 -->
|
||||||
|
<div class="data-panel" v-if="selectedPoint">
|
||||||
|
<div class="titleBox">
|
||||||
|
<div class="title">崇州市{{ selectedPoint.name }}</div>
|
||||||
|
<div class="close" @click="selectedPoint = false"></div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="title">网点数</div>
|
||||||
|
<div class="count">
|
||||||
|
<span>{{ selectedPoint.branch }}</span
|
||||||
|
>个
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dataBox">
|
||||||
|
<div class="title">经纪人数</div>
|
||||||
|
<div class="count">
|
||||||
|
<span>{{ selectedPoint.broker }}</span
|
||||||
|
>人
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="mapBox" ref="map"></div> -->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
// 引入Echarts
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
// 引入崇州市地图json数据
|
||||||
|
import chongzhouJSON from "@/assets/json/510184.json";
|
||||||
|
// 引入本地撒点图片
|
||||||
|
import pointImage from "@/assets/images/largeScreen/map-dian.png";
|
||||||
|
import pointImageActive from "@/assets/images/largeScreen/map-dian-active.png";
|
||||||
|
// 获取地图DOM元素
|
||||||
|
let map = ref();
|
||||||
|
// 注册崇州地图
|
||||||
|
echarts.registerMap("chongzhou", chongzhouJSON);
|
||||||
|
// 添加选中状态管理
|
||||||
|
const selectedPoint = ref(null);
|
||||||
|
const initialPoints = [
|
||||||
|
{
|
||||||
|
name: "崇阳街道",
|
||||||
|
value: [103.675571, 30.641527, 150],
|
||||||
|
branch: 2,
|
||||||
|
broker: 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "羊马街道",
|
||||||
|
value: [103.752865, 30.661384, 200],
|
||||||
|
branch: 1,
|
||||||
|
broker: 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "三江街道",
|
||||||
|
value: [103.791143, 30.548786, 180],
|
||||||
|
branch: 3,
|
||||||
|
broker: 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "江源街道",
|
||||||
|
value: [103.78269, 30.595347, 160],
|
||||||
|
branch: 2,
|
||||||
|
broker: 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "大划街道",
|
||||||
|
value: [103.742544, 30.566601, 140],
|
||||||
|
branch: 1,
|
||||||
|
broker: 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "崇庆街道",
|
||||||
|
value: [103.701207, 30.609985, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "廖家镇",
|
||||||
|
value: [103.701822, 30.700901, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "元通镇",
|
||||||
|
value: [103.630513, 30.723679, 140],
|
||||||
|
branch: 1,
|
||||||
|
broker: 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "观胜镇",
|
||||||
|
value: [103.6786, 30.747128, 140],
|
||||||
|
branch: 1,
|
||||||
|
broker: 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "怀远镇",
|
||||||
|
value: [103.541274, 30.745512, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "街子镇",
|
||||||
|
value: [103.55634, 30.819587, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "文井江镇",
|
||||||
|
value: [103.41922, 30.771208, 140],
|
||||||
|
branch: 1,
|
||||||
|
broker: 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "白头镇",
|
||||||
|
value: [103.617706, 30.621786, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "道明镇",
|
||||||
|
value: [103.612235, 30.667572, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "隆兴镇",
|
||||||
|
value: [103.635954, 30.584191, 140],
|
||||||
|
branch: 2,
|
||||||
|
broker: 18
|
||||||
|
}
|
||||||
|
];
|
||||||
|
// 地图参数设置
|
||||||
|
let option = {
|
||||||
|
// tooltip: {},
|
||||||
|
geo: [
|
||||||
|
{
|
||||||
|
type: "map",
|
||||||
|
map: "chongzhou",
|
||||||
|
roam: false, // 关键:禁用拖拽和缩放
|
||||||
|
zoom: 1.2,
|
||||||
|
scaleLimit: {
|
||||||
|
// 额外限制缩放比例
|
||||||
|
min: 1.2,
|
||||||
|
max: 1.2
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
color: "#fff",
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: "bold",
|
||||||
|
emphasis: {
|
||||||
|
show: true, // 确保悬停时标签显示
|
||||||
|
color: "#ffff00", // 鼠标悬停时的文字颜色
|
||||||
|
fontSize: 14, // 鼠标悬停时的文字大小
|
||||||
|
fontWeight: "bold" // 鼠标悬停时的文字粗细
|
||||||
|
}
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: "#121516",
|
||||||
|
borderColor: "#3a6c80", // 地图区域描边颜色
|
||||||
|
borderWidth: 1 // 地图区域描边宽度
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
color: "#2d5565", // 鼠标悬停时的地图填充颜色
|
||||||
|
borderColor: "#30DCFF", // 地图区域描边颜色
|
||||||
|
borderWidth: 1 // 地图区域描边宽度
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "城市点位",
|
||||||
|
type: "scatter", // 散点图类型
|
||||||
|
coordinateSystem: "geo", // 使用地理坐标系
|
||||||
|
selectedMode: "single", // 启用选择模式
|
||||||
|
data: initialPoints,
|
||||||
|
symbolSize: function (val) {
|
||||||
|
// 根据数值大小动态调整点的大小
|
||||||
|
return [180, 54];
|
||||||
|
},
|
||||||
|
// 将点位向右偏移10px,向下偏移5px
|
||||||
|
symbolOffset: [20, 0],
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
formatter: "{b}",
|
||||||
|
position: "right", // 标签位置在右侧
|
||||||
|
color: "#fff", // 标签文字颜色
|
||||||
|
fontSize: 14,
|
||||||
|
fontWeight: "bold",
|
||||||
|
offset: [-140, 0], // 相对于原来位置的偏移量
|
||||||
|
emphasis: {
|
||||||
|
show: true, // 高亮时也显示标签
|
||||||
|
color: "#ffff00" // 高亮时的文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 动态设置图标
|
||||||
|
symbol: function (value, params) {
|
||||||
|
if (selectedPoint.value && selectedPoint.value.name === params.name) {
|
||||||
|
return "image://" + pointImageActive;
|
||||||
|
}
|
||||||
|
return "image://" + pointImage;
|
||||||
|
},
|
||||||
|
// 选中状态样式
|
||||||
|
select: {
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
color: "#ffff00"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
color: "#ff0000" // 可以自定义选中时的样式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
let myMap = echarts.init(map.value);
|
||||||
|
// 设置配置项
|
||||||
|
myMap.setOption(option);
|
||||||
|
// 添加点击事件
|
||||||
|
myMap.on("click", "series", function (params) {
|
||||||
|
selectedPoint.value = params.data;
|
||||||
|
myMap.setOption(option);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.map-container {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mapBox {
|
||||||
|
width: 1400px;
|
||||||
|
height: 780px;
|
||||||
|
margin: 60px auto 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 300px;
|
||||||
|
width: 243px;
|
||||||
|
height: 146px;
|
||||||
|
background: url("~@/assets/images/largeScreen/map-tip-box.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
color: #fff;
|
||||||
|
z-index: 1000;
|
||||||
|
.titleBox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.title {
|
||||||
|
height: 28px;
|
||||||
|
line-height: 28px;
|
||||||
|
padding: 0 0 0 8px;
|
||||||
|
background: -webkit-linear-gradient(#fff9db, #fff1a9);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.close {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: url("~@/assets/images/largeScreen/close.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
margin: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dataBox {
|
||||||
|
width: 160px;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
border: 1px solid rgba(255, 220, 48, 0.2);
|
||||||
|
margin: 10px 0 0 63px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 10px;
|
||||||
|
position: relative;
|
||||||
|
.count {
|
||||||
|
span {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffdc30;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
width: 40px;
|
||||||
|
height: 42px;
|
||||||
|
background: url("~@/assets/images/largeScreen/broker.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: absolute;
|
||||||
|
left: -44px;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
&:nth-child(2) {
|
||||||
|
&::before {
|
||||||
|
background: url("~@/assets/images/largeScreen/branch.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
142
src/views/threeLaborService/components/solveEmployment-bhqs.vue
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bhqsChart" ref="bhqsRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const bhqsRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "50px",
|
||||||
|
left: "60px",
|
||||||
|
right: "40px",
|
||||||
|
bottom: "50px"
|
||||||
|
},
|
||||||
|
// 设置图例
|
||||||
|
legend: {
|
||||||
|
itemWidth: 10, // 方块宽度
|
||||||
|
itemHeight: 10, // 方块高度
|
||||||
|
textStyle: {
|
||||||
|
color: "#B2D9DF" // 文字颜色
|
||||||
|
},
|
||||||
|
x: "center", // 图例在左(left)、右(right)、居中(center)、100px
|
||||||
|
y: "top", // 图例在上(top)、下(bottom)、居中(center、100px)、100px
|
||||||
|
padding: [15, 50, 0, 0] // 图例[距上右下左方距离
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "category",
|
||||||
|
data: [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"3月",
|
||||||
|
"4月",
|
||||||
|
"5月",
|
||||||
|
"6月",
|
||||||
|
"7月",
|
||||||
|
"8月",
|
||||||
|
"9月",
|
||||||
|
"10月",
|
||||||
|
"11月",
|
||||||
|
"12月"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: "value"
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "岗位需求数",
|
||||||
|
type: "line",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [70, 62, 52, 41, 56, 83, 78, 65, 39, 67, 70, 64],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" }
|
||||||
|
// { offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "实际入职数",
|
||||||
|
type: "line",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [54, 32, 45, 18, 30, 45, 34, 23, 45, 54, 32, 23],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#CBF2FA"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(178, 217, 223, 1)" }
|
||||||
|
// { offset: 1, color: "rgba(203, 242, 250, 0.08)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (bhqsRef.value) {
|
||||||
|
const chart = echarts.init(bhqsRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.bhqsChart {
|
||||||
|
width: 100%;
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,138 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 页面的 HTML 模板部分 -->
|
||||||
|
<div>
|
||||||
|
<div class="pieMain">
|
||||||
|
<div class="pieBox" ref="pieRef"></div>
|
||||||
|
<div class="pieTitle">
|
||||||
|
<span style="font-size: 24px">288</span><br />需求总数
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ul class="pieLsit">
|
||||||
|
<li>
|
||||||
|
<div><span class="blockOne"></span><span>已满足需求岗位</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">230</span><span class="proportion">79.86%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><span class="blockTwo"></span><span>未满足需求岗位</span></div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">58</span><span class="proportion">20.14%</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const pieRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
tooltip: {
|
||||||
|
trigger: "item"
|
||||||
|
},
|
||||||
|
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "学历占比",
|
||||||
|
type: "pie",
|
||||||
|
radius: ["65%", "80%"],
|
||||||
|
avoidLabelOverlap: false,
|
||||||
|
padAngle: 5,
|
||||||
|
itemStyle: {
|
||||||
|
borderRadius: 1
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false,
|
||||||
|
position: "center"
|
||||||
|
},
|
||||||
|
|
||||||
|
labelLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
data: [
|
||||||
|
{ value: 230, name: "已满足需求岗位", itemStyle: { color: "#58A8FF" } },
|
||||||
|
{ value: 58, name: "未满足需求岗位", itemStyle: { color: "#30DCFF" } }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (pieRef.value) {
|
||||||
|
const chart = echarts.init(pieRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.pieMain {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
.pieBox {
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 20px;
|
||||||
|
width: 230px;
|
||||||
|
height: 230px;
|
||||||
|
background: url("~@/assets/images/recruitment/pie-bg@2x.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
.pieTitle {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 10;
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul.pieLsit {
|
||||||
|
margin: 0 20px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
padding: 10px 0 0 0;
|
||||||
|
li {
|
||||||
|
// font-size: 16px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
padding: 0 10px;
|
||||||
|
background: rgba(203, 242, 250, 0.2);
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
border: 1px solid rgba(203, 242, 250, 0.2);
|
||||||
|
margin-top: 12px;
|
||||||
|
> div {
|
||||||
|
height: 100%;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
.blockOne,
|
||||||
|
.blockTwo,
|
||||||
|
.blockThree {
|
||||||
|
display: inline-block;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
.blockOne {
|
||||||
|
background-color: #58a8ff;
|
||||||
|
}
|
||||||
|
.blockTwo {
|
||||||
|
background-color: #30dcff;
|
||||||
|
}
|
||||||
|
.blockThree {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
.proportion {
|
||||||
|
display: inline-block;
|
||||||
|
width: 80px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,116 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 页面的 HTML 模板部分 -->
|
||||||
|
|
||||||
|
<ul class="schoolLsit">
|
||||||
|
<li v-for="(item, index) in workList" :key="index">
|
||||||
|
<div class="name">{{ item.name }}</div>
|
||||||
|
<div>
|
||||||
|
<span class="numb">{{ item.num }}</span
|
||||||
|
><span>人</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
const workList = ref([
|
||||||
|
{
|
||||||
|
name: "普工",
|
||||||
|
num: 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "操作员",
|
||||||
|
num: 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "厨师",
|
||||||
|
num: 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "保洁员",
|
||||||
|
num: 68
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "车床技工",
|
||||||
|
num: 154
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "电工",
|
||||||
|
num: 28
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "焊工",
|
||||||
|
num: 34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "钳工",
|
||||||
|
num: 51
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "机修",
|
||||||
|
num: 27
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "汽修",
|
||||||
|
num: 49
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "车间主管",
|
||||||
|
num: 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "技术研发员",
|
||||||
|
num: 82
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.schoolLsit {
|
||||||
|
margin: 0 18px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
li {
|
||||||
|
height: 42px;
|
||||||
|
width: 220px;
|
||||||
|
border-radius: 4px 4px 4px 4px;
|
||||||
|
border: 1px solid rgba(48, 220, 255, 0.2);
|
||||||
|
// box-sizing: border-box;
|
||||||
|
margin: 20px 0 0 48px;
|
||||||
|
position: relative;
|
||||||
|
padding: 0 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
width: 42px;
|
||||||
|
height: 42px;
|
||||||
|
background: url("~@/assets/images/recruitment/people@2x.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
left: -48px;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
> div {
|
||||||
|
height: 100%;
|
||||||
|
line-height: 42px;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
color: #cbf2fa;
|
||||||
|
}
|
||||||
|
.numb {
|
||||||
|
color: #30dcff;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 0.3vw 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
129
src/views/threeLaborService/components/solveEmployment-rcgy.vue
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<template>
|
||||||
|
<div class="rcgyBox" ref="rcgyRef"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
// Vue 3 Composition API 的 setup 语法糖
|
||||||
|
// 在这里直接编写响应式数据和方法,无需返回
|
||||||
|
import { ref, reactive, computed, onMounted } from "vue";
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
const rcgyRef = ref(null);
|
||||||
|
const option = {
|
||||||
|
// 设置图形位置
|
||||||
|
grid: {
|
||||||
|
top: "40px",
|
||||||
|
left: "50px",
|
||||||
|
right: "30px",
|
||||||
|
bottom: "30px"
|
||||||
|
},
|
||||||
|
// 设置图例
|
||||||
|
legend: {
|
||||||
|
itemWidth: 10, // 方块宽度
|
||||||
|
itemHeight: 10, // 方块高度
|
||||||
|
textStyle: {
|
||||||
|
color: "#B2D9DF" // 文字颜色
|
||||||
|
},
|
||||||
|
x: "center", // 图例在左(left)、右(right)、居中(center)、100px
|
||||||
|
y: "top", // 图例在上(top)、下(bottom)、居中(center、100px)、100px
|
||||||
|
padding: [15, 50, 0, 0] // 图例[距上右下左方距离
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
type: "category",
|
||||||
|
data: ["成都", "德阳", "绵阳", "崇州", "广汉", "巴中", "省外"]
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
//网格线
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
color: ["#A1C7CD"], // 线颜色
|
||||||
|
opacity: 0.2 // 透明度
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#CBF2FA" // 文字颜色
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: "value"
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "岗位需求数",
|
||||||
|
type: "bar",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [76, 32, 87, 65, 34, 23, 12],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#30DCFF"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(48, 220, 255, 1)" },
|
||||||
|
{ offset: 1, color: "rgba(48, 220, 255, 0.06)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "实际入职数",
|
||||||
|
type: "bar",
|
||||||
|
showBackground: true,
|
||||||
|
barWidth: 8,
|
||||||
|
data: [34, 15, 45, 24, 12, 10, 5],
|
||||||
|
// 设置柱状图的数值
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
color: "#CBF2FA"
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
//渐变色
|
||||||
|
color: {
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: "rgba(203, 242, 250, 1)" },
|
||||||
|
{ offset: 1, color: "rgba(203, 242, 250, 0.08)" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
// 生命周期钩子
|
||||||
|
onMounted(() => {
|
||||||
|
if (rcgyRef.value) {
|
||||||
|
const chart = echarts.init(rcgyRef.value);
|
||||||
|
// 设置option
|
||||||
|
chart.setOption(option);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.rcgyBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 380px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
96
src/views/threeLaborService/components/solveEmployment.vue
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
<template>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="title"><span>解决就业情况</span></div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="bhqsBox">
|
||||||
|
<div class="pubTitle">历史促就业变化趋势</div>
|
||||||
|
<BHQS></BHQS>
|
||||||
|
</div>
|
||||||
|
<ul class="otherBox">
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">各个地区人才供需统计</div>
|
||||||
|
<RCGY></RCGY>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">岗位需求对比</div>
|
||||||
|
<GWXQDB></GWXQDB>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="pubTitle">岗位需求统计</div>
|
||||||
|
<GWXQTJ></GWXQTJ>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import BHQS from "./solveEmployment-bhqs.vue";
|
||||||
|
import RCGY from "./solveEmployment-rcgy.vue";
|
||||||
|
import GWXQDB from "./solveEmployment-gwxqdb.vue";
|
||||||
|
import GWXQTJ from "./solveEmployment-gwxqtj.vue";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.mainBox {
|
||||||
|
width: 1862px;
|
||||||
|
height: 1000px;
|
||||||
|
margin: 0 auto;
|
||||||
|
.title {
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-title.png") no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
span {
|
||||||
|
background: -webkit-linear-gradient(#dbf9ff, #a9f0ff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
height: 966px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bigBox-bg.png") no-repeat;
|
||||||
|
background-size: 100% auto;
|
||||||
|
background-position: center bottom;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
.pubTitle {
|
||||||
|
height: 26px;
|
||||||
|
line-height: 26px;
|
||||||
|
text-align: center;
|
||||||
|
color: #c4f3fe;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 20px;
|
||||||
|
background: url("~@/assets/images/recruitment/card-title@2x.png")
|
||||||
|
no-repeat center;
|
||||||
|
background-size: auto 100%;
|
||||||
|
}
|
||||||
|
.bhqsBox {
|
||||||
|
width: 1802px;
|
||||||
|
height: 442px;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 29px;
|
||||||
|
background: url("~@/assets/images/largeScreen/bhqs-bg.png") no-repeat 0 0;
|
||||||
|
background-size: 100%;
|
||||||
|
border-top: 1px solid transparent; /* 添加透明边框防止塌陷 */
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
ul.otherBox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin: 0 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
li {
|
||||||
|
width: 588px;
|
||||||
|
height: 442px;
|
||||||
|
background: url("~@/assets/images/largeScreen/otherBox-li-bg.png")
|
||||||
|
no-repeat 0 0;
|
||||||
|
background-size: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
79
src/views/threeLaborService/components/statistic.vue
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<template>
|
||||||
|
<ul class="statisticsBox">
|
||||||
|
<li v-for="item in statisticsData" :key="item.title">
|
||||||
|
<div class="count">{{ item.value }}</div>
|
||||||
|
<div class="title">{{ item.title }}</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
const statisticsData = ref([
|
||||||
|
{
|
||||||
|
title: "合作社总数",
|
||||||
|
value: 57
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "经纪⼈数",
|
||||||
|
value: 74
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "服务企业数",
|
||||||
|
value: 89
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "服务求职者数",
|
||||||
|
value: 2754
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "挖掘岗位数",
|
||||||
|
value: 348
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "网点数",
|
||||||
|
value: 28
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul.statisticsBox {
|
||||||
|
height: 116px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
margin: 58px 0 0 0;
|
||||||
|
li {
|
||||||
|
width: 206px;
|
||||||
|
height: 128px;
|
||||||
|
background: url("~@/assets/images/largeScreen/statistics-bg.png") no-repeat
|
||||||
|
center;
|
||||||
|
background-size: 100%;
|
||||||
|
margin: 0 17.5px;
|
||||||
|
.count {
|
||||||
|
margin: 45px 0 0 0;
|
||||||
|
height: 38px;
|
||||||
|
line-height: 38px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 400;
|
||||||
|
background: -webkit-linear-gradient(#cbf2fa, #30dcff);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
height: 19px;
|
||||||
|
line-height: 19px;
|
||||||
|
text-align: center;
|
||||||
|
color: #cbf2fa;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.gradient-text {
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
46
src/views/threeLaborService/index.vue
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<template>
|
||||||
|
<div class="allBox">
|
||||||
|
<!-- 头部 -->
|
||||||
|
<Head title="三级劳务体系⼈员数据"></Head>
|
||||||
|
<LeftBorder></LeftBorder>
|
||||||
|
<RightBorder></RightBorder>
|
||||||
|
<BottomBorder></BottomBorder>
|
||||||
|
<!-- 统计 -->
|
||||||
|
<Statistic></Statistic>
|
||||||
|
<!-- 地图 -->
|
||||||
|
<Map></Map>
|
||||||
|
<!-- 服务企业情况 -->
|
||||||
|
<CompanyProfile style="margin-top: 50px"></CompanyProfile>
|
||||||
|
<!-- 解决就业情况 -->
|
||||||
|
<SolveEmployment style="margin-top: 40px"></SolveEmployment>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import Head from "../../components/largeScreen/headHome.vue";
|
||||||
|
import Statistic from "./components/statistic.vue";
|
||||||
|
import Map from "./components/map.vue";
|
||||||
|
import CompanyProfile from "./components/companyProfile.vue";
|
||||||
|
import SolveEmployment from "./components/solveEmployment.vue";
|
||||||
|
import LeftBorder from "../../components/largeScreen/leftBorder.vue";
|
||||||
|
import RightBorder from "../../components/largeScreen/rightBorder.vue";
|
||||||
|
import BottomBorder from "../../components/largeScreen/bottomBorder.vue";
|
||||||
|
// 定义标题名称
|
||||||
|
const title = "三级劳务体系⼈员数据";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.allBox {
|
||||||
|
width: 1920px;
|
||||||
|
height: 3240px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: url("~@/assets/images/largeScreen/all-bg.png") no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
#app {
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||