ggfwjsc/src/view/sy_table.vue

664 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="module">
<div class="displayFlex left_bg">
<div class="title">基本公共服务</div>
<div class="lineEnd"></div>
<div class="tabPosition" v-for="(item, index) in data.tabPosition">
<div class="tabPositionBox">
<div class="img"><img :src="item.img" alt="" /></div>
<div class="tabsItem">
{{ item.name }}
</div>
</div>
<div
class="tabPositionminBox"
v-for="(item1, index1) in item.son"
:class="data.taps == item1.id ? 'tabPositionminBoxBgc' : ''"
@click="tapshow(index1)"
>
{{ item1.name }}
</div>
</div>
</div>
<div class="displayFlex right_bg">
<div class="formText">
<div class="formText_top">
<div class="yd_title left_1">
<div class="animate-border">
<i></i>
<i></i>
</div>
</div>
<div style="width: 97.5%">
<el-table
border
:data="data.tableData"
style="width: 100%; height: 280x"
class="table_border"
:row-style="rowState"
:header-cell-style="tableHeaderColor"
>
<el-table-column
prop="highFrequencyApp"
label="指标"
width="200"
/>
<el-table-column prop="targetValue" label="2024年目标值(市)" />
<el-table-column prop="targetValue1" label="2024年目标值(县)" />
<el-table-column prop="targetValue2" label="半年度预计 完成值" />
<el-table-column
prop="targetValue3"
label="半年度预计 全市排名"
/>
<el-table-column prop="targetValue4" label="是否已达年度 目标" />
<el-table-column prop="targetValue5" label="牵头单位" />
<el-table-column prop="targetValue6" label="责任单位" />
</el-table>
</div>
</div>
<div class="formText_bootom">
<div class="yd_title left_2">
<div class="animate-border">
<i></i>
<i></i>
</div>
</div>
<div class="tableBox">
<div
class="tableBoxTop"
:style="{ backgroundImage: 'url(' + item.Bj + ')' }"
v-for="(item, index) in data.tabPublicService"
>
<div class="tableBoxTops">
<div class="tableBoxCenter">
<img src="@/assets/sy-table/sy-table3.png" />
<div class="tableli">{{ item.name }}</div>
</div>
<div
class="tableBoxCenter1"
@click="goto('/home/index/table/details')"
>
详情
</div>
</div>
<div class="tableBoxTopa">{{ item.text }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref, reactive } from "vue";
import icon1 from "@/assets/sy-table/sy-table9.png";
import icon2 from "@/assets/sy-table/sy-table10.png";
import icon3 from "@/assets/sy-table/sy-table11.png";
import icon4 from "@/assets/sy-table/sy-table12.png";
import icon5 from "@/assets/sy-table/sy-table13.png";
import icon6 from "@/assets/sy-table/sy-table14.png";
import icon7 from "@/assets/sy-table/sy-table15.png";
import icon8 from "@/assets/sy-table/sy-table16.png";
import icon9 from "@/assets/sy-table/sy-table17.png";
import icon10 from "@/assets/sy-table/sy-table18.png";
import icon11 from "@/assets/sy-table/sy-table19.png";
import Bj from "@/assets/sy-table/sy-table8.png";
import Bj1 from "@/assets/sy-table/sy-table7.png";
import Bj2 from "@/assets/sy-table/sy-table4.png";
import Bj3 from "@/assets/sy-table/sy-table5.png";
import Bj4 from "@/assets/sy-table/sy-table6.png";
import { useRouter, useRoute } from "vue-router";
const router = useRouter();
const routers = useRoute();
// 路由跳转
const goto = (url) => {
router.push({
path: `${url}`,
});
};
const data = reactive({
taps: "0",
taps1: "0",
tabPosition: [
{
id: "0",
name: "幼有所育",
img: icon1,
},
{
id: "1",
name: "学有所教",
img: icon2,
},
{
id: "2",
name: "老有所得",
img: icon3,
},
{
id: "3",
name: "病有所医",
img: icon4,
},
{
id: "4",
name: "老有所养",
img: icon5,
},
{
id: "5",
name: "住有所居",
img: icon6,
},
{
id: "6",
name: "弱有所扶",
img: icon7,
son: [
{
id: "0",
name: "社会救助服务",
},
{
id: "1",
name: "公共法律服务",
},
{
id: "2",
name: "扶残助残服务",
},
{
id: "3",
name: "儿童健康服务",
},
],
},
{
id: "7",
name: "军有所扶",
img: icon8,
},
{
id: "8",
name: "文有所化",
img: icon9,
},
{
id: "9",
name: "体有所育",
img: icon10,
},
{
id: "10",
name: "事有所便",
img: icon11,
},
],
tableData: [
{
highFrequencyApp: "最低生活保障标准金额(元)",
targetValue: ">13200",
targetValue1: ">13200",
targetValue2: "13200",
targetValue3: "暂未排名",
targetValue4: "",
targetValue5: "县民政局",
targetValue6: "县民政局",
},
{
highFrequencyApp: "社会救助服务联合体规范运行指数",
targetValue: "80",
targetValue1: "80",
targetValue2: "100",
targetValue3: "暂未排名",
targetValue4: "✓",
targetValue5: "县民政局",
targetValue6: "县医保局",
},
{
highFrequencyApp: "困难群众医疗费用综合保障率(%%)",
targetValue: ">83",
targetValue1: ">83",
targetValue2: "86.59(1-5月)",
targetValue3: "第2(1-5月)",
targetValue4: "",
targetValue5: "县民政局",
targetValue6: "县医保局",
},
{
highFrequencyApp: "群帮惠因难群体帮扶数(万人次)",
targetValue: "0.5960",
targetValue1: "0.05",
targetValue2: "0.0359",
targetValue3: "中等",
targetValue4: " ",
targetValue5: "县民政局",
targetValue6: "县总工会",
},
],
tabPublicService: [
{
id: "0",
name: "最低生活保障",
Bj: Bj,
text: "我县在册低保对象7374户9463人",
},
{
id: "1",
name: "重特困人员救助供养",
Bj: Bj1,
text: "我县特困供养对象329户331人2023",
},
{
id: "2",
name: "医疗救助",
Bj: Bj2,
text: "我县医疗救助的对象为民政部门认定的特困供",
},
{
id: "3",
name: "临时救助",
Bj: Bj3,
text: "为数助对象发放临时救助金2023年共救",
},
{
id: "4",
name: "受灾人员救助",
Bj: Bj4,
text: "机构改革以来(2019年)我县自然灾害",
},
],
});
const tapshow = (val) => {
// console.log(val);
data.taps = val;
};
// 服务表格样式
const tableHeaderColor = (arg) => {
return {
// paddingLeft: "10px",
letterSpacing: "1px",
fontSize: "15px",
height: "79px",
backgroundColor: "#455F8A",
color: "#fff",
border: "none",
// boxShadow: " inset 0px 0px 56px 0px rgba(173,221,255,0.5)",
};
};
const rowState = (row) => {
if (row.rowIndex % 2 == 0) {
return {
letterSpacing: "1px",
fontSize: "14px",
height: "36px",
backgroundColor: "rgba(31, 63, 113, 1)",
color: "#fff",
};
} else if (row.rowIndex % 2 !== 0) {
return {
letterSpacing: "1px",
fontSize: "14px",
height: "36px",
backgroundColor: "rgba(43, 74, 121, 1)",
color: "#fff",
};
}
};
</script>
<style lang="scss" scoped>
.module {
width: 100%;
display: flex;
.displayFlex {
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
.title {
font-size: 28px;
color: #ffffff;
text-align: left;
font-style: normal;
font-family: YouSheBiaoTiHei;
text-shadow: 0px 2px 4px rgba(56, 50, 50, 0.5);
}
.lineEnd {
height: 3px;
border-top: 1px solid #fff;
border-bottom: 1px dashed #fff;
margin: 17px 0;
}
.tabPosition {
display: flex;
flex-direction: column;
color: #ffffff;
font-size: 22px;
font-weight: 500;
letter-spacing: 1px;
img {
width: 18px;
height: 18px;
margin-right: 10px;
vertical-align: middle;
}
.tabPositionBox {
display: flex;
align-items: center;
margin: 12px 0 12px 19px;
cursor: pointer;
}
.tabPositionminBox {
display: flex;
align-items: center;
justify-content: center;
width: 200px;
height: 50px;
border-radius: 4px;
cursor: pointer;
// opacity: 0.45;
}
.tabPositionminBoxBgc {
background: rgba(73, 121, 191);
}
}
}
.left_bg {
// width: 642px;
width: 230px;
height: 943px;
box-sizing: border-box;
padding: 19px 17px;
// margin-right: 28px;
background: linear-gradient(
270deg,
rgba(3, 56, 127, 0.77) 0%,
rgba(3, 56, 127, 0.74) 100%
);
box-shadow: inset 0px 0px 56px 0px rgba(173, 221, 255, 0.5);
border-radius: 0px 24px 24px 0px;
backdrop-filter: blur(3px);
}
.right_bg {
width: 100%;
height: 943px;
margin: 0 30px 30px 30px;
// background-color: pink;
.formText {
// .formText_top {
// }
.formText_bootom {
.tableBox {
display: flex;
flex-wrap: wrap;
.tableBoxTop {
width: 510px;
height: 210px;
// background-image: url(@/assets/sy-table/sy-table3.png);
background-repeat: no-repeat;
background-size: 100% 100%;
// background-color: pink;
padding: 15px 28px;
box-sizing: border-box;
margin-left: 20px;
margin-bottom: 20px;
.tableBoxTops {
display: flex;
align-items: center;
justify-content: space-between;
.tableBoxCenter {
display: flex;
align-items: center;
}
}
.tableBoxTopa {
width: 470px;
height: 90px;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 22px;
color: #ffffff;
line-height: 30px;
text-align: left;
font-style: normal;
margin-top: 10px;
}
}
img {
width: 24px;
height: 24px;
}
.tableli {
font-size: 26px;
color: #ffffff;
letter-spacing: 2px;
}
.tableBoxCenter1 {
width: 70px;
height: 29px;
background: rgba(255, 255, 255, 0.2);
border-radius: 15px;
border: 0px solid #ffffff;
color: #ffffff;
font-weight: 400;
font-size: 20px;
letter-spacing: 1px;
text-align: center;
cursor: pointer;
}
}
}
}
}
}
.left_1 {
background-image: url(@/assets/sy-table/sy-table1.png);
background-repeat: no-repeat;
background-size: 100% 100%;
margin-bottom: 30px;
// cursor: pointer;
}
.left_2 {
background-image: url(@/assets/sy-table/sy-table2.png);
background-repeat: no-repeat;
background-size: 100% 100%;
// cursor: pointer;
margin-bottom: 30px;
margin-top: 40px;
}
</style>
<style lang="scss" scoped>
:deep(.el-table) {
background: rgba(32, 64, 115, 1);
color: #ffffff;
--el-table-border-color: rgba(57, 107, 161);
--el-table-tr-bg-color: none;
--el-table-header-bg-color: none;
--el-table-header-text-color: none;
border: 1px solid #7aceff;
}
// :deep(.el-table tr) {
// background: linear-gradient(
// 270deg,
// rgba(0, 52, 131, 0.69) 0%,
// rgba(0, 32, 83, 0.77) 50%,
// rgba(0, 60, 131, 0.74) 100%
// );
// box-shadow: inset 0px 0px 56px 0px rgba(173, 221, 255, 0.5);
// backdrop-filter: blur(0px);
// }
.table {
:deep(.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf) {
border: none !important;
padding-left: 10px !important;
}
:deep(.el-table td.el-table__cell) {
padding-left: 10px;
}
}
:deep(.el-table--enable-row-hover .el-table__body tr:hover > td) {
background-color: #2f4b74;
}
:deep(.el-table__empty-block) {
background-color: #122560;
}
:deep(.el-table .el-table__row) {
border-bottom: none;
}
.yd_title {
box-sizing: border-box;
width: 96%;
height: 31px;
position: relative;
overflow: hidden;
/* 利用伪元素和两个i元素产生4条线 */
.animate-border {
position: absolute;
top: 0px;
width: 100%;
height: 100%;
&::before,
&::after {
content: "";
position: absolute;
width: 100%;
height: 2px;
}
i {
position: absolute;
display: inline-block;
height: 100%;
width: 2px;
}
&::before {
top: 0;
left: -100%;
background-image: linear-gradient(
90deg,
transparent,
#03e9f4,
transparent
);
animation: one 4s linear infinite;
}
i:nth-child(1) {
top: -100%;
right: 0;
background-image: linear-gradient(
180deg,
transparent,
#03e9f4,
transparent
);
/* 动画名称 动画持续时间 动画渲染函数 动画延迟时间 动画执行次数 */
animation: two 4s linear 1s infinite;
}
&::after {
bottom: 0;
right: -100%;
background-image: linear-gradient(
-90deg,
transparent,
#03e9f4,
transparent
);
animation: three 4s linear 2s infinite;
}
i:nth-child(2) {
bottom: -100%;
left: 0;
background-image: linear-gradient(
360deg,
transparent,
#03e9f4,
transparent
);
animation: four 4s linear 3s infinite;
}
}
.text {
display: flex;
position: absolute;
font-size: 16px;
font-family: SourceHanSansCN;
font-weight: bold;
color: #ffffff;
position: absolute;
right: 5px;
top: 1px;
}
.gTitle {
position: absolute;
color: #acd1f1;
height: 100%;
display: flex;
align-items: center;
left: 156px;
}
.c {
width: 130px;
height: 42px;
cursor: pointer;
}
}
@keyframes one {
0% {
left: -100%;
}
50%,
100% {
left: 100%;
}
}
@keyframes two {
0% {
top: -100%;
}
50%,
100% {
top: 100%;
}
}
@keyframes three {
0% {
right: -100%;
}
50%,
100% {
right: 100%;
}
}
@keyframes four {
0% {
bottom: -100%;
}
50%,
100% {
bottom: 100%;
}
}
</style>