新增工作开展模块

This commit is contained in:
du 2024-01-31 17:41:24 +08:00
parent a6bf5bf62b
commit 6c6c6884bb
21 changed files with 459 additions and 49 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 948 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

View File

@ -36,12 +36,33 @@
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<div v-show="labelId == 1"> <div v-show="labelId !== 0" class="chartBody">
<div class="chart-wrapper"> <div class="chart-wrapper">
<div class="container" ref="jobTypeTenementRef"></div> <div class="container" ref="tenementRef"></div>
</div>
<div class="screenTime">
<span>时间筛选</span>
<img
src="@/assets/images/data-statistics/left/screenIcon.png"
alt=""
/>
</div> </div>
<div>111</div>
</div> </div>
<!-- <div v-show="labelId == 2" class="chartBody">
<div class="chart-wrapper">
<div class="container" ref="villageWorkTenementRef"></div>
</div>
</div>
<div v-show="labelId == 3" class="chartBody">
<div class="chart-wrapper">
<div class="container" ref="supervisionWorkTenementRef"></div>
</div>
</div>
<div v-show="labelId == 4" class="chartBody">
<div class="chart-wrapper">
<div class="container" ref="mediateTenementRef"></div>
</div>
</div> -->
</div> </div>
</div> </div>
</template> </template>
@ -88,18 +109,44 @@ const clickMenuOption = (id: any) => {
}); });
label.value[id].check = true; label.value[id].check = true;
labelId.value = id; labelId.value = id;
switch (labelId.value) {
case 1:
getjobType();
break;
case 2:
getvillageWork();
break;
case 3:
getsupervisionWork();
break;
case 4:
getmediate();
break;
default:
break;
}
}; };
//线 //线
const jobTypeTenementRef = ref(); const tenementRef = ref();
let option = { let jobTypeOption = {
title: {
text: "Stacked Line",
},
tooltip: { tooltip: {
trigger: "axis", trigger: "axis",
}, },
legend: { legend: {
data: ["Email", "Union Ads", "Video Ads", "Direct", "Search Engine"], data: ["待完成", "已完成"],
top: "top",
left: "center",
orient: "horizontal",
itemWidth: 15,
itemHeight: 15,
itemGap: 15,
borderRadius: 0,
textStyle: {
color: "#D0DEEE",
fontFamily: "Source Han Sans CN, Source Han Sans CN",
fontSize: 15,
fontWeight: 400,
},
}, },
grid: { grid: {
left: "3%", left: "3%",
@ -107,60 +154,402 @@ let option = {
bottom: "3%", bottom: "3%",
containLabel: true, containLabel: true,
}, },
toolbox: {
feature: {
saveAsImage: {},
},
},
xAxis: { xAxis: {
type: "category", type: "category",
boundaryGap: false, // boundaryGap: false,
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], data: [
}, "某某工作类型",
yAxis: { "某某工作类型",
type: "value", "某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
"某某工作类型",
],
}, },
yAxis: [
{
type: "value",
name: "数量",
nameTextStyle: {
//y
color: "#6C8097",
},
axisLine: {
show: true,
lineStyle: {
color: "#6C8097",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#6C8097",
type: "dashed",
},
},
axisLabel: {
color: "rgb(139, 143, 147)",
textStyle: {
fontSize: 14,
},
},
axisTick: {
show: false,
},
},
],
series: [ series: [
{ {
name: "Email", name: "待完成",
type: "line", type: "line",
stack: "Total", data: [1, 4, 7, 4, 0, 4, 3, 1, 4, 7, 4, 0, 4, 3],
data: [120, 132, 101, 134, 90, 230, 210], symbolSize: 10,
itemStyle: {
color: "#FFFFFF", // 线
shadowColor: "#fff",
shadowBlur: 15,
borderColor: "#aaa",
},
}, },
{ {
name: "Union Ads", name: "已完成",
type: "line", type: "line",
stack: "Total", data: [0, 3, 4, 1, 7, 0, 1, 0, 3, 4, 1, 7, 2, 1],
data: [220, 182, 191, 234, 290, 330, 310], symbolSize: 10,
}, itemStyle: {
{ color: "#66E1DF", // 线
name: "Video Ads", shadowColor: "#66E1DF",
type: "line", shadowBlur: 15,
stack: "Total", borderColor: "#66E1DF",
data: [150, 232, 201, 154, 190, 330, 410], },
}, // itemStyle: {
{ // color: "#66E1DF",
name: "Direct", // borderColor: "red",
type: "line", // borderWidth: 5,
stack: "Total", // shadowColor: "red",
data: [320, 332, 301, 334, 390, 330, 320], // shadowBlur: 10,
}, // shadowOffsetY: 0,
{ // shadowOffsetX: 0,
name: "Search Engine", // },
type: "line",
stack: "Total",
data: [820, 932, 901, 934, 1290, 1330, 1320],
}, },
], ],
}; };
//线 //线
const getjobType = () => { const getjobType = () => {
const airTenementChart = echarts.init(jobTypeTenementRef.value); const tenementChart = echarts.init(tenementRef.value);
airTenementChart.setOption(option); tenementChart.setOption(jobTypeOption, true);
}; };
onMounted(() => { // 线
getjobType(); let villageWorkOption = {
}); tooltip: {
trigger: "axis",
},
legend: {
data: [],
top: "top",
left: "center",
orient: "horizontal",
itemWidth: 15,
itemHeight: 15,
itemGap: 15,
borderRadius: 0,
textStyle: {
color: "#D0DEEE",
fontFamily: "Source Han Sans CN, Source Han Sans CN",
fontSize: 12,
fontWeight: 400,
},
},
grid: {
left: "3%",
right: "4%",
bottom: "0%",
top: "20%",
containLabel: true,
},
xAxis: {
type: "category",
// boundaryGap: false,
data: ["类目一", "类目二", "类目三", "类目四", "类目五", "类目六"],
},
yAxis: [
{
type: "value",
name: " 已办工作(个)",
nameTextStyle: {
//y
color: "#A4A6ABFF",
},
axisLine: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "#6C8097",
type: "dashed",
},
},
axisLabel: {
color: "rgb(139, 143, 147)",
textStyle: {
fontSize: 14,
},
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "待完成",
type: "bar",
data: [1, 4, 7, 4, 0, 4],
symbolSize: 10,
barWidth: 35,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#003AFF00" },
{ offset: 1, color: "#159AFF" },
]),
},
label: {
show: true,
position: "top",
color: "#1799FC",
},
},
],
};
//线
const getvillageWork = () => {
const tenementChart = echarts.init(tenementRef.value);
tenementChart.setOption(villageWorkOption, true);
};
//
let supervisionWorkOption = {
tooltip: {
trigger: "axis",
},
legend: {
data: [],
top: "top",
left: "center",
orient: "horizontal",
itemWidth: 15,
itemHeight: 15,
itemGap: 15,
borderRadius: 0,
textStyle: {
color: "#D0DEEE",
fontFamily: "Source Han Sans CN, Source Han Sans CN",
fontSize: 12,
fontWeight: 400,
},
},
grid: {
left: "3%",
right: "4%",
bottom: "0%",
top: "20%",
containLabel: true,
},
xAxis: {
type: "category",
// boundaryGap: false,
data: ["类目一", "类目二", "类目三", "类目四", "类目五", "类目六"],
},
yAxis: [
{
type: "value",
name: " 已办工作(个)",
nameTextStyle: {
//y
color: "#A4A6ABFF",
},
axisLine: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "#6C8097",
type: "dashed",
},
},
axisLabel: {
color: "rgb(139, 143, 147)",
textStyle: {
fontSize: 14,
},
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "待完成",
type: "bar",
data: [10, 25, 30, 20, 10, 30],
symbolSize: 10,
barWidth: 25,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#003AFF00" },
{ offset: 1, color: "#159AFF" },
]),
},
label: {
show: true,
position: "top",
color: "#1799FC",
},
},
{
name: "待完成",
type: "bar",
data: [5, 5, 5, 5, 5, 10],
symbolSize: 10,
barWidth: 25,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#CFCFCF00" },
{ offset: 1, color: "#8A8A8AFF" },
]),
},
label: {
show: true,
position: "top",
color: "#1799FC",
},
},
],
};
//线
const getsupervisionWork = () => {
const tenementChart = echarts.init(tenementRef.value);
tenementChart.setOption(supervisionWorkOption, true);
};
//
let mediateOption = {
tooltip: {
trigger: "axis",
},
legend: {
data: [],
top: "top",
left: "center",
orient: "horizontal",
itemWidth: 15,
itemHeight: 15,
itemGap: 15,
borderRadius: 0,
textStyle: {
color: "#D0DEEE",
fontFamily: "Source Han Sans CN, Source Han Sans CN",
fontSize: 12,
fontWeight: 400,
},
},
grid: {
left: "3%",
right: "4%",
bottom: "0%",
top: "20%",
containLabel: true,
},
xAxis: {
type: "category",
// boundaryGap: false,
data: ["类目一", "类目二", "类目三", "类目四", "类目五", "类目六"],
},
yAxis: [
{
type: "value",
name: " 已办工作(个)",
nameTextStyle: {
//y
color: "#A4A6ABFF",
},
axisLine: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "#6C8097",
type: "dashed",
},
},
axisLabel: {
color: "rgb(139, 143, 147)",
textStyle: {
fontSize: 14,
},
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "待完成",
type: "bar",
data: [10, 25, 30, 20, 10, 30],
symbolSize: 10,
barWidth: 25,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#003AFF00" },
{ offset: 1, color: "#159AFF" },
]),
},
label: {
show: true,
position: "top",
color: "#1799FC",
},
},
{
name: "待完成",
type: "bar",
data: [5, 5, 5, 5, 5, 30],
symbolSize: 10,
barWidth: 25,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#DBDBDBFF" },
{ offset: 0.01, color: "#DBDBDBFF" },
{ offset: 0.01, color: "#CFCFCF00" },
{ offset: 1, color: "#8A8A8AFF" },
]),
},
label: {
show: true,
position: "top",
color: "#1799FC",
},
},
],
};
//线
const getmediate = () => {
const tenementChart = echarts.init(tenementRef.value);
tenementChart.setOption(mediateOption, true);
};
onMounted(() => {});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -229,9 +618,10 @@ onMounted(() => {
flex: 1; flex: 1;
height: 180px; height: 180px;
position: relative; position: relative;
.container { .container {
flex: 1; flex: 1;
width: 170px; width: 540px;
margin-top: -10px; margin-top: -10px;
height: 200px; height: 200px;
} }
@ -275,6 +665,26 @@ onMounted(() => {
height: 165px; height: 165px;
} }
} }
.chartBody {
position: relative;
}
.screenTime {
cursor: pointer;
position: absolute;
top: 0px;
right: 0px;
font-size: 15px;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
color: #d0deee;
display: flex;
align-items: center;
> img {
width: 15px;
height: 14px;
margin-left: 6px;
}
}
</style> </style>
<style> <style>
.work_tip { .work_tip {