diff --git a/src/assets/font/demo.css b/src/assets/font/demo.css deleted file mode 100644 index a67054a..0000000 --- a/src/assets/font/demo.css +++ /dev/null @@ -1,539 +0,0 @@ -/* Logo 字体 */ -@font-face { - font-family: "iconfont logo"; - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); -} - -.logo { - font-family: "iconfont logo"; - font-size: 160px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* tabs */ -.nav-tabs { - position: relative; -} - -.nav-tabs .nav-more { - position: absolute; - right: 0; - bottom: 0; - height: 42px; - line-height: 42px; - color: #666; -} - -#tabs { - border-bottom: 1px solid #eee; -} - -#tabs li { - cursor: pointer; - width: 100px; - height: 40px; - line-height: 40px; - text-align: center; - font-size: 16px; - border-bottom: 2px solid transparent; - position: relative; - z-index: 1; - margin-bottom: -1px; - color: #666; -} - - -#tabs .active { - border-bottom-color: #f00; - color: #222; -} - -.tab-container .content { - display: none; -} - -/* 页面布局 */ -.main { - padding: 30px 100px; - width: 960px; - margin: 0 auto; -} - -.main .logo { - color: #333; - text-align: left; - margin-bottom: 30px; - line-height: 1; - height: 110px; - margin-top: -50px; - overflow: hidden; - *zoom: 1; -} - -.main .logo a { - font-size: 160px; - color: #333; -} - -.helps { - margin-top: 40px; -} - -.helps pre { - padding: 20px; - margin: 10px 0; - border: solid 1px #e7e1cd; - background-color: #fffdef; - overflow: auto; -} - -.icon_lists { - width: 100% !important; - overflow: hidden; - *zoom: 1; -} - -.icon_lists li { - width: 100px; - margin-bottom: 10px; - margin-right: 20px; - text-align: center; - list-style: none !important; - cursor: default; -} - -.icon_lists li .code-name { - line-height: 1.2; -} - -.icon_lists .icon { - display: block; - height: 100px; - line-height: 100px; - font-size: 42px; - margin: 10px auto; - color: #333; - -webkit-transition: font-size 0.25s linear, width 0.25s linear; - -moz-transition: font-size 0.25s linear, width 0.25s linear; - transition: font-size 0.25s linear, width 0.25s linear; -} - -.icon_lists .icon:hover { - font-size: 100px; -} - -.icon_lists .svg-icon { - /* 通过设置 font-size 来改变图标大小 */ - width: 1em; - /* 图标和文字相邻时,垂直对齐 */ - vertical-align: -0.15em; - /* 通过设置 color 来改变 SVG 的颜色/fill */ - fill: currentColor; - /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 - normalize.css 中也包含这行 */ - overflow: hidden; -} - -.icon_lists li .name, -.icon_lists li .code-name { - color: #666; -} - -/* markdown 样式 */ -.markdown { - color: #666; - font-size: 14px; - line-height: 1.8; -} - -.highlight { - line-height: 1.5; -} - -.markdown img { - vertical-align: middle; - max-width: 100%; -} - -.markdown h1 { - color: #404040; - font-weight: 500; - line-height: 40px; - margin-bottom: 24px; -} - -.markdown h2, -.markdown h3, -.markdown h4, -.markdown h5, -.markdown h6 { - color: #404040; - margin: 1.6em 0 0.6em 0; - font-weight: 500; - clear: both; -} - -.markdown h1 { - font-size: 28px; -} - -.markdown h2 { - font-size: 22px; -} - -.markdown h3 { - font-size: 16px; -} - -.markdown h4 { - font-size: 14px; -} - -.markdown h5 { - font-size: 12px; -} - -.markdown h6 { - font-size: 12px; -} - -.markdown hr { - height: 1px; - border: 0; - background: #e9e9e9; - margin: 16px 0; - clear: both; -} - -.markdown p { - margin: 1em 0; -} - -.markdown>p, -.markdown>blockquote, -.markdown>.highlight, -.markdown>ol, -.markdown>ul { - width: 80%; -} - -.markdown ul>li { - list-style: circle; -} - -.markdown>ul li, -.markdown blockquote ul>li { - margin-left: 20px; - padding-left: 4px; -} - -.markdown>ul li p, -.markdown>ol li p { - margin: 0.6em 0; -} - -.markdown ol>li { - list-style: decimal; -} - -.markdown>ol li, -.markdown blockquote ol>li { - margin-left: 20px; - padding-left: 4px; -} - -.markdown code { - margin: 0 3px; - padding: 0 5px; - background: #eee; - border-radius: 3px; -} - -.markdown strong, -.markdown b { - font-weight: 600; -} - -.markdown>table { - border-collapse: collapse; - border-spacing: 0px; - empty-cells: show; - border: 1px solid #e9e9e9; - width: 95%; - margin-bottom: 24px; -} - -.markdown>table th { - white-space: nowrap; - color: #333; - font-weight: 600; -} - -.markdown>table th, -.markdown>table td { - border: 1px solid #e9e9e9; - padding: 8px 16px; - text-align: left; -} - -.markdown>table th { - background: #F7F7F7; -} - -.markdown blockquote { - font-size: 90%; - color: #999; - border-left: 4px solid #e9e9e9; - padding-left: 0.8em; - margin: 1em 0; -} - -.markdown blockquote p { - margin: 0; -} - -.markdown .anchor { - opacity: 0; - transition: opacity 0.3s ease; - margin-left: 8px; -} - -.markdown .waiting { - color: #ccc; -} - -.markdown h1:hover .anchor, -.markdown h2:hover .anchor, -.markdown h3:hover .anchor, -.markdown h4:hover .anchor, -.markdown h5:hover .anchor, -.markdown h6:hover .anchor { - opacity: 1; - display: inline-block; -} - -.markdown>br, -.markdown>p>br { - clear: both; -} - - -.hljs { - display: block; - background: white; - padding: 0.5em; - color: #333333; - overflow-x: auto; -} - -.hljs-comment, -.hljs-meta { - color: #969896; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-strong, -.hljs-emphasis, -.hljs-quote { - color: #df5000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #a71d5d; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute { - color: #0086b3; -} - -.hljs-section, -.hljs-name { - color: #63a35c; -} - -.hljs-tag { - color: #333333; -} - -.hljs-title, -.hljs-attr, -.hljs-selector-id, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #795da3; -} - -.hljs-addition { - color: #55a532; - background-color: #eaffea; -} - -.hljs-deletion { - color: #bd2c00; - background-color: #ffecec; -} - -.hljs-link { - text-decoration: underline; -} - -/* 代码高亮 */ -/* PrismJS 1.15.0 -https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; -} - -:not(pre)>code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} - -/* Inline code */ -:not(pre)>code[class*="language-"] { - padding: .1em; - border-radius: .3em; - white-space: normal; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #999; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - background: hsla(0, 0%, 100%, .5); -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} - -.token.function, -.token.class-name { - color: #DD4A68; -} - -.token.regex, -.token.important, -.token.variable { - color: #e90; -} - -.token.important, -.token.bold { - font-weight: bold; -} - -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} diff --git a/src/assets/font/demo_index.html b/src/assets/font/demo_index.html deleted file mode 100644 index 0b4b567..0000000 --- a/src/assets/font/demo_index.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - iconfont Demo - - - - - - - - - - - - - -
-

- - -

- -
-
-
    - -
  • - -
    传输设备
    -
    
    -
  • - -
  • - -
    告警
    -
    
    -
  • - -
-
-

Unicode 引用

-
- -

Unicode 是字体在网页端最原始的应用方式,特点是:

-
    -
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • -
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • -
-
-

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

-
-

Unicode 使用步骤如下:

-

第一步:拷贝项目下面生成的 @font-face

-
@font-face {
-  font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1761527493132') format('woff2'),
-       url('iconfont.woff?t=1761527493132') format('woff'),
-       url('iconfont.ttf?t=1761527493132') format('truetype');
-}
-
-

第二步:定义使用 iconfont 的样式

-
.iconfont {
-  font-family: "iconfont" !important;
-  font-size: 16px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-

第三步:挑选相应图标并获取字体编码,应用于页面

-
-<span class="iconfont">&#x33;</span>
-
-
-

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

-
-
-
-
-
    - -
  • - -
    - 传输设备 -
    -
    .icon-chuanshushebei -
    -
  • - -
  • - -
    - 告警 -
    -
    .icon-gaojing -
    -
  • - -
-
-

font-class 引用

-
- -

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

-

与 Unicode 使用方式相比,具有如下特点:

-
    -
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • -
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • -
-

使用步骤如下:

-

第一步:引入项目下面生成的 fontclass 代码:

-
<link rel="stylesheet" href="./iconfont.css">
-
-

第二步:挑选相应图标并获取类名,应用于页面:

-
<span class="iconfont icon-xxx"></span>
-
-
-

" - iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

-
-
-
-
-
    - -
  • - -
    传输设备
    -
    #icon-chuanshushebei
    -
  • - -
  • - -
    告警
    -
    #icon-gaojing
    -
  • - -
-
-

Symbol 引用

-
- -

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 - 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

-
    -
  • 支持多色图标了,不再受单色限制。
  • -
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • -
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • -
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • -
-

使用步骤如下:

-

第一步:引入项目下面生成的 symbol 代码:

-
<script src="./iconfont.js"></script>
-
-

第二步:加入通用 CSS 代码(引入一次就行):

-
<style>
-.icon {
-  width: 1em;
-  height: 1em;
-  vertical-align: -0.15em;
-  fill: currentColor;
-  overflow: hidden;
-}
-</style>
-
-

第三步:挑选相应图标并获取类名,应用于页面:

-
<svg class="icon" aria-hidden="true">
-  <use xlink:href="#icon-xxx"></use>
-</svg>
-
-
-
- -
-
- - - diff --git a/src/assets/font/iconfont.css b/src/assets/font/iconfont.css deleted file mode 100644 index 63a4a15..0000000 --- a/src/assets/font/iconfont.css +++ /dev/null @@ -1,23 +0,0 @@ -@font-face { - font-family: "iconfont"; /* Project id 4977098 */ - src: url('iconfont.woff2?t=1761527493132') format('woff2'), - url('iconfont.woff?t=1761527493132') format('woff'), - url('iconfont.ttf?t=1761527493132') format('truetype'); -} - -.iconfont { - font-family: "iconfont" !important; - font-size: 16px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-chuanshushebei:before { - content: "\e67a"; -} - -.icon-gaojing:before { - content: "\e60c"; -} - diff --git a/src/assets/font/iconfont.js b/src/assets/font/iconfont.js deleted file mode 100644 index dbb87aa..0000000 --- a/src/assets/font/iconfont.js +++ /dev/null @@ -1 +0,0 @@ -window._iconfont_svg_string_4977098='',(n=>{var e=(t=(t=document.getElementsByTagName("script"))[t.length-1]).getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var c,o,i,s,a,l=function(e,t){t.parentNode.insertBefore(e,t)};if(e&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(e){console&&console.log(e)}}c=function(){var e,t=document.createElement("div");t.innerHTML=n._iconfont_svg_string_4977098,(t=t.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",t=t,(e=document.body).firstChild?l(t,e.firstChild):e.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),c()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=c,s=n.document,a=!1,h(),s.onreadystatechange=function(){"complete"==s.readyState&&(s.onreadystatechange=null,d())})}function d(){a||(a=!0,i())}function h(){try{s.documentElement.doScroll("left")}catch(e){return void setTimeout(h,50)}d()}})(window); \ No newline at end of file diff --git a/src/assets/font/iconfont.json b/src/assets/font/iconfont.json deleted file mode 100644 index 678517b..0000000 --- a/src/assets/font/iconfont.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": "4977098", - "name": "北京暂降平台", - "font_family": "iconfont", - "css_prefix_text": "icon-", - "description": "", - "glyphs": [ - { - "icon_id": "21053723", - "name": "传输设备", - "font_class": "chuanshushebei", - "unicode": "e67a", - "unicode_decimal": 59002 - }, - { - "icon_id": "36284864", - "name": "告警", - "font_class": "gaojing", - "unicode": "e60c", - "unicode_decimal": 58892 - } - ] -} diff --git a/src/assets/font/iconfont.ttf b/src/assets/font/iconfont.ttf deleted file mode 100644 index f6339f8..0000000 Binary files a/src/assets/font/iconfont.ttf and /dev/null differ diff --git a/src/assets/font/iconfont.woff b/src/assets/font/iconfont.woff deleted file mode 100644 index db14428..0000000 Binary files a/src/assets/font/iconfont.woff and /dev/null differ diff --git a/src/assets/font/iconfont.woff2 b/src/assets/font/iconfont.woff2 deleted file mode 100644 index 14556a7..0000000 Binary files a/src/assets/font/iconfont.woff2 and /dev/null differ diff --git a/src/main.ts b/src/main.ts index 0dde374..f815ffb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -13,7 +13,6 @@ import zhCn from "element-plus/es/locale/lang/zh-cn"; import "./assets/scss/style.scss"; // 引入图表(所有图标见 icon 目录下的 demo_index.html) import "./assets/icon/iconfont.css"; -import '@/assets/font/iconfont.css' import BaiduMap from "vue-baidu-map-3x"; import BaiduMapOffline from "vue-baidu-map-offline"; (window as any).XEUtils = XEUtils; diff --git a/src/views/SagTraceResult_WX/components/eventStatistics/index.vue b/src/views/SagTraceResult_WX/components/eventStatistics/index.vue index 59dfcaa..0df4a86 100644 --- a/src/views/SagTraceResult_WX/components/eventStatistics/index.vue +++ b/src/views/SagTraceResult_WX/components/eventStatistics/index.vue @@ -611,7 +611,11 @@ const handleChartClick = (params: any) => { }; // 定义 emit -const emit = defineEmits(["flag-changed", "expand-detail"]); +const emit = defineEmits([ + "flag-changed", + "expand-detail", + "refresh-security-detail", +]); watch(flag, (newVal) => { // 向父组件发送 flag 变化事件 @@ -745,7 +749,7 @@ const initHasEventList = () => { const dataObject = { eventList: [...eventList.value], - color: "#7ac1f9", + color: "#375db4", }; // 发送eventList数据到iframe,注意发送的是.value而不是响应式对象本身 @@ -781,7 +785,7 @@ const initHasUpEventList = () => { const dataObject = { eventList: [...eventList.value], - color: "#fcfc57", + color: "#f08a0a", flagValue: "2", }; @@ -849,14 +853,13 @@ const analysisClick = (row: any) => { maxResponsibilityMonitorId.value = res.data .filter((item) => item.isImport == 1) .map((item) => item.lineId); // 筛选 isImport 为 1 - console.log(maxResponsibilityMonitorId.value, "890jhuj"); } const dataObject = { eventList: [...eventList.value], - color: "#fcfc57", + color: "#1dd1a1", maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value], - maxColor: "#ff0000", + maxColor: "#f9065b", }; // 发送eventList数据到iframe,注意发送的是.value而不是响应式对象本身 @@ -951,6 +954,8 @@ const initialResponsibilityList = () => { } loading.value = false; } + // 通知父组件刷新 manage/securityDetail.vue 中的数据 + emit("refresh-security-detail"); }) .catch((error) => { traceabilityTableData.value = []; @@ -1181,11 +1186,11 @@ const callHarmOneImageApi = (row: any, selectedTime: string) => { const dataObject = { eventListAll: [JSON.parse(JSON.stringify(eventListAll.value))], eventList: [...eventList.value], - color: "#fcfc57", + color: "#09ee06", maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value], - maxColor: "#ff0000", + maxColor: "#c708fe", backgroundPointId: [...backgroundPoint.value], - backgroundPointColor: "#03df6d", + backgroundPointColor: "#0936f4", }; // 发送所有 monitorId 数据到 iframe sendMessageToIframe("SEND_KEYS_TO_IFRAME", dataObject); diff --git a/src/views/SagTraceResult_WX/components/eventStatistics/system.vue b/src/views/SagTraceResult_WX/components/eventStatistics/system.vue index 0d8e25a..13a281d 100644 --- a/src/views/SagTraceResult_WX/components/eventStatistics/system.vue +++ b/src/views/SagTraceResult_WX/components/eventStatistics/system.vue @@ -420,7 +420,7 @@ const submit = () => { // 执行 const execute = async (item: any, index: number) => { - if (item.time == undefined) { + if (time.value == undefined || time.value.length == 0) { return ElMessage.warning("请选择时间范围"); } tabList.value[activeName.value].showDynamic = false; diff --git a/src/views/SagTraceResult_WX/components/manage/securityDetail.vue b/src/views/SagTraceResult_WX/components/manage/securityDetail.vue index 837f622..fce1269 100644 --- a/src/views/SagTraceResult_WX/components/manage/securityDetail.vue +++ b/src/views/SagTraceResult_WX/components/manage/securityDetail.vue @@ -526,6 +526,7 @@ const loading = ref(false); const trendChartRef = ref(); + // 页码 const params = reactive({ pageNum: 1, @@ -945,9 +946,14 @@ const init = () => { eventList(); }; +const refreshResponsibilityList = () => { + initialResponsibilityList(); +}; + defineExpose({ init, setShowDetail, // 暴露方法给父组件调用 + refreshResponsibilityList }); diff --git a/src/views/SagTraceResult_WX/index.vue b/src/views/SagTraceResult_WX/index.vue index b9fa5c9..3e30ec5 100644 --- a/src/views/SagTraceResult_WX/index.vue +++ b/src/views/SagTraceResult_WX/index.vue @@ -117,36 +117,57 @@ " >
- +
监测点
-  +
暂降发生测点
- + /> --> +
背景测点
- + /> --> + + +
暂降溯源关联测点 责任测点 @@ -154,15 +175,25 @@
- + /> --> + +
- {{ - currentFlag == 0 ? "暂降源测点" : "责任占比最高测点" - }} + {{ currentFlag == 0 ? "暂降源测点" : "责任占比最高测点" }}
@@ -182,6 +213,7 @@ @data-updated="handleDataUpdate" @flag-changed="handleFlagChange" @expand-detail="handleExpandDetail" + @refresh-security-detail="refreshSecurityDetail" />