Merge branch 'main' of https://git.cityme.com.cn/xiangshan/ggfwjsc
This commit is contained in:
commit
81a2413415
Binary file not shown.
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 110 KiB |
|
@ -66,7 +66,10 @@
|
||||||
:data="data.tableData"
|
:data="data.tableData"
|
||||||
height="390px"
|
height="390px"
|
||||||
max-height="390"
|
max-height="390"
|
||||||
:header-cell-style="{ background: 'rgba(0, 143, 205, 0.63)', fontSize:' 22px' }"
|
:header-cell-style="{
|
||||||
|
background: 'rgba(0, 143, 205, 0.63)',
|
||||||
|
fontSize: ' 22px',
|
||||||
|
}"
|
||||||
:row-style="rowState"
|
:row-style="rowState"
|
||||||
@row-click="handleRowClick"
|
@row-click="handleRowClick"
|
||||||
stripe
|
stripe
|
||||||
|
@ -298,6 +301,17 @@ watch(
|
||||||
(match, name) => `:${maskName(name.trim())}`
|
(match, name) => `:${maskName(name.trim())}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// 手机号脱敏
|
||||||
|
function maskPhoneNumber(phone) {
|
||||||
|
return phone.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
|
||||||
|
}
|
||||||
|
|
||||||
|
function maskYwfzrsj(ywfzrsj) {
|
||||||
|
return ywfzrsj
|
||||||
|
.split(",")
|
||||||
|
.map((phone) => maskPhoneNumber(phone.trim()))
|
||||||
|
.join(",");
|
||||||
|
}
|
||||||
if (props.tableData.data.wxs.length > 0) {
|
if (props.tableData.data.wxs.length > 0) {
|
||||||
props.tableData.data.wxs.forEach((item, index) => {
|
props.tableData.data.wxs.forEach((item, index) => {
|
||||||
let obj = {
|
let obj = {
|
||||||
|
@ -308,7 +322,8 @@ watch(
|
||||||
qtbm: item.qtbm,
|
qtbm: item.qtbm,
|
||||||
zrks: item.zrks,
|
zrks: item.zrks,
|
||||||
ywfzr: maskName(item.ywfzr),
|
ywfzr: maskName(item.ywfzr),
|
||||||
fgldsj: item.fgldsj.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"),
|
ywfzrsj: maskYwfzrsj(item.ywfzrsj),
|
||||||
|
// ywfzrsj: item.ywfzrsj.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"),
|
||||||
};
|
};
|
||||||
data.tableData.push(obj);
|
data.tableData.push(obj);
|
||||||
});
|
});
|
||||||
|
@ -324,8 +339,8 @@ watch(
|
||||||
qtbm: item.qtbm,
|
qtbm: item.qtbm,
|
||||||
zrks: item.zrks,
|
zrks: item.zrks,
|
||||||
ywfzr: maskName(item.ywfzr),
|
ywfzr: maskName(item.ywfzr),
|
||||||
// fgldsj: item.fgldsj,
|
// ywfzrsj: item.ywfzrsj,
|
||||||
fgldsj: item.fgldsj.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"),
|
ywfzrsj: maskYwfzrsj(item.ywfzrsj),
|
||||||
};
|
};
|
||||||
data.tableData.push(obj);
|
data.tableData.push(obj);
|
||||||
});
|
});
|
||||||
|
@ -410,7 +425,7 @@ const closeDialog = () => {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
margin-top: 46px;
|
margin-top: 46px;
|
||||||
span{
|
span {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
}
|
}
|
||||||
img {
|
img {
|
||||||
|
|
|
@ -19,13 +19,13 @@ const props = defineProps({
|
||||||
const chart = ref(); // 创建DOM引用
|
const chart = ref(); // 创建DOM引用
|
||||||
|
|
||||||
const colors = [
|
const colors = [
|
||||||
// {
|
{
|
||||||
// left: "rgba(234, 162, 57, .16)",
|
left: "rgba(234, 162, 57, .16)",
|
||||||
// right: "rgba(234, 162, 57, .6)",
|
right: "rgba(234, 162, 57, .6)",
|
||||||
// top: "rgba(234, 162, 57, 1)",
|
top: "rgba(234, 162, 57, 1)",
|
||||||
// bottom: "rgba(234, 162, 57, .46)",
|
bottom: "rgba(234, 162, 57, .46)",
|
||||||
// front: "rgba(234, 162, 57, .66)",
|
front: "rgba(234, 162, 57, .66)",
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
left: "rgba(14, 252, 255, .16)",
|
left: "rgba(14, 252, 255, .16)",
|
||||||
right: "rgba(14, 252, 255, .6)",
|
right: "rgba(14, 252, 255, .6)",
|
||||||
|
@ -38,7 +38,7 @@ const colors = [
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
list: [],
|
list: [],
|
||||||
option: {},
|
option: {},
|
||||||
Max: 20000,
|
Max: 100000,
|
||||||
valueList: [4504, 16086, 6130, 2844, 4967, 179, 1685, 5010],
|
valueList: [4504, 16086, 6130, 2844, 4967, 179, 1685, 5010],
|
||||||
valueList2: [1181, 2177, 3720, 3711, 4642, 1654, 3395, 5552],
|
valueList2: [1181, 2177, 3720, 3711, 4642, 1654, 3395, 5552],
|
||||||
xxname: ["2020", "2021", "2022", "2023"],
|
xxname: ["2020", "2021", "2022", "2023"],
|
||||||
|
@ -267,7 +267,7 @@ const getOption = () => {
|
||||||
"育龄妇女",
|
"育龄妇女",
|
||||||
],
|
],
|
||||||
top: "0%",
|
top: "0%",
|
||||||
right: "30%",
|
// right: "0%",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
color: "#ffffff",
|
color: "#ffffff",
|
||||||
|
@ -279,10 +279,10 @@ const getOption = () => {
|
||||||
formatter: "{b0}:</br>{a0}:{c0}",
|
formatter: "{b0}:</br>{a0}:{c0}",
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: 0,
|
left: 20,
|
||||||
right: 0,
|
right: 40,
|
||||||
bottom: 10,
|
bottom: 10,
|
||||||
top: 40,
|
top: 60,
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
|
@ -326,7 +326,6 @@ const getOption = () => {
|
||||||
],
|
],
|
||||||
yAxis: {
|
yAxis: {
|
||||||
min: 0,
|
min: 0,
|
||||||
max: data.Max,
|
|
||||||
// interval: 100,
|
// interval: 100,
|
||||||
type: "value",
|
type: "value",
|
||||||
axisLine: {
|
axisLine: {
|
||||||
|
@ -538,45 +537,6 @@ const getOption = () => {
|
||||||
},
|
},
|
||||||
data: data.valueList2,
|
data: data.valueList2,
|
||||||
},
|
},
|
||||||
//顶部字体
|
|
||||||
{
|
|
||||||
type: "bar",
|
|
||||||
xAxisIndex: 1,
|
|
||||||
label: {
|
|
||||||
show: true,
|
|
||||||
fontSize: 18,
|
|
||||||
position: "top",
|
|
||||||
color: "#ffffff",
|
|
||||||
formatter: function (data) {
|
|
||||||
return data.value - 5;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
itemStyle: {
|
|
||||||
color: "rgba(221, 242, 255, 0)",
|
|
||||||
},
|
|
||||||
|
|
||||||
data: data.valueList.map((item) => parseInt(item) + 5),
|
|
||||||
barWidth: 30,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "bar",
|
|
||||||
xAxisIndex: 1,
|
|
||||||
label: {
|
|
||||||
show: true,
|
|
||||||
fontSize: 18,
|
|
||||||
position: "top",
|
|
||||||
color: "#ffffff",
|
|
||||||
formatter: function (data) {
|
|
||||||
return data.value - 5;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
itemStyle: {
|
|
||||||
color: "rgba(221, 242, 255, 0)",
|
|
||||||
},
|
|
||||||
|
|
||||||
data: data.valueList2.map((item) => parseInt(item) + 5),
|
|
||||||
barWidth: 20,
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -603,9 +563,9 @@ const setChart1 = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
data.xxname = props.list.year;
|
|
||||||
data.valueList2 = props.list.data;
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
data.xxname = props.list.year;
|
||||||
|
data.valueList2 = props.list.data;
|
||||||
// data.valueList2.forEach((item, index) => {
|
// data.valueList2.forEach((item, index) => {
|
||||||
// props.list.forEach((itemm, indexx) => {
|
// props.list.forEach((itemm, indexx) => {
|
||||||
// if (item == itemm.xzjd) {
|
// if (item == itemm.xzjd) {
|
||||||
|
@ -614,7 +574,7 @@ onBeforeMount(() => {
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
console.log(6666,props.list);
|
// console.log(6666, props.list);
|
||||||
|
|
||||||
getOption();
|
getOption();
|
||||||
setChart();
|
setChart();
|
||||||
|
|
|
@ -1,245 +1,225 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="chart" style="width: 100%; height: 350px"></div>
|
<div ref="chart" style="width: 100%; height:410px"></div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import { onMounted, reactive, ref, watch } from "vue";
|
||||||
onMounted,
|
|
||||||
reactive,
|
|
||||||
ref,
|
|
||||||
onBeforeMount,
|
|
||||||
defineProps,
|
|
||||||
watch,
|
|
||||||
} from "vue";
|
|
||||||
// 局部引入echarts核心模块
|
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
|
|
||||||
|
const chart = ref();
|
||||||
|
const clear = ref(false);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
list: {
|
list: Array,
|
||||||
type: Array,
|
month: Array,
|
||||||
default: () => [],
|
|
||||||
},
|
|
||||||
list2: {
|
|
||||||
type: Array,
|
|
||||||
default: () => [],
|
|
||||||
},
|
|
||||||
year: {
|
|
||||||
type: Array,
|
|
||||||
default: () => [],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const data = reactive({
|
|
||||||
list: [],
|
|
||||||
list2: [],
|
|
||||||
year: [],
|
|
||||||
option: {},
|
|
||||||
bg: [],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const chart = ref(); // 创建DOM引用
|
const data = reactive({
|
||||||
|
list: [],
|
||||||
|
month: [],
|
||||||
|
option: {},
|
||||||
|
name: [],
|
||||||
|
formatter: "{b0}<br />",
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "背景",
|
||||||
|
type: "bar",
|
||||||
|
data: [],
|
||||||
|
showBackground: true,
|
||||||
|
backgroundStyle: {
|
||||||
|
color: "rgba(180, 180, 180, 0.2)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
legend: {
|
||||||
|
data: [],
|
||||||
|
top: "3%",
|
||||||
|
right: "10%",
|
||||||
|
textStyle: {
|
||||||
|
fontSize: 16,
|
||||||
|
color: "#ffffff",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
bgColor: [
|
||||||
|
"#2468FF",
|
||||||
|
"#E8FF00",
|
||||||
|
"#FF5733",
|
||||||
|
"#33FF57",
|
||||||
|
"#3357FF",
|
||||||
|
"#FF33A1",
|
||||||
|
"#57FF33",
|
||||||
|
"#33FFA1",
|
||||||
|
"#A133FF",
|
||||||
|
"#FF5733",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const updateSeries = () => {
|
||||||
|
// data.series = [
|
||||||
|
// {
|
||||||
|
// name: "背景",
|
||||||
|
// type: "bar",
|
||||||
|
// data: data.month.map(() => 0),
|
||||||
|
// showBackground: true,
|
||||||
|
// backgroundStyle: {
|
||||||
|
// color: "rgba(180, 180, 180, 0.2)",
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// ];
|
||||||
|
|
||||||
|
if (data.list.length > 0) {
|
||||||
|
// if (!data.list) {
|
||||||
|
data.list.forEach((item, index) => {
|
||||||
|
const color = data.bgColor[index % data.bgColor.length];
|
||||||
|
data.series.push({
|
||||||
|
yAxisIndex: 0,
|
||||||
|
name: item.name,
|
||||||
|
type: "line",
|
||||||
|
smooth: true,
|
||||||
|
symbol: "emptyCircle",
|
||||||
|
symbolSize: 10,
|
||||||
|
itemStyle: {
|
||||||
|
borderColor: color,
|
||||||
|
borderWidth: 1,
|
||||||
|
color: color,
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
color: color,
|
||||||
|
formatter: (data) => data.value,
|
||||||
|
},
|
||||||
|
data: item.data,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
data.legend.data = data.list.map((item) => item.name);
|
||||||
|
data.formatter =
|
||||||
|
"{b0}月<br />" +
|
||||||
|
data.list.map((_, index) => `{a${index}}:{c${index}}<br />`).join("");
|
||||||
|
};
|
||||||
|
|
||||||
const getOption = () => {
|
const getOption = () => {
|
||||||
data.option = {
|
data.option = {
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: "axis",
|
trigger: "axis",
|
||||||
padding: [20, 10, 20, 10],
|
padding: [20, 10, 20, 10],
|
||||||
formatter: "{b0}<br />{a1}:{c1}<br /> ",
|
formatter: data.formatter,
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ["出生人数", "高血压人数"],
|
|
||||||
top: "6%",
|
|
||||||
right: "11%",
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 16,
|
|
||||||
color: "#ffffff",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
legend: data.legend,
|
||||||
grid: {
|
grid: {
|
||||||
top: "25%",
|
top: "20%",
|
||||||
left: "1%",
|
left: "6%",
|
||||||
right: "10%",
|
right: "6%",
|
||||||
bottom: "3%",
|
bottom: "8%",
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: "category",
|
type: "category",
|
||||||
// boundaryGap: false,
|
data: data.month,
|
||||||
data: data.year,
|
|
||||||
// splitArea: {
|
|
||||||
// show: true,
|
|
||||||
// interval: '10',
|
|
||||||
// areaStyle: {
|
|
||||||
// color: ["rgba(255, 255, 255, 0.10)"],
|
|
||||||
// width:10,
|
|
||||||
// },
|
|
||||||
// },
|
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
//坐标轴刻度标签的相关设置
|
color: "#ffffff",
|
||||||
textStyle: {
|
fontSize: 16,
|
||||||
color: "#ffffff",
|
|
||||||
fontSize: 16,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: [
|
||||||
type: "value",
|
|
||||||
splitLine: {
|
|
||||||
show: true,
|
|
||||||
lineStyle: {
|
|
||||||
color: "rgba(226, 226, 226, 0.3)",
|
|
||||||
width: 1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
//坐标轴刻度标签的相关设置
|
|
||||||
textStyle: {
|
|
||||||
color: "#ffffff",
|
|
||||||
fontSize: 16,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
{
|
||||||
name: "背景",
|
type: "value",
|
||||||
type: "bar",
|
// name: "人数/人",
|
||||||
data: data.bg,
|
splitLine: {
|
||||||
showBackground: true,
|
|
||||||
backgroundStyle: {
|
|
||||||
color: "rgba(180, 180, 180, 0.2)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "出生人数",
|
|
||||||
type: "line",
|
|
||||||
stack: "Total",
|
|
||||||
symbol: "emptyCircle",
|
|
||||||
smooth: true,
|
|
||||||
symbolSize: 10,
|
|
||||||
itemStyle: {
|
|
||||||
borderColor: "#E8FF00",
|
|
||||||
borderWidth: 1,
|
|
||||||
color: "#E8FF00",
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
show: true,
|
show: true,
|
||||||
color: "#ffffff",
|
lineStyle: {
|
||||||
position: "top",
|
color: "rgba(255, 255, 255, 0.2)",
|
||||||
formatter: function (data) {
|
fontSize: 16,
|
||||||
return data.value;
|
width: 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
areaStyle: {
|
min: 0,
|
||||||
color: "#F4F65B",
|
max: (value) =>
|
||||||
normal: {
|
Math.ceil(Math.max(value.max, value.max * 1.2) / 50) * 50,
|
||||||
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
nameTextStyle: {
|
||||||
color: new echarts.graphic.LinearGradient(
|
fontSize: 14,
|
||||||
0,
|
},
|
||||||
0,
|
axisLine: {
|
||||||
0,
|
show: false,
|
||||||
1,
|
lineStyle: {
|
||||||
[
|
color: "#ffffff",
|
||||||
{
|
fontSize: 16,
|
||||||
offset: 0,
|
width: 1,
|
||||||
// color: 'RGBA(184, 204, 241, 1)'
|
type: "solid",
|
||||||
color: "rgba(255, 234, 90, 0.50)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offset: 1,
|
|
||||||
color: "rgba(255, 234, 90, 0)",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
false
|
|
||||||
),
|
|
||||||
shadowBlur: 0, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data: data.list,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "高血压人数",
|
type: "value",
|
||||||
type: "line",
|
splitLine: {
|
||||||
stack: "Total",
|
show: false,
|
||||||
symbol: "emptyCircle",
|
lineStyle: {
|
||||||
smooth: true,
|
color: "rgba(255, 255, 255, 0.2)",
|
||||||
symbolSize: 10,
|
fontSize: 16,
|
||||||
itemStyle: {
|
width: 1,
|
||||||
borderColor: "#00FCFF",
|
|
||||||
borderWidth: 1,
|
|
||||||
color: "#00FCFF",
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
show: true,
|
|
||||||
color: "#ffffff",
|
|
||||||
position: "top",
|
|
||||||
formatter: function (data) {
|
|
||||||
return data.value;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
areaStyle: {
|
min: 0,
|
||||||
color: "#F4F65B",
|
max: (value) =>
|
||||||
normal: {
|
Math.ceil(Math.max(value.max, value.max * 1.6) / 50) * 50,
|
||||||
//线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
|
nameTextStyle: {
|
||||||
color: new echarts.graphic.LinearGradient(
|
fontSize: 14,
|
||||||
0,
|
},
|
||||||
0,
|
axisLabel: {
|
||||||
0,
|
show: false,
|
||||||
1,
|
},
|
||||||
[
|
axisLine: {
|
||||||
{
|
show: false,
|
||||||
offset: 0,
|
lineStyle: {
|
||||||
// color: 'RGBA(184, 204, 241, 1)'
|
color: "#ffffff",
|
||||||
color: "rgba(0, 252, 255, 0.50)",
|
fontSize: 16,
|
||||||
},
|
width: 1,
|
||||||
{
|
type: "solid",
|
||||||
offset: 1,
|
|
||||||
color: "rgba(0, 252, 255, 0)",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
false
|
|
||||||
),
|
|
||||||
shadowBlur: 0, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data: data.list,
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
series: data.series,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
watch(
|
|
||||||
() => props.list,
|
|
||||||
(newValue, oldValue) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
data.list = props.list;
|
|
||||||
data.list2 = props.list2;
|
|
||||||
data.year = props.year;
|
|
||||||
data.bg = [];
|
|
||||||
data.year.forEach(() => {
|
|
||||||
data.bg.push(0);
|
|
||||||
});
|
|
||||||
getOption();
|
|
||||||
setChart();
|
|
||||||
}, 600);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
const setChart = () => {
|
const setChart = () => {
|
||||||
// Vue3中: 需要引入
|
// const myChart = echarts.init(chart.value);
|
||||||
var myChart = echarts.init(chart.value);
|
let myChart = echarts.getInstanceByDom(chart.value);
|
||||||
|
if (!myChart) {
|
||||||
// 使用刚指定的配置项和数据显示图表。
|
myChart = echarts.init(chart.value);
|
||||||
|
}
|
||||||
|
if (clear.value) {
|
||||||
|
myChart.clear();
|
||||||
|
}
|
||||||
myChart.setOption(data.option);
|
myChart.setOption(data.option);
|
||||||
};
|
};
|
||||||
|
|
||||||
onBeforeMount(() => {
|
// watch(
|
||||||
|
// () => props.list,
|
||||||
|
// (newVal, oldVal) => {
|
||||||
|
// if (newVal.length < oldVal.length) {
|
||||||
|
// clear.value = true;
|
||||||
|
// } else {
|
||||||
|
// clear.value = false;
|
||||||
|
// }
|
||||||
|
// data.list = newVal;
|
||||||
|
// updateSeries();
|
||||||
|
// getOption();
|
||||||
|
// setChart();
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
data.list = props.list;
|
data.list = props.list;
|
||||||
data.list2 = props.list2;
|
data.month = props.month;
|
||||||
data.year = props.year;
|
// console.log(666, data.list, data.month);
|
||||||
data.year.forEach(() => {
|
// data.month.forEach((item) => {
|
||||||
data.bg.push(0);
|
// item = item + "月";
|
||||||
});
|
// });
|
||||||
console.log(data.bg);
|
|
||||||
|
|
||||||
|
updateSeries();
|
||||||
getOption();
|
getOption();
|
||||||
setChart();
|
setChart();
|
||||||
}, 600);
|
}, 600);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="chart" style="width: 100%; height: 100%"></div>
|
<div ref="chart" style="width: 100%; height:430px"></div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -38,10 +38,10 @@ const colors = [
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
list: [],
|
list: [],
|
||||||
option: {},
|
option: {},
|
||||||
Max: 20000,
|
Max: 5000,
|
||||||
valueList: [4504, 16086, 6130, 2844, 4967, 179, 1685, 5010],
|
valueList: [4504, 16086, 6130, 2844, 4967, 179, 1685, 5010],
|
||||||
valueList2: [1181, 2177, 3720, 3711, 4642, 1654, 3395, 5552],
|
valueList2: [1181, 2177, 3720, 3711, 4642, 1654, 3395, 5552],
|
||||||
xxname: ["2020", "2021", "2022", "2023"],
|
xxname: ["失业登记", "离校未就业", "低保低边", "低收入农户"],
|
||||||
});
|
});
|
||||||
// 注册5个面图形:左侧、前面、右面、上面、下面
|
// 注册5个面图形:左侧、前面、右面、上面、下面
|
||||||
//c0:左下角,c1:右下角,c2:右上角,c3:左上角
|
//c0:左下角,c1:右下角,c2:右上角,c3:左上角
|
||||||
|
@ -262,12 +262,9 @@ echarts.graphic.registerShape("CubeBottom_2", CubeBottom_2);
|
||||||
const getOption = () => {
|
const getOption = () => {
|
||||||
data.option = {
|
data.option = {
|
||||||
legend: {
|
legend: {
|
||||||
data: [
|
data: ["重点群体结构类型", "帮扶就业人数"],
|
||||||
"适龄生育妇女",
|
|
||||||
"育龄妇女",
|
|
||||||
],
|
|
||||||
top: "0%",
|
top: "0%",
|
||||||
right: "30%",
|
// right: "30%",
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
color: "#ffffff",
|
color: "#ffffff",
|
||||||
|
@ -280,8 +277,8 @@ const getOption = () => {
|
||||||
grid: {
|
grid: {
|
||||||
left: 0,
|
left: 0,
|
||||||
right: 0,
|
right: 0,
|
||||||
bottom: 10,
|
bottom: 40,
|
||||||
top: 40,
|
top: 60,
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
|
@ -300,9 +297,9 @@ const getOption = () => {
|
||||||
show: true,
|
show: true,
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
formatter: function (value) {
|
// formatter: function (value) {
|
||||||
return value.length > 4 ? value.slice(0, 6) + "..." : value;
|
// return value.length > 4 ? value.slice(0, 6) + "..." : value;
|
||||||
},
|
// },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -353,7 +350,7 @@ const getOption = () => {
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
xAxisIndex: 0,
|
xAxisIndex: 0,
|
||||||
name: "适龄生育妇女",
|
name: "重点群体结构类型",
|
||||||
type: "custom",
|
type: "custom",
|
||||||
renderItem: (params, api) => {
|
renderItem: (params, api) => {
|
||||||
const location = api.coord([api.value(0), api.value(1)]);
|
const location = api.coord([api.value(0), api.value(1)]);
|
||||||
|
@ -446,7 +443,7 @@ const getOption = () => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xAxisIndex: 0,
|
xAxisIndex: 0,
|
||||||
name: "育龄妇女",
|
name: "帮扶就业人数",
|
||||||
type: "custom",
|
type: "custom",
|
||||||
renderItem: (params, api) => {
|
renderItem: (params, api) => {
|
||||||
const location = api.coord([api.value(0), api.value(1)]);
|
const location = api.coord([api.value(0), api.value(1)]);
|
||||||
|
@ -592,27 +589,38 @@ const getMaxCeilingValue = (arr) => {
|
||||||
};
|
};
|
||||||
const setChart1 = () => {
|
const setChart1 = () => {
|
||||||
data.valueList = [];
|
data.valueList = [];
|
||||||
data.xxname = [];
|
data.valueList2 = [];
|
||||||
if (data.list.length !== 0) {
|
if (data.list.length !== 0) {
|
||||||
data.list.forEach((item) => {
|
// data.valueList.push(data.list.bf.bfdjsy); //重点 登记失业
|
||||||
data.xxname.push(item.name); //信息名
|
// data.valueList.push(data.list.bf.bflxwjy); //重点 离校未就业
|
||||||
data.valueList.push(item.num); //信息数
|
// data.valueList.push(data.list.bf.bfdbdb); //重点 低保低边
|
||||||
});
|
// data.valueList.push(data.list.bf.bfdsrnh); //重点 低收入农户
|
||||||
|
// data.valueList2.push(data.list.zd.zddjsy); //帮扶 登记失业
|
||||||
|
// data.valueList2.push(data.list.zd.zdlxwjy); //帮扶 离校未就业
|
||||||
|
// data.valueList2.push(data.list.zd.zddbdb); //帮扶 低保低边
|
||||||
|
// data.valueList2.push(data.list.zd.zddsrnh); //帮扶 低收入农户
|
||||||
|
const keyPoints = ['bfdjsy', 'bflxwjy', 'bfdbdb', 'bfdsrnh'];
|
||||||
|
const supportPoints = ['zddjsy', 'zdlxwjy', 'zddbdb', 'zddsrnh'];
|
||||||
|
data.valueList = keyPoints.map(key => data.list.bf[key]);
|
||||||
|
data.valueList2 = supportPoints.map(key => data.list.zd[key]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
// data.xxname = props.list.year;
|
|
||||||
// data.valueList = props.list.data;
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
data.xxname.forEach((item, index) => {
|
// data.xxname.forEach((item, index) => {
|
||||||
props.list.forEach((itemm, indexx) => {
|
// props.list.forEach((itemm, indexx) => {
|
||||||
if (item == itemm.xzjd) {
|
// if (item == itemm.xzjd) {
|
||||||
data.valueList[index] = itemm.qrrs;
|
// data.valueList[index] = itemm.qrrs;
|
||||||
data.valueList2[index] = itemm.qcrs;
|
// data.valueList2[index] = itemm.qcrs;
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
|
// data.xxname = props.list.year;
|
||||||
|
data.list = props.list;
|
||||||
|
setChart1()
|
||||||
|
// console.log(666,data.valueList,data.valueList2);
|
||||||
|
|
||||||
getOption();
|
getOption();
|
||||||
setChart();
|
setChart();
|
||||||
}, 800);
|
}, 800);
|
||||||
|
|
|
@ -509,7 +509,8 @@ const tableType = reactive({
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "联系电话",
|
label: "联系电话",
|
||||||
property: "fgldsj",
|
// property: "fgldsj",
|
||||||
|
property: "ywfzrsj",
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<i></i>
|
<i></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<eP1 :list="data.csrs.data" :year="data.csrs.year"></eP1>
|
<eP1 :list="data.ViewData" :month="data.jnrcs.month"></eP1>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex1">
|
<div class="flex1">
|
||||||
<div class="yd_title left_3">
|
<div class="yd_title left_3">
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<i></i>
|
<i></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<eP2 :list="data.ylfnzb"></eP2>
|
<eP2 :list="data.syl"></eP2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="displayFlex center_bg">
|
<div class="displayFlex center_bg">
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
<i></i>
|
<i></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<eP3></eP3>
|
<!-- <eP3></eP3> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -105,67 +105,101 @@ const data = reactive({
|
||||||
employmentList: [
|
employmentList: [
|
||||||
{
|
{
|
||||||
name: "发布人力资源供求信息",
|
name: "发布人力资源供求信息",
|
||||||
value: "38",
|
value: "0",
|
||||||
img: jy1,
|
img: jy1,
|
||||||
dw: "次",
|
dw: "次",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "见习岗位信息3次",
|
name: "见习岗位信息3次",
|
||||||
value: "385",
|
value: "0",
|
||||||
img: jy2,
|
img: jy2,
|
||||||
dw: "个",
|
dw: "个",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "开展就业创业政策宣传",
|
name: "开展就业创业政策宣传",
|
||||||
value: "3",
|
value: "0",
|
||||||
img: jy3,
|
img: jy3,
|
||||||
dw: "次",
|
dw: "次",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "劳动用工政策法规咨询",
|
name: "劳动用工政策法规咨询",
|
||||||
value: "2300",
|
value: "0",
|
||||||
img: jy4,
|
img: jy4,
|
||||||
dw: "余人次",
|
dw: "余人次",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "组织招聘会",
|
name: "组织招聘会",
|
||||||
value: "52",
|
value: "0",
|
||||||
dw: "场",
|
dw: "场",
|
||||||
img: jy5,
|
img: jy5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "提供岗位",
|
name: "提供岗位",
|
||||||
value: "40342",
|
value: "0",
|
||||||
dw: "个",
|
dw: "个",
|
||||||
img: jy6,
|
img: jy6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "求职意向登记",
|
name: "求职意向登记",
|
||||||
value: "7609",
|
value: "0",
|
||||||
dw: "人次",
|
dw: "人次",
|
||||||
img: jy7,
|
img: jy7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "流动人员人事档案",
|
name: "流动人员人事档案",
|
||||||
value: "23530",
|
value: "0",
|
||||||
dw: "份",
|
dw: "份",
|
||||||
img: jy8,
|
img: jy8,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
ViewData: [
|
||||||
|
{
|
||||||
|
name: "一级/高级技师",
|
||||||
|
value: "0",
|
||||||
|
show: true,
|
||||||
|
data: ["0", "0", "0", "0", "0", "0"], //一级/高级技师
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "二级/技师",
|
||||||
|
value: "0",
|
||||||
|
show: true,
|
||||||
|
data: ["0", "0", "0", "0", "0", "0"], //二级/技师
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "三级/高级工",
|
||||||
|
value: "0",
|
||||||
|
show: true,
|
||||||
|
data: ["0", "0", "0", "0", "0", "0"], //三级/高级工
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "四级/中级工",
|
||||||
|
value: "0",
|
||||||
|
show: true,
|
||||||
|
data: ["0", "0", "0", "0", "0", "0"], //四级/中级工
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "五级/初级工",
|
||||||
|
value: "0",
|
||||||
|
show: true,
|
||||||
|
data: ["0", "0", "0", "0", "0", "0"], //五级/初级工
|
||||||
|
},
|
||||||
|
],
|
||||||
jnrcs: {
|
jnrcs: {
|
||||||
month: [],
|
month: [],
|
||||||
one: [], //一级/高级技师
|
// one: [], //一级/高级技师
|
||||||
two: [], // 二级/技师
|
// two: [], // 二级/技师
|
||||||
three: [], //三级/高级工
|
// three: [], //三级/高级工
|
||||||
four: [], //四级/中级工
|
// four: [], //四级/中级工
|
||||||
five: [], //五级/初级工
|
// five: [], //五级/初级工
|
||||||
}, //新增技能人才数
|
}, //新增技能人才数
|
||||||
syl: {}, // 失业率
|
syl: {
|
||||||
|
bf: [], //帮扶
|
||||||
|
zd: [], //重点
|
||||||
|
}, // 失业率
|
||||||
jyfws: {}, // 就业服务
|
jyfws: {}, // 就业服务
|
||||||
rczy: {}, // 人才资源统计
|
rczy: {}, // 人才资源统计
|
||||||
sybx: {}, // 失业保险概况
|
sybx: {}, // 失业保险概况
|
||||||
|
gsbx: {}, //工伤保险
|
||||||
});
|
});
|
||||||
const showEchart = ref(false);
|
const showEchart = ref(false);
|
||||||
// tap切换 失业&工伤
|
// tap切换 失业&工伤
|
||||||
|
@ -191,11 +225,28 @@ const jzChange = (index, value) => {
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
await http.get("/api/ggfwyth/lysdOverview").then((res) => {
|
await http.get("/api/ggfwyth/lysdOverview").then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
// data.csrs = res.data.csrs;
|
data.jnrcs.month = res.data.jnrcs.month; //新增技能人才数
|
||||||
// data.yynbl = res.data.yynbl;
|
// data.jnrcs.one = res.data.jnrcs.one; //新增技能人才数
|
||||||
// data.jbgk = res.data.jbgk;
|
// data.jnrcs.two = res.data.jnrcs.two; //新增技能人才数
|
||||||
// data.ylfnzb = res.data.ylfnzb.data;
|
// data.jnrcs.three = res.data.jnrcs.three; //新增技能人才数
|
||||||
// data.ylfnyyefb = res.data.ylfnyyefb;
|
// data.jnrcs.four = res.data.jnrcs.four; //新增技能人才数
|
||||||
|
// data.jnrcs.five = res.data.jnrcs.five; //新增技能人才数
|
||||||
|
|
||||||
|
data.ViewData[0].data = res.data.jnrcs.one; //一级/高级技师
|
||||||
|
data.ViewData[1].data = res.data.jnrcs.two; //二级/技师
|
||||||
|
data.ViewData[2].data = res.data.jnrcs.three; //三级/高级工
|
||||||
|
data.ViewData[3].data = res.data.jnrcs.four; //四级/中级工
|
||||||
|
data.ViewData[4].data = res.data.jnrcs.five; //五级/初级工
|
||||||
|
|
||||||
|
data.syl.bf = res.data.syl.bf; // 失业率 帮扶
|
||||||
|
data.syl.zd = res.data.syl.zd; // 失业率 重点
|
||||||
|
|
||||||
|
data.jyfws = res.data.jyfws; // 就业服务
|
||||||
|
data.employmentList[0].value = res.data.jyfws; //一级/高级技师
|
||||||
|
|
||||||
|
data.rczy = res.data.rczy; // 人才资源统计
|
||||||
|
data.sybx = res.data.sybx; // 失业保险概况
|
||||||
|
data.gsbx = res.data.gsbx; //工伤保险
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue