diff --git a/ruoyi-ui/src/common/menuData.js b/ruoyi-ui/src/common/menuData.js index 4527c5df..bc4a9407 100644 --- a/ruoyi-ui/src/common/menuData.js +++ b/ruoyi-ui/src/common/menuData.js @@ -36,7 +36,7 @@ export default [ path: "/perception/trafficSituation", name: "perceptionTrafficSituation", component: "perception/trafficSituation/index.vue", - } + }, ], }, { @@ -112,6 +112,18 @@ export default [ path: "/service/board", component: "service/board/index.vue", }, + { + title: "发布渠道管理", + name: "PublishingChannelManagement", + path: "/service/PublishingChannelManagement", + component: "service/PublishingChannelManagement/index.vue", + }, + { + title: "信息发布管理", + name: "InformationReleaseManagement", + path: "/service/InformationReleaseManagement", + component: "service/InformationReleaseManagement/index.vue", + }, ], }, { @@ -139,7 +151,7 @@ export default [ path: "/datav/gisAndBim", component: "datav/gisAndBim/index.vue", }, - ] + ], }, { title: "配置中心", diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormInput.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormInput.vue deleted file mode 100644 index bf3cb826..00000000 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormInput.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormSelect.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormSelect.vue deleted file mode 100644 index 0188941d..00000000 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormSelect.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormTimePicker.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormTimePicker.vue deleted file mode 100644 index bc48c9b3..00000000 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/components/FormTimePicker.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue index b21849a4..59f1c70a 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue @@ -3,21 +3,19 @@ - + - - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/RadioGroup/RadioButton.vue b/ruoyi-ui/src/views/JiHeExpressway/components/RadioGroup/RadioButton.vue index 39d78fd2..42e89f30 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/components/RadioGroup/RadioButton.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/components/RadioGroup/RadioButton.vue @@ -19,7 +19,7 @@ export default { diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Video/videoStream.js b/ruoyi-ui/src/views/JiHeExpressway/components/Video/videoStream.js new file mode 100644 index 00000000..5e6fc116 --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/components/Video/videoStream.js @@ -0,0 +1,41 @@ +import flvJs from "flv.js"; +import { getCameraStream } from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js"; + +/** + * + * @param {HTMLElement} container 容器 + * @param {{camId?: string; url?: string}?} options {camId: 相机ID; url: 直播地址} + * @returns + */ +export async function openVideoStream(container, { camId, url } = {}) { + if (camId) { + const { code, data } = await getCameraStream(camId).catch(() => ({})); + + if (code != 200) return; + + url = data.liveUrl; + } + + if (!url) return; + + const flvPlayer = flvJs.createPlayer({ + type: "flv", + url: url, + isLive: true, + hasVideo: true, + hasAudio: true, + }); + + console.log( + "%c [ flvPlayer ]-26-「videoStream.js」", + "font-size:15px; background:#b2b540; color:#f6f984;", + flvPlayer + ); + + flvPlayer.attachMediaElement(container); + + flvPlayer.load(); + flvPlayer.play(); + + return flvPlayer; +} diff --git a/ruoyi-ui/src/views/JiHeExpressway/index.vue b/ruoyi-ui/src/views/JiHeExpressway/index.vue index 60ef738f..d5817ef0 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/index.vue @@ -32,48 +32,9 @@ export default { }; - - diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/ReleaseInformation/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/ReleaseInformation/index.vue index 54c6517c..5e5fa204 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/ReleaseInformation/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/ReleaseInformation/index.vue @@ -72,13 +72,10 @@ export default { key: "content", type: "input", options: { - // style: { - // height: "90px", - // }, type: "textarea", autosize: true, maxlength: 200, - autosize: { minRows: 6, maxRows: 6 }, + autosize: { minRows: 9, maxRows: 9 }, showWordLimit: true } }, diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/index.vue new file mode 100644 index 00000000..00fcfb97 --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/index.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/PublishingChannelManagement/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/PublishingChannelManagement/index.vue new file mode 100644 index 00000000..af4468ac --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/PublishingChannelManagement/index.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/ruoyi-ui/src/views/JiHeExpressway/scss/el-reset.scss b/ruoyi-ui/src/views/JiHeExpressway/scss/el-reset.scss new file mode 100644 index 00000000..eaf03949 --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/scss/el-reset.scss @@ -0,0 +1,295 @@ +div.el-popper { + background: linear-gradient(180deg, #005c79 0%, #009bcc 100%); + color: #fff; + font-size: 15px; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + border: 0; + + &[x-placement^="top"] { + div.popper__arrow { + border-top-color: #00799f; + + &::after { + border-top-color: #00799f; + } + } + } + &[x-placement^="left"] { + div.popper__arrow { + border-left-color: #00799f; + + &::after { + border-left-color: #00799f; + } + } + } + &[x-placement^="right"] { + div.popper__arrow { + border-right-color: #00799f; + + &::after { + border-right-color: #00799f; + } + } + } + &[x-placement^="bottom"] { + div.popper__arrow { + border-bottom-color: #00799f; + + &::after { + border-bottom-color: #00799f; + } + } + } +} + +div.el-popper.el-select-dropdown { + background: #123542; + box-shadow: 2px 2px 8px 0px rgba(82, 90, 102, 0.08), + 1px 1px 2px 0px rgba(82, 90, 102, 0.04); + border-radius: 4px; + + .el-select-dropdown__list { + .el-select-dropdown__item { + font-size: 15px; + font-family: PingFang SC, PingFang SC; + color: #fff; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + /** + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + */ + &:hover { + background: #0d5f79; + } + &.hover { + background: #0d5f79; + } + } + } + + &.el-select-dropdown { + &[x-placement^="top"] { + div.popper__arrow { + border-top-color: #1a3442; + + &::after { + border-top-color: #1a3442; + } + } + } + &[x-placement^="left"] { + div.popper__arrow { + border-left-color: #1a3442; + + &::after { + border-left-color: #1a3442; + } + } + } + &[x-placement^="right"] { + div.popper__arrow { + border-right-color: #1a3442; + + &::after { + border-right-color: #1a3442; + } + } + } + &[x-placement^="bottom"] { + div.popper__arrow { + border-bottom-color: #1a3442; + + &::after { + border-bottom-color: #1a3442; + } + } + } + } +} +div.el-scrollbar { + .el-scrollbar__wrap { + /** + overflow: auto; + */ + overflow-x: hidden; + } +} + +body { + input.el-input__inner { + background-color: #0d5f79; + color: #fff; + border-radius: 2px; + border: 0; + height: 100%; + min-height: fit-content; + line-height: unset; + + &::placeholder { + color: #fff; + } + } + + div.el-input { + input.el-input__inner { + font-size: 12px; + } + + .el-input__suffix { + display: flex; + align-items: center; + justify-content: center; + } + } + div.el-textarea { + textarea.el-textarea__inner { + background: #0a3e54; + border-radius: 5px; + opacity: 1; + border: 1px solid rgba(98, 224, 254, 0.6); + } + + .el-input__count { + background-color: rgba(0, 0, 0, 0); + font-size: 12px; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + color: #3de8ff; + line-height: 14px; + } + } + + div.el-time-panel.el-popper, + div.el-time-range-picker.el-popper { + background: #064258; + border-radius: 3px; + border: 0; + + .el-time-range-picker__body, + .el-time-panel__content { + border-radius: 9px; + + &::after { + border: 0; + } + + &::before { + border: 0; + margin-top: -12px; + background-repeat: no-repeat; + background-size: 100% 100%; + background-image: url(~@screen/images/active.svg); + width: 100%; + margin-left: 0; + padding: 0; + } + + .el-time-spinner__arrow { + color: #fff; + } + + .el-time-spinner__item { + color: rgba(0, 209, 255, 0.51); + + &:hover:not(.disabled):not(.active) { + background-color: unset; + color: rgba(0, 209, 255, 1); + } + } + + .active { + color: rgba(0, 209, 255); + } + } + + .el-time-range-picker__body { + border: 1px solid #00b3cc; + } + + .el-time-panel__content { + &::before { + margin-top: -15px; + } + } + + .el-time-range-picker__content { + .el-time-range-picker__cell { + .el-time-range-picker__header { + color: #fff; + } + } + } + + .el-time-panel__footer { + border-top: 0; + + .cancel { + color: #ffffff; + } + + .confirm { + color: #01b4de; + } + } + + .el-range-input { + background-color: #0d5f79; + } + + .el-range-separator { + color: #56cefe; + } + + &, + .el-input__inner { + background-color: #0d5f79; + color: #fff; + border-radius: 2px; + border: 0; + + &::placeholder { + color: #fff; + } + } + + &[x-placement^="top"] { + div.popper__arrow { + border-top-color: #275e79; + + &::after { + border-top-color: #275e79; + } + } + } + &[x-placement^="left"] { + div.popper__arrow { + border-left-color: #275e79; + + &::after { + border-left-color: #275e79; + } + } + } + &[x-placement^="right"] { + div.popper__arrow { + border-right-color: #275e79; + + &::after { + border-right-color: #275e79; + } + } + } + &[x-placement^="bottom"] { + div.popper__arrow { + border-bottom-color: #275e79; + + &::after { + border-bottom-color: #275e79; + } + } + } + } +} diff --git a/ruoyi-ui/src/views/JiHeExpressway/scss/reset.scss b/ruoyi-ui/src/views/JiHeExpressway/scss/reset.scss new file mode 100644 index 00000000..3df93f8f --- /dev/null +++ b/ruoyi-ui/src/views/JiHeExpressway/scss/reset.scss @@ -0,0 +1,37 @@ +body { + input, + textarea { + caret-color: white; + } + + div { + /* 滚动条整体部分 */ + &::-webkit-scrollbar { + width: 6px !important; + height: 6px !important; + padding: 15px; + } + + /* 滚动条的轨道 */ + &::-webkit-scrollbar-track { + background: rgba(17, 72, 90, 0.4); + border-radius: 4px; + } + + /* 滚动条的滑块按钮 */ + &::-webkit-scrollbar-thumb { + background: #3785a0; + border-radius: 4px; + } + + /* 上下箭头 */ + &::-webkit-scrollbar-button { + display: none; + } + + /* 滚动条角 */ + &::-webkit-scrollbar-corner { + display: none; + } + } +}