Browse Source

Merge branch 'develop' of http://39.106.31.193:9211/mengff/jihe-hs into develop

wangqin
王钦 9 months ago
parent
commit
66c2dc33d2
  1. 16
      ruoyi-ui/src/api/commandDispatch/index.js
  2. 30
      ruoyi-ui/src/components/eventDialogTable/eventDialog.vue
  3. 329
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue
  4. 109
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastReleases.vue
  5. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/DialogVisible/index.vue
  6. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue
  7. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/service/broadcast/index.vue
  8. 4
      ruoyi-ui/vue.config.js

16
ruoyi-ui/src/api/commandDispatch/index.js

@ -141,3 +141,19 @@ export function importantFileStatus(eventId) {
method: "get",
});
}
// 事件预案详情
export function eventDetails(assocId) {
return request({
url: `/business/plans/event/assocId/${assocId}`,
method: "get",
});
}
// 获取重要文件内容详情
export function getEventImportantFileDetails(id) {
return request({
url: `/business/eventImportantFile/${id}`,
method: "get",
});
}

30
ruoyi-ui/src/components/eventDialogTable/eventDialog.vue

@ -561,7 +561,9 @@
</el-row>
</el-form>
<div class="dialogFooterButton">
<div @click="submitDialog" v-hasPermi="['system:event:check']">复核提交</div>
<div @click="submitDialog" v-hasPermi="['system:event:check']">
复核提交
</div>
<!-- <div
@click="openProcess(1, eventFormDetail.id)"
>
@ -577,10 +579,10 @@
title="事件视频"
class="videoDialog"
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div class="videoDialogClass">
<video :src="videoUrl" controls muted loop fluid autoplay></video>
</div>
@ -592,10 +594,10 @@
width="60%"
:before-close="handleCloseImg"
>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<div class="dialogStyleBox">
<div class="dialogLine"></div>
<div class="dialogCloseButton"></div>
</div>
<img :src="alongImgUrl" style="width: 100%" />
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisibleImg = false"> </el-button>
@ -968,7 +970,7 @@ export default {
} else {
callback(new Error("请输入正确的车牌号,字母大写"));
}
}else{
} else {
callback();
}
},
@ -1324,9 +1326,9 @@ export default {
//
// getEventList() {
// eventFlowList({ eventId: this.eventForm.id }).then((res) => {
// this.eventWarnList = res.rows;
// });
// eventFlowList({ eventId: this.eventForm.id }).then((res) => {
// this.eventWarnList = res.rows;
// });
// },
getReservePlanData() {
this.ReservePlanList = [];
@ -2321,7 +2323,7 @@ hr {
video {
width: 100%;
height: auto;
max-height:550px;
max-height: 550px;
}
}
.el-carousel {

329
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue

@ -7,7 +7,8 @@
<span class="posts">{{ data.posts }}</span>
</div>
<div class="desc" v-if="data.processId">节点{{ data.processName }}</div>
<img
<el-image
style="width: 100px; height: 100px"
v-if="
data.type == 'bmp' ||
data.type == 'jpg' ||
@ -15,21 +16,264 @@
data.type == 'png'
"
:src="data.url"
/>
{{ data.url }}
>
</el-image>
<video
v-if="data.type == 'mp4' || data.type == 'avi' || data.type == 'xmvb'"
class="videoClass"
:src="data.url"
:poster="data.url"
muted
controls
></video>
<div v-if="data.type == 'text'">
<div class="desc" v-html="data.desc" />
</div>
<el-popover
trigger="click"
placement="right"
v-if="data.processType == '3'"
style="color: red; cursor: pointer"
>
<!-- <source :src="data.desc" /> -->
</video>
<!-- <div class="desc">{{ data.desc }}</div> -->
<div v-if="data.type == 'text'" class="desc" v-html="data.desc" />
<span slot="reference" @click="handleDetails(data)">详情</span>
<div class="detailsBox" v-if="data.processType == '3'">
<div class="item" v-for="item in controlResult" :key="item.deviceName">
<span class="label"> {{ item.deviceName }}</span>
<span class="value"> {{ item.content }}</span>
</div>
</div>
</el-popover>
<div
v-if="data.processType == '4'"
style="color: red; cursor: pointer"
@click="openDetailsDialog(data)"
>
详情
</div>
<Dialog style="" v-model="detailsDialog" width="1085px" top="60px">
<div v-if="data.processType == '4'" class="docx-wrapper">
<section
ref="initFile"
class="docx"
style="
padding: 72pt 90.15pt;
width: 595.3pt;
min-height: 741.9pt;
column-count: 1;
column-gap: 36pt;
"
>
<article>
<p
style="
line-height: 1;
text-align: center;
vertical-align: baseline;
margin-bottom: 10px;
"
>
<span
lang="en-US"
style="
font-family: 方正小标宋简体;
color: rgb(255, 0, 0);
min-height: 46pt;
font-size: 46pt;
font-weight: 700;
"
>重要事件</span
>
</p>
<p
style="
margin-bottom: 2pt;
min-height: 15pt;
line-height: 15pt;
text-align: center;
vertical-align: baseline;
"
>
<span
lang="null"
style="
font-family: 仿宋_GB2312;
font-weight: normal;
min-height: 10.5pt;
font-size: 10.5pt;
"
>报送单位</span
><span
lang="en-US"
style="
font-family: 仿宋_GB2312;
font-weight: normal;
min-height: 10.5pt;
font-size: 10.5pt;
"
>
{{ formFileData.fromDept }}</span
><span
lang="null"
style="
font-family: 仿宋_GB2312;
font-weight: normal;
min-height: 10.5pt;
font-size: 10.5pt;
"
>报送时间</span
><span
lang="en-US"
style="
font-family: 仿宋_GB2312;
font-weight: normal;
min-height: 10.5pt;
font-size: 10.5pt;
"
>{{ formFileData.createTime }}</span
>
</p>
<p
style="
margin-bottom: 1pt;
min-height: 10pt;
line-height: 10pt;
text-align: center;
vertical-align: baseline;
"
>
<span
style="
font-family: 'Times New Roman';
font-weight: bold;
color: rgb(255, 0, 0);
min-height: 22pt;
font-size: 22pt;
"
></span
>
</p>
<p
style="
margin-bottom: 6pt;
min-height: 25pt;
line-height: 25pt;
text-align: center;
vertical-align: baseline;
"
>
<span
lang="en-US"
style="
font-family: 方正小标宋简体;
min-height: 22pt;
font-size: 22pt;
font-weight: bold;
"
>{{ formFileData.title }}</span
>
</p>
<p
style="
text-indent: 0pt;
text-align: left;
vertical-align: baseline;
"
>
<span
lang="en-US"
style="
font-family: 仿宋_GB2312;
font-weight: normal;
color: black;
min-height: 16pt;
font-size: 16pt;
"
>智慧管理中心</span
>
</p>
<textarea
v-model="formFileData.content"
disabled
style="
width: 100%;
height: 40vh;
line-height: 1.5;
text-indent: 0pt;
vertical-align: baseline;
font-family: 仿宋_GB2312;
font-weight: normal;
color: black;
min-height: 16pt;
font-size: 16pt;
background: #fff;
border: none;
"
>
{{ formFileData.content }}
</textarea
>
<p
style="line-height: 1; text-indent: 0pt; vertical-align: baseline"
></p>
<p style="vertical-align: baseline"></p>
<p
style="
margin-bottom: 1pt;
min-height: 10pt;
line-height: 10pt;
text-align: center;
vertical-align: baseline;
"
>
<span
style="
font-family: 'Times New Roman';
font-weight: bold;
color: rgb(255, 0, 0);
min-height: 22pt;
font-size: 22pt;
"
></span
>
</p>
<p
class="docx-num-0-0"
style="
display: flex;
justify-content: space-between;
margin-top: 0pt;
text-align: center;
vertical-align: baseline;
font-family: 仿宋_GB2312;
font-weight: normal;
min-height: 14pt;
font-size: 14pt;
"
>
<span lang="en-US">填报人:{{ formFileData.createName }} </span>
<span>联系电话:{{ formFileData.phoneNumber }}</span>
<span> 签发人{{ formFileData.issued }}</span>
</p>
</article>
</section>
<!-- <button @click="handleDownload">下载</button> -->
</div>
<div></div>
</Dialog>
</div>
</template>
<script>
import Video from "@screen/components/VideoMulti";
import Dialog from "@screen/components/Dialog/index";
import {
eventDetails,
getEventImportantFileDetails,
} from "@/api/commandDispatch";
export default {
name: "DescCard",
props: {
@ -43,7 +287,6 @@ export default {
handler(newValue, oldValue) {
if (newValue != "text") {
this.data.url = process.env.VUE_APP_BASE_API + this.data.desc;
console.log("this.data.url", this.data.url);
}
},
deep: true,
@ -52,6 +295,40 @@ export default {
},
components: {
Video,
Dialog,
},
data() {
return {
detailsDialog: false,
controlResult: [],
formFileData: {
fromDept: "齐鲁高速股份有限公司",
createTime: "2024年04月24日17时22分",
title: "关于G20青银高速K305+208交通事故的续报1",
toDept: "智慧管理中心",
content: "路管等单位及清障救援车辆已到达现场。预计结束时间为12时44分。",
createName: "张三",
phoneNumber: "18678866677",
issued: "康传刚",
status: 0,
id: null,
},
};
},
methods: {
handleDetails(data) {
eventDetails(data.id).then((res) => {
if (res.data?.controlResult) {
this.controlResult = JSON.parse(res.data.controlResult);
}
});
},
openDetailsDialog(data) {
this.detailsDialog = true;
getEventImportantFileDetails(data.id).then((res) => {
this.formFileData = res.data;
});
},
},
};
</script>
@ -99,4 +376,40 @@ export default {
line-height: 19px;
}
}
.videoClass {
width: 300px;
height: 180px;
}
.docx-wrapper {
background: #fff;
padding: 30px;
display: flex;
flex-flow: column;
align-items: center;
> section.docx {
background: white;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
margin-bottom: 30px;
}
.docx p,
p.docx_1 span {
font-family: var(--docx-minorHAnsi-font);
color: #00000a;
min-height: 11pt;
font-size: 11pt;
}
button {
cursor: pointer;
width: 100px;
height: 35px;
line-height: 35px;
color: #fff;
background: #00b3cc;
border-radius: 48px;
display: flex;
justify-content: center;
align-items: center;
border: none;
}
}
</style>

109
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastReleases.vue

@ -10,28 +10,65 @@
<template #[otherConfig]="{ data }">
<span style="color: #6ee5fe"> {{ data.deviceName }}(当前) </span>
</template>
</CheckboxGroup>
</div>
<div class="right">
<div class="top-content">
<Video class="item-video" :pileNum="pileNum" />
</CheckboxGroup>
</div>
<div class="right">
<div class="top-content">
<Video class="item-video" :pileNum="pileNum" />
<label>发布内容: </label>
<ElInput type="textarea" v-model="releaseMessage" :autosize="{ minRows: 3, maxRows: 3 }" :maxlength="150"
showWordLimit placeholder="请输入发布内容" />
</div>
<div class="footer">
<Button style="background-color: rgba(0, 179, 204, 0.3)"
@click.native="(modelVisible = false), (submitting = false)">
取消
</Button>
<Button @click.native="handleSubmit" :loading="submitting">
确定
</Button>
</div>
</div>
</div>
<el-form ref="form" :model="dataForm" :rules="dataRule" label-width=" 90px">
<el-form-item label="音量" prop="outVol">
<el-row :gutter="0">
<el-col :span="6">
<el-input-number v-model="dataForm.outVol" :min="1" :max="9"></el-input-number>
</el-col>
<el-col :span="18"><span style="margin-left: 10px;">取值范围 1 - 9</span></el-col>
</el-row>
</el-form-item>
<el-form-item label="循环次数" prop="repeatTimes">
<el-row :gutter="0">
<el-col :span="6">
<el-input-number v-model="dataForm.repeatTimes" :min="1" :max="16"></el-input-number>
</el-col>
<el-col :span="18"><span style="margin-left: 10px;">取值范围 1 - 16</span></el-col>
</el-row>
</el-form-item>
<el-form-item label="紧急度" prop="priority">
<el-row :gutter="0">
<el-col :span="6">
<el-select v-model="dataForm.priority" placeholder="请选择">
<el-option v-for="(item, key) in broadcastPriority" :key="key" :label="item" :value="key">
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="详细内容" prop="content">
<ElInput type="textarea" v-model="dataForm.content" :autosize="{ minRows: 3, maxRows: 3 }"
:maxlength="150" showWordLimit placeholder="请输入发布内容" />
</el-form-item>
</el-form>
<!-- <label>发布内容: </label>
<ElInput type="textarea" v-model="dataForm.content" :autosize="{ minRows: 3, maxRows: 3 }" :maxlength="150"
showWordLimit placeholder="请输入发布内容" /> -->
</div>
<div class="footer">
<Button style="background-color: rgba(0, 179, 204, 0.3)"
@click.native="(modelVisible = false), (submitting = false)">
取消
</Button>
<Button @click.native="handleSubmit" :loading="submitting">
确定
</Button>
</div>
</div>
</div>
</div>
</Dialog>
</template>
@ -46,7 +83,7 @@ import request from "@/utils/request";
import { getDeviceList } from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js";
import { Message } from "element-ui";
import { broadcastPriority } from "@screen/utils/enum.js";
export default {
name: "BroadcastReleases",
components: {
@ -67,10 +104,25 @@ export default {
},
data() {
return {
broadcastPriority,
submitting: false,
checkList: [],
releaseMessage: null,
dataForm: {
content:"",
priority:"1",
repeatTimes:3,
outVol:6
},
musicList: [],
dataRule: {
content: [
{
required: true,
message: "请输入详细内容",
trigger: "blur",
},
]
},
};
},
computed: {
@ -94,7 +146,7 @@ export default {
},
methods: {
handleSubmit() {
if (!this.releaseMessage?.trim())
if (!this.dataForm.content?.trim())
return Message.error("发布内容不能为空!");
if (!this.checkList.length)
return Message.error("请至少选择一个广播设备!");
@ -113,12 +165,11 @@ export default {
"functionId": "A1",
"params": {
"name": "task-3",
"outVol": "6",
"priority": "1",
"text": "山东高速欢迎您",
"repeatTimes": "3",
"outVol": "" + this.dataForm.outVol,
"priority": "" + this.dataForm.priority,
"text": this.dataForm.content.trim(),
"repeatTimes": "" + this.dataForm.repeatTimes,
"termList": [
{
...JSON.parse(i)
}
@ -157,7 +208,7 @@ export default {
<style lang="scss" scoped>
.BroadcastReleases {
// width: 450px;
height: 420px;
height: 520px;
display: flex;
flex-direction: column;
gap: 15px;

10
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/DialogVisible/index.vue

@ -17,7 +17,7 @@
ref="FormReportRef"
:formList="reportList"
v-model="reportData"
label-width="100px"
label-width="150px"
/>
<div class="footer">
<Button @click.native="onSubmit">保存</Button>
@ -992,18 +992,16 @@ export default {
padding: 0;
}
.el-textarea__inner {
caret-color: #000;
caret-color: #000 !important;
margin-bottom: 20px;
font-size: 1.14583vw;
font-family: 仿宋;
margin: 0 20px;
height: 400px !important;
border-width: initial;
border-style: none;
border-color: initial;
border-image: initial;
border: none !important;
background: #fff;
color: #000;
color: #000 !important;
padding: 0;
}
}

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue

@ -278,6 +278,7 @@ export default {
return {
// title: "",
id: item.processId,
time: item.operationTime
? new Date(item.operationTime).toLocaleString()
: null,
@ -287,6 +288,7 @@ export default {
processId: item.processId,
processName: item.processName,
type: item.type,
processType: item.processType,
// posts: ''
};
});

2
ruoyi-ui/src/views/JiHeExpressway/pages/service/broadcast/index.vue

@ -138,7 +138,7 @@
</div>
</draggable>
</vuescroll>
<Empty v-else text="请从设备回读或从模板添加信息..." style="padding-top: 100px"></Empty>
<Empty v-else text="请添加待下发信息..." style="padding-top: 100px"></Empty>
</div>
</div>
<!-- ++++++++++右边部分信息模板++++++++++ -->

4
ruoyi-ui/vue.config.js

@ -52,9 +52,9 @@ module.exports = {
// target: `http://10.0.81.204:8087`, //现场后台 刘文阁
// target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁
// target: `http://10.168.78.135:8087`, //王钦
// target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2
target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2
// target: `http://10.168.68.42:8087`, //王思祥
target: `http://10.168.72.174:8087`, //赵祥龙
// target: `http://10.168.72.174:8087`, //赵祥龙
// target: `http://10.168.65.156:8097`, //孟
// target: `http://10.168.56.165:8087`, //王家宝
// target: `http://10.168.77.128:8087`, //王兴琳

Loading…
Cancel
Save