This commit is contained in:
姚宇浩 2024-10-17 16:41:44 +08:00
commit 9f296b008d
12 changed files with 191 additions and 142 deletions

View File

@ -3,7 +3,7 @@ import { ElMessage } from "element-plus";
import tools from "@/utils/tools";
import router from "../router";
// axios.defaults.baseURL = 'https://jzzf.longyou.gov.cn:998/'
axios.defaults.baseURL = 'https://jzzf.longyou.gov.cn:998/'
axios.defaults.timeout = 120000;
// HTTP request 拦截器

View File

@ -92,13 +92,10 @@ const emit = defineEmits(["close"]);
const cameraShow = ref();
const data = reactive({
title: "摄像头",
// columns: [],
// tableData: [],
});
// const gridData = [];
const dp = ref(null);
const num = ref(false);
const hlsUriSslNow = ref("");
const dp = ref(null);
const attachmentLink = ref("");
const options = {
@ -124,6 +121,11 @@ watch(
}
}
);
const maskName = (name) => {
// '*'
return name[0] + "*".repeat(name.length - 2) + name[name.length - 1];
};
const initializeVideo = () => {
if (hlsUriSslNow.value === "") {
num.value = false;
@ -132,7 +134,7 @@ const initializeVideo = () => {
}
cameraShow.value = props.cameraShow;
hlsUriSslNow.value = props.hlsUriSsl;
data.title = props.sxtnames;
data.title = maskName(props.sxtnames);
attachmentLink.value = hlsUriSslNow.value;
if (num.value) {
@ -175,7 +177,6 @@ const insertVideo = () => {
// console.log(":", videoElement);
};
const loadVideo = () => {
if (dp.value) {
// console.log("video.js");

View File

@ -102,6 +102,10 @@ const data = reactive({
const num = ref(false);
const hlsUriSslNow = ref("");
const gridData = [];
const maskName = (name) => {
// '*'
return name[0] + "*".repeat(name.length - 2) + name[name.length - 1];
};
//
watch(
() => props.cameraShow,
@ -115,7 +119,7 @@ watch(
// if (hlsUriSslNow.value != "" && props.hlsUriSsl != hlsUriSslNow.value)
cameraShow.value = newVal;
hlsUriSslNow.value = props.hlsUriSsl;
data.title = props.sxtname;
data.title = maskName(props.sxtname);
attachmentLink.value = hlsUriSslNow.value;
dp.value = null;
@ -132,6 +136,7 @@ watch(
}
}
);
const insertVideo = () => {
const videoElement = document.createElement("video");
videoElement.id = "videoPlayer";

View File

@ -116,7 +116,9 @@
</template>
</el-table>
</div>
<div class="lampMessage">工作日早上8:30自动推送浙政钉</div>
<div class="lampMessage">
每周或每月第一个工作日自动推送浙政钉通知
</div>
</div>
</div>
</el-dialog>
@ -193,7 +195,7 @@ const handleRowClick = (row, column, event) => {
const clicked = ref(false);
const lampBox = ref(null);
const escalation = () => {
if (data.xq.deng !== 0) {
if (data.xq.deng != 0) {
clicked.value = true;
}
console.log(clicked.value);
@ -267,11 +269,31 @@ watch(
data.title = props.tableData.title;
data.columns = props.tableData.columns;
data.tableData.length = 0;
function maskName(name) {
if (name.length === 2) {
// *
return name[0] + "*";
} else if (name.length > 2) {
//
return name[0] + "*".repeat(name.length - 2) + name[name.length - 1];
}
return name;
}
function maskYwfzr(ywfzr) {
// 使
return ywfzr.replace(
/([^,]+)/g,(match, name) => `${maskName(name.trim())}`
);
}
if (props.tableData.data.wxs.length > 0) {
props.tableData.data.wxs.forEach((item, index) => {
let obj = {
deng: 2,
bzlx: item.bzlx,
qtbm: item.qtbm,
zrks: item.zrks,
ywfzr: maskYwfzr(item.ywfzr),
fgldsj: item.fgldsj.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"),
};
data.tableData.push(obj);
});
@ -282,6 +304,11 @@ watch(
let obj = {
deng: 1,
bzlx: item.bzlx,
qtbm: item.qtbm,
zrks: item.zrks,
ywfzr: maskYwfzr(item.ywfzr),
// fgldsj: item.fgldsj,
fgldsj: item.fgldsj.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"),
};
data.tableData.push(obj);
});

View File

@ -54,24 +54,27 @@
</div>
<div class="item" style="margin-top: 20px">
<div class="item_title">详情描述</div>
<div class="item_content">
<div class="item_content item_contents">
<div class="item_content_item">
<div class="item_content_item_title">输入</div>
<div class="item_content_item_content">
{{ data.content.srsj }}
</div>
<div
class="item_content_item_content"
v-html="formatContent(data.content.srsj)"
></div>
</div>
<div class="item_content_item">
<div class="item_content_item_title">对比逻辑</div>
<div class="item_content_item_content">
{{ data.content.bdlj }}
</div>
<div
class="item_content_item_content"
v-html="formatContent(data.content.bdlj)"
></div>
</div>
<div class="item_content_item">
<div class="item_content_item_title">输出</div>
<div class="item_content_item_content">
{{ data.content.scjg }}
</div>
<div
class="item_content_item_content"
v-html="formatContent(data.content.scjg)"
></div>
</div>
</div>
</div>
@ -80,7 +83,7 @@
</el-dialog>
</div>
</template>
<script setup>
<script setup>
import {
onMounted,
reactive,
@ -129,7 +132,10 @@ const data = reactive({
title: "",
content: {},
});
const formatContent = (content) => {
// \n <br>
return content.replace(/\n/g, "<br>");
};
//
watch(
() => props.dialogShow,
@ -158,7 +164,7 @@ const handle = (current) => {
emit("handle", current);
};
</script>
<style lang="scss" scoped>
<style lang="scss" scoped>
:deep(.el-dialog) {
--el-dialog-bg-color: none;
--el-dialog-width: 50% !important;
@ -251,8 +257,8 @@ const handle = (current) => {
width: 100%;
.item_title {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
font-weight: 600;
font-size: 18px;
color: #ffffff;
line-height: 22px;
letter-spacing: 3px;
@ -270,12 +276,16 @@ const handle = (current) => {
letter-spacing: 3px;
color: #ffffff;
line-height: 22px;
height: 144px;
overflow-y: auto;
.item_content_item {
width: 100%;
display: flex;
margin-bottom: 20px;
box-sizing: border-box;
.item_content_item_title {
font-weight: 600;
font-size: 17px;
width: 100px;
margin-right: 10px;
}
@ -287,6 +297,11 @@ const handle = (current) => {
margin-bottom: 0px;
}
}
.item_contents {
height: 360px;
}
::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
}
</style>

View File

@ -212,6 +212,7 @@ watch(
data.list = props.list;
data.list2 = props.list2;
data.year = props.year;
data.bg = [];
data.year.forEach(() => {
data.bg.push(0);
});

View File

@ -125,34 +125,34 @@ const getOption = () => {
padding: [3, -3, 3, -3],
//
formatter: function (params) {
return `{b|${params.value}%}{a|${params.name}}`;
return `{a|${params.value}%}{a|${params.name}}`;
},
//
rich: {
// a
a: {
//
padding: [-14, 10, 40, -70],
padding: [10, 0, 30, -60],
//
fontSize: "12px",
fontSize: "15px",
//
fontFamily: "MicrosoftYaHei",
//
color: "#fff",
},
// b
b: {
//
padding: [0, 10, 55, -70],
//
fontSize: "15px",
//
fontFamily: "MicrosoftYaHei-Bold, MicrosoftYaHei",
//
fontWeight: "bold",
//
color: "#fff",
},
// b: {
// //
// padding: [0, 10, 55, -70],
// //
// fontSize: "15px",
// //
// fontFamily: "MicrosoftYaHei-Bold, MicrosoftYaHei",
// //
// fontWeight: "bold",
// //
// color: "#fff",
// },
},
},
// label: {
@ -166,9 +166,11 @@ const getOption = () => {
// padding: [0, -80],
// },
labelLine: {
show: false,
normal: {
length: 40, // 线
length2: 40,
align: 'right',
// lineStyle: {
// color: "white", // 线
// },

View File

@ -301,7 +301,7 @@ const getOption = () => {
color: "#fff",
fontSize: 16,
formatter: function (value) {
return value.length > 3 ? value.slice(0, 2) + "..." : value;
return value.length > 4 ? value.slice(0, 6) + "..." : value;
},
},
},

View File

@ -2,7 +2,7 @@
<div ref="chart" style="width: 100%; height: 90%"></div>
</template>
<script setup >
<script setup>
import { onMounted, reactive, ref, onBeforeMount, defineProps } from "vue";
// echarts
import * as echarts from "echarts";
@ -25,26 +25,59 @@ const data = reactive({
option: {},
bg: [],
});
const data1 = [
"大街乡",
"社阳乡",
"牧尘畲族乡",
"庙下乡",
"溪口镇",
"罗家乡",
"模环乡",
"横山镇",
"石佛乡",
"詹家镇",
"塔石镇",
"小男孩镇",
"湖镇镇",
"东华街道",
"龙洲街道",
];
const data2 = [
"862772",
"672917",
"302810",
"294100",
"109310",
"91023",
"81232",
"71273",
"69173",
"51861",
"49184",
"31740",
"21307",
"21307",
"20000",
];
const chart = ref(); // DOM
const getOption = () => {
data.option = {
tooltip: {
trigger: "axis",
formatter: "{b0}<br />{a1}:{c1} <br />{a3}:{c3} ",
formatter: "{b}<br />{a1}:{c1} <br />{a}:{c} ",
},
legend: {
data: ["育龄妇女", "婴幼儿"],
top: "6%",
right: "11%",
top: "4%",
// right: "1%",
textStyle: {
fontSize: 16,
color: "#ffffff",
},
},
grid: {
top: "23%",
top: "10%",
left: "1%",
right: "10%",
bottom: "0%",
@ -61,12 +94,12 @@ const getOption = () => {
fontSize: 16,
},
},
data: data.year,
// data: data1,
},
{
axisTick: false,
type: "value",
data: data.year,
// data: data1,
axisLabel: {
show: false,
},
@ -89,6 +122,7 @@ const getOption = () => {
fontSize: 16,
},
},
data: data1,
},
{
type: "category",
@ -112,25 +146,11 @@ const getOption = () => {
fontSize: 16,
fontFamily: "MicrosoftYaHei",
color: "#ffffff",
lineHeight: 19,
lineHeight: 10,
},
},
],
series: [
// {
// z: 1,
// name: "1",
// type: "pictorialBar",
// symbolPosition: "end",
// data: data.zgffrc,
// symbol: "diamond",
// symbolOffset: ["-60%", "-50%"],
// symbolSize: [17, 10],
// itemStyle: {
// borderColor: "#2fffa4",
// color: "rgba(142, 187, 255, 1)",
// },
// },
{
z: 1,
name: "育龄妇女",
@ -141,23 +161,11 @@ const getOption = () => {
label: {
show: true,
color: "#ffffff",
position: "top",
position: "right",
formatter: function (data) {
return data.value + "万";
return data.value + "万";
},
},
// itemStyle: {
// color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
// {
// offset: 0,
// color: "rgba(142, 187, 255, 1)",
// },
// {
// offset: 1,
// color: "rgba(142, 187, 255, 0.20)",
// },
// ]),
// },
itemStyle: {
color: {
type: "linear",
@ -166,28 +174,12 @@ const getOption = () => {
y: 0,
y2: 0,
colorStops: [
{ offset: 0, color: "rgba(142, 187, 255, .7)" },
{ offset: 0.5, color: "rgba(142, 187, 255, .7)" },
{ offset: 0.5, color: "rgba(142, 187, 255, .3)" },
{ offset: 1, color: "rgba(142, 187, 255, .5)" },
{ offset: 0, color: "rgba(141, 186, 253, 0.2)" },
{ offset: 1, color: "rgba(141, 186, 253, 0.7)" },
],
},
},
},
// {
// z: 2,
// name: "1",
// type: "pictorialBar",
// symbolPosition: "end",
// data: data.cxffrc,
// symbol: "diamond",
// symbolOffset: ["62%", "-50%"],
// symbolSize: [17, 10],
// itemStyle: {
// borderColor: "#32ffee",
// color: "rgba(23, 237, 255, 1)",
// },
// },
{
z: 2,
name: "婴幼儿",
@ -198,24 +190,12 @@ const getOption = () => {
label: {
show: true,
color: "#ffffff",
position: "top",
position: "right",
formatter: function (data) {
return data.value + "万";
return data.value + "万";
},
},
// itemStyle: {
// color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
// {
// offset: 0,
// color: "rgba(23, 237, 255, 1)",
// },
// {
// offset: 1,
// color: "rgba(23, 237, 255, 0.20)",
// },
// ]),
// },
itemStyle: {
itemStyle: {
color: {
type: "linear",
x: 0,
@ -223,10 +203,8 @@ const getOption = () => {
y: 0,
y2: 0,
colorStops: [
{ offset: 0, color: "rgba(23, 237, 255, .7)" },
{ offset: 0.5, color: "rgba(23, 237, 255, .7)" },
{ offset: 0.5, color: "rgba(23, 237, 255, .3)" },
{ offset: 1, color: "rgba(23, 237, 255, .5)" },
{ offset: 0, color: "rgba(24, 234, 254, 0.2)" },
{ offset: 1, color: "rgba(24, 234, 254, 0.7)" },
],
},
},
@ -235,11 +213,12 @@ const getOption = () => {
// type: "bar",
// xAxisIndex: 1,
// yAxisIndex: 1,
// barGap: 3,
// barWidth: 50,
// itemStyle: {
// color: "rgba(221, 242, 255, 0.1)",
// },
// data: data.bg.map(() => 100),
// barWidth: 50,
// data: data.bg.map(() => 10),
// },
],
};
@ -261,12 +240,11 @@ onBeforeMount(() => {
data.cxffrc.push((item.cxffrc / 10000).toFixed(0));
data.bg.push("");
});
// console.log(data.zgffrc,data.cxffrc);
console.log(data.zgffrc,data.cxffrc);
getOption();
setChart();
}, 600);
});
</script>
<style scoped>
</style>
<style scoped></style>

View File

@ -457,6 +457,21 @@ const tableType = reactive({
label: "服务内容",
property: "bzlx",
},
{
label: "牵头单位",
property: "qtbm",
}, {
label: "业务科室",
property: "zrks",
}, {
label: "负责人",
property: "ywfzr",
}, {
label: "联系电话",
property: "fgldsj",
},
{
label: "结果",
property: "deng",

View File

@ -341,7 +341,7 @@ const data = reactive({
img: icon6,
visible: false,
son: [
{
{
id: "0",
name: "概况",
},
@ -558,7 +558,8 @@ const tapshow = (parentId, childId) => {
parentId.name == "弱有所扶" ||
parentId.name == "学有所教" ||
parentId.name == "老有所养" ||
parentId.name == "病有所医" || parentId.name == "住有所居")
parentId.name == "病有所医"||
parentId.name == "住有所居")
) {
gaikuang(parentId.name);
} else {

View File

@ -45,7 +45,7 @@
src="@/assets/images/hygiene/jt.png"
class="right5_center"
/>
<div class="right5_bottom">{{ data.mz.mjzrc }}</div>
<div class="right5_bottom">{{ data.mz.mjzrc }} <span></span> </div>
</div>
</div>
<div class="item5">
@ -56,7 +56,7 @@
src="@/assets/images/hygiene/jt.png"
class="right5_center"
/>
<div class="right5_bottom">{{ data.mz.zyrs }}</div>
<div class="right5_bottom">{{ data.mz.zyrs }}<span></span></div>
</div>
</div>
</div>
@ -70,7 +70,7 @@
src="@/assets/images/hygiene/jt.png"
class="right5_center"
/>
<div class="right5_bottom">{{ data.mz.zyrs }}</div>
<div class="right5_bottom">{{ data.mz.zyrs }}<span></span></div>
</div>
</div>
<div class="item5">
@ -81,7 +81,7 @@
src="@/assets/images/hygiene/jt.png"
class="right5_center"
/>
<div class="right5_bottom">{{ data.mz.zyrs }}</div>
<div class="right5_bottom">{{ data.mz.zyrs }}<span></span></div>
</div>
</div>
</div>
@ -139,10 +139,10 @@ const data = reactive({
jtysqyl: "49.37",
}, //
jsbgl: [], //
fyglrs: {}, //
jktj: {}, //65
jkhd: [], //
lxbx: {}, //
// fyglrs: {}, //
// jktj: {}, //65
// jkhd: [], //
// lxbx: {}, //
});
const showEchart = ref(false);
@ -152,12 +152,12 @@ const getData = async () => {
data.medicalInsurance = res.data.medicalInsurance;
data.lmb = res.data.lmb;
data.mz = res.data.mz;
// data.jkda = res.data.jkda;
data.jkda = res.data.jkda;
data.jsbgl = res.data.jsbgl;
data.fyglrs = res.data.fyglrs;
data.jktj = res.data.jktj;
data.jkhd = res.data.jkhd;
data.lxbx = res.data.lxbx;
// data.fyglrs = res.data.fyglrs;
// data.jktj = res.data.jktj;
// data.jkhd = res.data.jkhd;
// data.lxbx = res.data.lxbx;
showEchart.value = true;
}
});
@ -516,7 +516,7 @@ onMounted(() => {});
background-size: 100% 100%;
}
.center_top {
width: 95%;
width: 98%;
// height: 150px;
display: flex;
flex-direction: column;
@ -531,9 +531,10 @@ onMounted(() => {});
.item5 {
display: flex;
align-items: center;
width: 233px;
width: 242px;
height: 140px;
background: rgba(255, 255, 255, 0.1);
padding-left: 8px;
// opacity: 0.37;
.left5 {
@ -568,6 +569,9 @@ onMounted(() => {});
rgba(255, 255, 255, 0) 0%,
#3976a1 100%
);
span{
font-size: 15px;
}
}
}
}
@ -1114,7 +1118,7 @@ onMounted(() => {});
margin-top: 15px;
margin-bottom: 10px;
}
.font {
font-size: 18px !important;
}
// .font {
// font-size: 18px !important;
// }
</style>