Browse Source

更改

wangqin
zhangzhang 6 months ago
parent
commit
325e86486d
  1. 43
      ruoyi-ui/src/common/menuData.js
  2. 35
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue
  3. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DeviceControl/index.vue
  4. 9
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DispatchLiaison/StatsDialogVisible/index.vue
  5. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DispatchLiaison/index.vue
  6. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/DialogVisible/index.vue
  7. 56
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue
  8. 86
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/index.vue

43
ruoyi-ui/src/common/menuData.js

@ -36,7 +36,7 @@ export default [
path: "/perception/trafficSituation",
name: "perceptionTrafficSituation",
component: "perception/trafficSituation/index.vue",
}
},
],
},
{
@ -113,14 +113,14 @@ export default [
path: "/control/device/strategy",
name: "controlDeviceStrategy",
component: "control/device/strategy/index.vue",
}
},
],
},
{
title: "扫码报警",
name: "controlQR",
path: "/control/qrCode",
component: "control/qrCode/index.vue"
component: "control/qrCode/index.vue",
},
{
title: "非机预警",
@ -137,9 +137,9 @@ export default [
name: "controlManualStatistic",
path: "/control/manual/statistic",
component: "control/manual/statistic/index.vue",
}
]
}
},
],
},
],
},
{
@ -152,8 +152,9 @@ export default [
title: "收费运营",
name: "fee",
path: "/maintain/fee",
component: "maintenanceOperations/chargeableOperations/index.vue"
},{
component: "maintenanceOperations/chargeableOperations/index.vue",
},
{
title: "智能养护",
name: "smart",
children: [
@ -161,28 +162,30 @@ export default [
title: "统计分析",
name: "smartStatistic",
path: "/maintain/smart/statistic",
component: "maintenanceOperations/smart/statisticalAnalysis/index.vue",
component:
"maintenanceOperations/smart/statisticalAnalysis/index.vue",
},
{
title: "网络拓扑",
name: "smartTopology",
path: "/maintain/smart/topology",
component: "maintenanceOperations/smart/topology/index.vue"
component: "maintenanceOperations/smart/topology/index.vue",
},
{
title: "设备管理",
name: "smartDeviceMange",
path: "/maintain/smart/manage",
component: "maintenanceOperations/smart/manage/index.vue"
}
]
}, {
component: "maintenanceOperations/smart/manage/index.vue",
},
],
},
{
title: "边坡光伏",
name: "photovoltaic",
path: "/maintain/photovoltaic",
component: "developing.vue"
}
]
component: "developing.vue",
},
],
},
{
title: "公众服务",
@ -219,7 +222,7 @@ export default [
title: "信息发布管理",
name: "InformationReleaseManagement",
path: "/service/InformationReleaseManagement",
component: "service/InformationReleaseManagement/index.vue"
component: "service/InformationReleaseManagement/index.vue",
},
{
title: "公众服务统计",
@ -265,8 +268,8 @@ export default [
name: "roadNet",
path: "/datav/roadNet",
component: "datav/roadNet/index.vue",
hide:true
}
hide: true,
},
],
},
{

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

@ -6,12 +6,30 @@
<span class="name">{{ data.name }}</span>
<span class="posts">{{ data.posts }}</span>
</div>
<div class="desc" v-if="data.processId">节点{{ data.processName }}</div>
<img
v-if="
data.type == 'bmp' ||
data.type == 'jpg' ||
data.type == 'jpeg' ||
data.type == 'png'
"
:src="data.url"
/>
{{ data.url }}
<video
v-if="data.type == 'mp4' || data.type == 'avi' || data.type == 'xmvb'"
:src="data.url"
>
<!-- <source :src="data.desc" /> -->
</video>
<!-- <div class="desc">{{ data.desc }}</div> -->
<div class="desc" v-html="data.desc" />
<div v-if="data.type == 'text'" class="desc" v-html="data.desc" />
</div>
</template>
<script>
import Video from "@screen/components/VideoMulti";
export default {
name: "DescCard",
props: {
@ -20,6 +38,21 @@ export default {
default: () => ({}),
},
},
watch: {
"data.type": {
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,
immediate: true,
},
},
components: {
Video,
},
};
</script>

1
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DeviceControl/index.vue

@ -45,6 +45,7 @@ export default {
inject: ["provideData"],
data() {
return {
tableData: [],
data: null,
};
},

9
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DispatchLiaison/StatsDialogVisible/index.vue

@ -222,6 +222,15 @@ export default {
background: #1b586d;
color: #fff;
}
::v-deep .el-table td.el-table__cell div {
line-height: 30px;
}
::v-deep .el-checkbox-group {
text-align: left;
.el-checkbox {
min-width: 70px;
}
}
::v-deep .el-table tr {
border: 1px solid #07aec6;

22
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DispatchLiaison/index.vue

@ -18,7 +18,10 @@
</div>
<div class="dispatch-item">
<span class="label">值班领导</span>
<div class="value">
<div
class="value"
v-if="dispatchData.shifts && dispatchData.shifts.length > 0"
>
<div v-for="item in dispatchData.shifts" class="value-item">
<span class="shiftsName">{{ item.shiftsName }}</span>
<span class="shiftsNumber">{{ item.shiftsNumber }}</span>
@ -27,24 +30,27 @@
> -->
</div>
</div>
<div class="value" v-else>-</div>
</div>
<div class="dispatch-item">
<span class="label">路管人员</span>
<div class="value">
<div class="value" v-if="staff && staff.length > 0">
<div v-for="item in staff" class="value-item">
<span class="shiftsName">{{ item.resourceName }}</span>
<span class="shiftsNumber">{{ item.resourceValue }}</span>
</div>
</div>
<div class="value" v-else>-</div>
</div>
<div class="dispatch-item">
<span class="label">救援车辆</span>
<div class="value">
<div class="value" v-if="vehicle && vehicle.length > 0">
<div v-for="item in vehicle" class="value-item">
<span class="shiftsName">{{ item.resourceValue }}</span>
<span class="shiftsNumber">{{ item.vehicleText }}</span>
</div>
</div>
<div class="value" v-else>-</div>
</div>
</div>
<StatsDialogVisible
@ -81,7 +87,7 @@ export default {
data() {
return {
provideDetail: null,
dispatchData: [],
dispatchData: {},
dispatchList: [],
vehicleTypeList: [],
staff: [],
@ -124,9 +130,11 @@ export default {
}
});
this.dispatchList = res.data.listData;
this.dispatchData = res.data.resource;
console.log("调度联络返回============", res.data);
this.dispatchData = res.data.resource ? res.data.resource : {};
this.staff = [];
this.vehicle = [];
if (res.data && res.data.resource && res.data.resource.resource) {
res.data.resource.resource.forEach((element) => {
if (element.dispatchType == 1) {
this.staff.push(element);
@ -134,6 +142,8 @@ export default {
this.vehicle.push(element);
}
});
}
this.vehicleTypeList.forEach((i) => {
this.vehicle.forEach((item) => {
if (item.resourceName == i.dictValue) {
@ -193,7 +203,7 @@ export default {
color: #38d2e7;
}
.value {
width: 85%;
width: 80%;
font-size: 13px;
color: #fff;
display: flex;

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

@ -226,7 +226,7 @@
<Button
v-if="type != 3"
style="background: #39d5bf"
@click.native="handleInitData(2)"
@click.native="handleInitData(2, 1)"
>重新生成</Button
>
<Button style="background: #3de8ff" @click.native="handlePreview"
@ -652,9 +652,10 @@ export default {
};
},
watch: {
async "provideData.detail"(newValue, oldValue) {
"provideData.detail"(newValue, oldValue) {
this.provideDetail = newValue;
this.eventId = newValue.id;
console.log("+++++++++++++++");
this.initData();
this.getReportData();
this.getImportantFileStatus();
@ -828,6 +829,7 @@ export default {
},
//
getImportantFileStatus() {
console.log("getImportantFileStatus");
importantFileStatus(this.eventId).then((res) => {
this.type = res.data;
this.$emit("update:type", this.type);
@ -840,6 +842,7 @@ export default {
deventImportantFileList(this.eventId, type).then((res) => {
if (res.length > 0) {
this.formFileData = res[0];
console.log(789, res);
if (type == "1" || type == "2") {
this.renewedList = res;
}
@ -849,13 +852,13 @@ export default {
});
},
//
handleInitData(type) {
handleInitData(type, source) {
let data = new FormData();
data.append("eventId", this.eventId);
data.append("type", type);
getEventImportantFile(data).then((res) => {
this.formFileData = res.data;
if (type == "2") {
if (type == "2" && source == "1") {
this.newType = 1;
this.renewedList.push(res.data);
this.pageNum = this.renewedList.length;

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

@ -13,7 +13,9 @@
<ButtonGradient
v-if="
detailData.eventState != 2 &&
(detailData.eventType == 2 || detailData.eventType == 6)
(detailData.eventType == 1 ||
detailData.eventType == 2 ||
detailData.eventType == 6)
"
class="title-button"
@click="handleNoWrecker"
@ -22,7 +24,10 @@
无需清障
</ButtonGradient>
<ButtonGradient
v-if="detailData.eventState != 2 && detailData.eventType == 4"
v-if="
detailData.eventState != 2 &&
(detailData.eventType == 1 || detailData.eventType == 4)
"
class="title-button"
@click="handleClick"
>
@ -99,7 +104,7 @@
:on-error="handleUploadError"
accept=".jpg,.jpeg,.png,.mp4"
>
<el-button class="input">点击上传</el-button>
<el-button class="input">{{ imageName }}</el-button>
</el-upload>
<ElSelect
:disabled="detailData.eventState == 2"
@ -185,6 +190,8 @@ export default {
isFullHeight: false,
options: [],
processId: "",
processName: "",
processType: "",
context: "",
text: "",
phrasesOptions: [],
@ -195,14 +202,22 @@ export default {
fileList: [],
fileType: ["bmp", "gif", "jpg", "jpeg", "png", "mp4", "avi", "xmvb"],
imageUrl: "",
imageName: "点击上传",
};
},
watch: {
processId(newVlaue, oldValue) {
this.options.forEach((element) => {
if (newVlaue == element.nodeNode) {
if (element.commonPhrases) {
this.phrasesOptions = element.commonPhrase.split(",");
if (element.commonPhrases != "undefined") {
console.log("element", element, element.commonPhrases);
this.phrasesOptions =
element?.commonPhrases.length > 0
? element?.commonPhrases.split(",")
: [];
console.log("this.phrasesOptions", this.phrasesOptions);
this.processName = element.processNode;
this.processType = 1;
}
}
});
@ -215,7 +230,9 @@ export default {
async "provideData.detail"(newValue, oldValue) {
this.provideDetail = newValue;
this.eventId = newValue.id;
this.getProcess();
await this.disposalRecords(this.eventId);
// console.log("", this.provideDetail);
},
},
@ -267,6 +284,9 @@ export default {
name: item.operatorName,
desc: item.context,
source: item.source,
processId: item.processId,
processName: item.processName,
type: item.type,
// posts: ''
};
});
@ -276,7 +296,8 @@ export default {
//
handleUploadSuccess(res, file) {
this.$message.success("上传成功");
this.imageUrl = res.url;
this.imageName = res.originalFilename;
this.imageUrl = res.fileName;
},
//
@ -290,19 +311,36 @@ export default {
//
onSubmit() {
if (this.context || this.imageUrl) {
let content = "";
if (this.testRadio == "input") {
content = this.context;
} else {
content = this.imageUrl;
}
let type = this.containsArrayElement(this.imageUrl, this.fileType);
let data = {
eventId: this.eventId,
processId: this.processId,
context: this.context,
file: this.imageUrl,
type: type.join(","),
processName: this.processName,
context: content,
// file: this.imageUrl,
type: type ? type.join(",") : "text",
source: 1,
processType: this.processType,
};
postProcess(data).then((result) => {
if (result.code != 200) return [];
this.getProcess();
this.disposalRecords(this.eventId);
this.processId = "";
this.processName = "";
this.testRadio = "input";
this.context = "";
this.imageUrl = "";
this.imageName = "点击上传";
this.fileType = [];
this.text = "";
this.$message.success("发送成功");
});
} else {
this.$message.warning("调度指令不能为空");

86
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/index.vue

@ -1,6 +1,5 @@
<template>
<div class='emergencyProcessManagement'>
<div class="emergencyProcessManagement">
<!-- 搜索栏 -->
<div class="filter">
<div>
@ -16,7 +15,6 @@
</template>
新增
</ButtonGradient> -->
</div>
</div>
@ -28,48 +26,70 @@
<ElTableColumn prop="processConfig" label="处置流程" />
<ElTableColumn label="操作" width="210">
<template slot-scope="scope">
<ElButton type="text" style="color: #00D1FF;" @click="showDisposal(scope.row.eventType)">流程配置</ElButton>
<ElButton type="text" style="color: #00EBC1;" @click="showPhrases(scope.row)">常用语</ElButton>
<!-- <ElButton type="text" style="color: #00D1FF;" @click="showDisposal(scope.row.eventType)">流程配置</ElButton> -->
<ElButton
type="text"
style="color: #00ebc1"
@click="showPhrases(scope.row)"
>常用语</ElButton
>
</template>
</ElTableColumn>
</Table>
</div>
<!-- 配置常用户弹窗 -->
<CommonPhrases :visible="isShowPhrases" :eventType="eventType" :process="process" @update:value="onClosePhrases"
@update:phrasesData="onUpdatePhrasesData" @reInitData="initData" />
<CommonPhrases
:visible="isShowPhrases"
:eventType="eventType"
:process="process"
@update:value="onClosePhrases"
@update:phrasesData="onUpdatePhrasesData"
@reInitData="initData"
/>
<!-- "流程配置"弹出框 -->
<DisposalProcess :visible="isShowDisposal" :eventType="eventType" :phrasesData="phrasesData"
@update:value="onCloseDisposal" @reInitData="initData" />
<DisposalProcess
:visible="isShowDisposal"
:eventType="eventType"
:phrasesData="phrasesData"
@update:value="onCloseDisposal"
@reInitData="initData"
/>
<!-- 分页 -->
<div class="footer">
<Pagination @current-change="initData" @size-change="onSizeChange" width="'100%'" :page-sizes="[10, 20, 30, 40, 50]"
:page-size="searchData.pageSize" :current-page.sync="searchData.pageNum" layout="total, sizes, prev, pager, next"
:total="total">
<Pagination
@current-change="initData"
@size-change="onSizeChange"
width="'100%'"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="searchData.pageSize"
:current-page.sync="searchData.pageNum"
layout="total, sizes, prev, pager, next"
:total="total"
>
</Pagination>
</div>
</div>
</template>
<script>
import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue';
import Pagination from '@screen/components/Pagination.vue';
import Table from '@screen/components/Table.vue';
import CommonPhrases from './commonPhrases';
import DisposalProcess from './disposalProcess';
import ButtonGradient from "@screen/components/Buttons/ButtonGradient.vue";
import Pagination from "@screen/components/Pagination.vue";
import Table from "@screen/components/Table.vue";
import CommonPhrases from "./commonPhrases";
import DisposalProcess from "./disposalProcess";
import request from "@/utils/request";
import { Message } from 'element-ui'
import { Message } from "element-ui";
export default {
name: 'emergencyProcessManagement',
name: "emergencyProcessManagement",
components: {
ButtonGradient,
Pagination,
Table,
CommonPhrases,
DisposalProcess
DisposalProcess,
},
data() {
return {
@ -83,8 +103,8 @@ export default {
pageNum: 1,
},
phrasesData: [],
process: []
}
process: [],
};
},
created() {
this.initData();
@ -113,18 +133,18 @@ export default {
},
showPhrases(data) {
if (data?.processConfigList.length <= 0) {
Message.warning('请先配置流程!');
Message.warning("请先配置流程!");
return;
}
let process = []
data.processConfigList.forEach(it => {
let process = [];
data.processConfigList.forEach((it) => {
process.push({
id: it.id,
commonPhrases: it.commonPhrases,
label: it.processNode,
isActive: false,
})
})
});
});
this.process = process;
this.isShowPhrases = true;
this.eventType = data.eventType;
@ -134,19 +154,19 @@ export default {
this.eventType = eventType;
},
onClosePhrases() {
this.isShowPhrases = false
this.isShowPhrases = false;
},
onCloseDisposal() {
this.isShowDisposal = false;
},
onUpdatePhrasesData(phrasesData) {
this.phrasesData = phrasesData;
}
}
}
},
},
};
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.emergencyProcessManagement {
padding: 21px;

Loading…
Cancel
Save