From 01fb0aba38796912e16f079e615903904c6afc5b Mon Sep 17 00:00:00 2001 From: duanxiaohai <1812246227@qq.com> Date: Thu, 1 Aug 2024 14:04:24 +0800 Subject: [PATCH 1/2] gx --- src/view/sy.vue | 99 ++++++++++++---------- src/view/sy_details.vue | 4 +- src/view/sy_mapcopy.vue | 3 - src/view/sy_table.vue | 182 +++++++++++++++++++++++++++------------- 4 files changed, 184 insertions(+), 104 deletions(-) diff --git a/src/view/sy.vue b/src/view/sy.vue index 14f597d..94cfe5e 100644 --- a/src/view/sy.vue +++ b/src/view/sy.vue @@ -1368,6 +1368,7 @@ const getTableTab = (url, currentPage) => { .then((res) => { if (res.code == 200) { dataTab.data = res.data; + console.log(res.data); pagination.total = res.count; dialogShowTab.value = true; } @@ -1414,10 +1415,9 @@ const showEc = (val) => { ]; // 骑行次数 dataEc.list2 = [ 695, 892, 1265, 1178, 1246, 1206, 1361, 1323, 1231, 893, 1032, 1196, - 1411, 1232, + 1411, 1232, 1232, ]; // 骑行时长(分钟) dataEc.times = [ - "14", "15", "16", "17", @@ -1432,6 +1432,7 @@ const showEc = (val) => { "26", "27", "28", + "29", ]; dialogShowEc.value = true; break; @@ -1456,27 +1457,33 @@ const showTab = (val) => { dataTab.data = []; switch (val) { case "公共汽车": - dataTab.list1 = [ - 8616, 9616, 10360, 10206, 8970, 10442, 9988, 9487, 8380, 8371, 7984, - 7574, 8647, 9515, 8974, - ]; - dataTab.times = [ - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - ]; + // dataTab.list1 = [ + // 8616, 9616, 10360, 10206, 8970, 10442, 9988, 9487, 8380, 8371, 7984, + // 7574, 8647, 9515, 8974, + // ]; + // dataTab.times = [ + // "14", + // "15", + // "16", + // "17", + // "18", + // "19", + // "20", + // "21", + // "22", + // "23", + // "24", + // "25", + // "26", + // "27", + // "28", + // ]; + http.get(`/api/ggfwyth/bus`).then((res) => { + if (res.code == 200) { + dataTab.list1 = res.data.data; + dataTab.times = res.data.times; + } + }); dataTab.data = [ { cc: "201A", @@ -1566,26 +1573,32 @@ const showTab = (val) => { dialogShowTab.value = true; break; case "长途汽车": - dataTab.list1 = [ - 97, 57, 37, 46, 46, 54, 40, 46, 37, 48, 39, 48, 48, 31, 43, - ]; - dataTab.times = [ - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - ]; + http.get(`/api/ggfwyth/longDistanceBus`).then((res) => { + if (res.code == 200) { + dataTab.list1 = res.data.data; + dataTab.times = res.data.times; + } + }); + // dataTab.list1 = [ + // 97, 57, 37, 46, 46, 54, 40, 46, 37, 48, 39, 48, 48, 31, 43, + // ]; + // dataTab.times = [ + // "14", + // "15", + // "16", + // "17", + // "18", + // "19", + // "20", + // "21", + // "22", + // "23", + // "24", + // "25", + // "26", + // "27", + // "28", + // ]; dataTab.data = [ { cc: "303", diff --git a/src/view/sy_details.vue b/src/view/sy_details.vue index 1ffce26..8fb4969 100644 --- a/src/view/sy_details.vue +++ b/src/view/sy_details.vue @@ -541,7 +541,7 @@ const handleCurrentChange = (val) => { const handlePagination = (current) => { // console.log(current,"page1"); pagination.currentPage = current; - getTable("/api/ggfwyth/ysyzt/lyxsdbrymd", pagination.currentPage); + getTable("/api/ggfwyth/pg/lyxsdbrymd", pagination.currentPage); }; // 服务表格样式 const tableHeaderColor = (arg) => { @@ -593,7 +593,7 @@ const getTable = async (url, currentPage) => { }; onMounted(() => { - getTable("/api/ggfwyth/ysyzt/lyxsdbrymd", pagination.currentPage); + getTable("/api/ggfwyth/pg/lyxsdbrymd", pagination.currentPage); handleCurrentChange(1); }); diff --git a/src/view/sy_mapcopy.vue b/src/view/sy_mapcopy.vue index 18b01f2..b8e35f9 100644 --- a/src/view/sy_mapcopy.vue +++ b/src/view/sy_mapcopy.vue @@ -1104,7 +1104,6 @@ const getData = async (i, e) => { "100nlPercent", ]; if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); agename.forEach((key, index) => { if (PopulationRatio.value[index]) { PopulationRatio.value[index].progress = @@ -1235,7 +1234,6 @@ const getDatas = async (e, i) => { "100nlPercent", ]; if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); agename.forEach((key, index) => { if (PopulationRatio.value[index]) { PopulationRatio.value[index].progress = @@ -1317,7 +1315,6 @@ const getDatas2 = async (e, i, cs) => { "100nlPercent", ]; if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); agename.forEach((key, index) => { if (PopulationRatio.value[index]) { PopulationRatio.value[index].progress = diff --git a/src/view/sy_table.vue b/src/view/sy_table.vue index 9cc0f7a..46ca5b1 100644 --- a/src/view/sy_table.vue +++ b/src/view/sy_table.vue @@ -27,7 +27,7 @@ ? 'tabPositionminBoxBgc' : '' " - @click="tapshow(item.id, index1)" + @click="tapshow(item, index1)" > {{ item1.name }} @@ -107,7 +107,7 @@ -
+
详情
@@ -136,6 +136,9 @@
+ @@ -162,26 +165,22 @@ import Bj3 from "@/assets/sy-table/sy-table5.png"; import Bj4 from "@/assets/sy-table/sy-table6.png"; import { useRouter, useRoute } from "vue-router"; +import http from "@/utils/request.js"; import { ElMessage } from "element-plus"; import tools from "@/utils/tools"; -// onMounted(() => { -// let token = tools.data.get("token"); -// // console.log(token, "token"); -// if (token == null) { -// ElMessage.error("请重新登录!"); -// window.location.href = -// "http://220.191.238.50:996/api/login?returnURL=" + window.location.href; -// } -// }); - const router = useRouter(); const routers = useRoute(); // 路由跳转 -const goto = (url) => { - router.push({ - path: `${url}`, - }); +const goto = (url, val) => { + console.log(val); + if (val.name == "最低生活保障") { + router.push({ + path: `${url}`, + }); + } else { + ElMessage.warning(`${val.name}暂无无数据!`); + } }; const data = reactive({ @@ -424,50 +423,55 @@ const data = reactive({ }, ], tabPublicService: [ - { - id: "0", - name: "最低生活保障", - Bj: Bj, - text: "我县在册低保对象7374户9463人,为低保对象发放最低生活保障金,2023年共支出低保金9912.65万元。", - progress: 95, //进度条 - }, - { - id: "1", - name: "重特困人员救助供养", - Bj: Bj1, - text: "我县特困供养对象329户331人,2023年支出特困供养经费722.29万元。", - progress: 95, //进度条 - }, - { - id: "2", - name: "医疗救助", - Bj: Bj2, - text: "我县医疗救助的对象为民攻部门认定的特困供养人员最低生活保障家庭成员、最低生活保障边缘家庭成员(包括纳入低保、低边的因病致贫等支出型贫困对象)。", - progress: 95, //进度条 - }, - { - id: "3", - name: "临时救助", - Bj: Bj3, - text: "为数助对象发放临时救助金,2023年共救助609户1036人,数助225.39万元。", - progress: 95, //进度条 - }, - { - id: "4", - name: "受灾人员救助", - Bj: Bj4, - text: "机构改革以来(2019年),我县自然灾害形势总体平稳,未发生因灾亡人事故。", - progress: 95, //进度条 - }, + // { + // id: "0", + // Bj: Bj, + // name: "最低生活保障", + // text: "我县在册低保对象7374户9463人,为低保对象发放最低生活保障金,2023年共支出低保金9912.65万元。", + // progress: 95, //进度条 + // }, + // { + // id: "1", + // name: "重特困人员救助供养", + // Bj: Bj1, + // text: "我县特困供养对象329户331人,2023年支出特困供养经费722.29万元。", + // progress: 95, //进度条 + // }, + // { + // id: "2", + // name: "医疗救助", + // Bj: Bj2, + // text: "我县医疗救助的对象为民攻部门认定的特困供养人员最低生活保障家庭成员、最低生活保障边缘家庭成员(包括纳入低保、低边的因病致贫等支出型贫困对象)。", + // progress: 95, //进度条 + // }, + // { + // id: "3", + // name: "临时救助", + // Bj: Bj3, + // text: "为数助对象发放临时救助金,2023年共救助609户1036人,数助225.39万元。", + // progress: 95, //进度条 + // }, + // { + // id: "4", + // name: "受灾人员救助", + // Bj: Bj4, + // text: "机构改革以来(2019年),我县自然灾害形势总体平稳,未发生因灾亡人事故。", + // progress: 95, //进度条 + // }, ], + Bj: [Bj, Bj1, Bj2, Bj3, Bj4], }); const tapshow = (parentId, childId) => { - // data.taps1 = parentId; - // data.taps = childId; + // console.log(parentId, childId, "菜单名"); + data.taps1 = parentId.id; + data.taps = childId; + getData(parentId.name, parentId.son[childId].name); }; const toggleVisibility = (val) => { + // console.log(val, "最低生活保障"); data.tabPosition.forEach((parent) => { + parent.visible = false; if (parent.id === val.id) { parent.visible = !parent.visible; } @@ -508,6 +512,39 @@ const rowState = (row) => { }; } }; +const getData = async (name, fullName) => { + await http + .get(`/api/ggfwyth/pg/jbggfw?mc=${name}&xm=${fullName}`) + .then((res) => { + if (res.code == 200) { + data.tabPublicService = []; + if (res.data.length > 0) { + res.data.forEach((item, index) => { + const imageIndex = index % data.Bj.length; + data.tabPublicService.push({ + id: index, + Bj: data.Bj[imageIndex], + name: item.sx, + text: item.bmfxqk, + progress: item.xh, + }); + }); + } + } + }); +}; + +onMounted(() => { + getData("弱有所扶", "社会救助服务"); +}); +// onMounted(() => { +// let token = tools.data.get("token"); +// if (token == null) { +// ElMessage.error("请重新登录!"); +// window.location.href = +// "http://220.191.238.50:996/api/login?returnURL=" + window.location.href; +// } +// }); diff --git a/src/view/sy_mapcopy.vue b/src/view/sy_mapcopy.vue index 7948bd6..86c9462 100644 --- a/src/view/sy_mapcopy.vue +++ b/src/view/sy_mapcopy.vue @@ -7,8 +7,22 @@
龙游县 + >{{ title_jd }} + >{{ title_cs }}
+
+
{{ ageLess0(item.ages) }}
+
{{ item.rksl }}人
+
-
{{ ageLess0(item.ages) }}
-
{{ item.rksl }}人 -
- ({{ item.percent }}%) -
+
({{ item.percent }}%)
-
特殊标签
+
+ 特殊标签 +
+ +
@@ -187,6 +209,7 @@ import b5 from "@/assets/images/map/b5.png"; import b6 from "@/assets/images/map/b6.png"; import xcbg from "@/assets/images/map/xcbg.png"; import AED from "@/assets/images/map/AED.png"; +import Dialog from "./dialog/dialogMapDp.vue"; //--------定义参数------- //存放渲染的地块及图标的数组 const jdm_arr = ref([]); //街道名 @@ -920,6 +943,64 @@ const yaosuTotal = ref([ ]); // 鼠标点击添加点位 let currentMarker = null; // 用于保存当前标记的引用 +// 详情弹框 +const dialogShow = ref(false); +const tableType = reactive({ + url: "", + title: "人员列表", + columns: [ + { + label: "姓名", + property: "xm", + }, + { + label: "证件类型", + property: "szdw", + }, + { + label: "证件号码", + property: "zy", + }, + { + label: "政治面貌", + property: "zzmm", + }, + { + label: "居住状态", + property: "jzzt", + }, + { + label: "民族", + property: "mz", + }, + { + label: "性别", + property: "xb", + }, + { + label: "户口登记地", + property: "hkdjd", + }, + ], + data: [ + { + xm: "张三", + szdw: "身份证", + zy: "123456789012345678", + zzmm: "党员", + jzzt: "未居住", + mz: "汉族", + xb: "男", + hkdjd: "浙江省杭州市西湖区", + }, + ], +}); +// 表格分页 +const pagination = reactive({ + total: 100, + pageSize: 10, + currentPage: 1, +}); //--------定义方法---------------------------------------- //地图初始化 const initMap = () => { @@ -1065,6 +1146,29 @@ const getData = async (i, e) => { }); }); // console.log(personTotal.value,"111"); + // 年龄百分比 + const agename = [ + "09Percent", + "1019Percent", + "2029Percent", + "3039Percent", + "4049Percent", + "5059Percent", + "6069Percent", + "7079Percent", + "8089Percent", + "9099Percent", + "100nlPercent", + ]; + if (res.data.ageGroupsPercent) { + console.log(PopulationRatio.value[0].progress); + agename.forEach((key, index) => { + if (PopulationRatio.value[index]) { + PopulationRatio.value[index].progress = + res.data.ageGroupsPercent[key]; + } + }); + } } mapTownCount.map((item) => { item.swrs = 0; @@ -1082,29 +1186,6 @@ const getData = async (i, e) => { } }); }); - // 年龄百分比 - const agename = [ - "09Percent", - "1019Percent", - "2029Percent", - "3039Percent", - "4049Percent", - "5059Percent", - "6069Percent", - "7079Percent", - "8089Percent", - "9099Percent", - "100nlPercent", - ]; - if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); - agename.forEach((key, index) => { - if (PopulationRatio.value[index]) { - PopulationRatio.value[index].progress = - res.data.ageGroupsPercent[key]; - } - }); - } } } catch (error) { console.error("Error fetching data:", error); @@ -1213,30 +1294,29 @@ const getDatas = async (e, i) => { } } - // 年龄百分比 - const agename = [ - "09Percent", - "1019Percent", - "2029Percent", - "3039Percent", - "4049Percent", - "5059Percent", - "6069Percent", - "7079Percent", - "8089Percent", - "9099Percent", - "100nlPercent", - ]; - if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); - agename.forEach((key, index) => { - if (PopulationRatio.value[index]) { - PopulationRatio.value[index].progress = - res.data.ageGroupsPercent[key]; - } - }); - } - + // 年龄百分比 + const agename = [ + "09Percent", + "1019Percent", + "2029Percent", + "3039Percent", + "4049Percent", + "5059Percent", + "6069Percent", + "7079Percent", + "8089Percent", + "9099Percent", + "100nlPercent", + ]; + if (res.data.ageGroupsPercent) { + console.log(PopulationRatio.value[0].progress); + agename.forEach((key, index) => { + if (PopulationRatio.value[index]) { + PopulationRatio.value[index].progress = + res.data.ageGroupsPercent[key]; + } + }); + } } }); }; @@ -1295,29 +1375,29 @@ const getDatas2 = async (e, i, cs) => { } }); }); - // 年龄百分比 - const agename = [ - "09Percent", - "1019Percent", - "2029Percent", - "3039Percent", - "4049Percent", - "5059Percent", - "6069Percent", - "7079Percent", - "8089Percent", - "9099Percent", - "100nlPercent", - ]; - if (res.data.ageGroupsPercent) { - console.log(PopulationRatio.value[0].progress); - agename.forEach((key, index) => { - if (PopulationRatio.value[index]) { - PopulationRatio.value[index].progress = - res.data.ageGroupsPercent[key]; - } - }); - } + // 年龄百分比 + const agename = [ + "09Percent", + "1019Percent", + "2029Percent", + "3039Percent", + "4049Percent", + "5059Percent", + "6069Percent", + "7079Percent", + "8089Percent", + "9099Percent", + "100nlPercent", + ]; + if (res.data.ageGroupsPercent) { + console.log(PopulationRatio.value[0].progress); + agename.forEach((key, index) => { + if (PopulationRatio.value[index]) { + PopulationRatio.value[index].progress = + res.data.ageGroupsPercent[key]; + } + }); + } } }); }; @@ -1502,6 +1582,9 @@ const changeRs2 = (id) => { addJd2(); } }; +const changeys = (id) => { + choose.value.yaosu = id; +}; //点击街道,回到街道 const to_jd = (item_name) => { clear(); @@ -1557,6 +1640,22 @@ const to_jd = (item_name) => { } // } }; +//详情 +const open_detail = () => { + dialogShow.value = true; + console.log(1111111111, dialogShow.value); +}; +const close = () => { + dialogShow.value = false; + pagination.total = 100; +}; +//表格分页 +const handlePagination = (current) => { + pagination.currentPage = current; + getTable(tableType.url, pagination.currentPage); +}; +//获取人口详情接口 +const person_detail = () => {}; //--------公共服务圈----------- //点击服务圈村 const changeFwq = async (id, name, names) => { @@ -2071,7 +2170,7 @@ const addPolygonCountyCs = () => { }); map.addOverlay(cs_qk_arr.value[index]); cs_qk_arr.value[index].addEventListener("click", () => { - console.log("名字", item.name); + // console.log("名字", item.name); cfCs.value = item.name; title_cs.value = item.name; @@ -2331,7 +2430,7 @@ const createCs2 = (polygon, indexx) => { div.style.alignItems = "center"; div.style.cursor = "pointer"; div.style.padding = "5px"; - div.style.minWidth = "90px"; + div.style.minWidth = "60px"; div.style.background = `url(${xcbg}) no-repeat 0/100% 100%`; div.style.transform = "translateY(50px)"; div.setAttribute("name", this.properties.title); @@ -2388,6 +2487,10 @@ const createCs2 = (polygon, indexx) => { }, }); map.addOverlay(cs_number_name_arr.value[indexx]); + cs_number_name_arr.value[indexx].addEventListener("click", () => { + console.log(polygon.name); + open_detail(); + }); }; //添加单个村社 const DGcreateCs = (polygon, indexx) => { @@ -2466,7 +2569,7 @@ const DGcreateCs2 = (polygon, indexx) => { div.style.alignItems = "center"; div.style.cursor = "pointer"; div.style.padding = "5px"; - div.style.minWidth = "90px"; + div.style.minWidth = "60px"; div.style.background = `url(${xcbg}) no-repeat 0/100% 100%`; div.style.transform = "translateY(50px)"; div.setAttribute("name", this.properties.title); @@ -2523,6 +2626,10 @@ const DGcreateCs2 = (polygon, indexx) => { }, }); map.addOverlay(cs_dd_arr.value[indexx]); + cs_dd_arr.value[indexx].addEventListener("click", () => { + console.log(cfJd.value,polygon.name); + open_detail(); + }); }; //适配 const reset_font = () => { @@ -2597,6 +2704,47 @@ onMounted(() => { //人口数 .lyx { + .content_item2 { + color: #ffffff; + cursor: pointer; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + padding: 18px; + padding-left: 24px; + width: 100%; + // height: 57px; + background-image: url(@/assets/images/map/unchoose.png); + background-repeat: no-repeat; + background-size: 100% 100%; + margin-bottom: 12px; + } + .content_item_name { + position: relative; + } + + .content_item_name::before { + content: ""; + position: absolute; + width: 3px; + height: 3px; + background: #29ffc1; + border: 3px solid rgba(0, 255, 189, 0.31); + border-radius: 6px; + top: 7.5px; + left: -13px; + } + + .content_item_value { + display: flex; + .content_item_percent { + margin-left: 2px; + color: #6bfeff; + text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5); + } + } + .content { box-sizing: border-box; margin-top: 20px; @@ -2604,7 +2752,7 @@ onMounted(() => { flex-flow: row wrap; justify-content: space-between; color: #ffffff; - height: 350px; + height: 300px; overflow: auto; .content_item { @@ -2625,15 +2773,7 @@ onMounted(() => { margin-bottom: 12px; font-size: 18px; } - // .content_item_bg { - // position: absolute; - // top: 0; - // left: 0; - // width: 40%; - // height: 100%; - // background: RGBA(53, 85, 114, 0.8); - // z-index: -1; - // } + .content_item:first-child { box-sizing: border-box; display: flex; @@ -2649,53 +2789,57 @@ onMounted(() => { margin-bottom: 12px; } - .content_item:nth-child(2) { - box-sizing: border-box; - display: flex; - align-items: center; - justify-content: space-between; - padding: 18px; - padding-left: 24px; - width: 100%; - // height: 57px; - background-image: url(@/assets/images/map/unchoose.png); - background-repeat: no-repeat; - background-size: 100% 100%; - margin-bottom: 12px; - } + // .content_item:nth-child(2) { + // box-sizing: border-box; + // display: flex; + // align-items: center; + // justify-content: space-between; + // padding: 18px; + // padding-left: 24px; + // width: 100%; + // // height: 57px; + // background-image: url(@/assets/images/map/unchoose.png); + // background-repeat: no-repeat; + // background-size: 100% 100%; + // margin-bottom: 12px; + // } - .content_item_name { - position: relative; - } + // .content_item_name { + // position: relative; + // } - .content_item_name::before { - content: ""; - position: absolute; - width: 3px; - height: 3px; - background: #29ffc1; - border: 3px solid rgba(0, 255, 189, 0.31); - border-radius: 6px; - top: 7.5px; - left: -13px; - } + // .content_item_name::before { + // content: ""; + // position: absolute; + // width: 3px; + // height: 3px; + // background: #29ffc1; + // border: 3px solid rgba(0, 255, 189, 0.31); + // border-radius: 6px; + // top: 7.5px; + // left: -13px; + // } - .content_item_value { - display: flex; - .content_item_percent { - margin-left: 2px; - color: #6bfeff; - text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5); - } - } + // .content_item_value { + // display: flex; + // .content_item_percent { + // margin-left: 2px; + // color: #6bfeff; + // text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5); + // } + // } - .choose { - background-image: url(@/assets/images/map/choose.png) !important; - background-repeat: no-repeat !important; - background-size: 100% 100% !important; - } + // .choose { + // background-image: url(@/assets/images/map/choose.png) !important; + // background-repeat: no-repeat !important; + // background-size: 100% 100% !important; + // } + } + .choose { + background-image: url(@/assets/images/map/choose.png) !important; + background-repeat: no-repeat !important; + background-size: 100% 100% !important; } - .content::-webkit-scrollbar { display: none; } @@ -2935,7 +3079,7 @@ onMounted(() => { cursor: pointer; display: flex; font-family: YouSheBiaoTiHei; - font-size: 34px; + font-size: 30px; font-weight: 900; // line-height: 44px; letter-spacing: 4px; @@ -2946,15 +3090,15 @@ onMounted(() => { /* 为了兼容性,添加渐变背景到IE */ -webkit-background-clip: text; -webkit-text-fill-color: transparent; - + padding-left: 23px; span { display: block; font-family: YouSheBiaoTiHei; - font-size: 34px; + font-size: 30px; font-weight: 900; // line-height: 44px; letter-spacing: 4px; - margin-bottom: 15px; + margin-bottom: 18px; background: linear-gradient( 180deg, #ffffff 0%, @@ -2979,6 +3123,7 @@ onMounted(() => { .age-container { position: relative; + left: 10px; width: 450px; height: 120px; display: flex; @@ -3106,4 +3251,22 @@ onMounted(() => { border-radius: 0 5px 5px 0; } } +:deep(.el-table) { + background: rgba(32, 64, 115, 1); + + --el-table-border-color: none; + border: 1px solid #7aceff; +} + +: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; +}