Browse Source

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

wangqin
zhangzhang 1 year ago
parent
commit
2885724bed
  1. 2
      ruoyi-ui/src/api/board/board.js
  2. 4
      ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js
  3. 100
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue
  4. 44
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  5. 25
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
  6. 20
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/httpList.js
  7. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/index.vue
  8. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/boardData.json
  9. 178
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
  10. 20
      ruoyi-ui/src/views/JiHeExpressway/utils/enum.js
  11. 2
      ruoyi-ui/src/views/websocket.vue
  12. 4
      ruoyi-ui/vue.config.js

2
ruoyi-ui/src/api/board/board.js

@ -43,7 +43,7 @@ export function saveBoardReleaseLog(data) {
export function publishToBoard(data) { export function publishToBoard(data) {
return request({ return request({
url: '/business/board/publish', url: '/business/board/batch/publish',
method: 'post', method: 'post',
data: data data: data
}) })

4
ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js

@ -78,7 +78,7 @@ export default{
}) })
}) })
let data = { content: content, deviceId: this.selectedDevice.iotDeviceId } let data = { content: content, deviceIdList: this.checkedDeviceIds }
if (IS_TESTING) { if (IS_TESTING) {
// this.saveLog(content); // this.saveLog(content);
@ -107,7 +107,7 @@ export default{
// //
saveLog(content){ saveLog(content){
let time = moment().format("YYYY-MM-DD HH:mm:ss"); let time = moment().format("YYYY-MM-DD HH:mm:ss");
let device = this.selectedDevice; let device = this.selectedDevices;
let data = { let data = {
"createBy": store.getters.name, "createBy": store.getters.name,
"createTime": time, "createTime": time,

100
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue

@ -1,35 +1,16 @@
<template> <template>
<div class="HomeFilter"> <div class="HomeFilter">
<ElPopover <ElPopover trigger="manual" :value="activeIcon === 'filter'" :visibleArrow="false" placement="left"
trigger="manual" popper-class="global-input-search-popover">
:value="activeIcon === 'filter'" <Button :class="['btn', { 'btn-active': activeIcon }]" slot="reference" @click.native="handleClick('filter')">
:visibleArrow="false"
placement="left"
popper-class="global-input-search-popover"
>
<Button
:class="['btn', { 'btn-active': activeIcon }]"
slot="reference"
@click.native="handleClick('filter')"
>
<img src="@screen/images/home-filter/filter.svg" /> <img src="@screen/images/home-filter/filter.svg" />
</Button> </Button>
<div class="body"> <div class="body">
<div class="title">设备筛选</div> <div class="title">设备筛选</div>
<Form <Form labelWidth="90px" column="1" class="form" ref="FormConfigRef" :formList="formList" />
labelWidth="90px"
column="1"
class="form"
ref="FormConfigRef"
:formList="formList"
/>
<div class="footer"> <div class="footer">
<Button <Button style="background-color: rgba(0, 179, 204, 0.3)" @click.native="handleResetForm">
style="background-color: rgba(0, 179, 204, 0.3)"
@click.native="handleResetForm"
>
重置 重置
</Button> </Button>
<Button @click.native="handleSearch"> 搜索 </Button> <Button @click.native="handleSearch"> 搜索 </Button>
@ -43,10 +24,12 @@
import Button from "@screen/components/Buttons/Button.vue"; import Button from "@screen/components/Buttons/Button.vue";
import Form from "@screen/components/FormConfig"; import Form from "@screen/components/FormConfig";
import * as PresetFormItems from "@screen/common/PresetFormItems.js"; import * as PresetFormItems from "@screen/common/PresetFormItems.js";
import { merge, cloneDeep } from "lodash"; import { merge, cloneDeep, find } from "lodash";
import request from "@/utils/request"; import request from "@/utils/request";
import { log } from "mathjs"; import { log } from "mathjs";
import { ChildTypes } from "@screen/utils/enum.js"
const DeviceTypeIds = [1, 2];
export default { export default {
name: "HomeFilter", name: "HomeFilter",
components: { components: {
@ -61,19 +44,59 @@ export default {
PresetFormItems.endStation, PresetFormItems.endStation,
{ {
label: "设备类型:", label: "设备类型:",
key: "deviceType", key: "childType",
type: "select", type: "select",
options: { options: {
options: [], options: [],
}, },
// visible: data => { visible: data => {
// if (data.searchType == 1) { for (let id of DeviceTypeIds) {
// return true if (this.activeDeviceTypes.indexOf(`路测设备_${id}`) >= 0)
// } return true;
// }, }
},
},
{
label: "设备状态:",
key: "deviceState",
type: "select",
default: null,
options: {
options: [{
label: "所有",
value: null
}, {
label: "在线",
value: 1
}, {
label: "离线",
value: 0
}]
},
visible: data => {
if (find(this.activeDeviceTypes, (type => type.match("路测设备_"))))
return true;
}, },
], },
}; ]
}
},
watch: {
activeDeviceTypes: {
handler(val) {
const options = []
for (let id of DeviceTypeIds) {
if (this.activeDeviceTypes.indexOf(`路测设备_${id}`) >= 0) {
const IdChildTypes = ChildTypes[id];
options.push(...Object.keys(IdChildTypes).map(key => { return { label: IdChildTypes[key], value: key } }));
}
// if (this.activeDeviceTypes.indexOf("_2") >= 0) options.push(...Object.keys(BoardChildTypes).map(key => { return { label: BoardChildTypes[key], value: key } }));
}
this.formList[2].options.options = options;
},
immediate: true,
deep: true
}
}, },
methods: { methods: {
handleClick(type) { handleClick(type) {
@ -97,6 +120,7 @@ export default {
if (!data.endStakeMark[0] || !data.endStakeMark[1]) if (!data.endStakeMark[0] || !data.endStakeMark[1])
delete data.endStakeMark; delete data.endStakeMark;
this.activeIcon = null; this.activeIcon = null;
console.log(data, "data");
this.filterEnd(data); this.filterEnd(data);
}, },
async getDeviceTypeOptions() { async getDeviceTypeOptions() {
@ -110,6 +134,7 @@ export default {
// return ; // return ;
}, },
}, },
inject: ["activeDeviceTypes"],
async created() { async created() {
// await this.getDeviceTypeOptions(); // await this.getDeviceTypeOptions();
}, },
@ -126,11 +151,9 @@ div.el-popper.global-input-search-popover {
.body { .body {
.title { .title {
background: linear-gradient( background: linear-gradient(90deg,
90deg,
#237e9b 0%, #237e9b 0%,
rgba(23, 145, 184, 0) 100% rgba(23, 145, 184, 0) 100%);
);
padding: 3px 9px; padding: 3px 9px;
position: absolute; position: absolute;
top: 0; top: 0;
@ -140,7 +163,8 @@ div.el-popper.global-input-search-popover {
} }
} }
</style> </style>
<style lang="scss" scoped>
<style lang='scss' scoped>
.HomeFilter { .HomeFilter {
.btn { .btn {
padding: 9px; padding: 9px;

44
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue

@ -142,16 +142,13 @@ export default {
async handler(bool) { async handler(bool) {
if (!bool) return; if (!bool) return;
await Promise.allSettled((this.tabContentData || []).map(item => this.handleDeviceImmediate(item, true))) await Promise.allSettled((this.tabContentData || []).map(item => this.handleDeviceImmediate(item, true)))
// for (let item of this.tabContentData || []) {
// await this.handleDeviceImmediate(item, true);
// };
Object.keys(lngLatMap).forEach(key => { Object.keys(lngLatMap).forEach(key => {
addInGraphHandle(lngLatMap[key]); addInGraphHandle(lngLatMap[key]);
}) })
} }
} }
}, },
inject: ['getMap'], inject: ['getMap', 'activeDeviceTypes'],
created() { created() {
const defaultActive = 0; const defaultActive = 0;
@ -177,15 +174,31 @@ export default {
getMinMapLayers(); getMinMapLayers();
}, },
methods: { methods: {
setFilterData(data) { async setFilterData(data) {
this.filterData = data; this.filterData = data;
const tabContentData = [];
this.layerData[1].children.forEach(item => { this.layerData.forEach((layerDataItem => {
layerDataItem.children.forEach(item => {
if (!item.status) return; if (!item.status) return;
tabContentData.push(item);
this.handleDeviceImmediate(item); // this.handleDeviceImmediate(item);
this.handleDeviceImmediate(item); // this.handleDeviceImmediate(item);
}) })
}));
const eventMapCall = async (item, isDefault) => {
const key = getHandleDeviceType(item) || `${this.active}/${item.title}`;
const status = item.status;
// if (!eventMap[`${key}${status ? "_close" : ""}`]) return this.$emit("onClickItem", item);
// console.log(`${key}${status ? "" : "_close"}`, this.filterData, 'xxx');
await eventMap[`${key}${status ? "" : "_close"}`]?.call(this, item, this.filterData, isDefault);
}
await Promise.allSettled(tabContentData.map(item => eventMapCall(item, true)))
// Object.keys(lngLatMap).forEach(key => {
// addInGraphHandle(lngLatMap[key]);
// });
}, },
handleClick(item) { handleClick(item) {
this.active = item.title; this.active = item.title;
@ -201,8 +214,15 @@ export default {
console.log("%c [ key ]-102-「index.vue」", "font-size:15px; background:#9d63e9; color:#e1a7ff;", key); console.log("%c [ key ]-102-「index.vue」", "font-size:15px; background:#9d63e9; color:#e1a7ff;", key);
if (!eventMap[`${key}${status ? "_close" : ""}`]) return this.$emit("onClickItem", item); if (!eventMap[`${key}${status ? "_close" : ""}`]) return this.$emit("onClickItem", item);
console.log(`${key}${status ? "_close" : ""}`, this.filterData, isDefault)
await eventMap[`${key}${status ? "_close" : ""}`]?.call(this, item, this.filterData, isDefault); const cb = (item, config) => {
const deviceType = config.deviceType;
const activeDeviceTypes = this.activeDeviceTypes;
const findIndex = activeDeviceTypes.indexOf(deviceType);
if (item.status) findIndex === -1 && activeDeviceTypes.push(deviceType);
else findIndex !== -1 && activeDeviceTypes.splice(findIndex, 1);
}
await eventMap[`${key}${status ? "_close" : ""}`]?.call(this, item, this.filterData, isDefault, cb);
}, },
handleDevice: debounce(function (item) { handleDevice: debounce(function (item) {
this.handleDeviceImmediate(item); this.handleDeviceImmediate(item);

25
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js

@ -114,7 +114,7 @@ function resolveDataOptions(data, config, component, isDefault) {
export const eventMap = { export const eventMap = {
// 设备 需要在地图显示的 // 设备 需要在地图显示的
async "地图路测设备/map"(item, filterData, isDefault) { async "地图路测设备/map"(item, filterData, isDefault, cb) {
const config = DeviceForMap[item.title]; const config = DeviceForMap[item.title];
let loadingMessage; let loadingMessage;
if (!isDefault) { if (!isDefault) {
@ -140,7 +140,9 @@ export const eventMap = {
return Message.warning(`没有${item.title}事件数据!`); return Message.warning(`没有${item.title}事件数据!`);
eventMap[`地图路测设备/map_close`](item); eventMap[`地图路测设备/map_close`](item);
const cbCall = () =>
cb?.(item, { deviceType: `路测设备_${config.deviceType}` });
cbCall();
const options = { const options = {
item, item,
...config.options, ...config.options,
@ -155,9 +157,11 @@ export const eventMap = {
removeData removeData
); );
addDataPreHandle(removeData); addDataPreHandle(removeData);
markerClusterIns.addData(removeData, isDefault); markerClusterIns.addData(removeData, isDefault);
cacheRemoveFunc[`地图路测设备/${item.title}`] = () => { cacheRemoveFunc[`地图路测设备/${item.title}`] = () => {
cbCall();
removeDataPreHandle(removeData); removeDataPreHandle(removeData);
markerClusterIns.removeData(removeData); markerClusterIns.removeData(removeData);
}; };
@ -167,7 +171,8 @@ export const eventMap = {
}, },
// 事件 需要在地图显示的 // 事件 需要在地图显示的
async "地图事件专题/map"(item, filterData, isDefault) { async "地图事件专题/map"(item, filterData, isDefault, cb) {
const deviceType = EventTopics[item.title];
let loadingMessage; let loadingMessage;
if (!isDefault) { if (!isDefault) {
loadingMessage = Message.info({ loadingMessage = Message.info({
@ -177,7 +182,7 @@ export const eventMap = {
iconClass: "el-icon-loading", iconClass: "el-icon-loading",
}); });
} }
const data = await getEventTopicList(EventTopics[item.title]) const data = await getEventTopicList(deviceType, filterData)
.then(async (data) => { .then(async (data) => {
await delay(600); await delay(600);
return data; return data;
@ -192,6 +197,8 @@ export const eventMap = {
return Message.warning(`没有${item.title}事件数据!`); return Message.warning(`没有${item.title}事件数据!`);
eventMap[`地图事件专题/map_close`](item); eventMap[`地图事件专题/map_close`](item);
const cbCall = () => cb?.(item, { deviceType: `事件专题_${deviceType}` });
cbCall();
const options = { const options = {
stateCallback: () => true, stateCallback: () => true,
@ -211,6 +218,7 @@ export const eventMap = {
markerClusterIns.addData(removeData, isDefault); markerClusterIns.addData(removeData, isDefault);
cacheRemoveFunc[`地图事件专题/${item.title}`] = () => { cacheRemoveFunc[`地图事件专题/${item.title}`] = () => {
cbCall();
removeDataPreHandle(removeData); removeDataPreHandle(removeData);
markerClusterIns.removeData(removeData); markerClusterIns.removeData(removeData);
}; };
@ -220,7 +228,7 @@ export const eventMap = {
}, },
// 感知事件 // 感知事件
async "事件专题/感知事件"(item, filterData, isDefault) { async "事件专题/感知事件"(item, filterData, isDefault, cb) {
let loadingMessage; let loadingMessage;
if (!isDefault) { if (!isDefault) {
loadingMessage = Message.info({ loadingMessage = Message.info({
@ -230,7 +238,8 @@ export const eventMap = {
iconClass: "el-icon-loading", iconClass: "el-icon-loading",
}); });
} }
const data = await getPerceiveEventList({warningState: 1}) const warningState = 1;
const data = await getPerceiveEventList({ warningState })
.then(async (data) => { .then(async (data) => {
await delay(600); await delay(600);
return data; return data;
@ -238,13 +247,14 @@ export const eventMap = {
.catch(() => {}); .catch(() => {});
loadingMessage?.close(); loadingMessage?.close();
if (!data) return; if (!data) return;
if (!data?.length && !isDefault) if (!data?.length && !isDefault)
return Message.warning(`没有${item.title}数据!`); return Message.warning(`没有${item.title}数据!`);
eventMap[`事件专题/感知事件_close`](item); eventMap[`事件专题/感知事件_close`](item);
const cbCall = () => cb?.(item, { deviceType: `感知事件_${warningState}` });
cbCall();
const options = { const options = {
stateCallback: () => true, stateCallback: () => true,
@ -260,6 +270,7 @@ export const eventMap = {
loadingMessage?.close(); loadingMessage?.close();
cacheRemoveFunc[`事件专题/${item.title}`] = () => { cacheRemoveFunc[`事件专题/${item.title}`] = () => {
cbCall();
removeDataPreHandle(removeData); removeDataPreHandle(removeData);
markerClusterIns.removeData(removeData); markerClusterIns.removeData(removeData);
}; };

20
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/httpList.js

@ -1,6 +1,6 @@
import { Message } from "element-ui"; import { Message } from "element-ui";
// import { axiosIns } from "@screen/utils/axios/auth.js"; // import { axiosIns } from "@screen/utils/axios/auth.js";
import moment from "moment";
import request from "@/utils/request"; import request from "@/utils/request";
/** /**
@ -19,7 +19,8 @@ export async function getCameraStream(camId, media = 1) {
}); });
if (data.code == 200) { if (data.code == 200) {
data.data.liveUrl = "https://10.0.81.202/camera?target=" + data.data.liveUrl.substring(7); data.data.liveUrl =
"https://10.0.81.202/camera?target=" + data.data.liveUrl.substring(7);
} }
return data; return data;
@ -273,15 +274,15 @@ export function getProduct(productId) {
* 交通事件 列表 根据类型获取 * 交通事件 列表 根据类型获取
* @param {number} eventType * @param {number} eventType
*/ */
export function getEventTopicList(eventType) { export function getEventTopicList(eventType, options) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!eventType) { if (!eventType) {
Message.error(`事件加载失败!`); Message.error(`事件加载失败!`);
return reject(); return reject();
} }
// console.log(options, "options xxxx");
request({ request({
url: `/business/trafficIncidents/getEventList/${eventType}`, url: `/business/trafficIncidents/getEventList?eventType=${eventType}`,
method: "post", method: "post",
}) })
.then(({ code, data }) => { .then(({ code, data }) => {
@ -305,17 +306,20 @@ export function getEventTopicList(eventType) {
*/ */
export function getPerceiveEventList(data = {}) { export function getPerceiveEventList(data = {}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const completeTime = moment().format("YYYY-MM-DD");
const startTime = moment().add(-30, "d").format("YYYY-MM-DD");
data.startTime = startTime;
data.completeTime = completeTime;
request({ request({
url: `/perceivedEvents/warning/perceivedEventsList`, url: `/perceivedEvents/warning/warningList`,
method: "POST", method: "POST",
data: { ...data }, data: { ...data },
}) })
.then(({ code, rows }) => { .then(({ code, data: rows }) => {
if (code != 200) { if (code != 200) {
reject(); reject();
return Message.error(`事件加载失败!`); return Message.error(`事件加载失败!`);
} }
resolve(rows); resolve(rows);
}) })
.catch(() => { .catch(() => {

5
ruoyi-ui/src/views/JiHeExpressway/pages/Home/index.vue

@ -47,7 +47,7 @@ import HomeFilter from "./components/HomeFilter/index.vue";
import HomeFrame from "./components/HomeFrame/index.vue"; import HomeFrame from "./components/HomeFrame/index.vue";
import HomeVector from "./components/HomeVector/index.vue"; import HomeVector from "./components/HomeVector/index.vue";
import Button from '@screen/components/Buttons/Button.vue'; import Button from '@screen/components/Buttons/Button.vue';
import Vue from "vue";
// import InfoBoard from "./components/InfoBoard" // import InfoBoard from "./components/InfoBoard"
export default { export default {
@ -74,7 +74,8 @@ export default {
provide() { provide() {
return { return {
getMap: () => this.$refs.AMapContainerRef.getMapInstance(), getMap: () => this.$refs.AMapContainerRef.getMapInstance(),
}; activeDeviceTypes: Vue.observable([])
}
}, },
methods: { methods: {
handleShrink(e) { handleShrink(e) {

1
ruoyi-ui/src/views/JiHeExpressway/pages/service/board/boardData.json

@ -1 +0,0 @@
"{\"support\":{\"PROTOCOL_TYPE\":\"GUANGDIAN_V33\",\"FONT_SIZE\":\"3232,2424,1616\",\"DEVICEID\":\"102111101\",\"COLOR\":\"红色,绿色,蓝色,黄色\",\"FONT\":\"宋体,黑体,楷体\"},\"content\":[{\"ITEM000\":[{\"SPEED\":\"1\",\"FONT_SIZE\":\"3232\",\"ACTION\":\"1\",\"COLOR\":\"黄色\",\"STATE\":true,\"CONTENT\":\"进入隧道 请开大灯1\",\"COORDINATE\":\"063004\",\"FONT\":\"黑体\",\"STAY\":\"500\"}]}]}"

178
ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue

@ -83,15 +83,21 @@
<el-checkbox-group <el-checkbox-group
class="deviceList" class="deviceList"
v-model="checkedDeviceIds" v-model="checkedDeviceIds"
:max="2"
@change="____onSelectDevices" @change="____onSelectDevices"
> >
<el-checkbox <el-checkbox
v-for="(itm, index) in item.list" v-for="(itm, index) in item.list"
:label="itm.iotDeviceId" :label="itm.iotDeviceId"
:key="index" :key="index"
:disabled="!itm.iotDeviceId || itm.iotDeviceId.includes('null') || itm.deviceState == 0 || itm.deviceState == null"
> >
<el-tooltip content="设备未接入" placement="top" v-if="!itm.iotDeviceId || itm.iotDeviceId.includes('null_')">
<div class="title">{{ itm.deviceName }}</div> <div class="title">{{ itm.deviceName }}</div>
</el-tooltip>
<el-tooltip content="设备离线" placement="top" v-else-if="itm.deviceState == 0 || itm.deviceState == null">
<div class="title">{{ itm.deviceName }}</div>
</el-tooltip>
<div v-else class="title">{{ itm.deviceName }}</div>
<el-tooltip :content="(itm.deviceState == 0 || itm.deviceState == null) ? '离线' : '在线'" placement="top"> <el-tooltip :content="(itm.deviceState == 0 || itm.deviceState == null) ? '离线' : '在线'" placement="top">
<img src="@/assets/jihe/images/offline.svg" class="state" v-if="itm.deviceState=='0' || itm.deviceState==null"> <img src="@/assets/jihe/images/offline.svg" class="state" v-if="itm.deviceState=='0' || itm.deviceState==null">
<img src="@/assets/jihe/images/online.svg" class="state" v-else> <img src="@/assets/jihe/images/online.svg" class="state" v-else>
@ -307,29 +313,12 @@
<script> <script>
import Sortable from "sortablejs"; import Sortable from "sortablejs";
import editInfo from "./editInfo"; import editInfo from "./editInfo";
import boardData from "./boardData";
import { getUserDeptId } from "@/api/system/user";
import { import {
listTunnels,
devicessize,
information,
getBoardInfo,
getBoardEditInfo,
getboardSizeDic,
getBoardContentData,
deviceControl,
} from "@/api/information/api.js";
import {
uploadBoardEditInfo,
getAllVmsTemplate,
addTemplate, addTemplate,
addTemplateContent, addTemplateContent,
getBoardContent,
deleteTemplate, deleteTemplate,
splicingBoard,
} from "@/api/board/template"; } from "@/api/board/template";
import { import {
invokedFunction,
getDeviceRealtimeProperty, getDeviceRealtimeProperty,
} from "@/api/device/device"; } from "@/api/device/device";
import { getBoardList, getBoardDeviceInfo } from "@/api/board/board"; import { getBoardList, getBoardDeviceInfo } from "@/api/board/board";
@ -341,8 +330,6 @@ import BoardInfoEditor from "@screen/components/infoBoard/BoardInfoEditor";
import vuescroll from "vuescroll"; import vuescroll from "vuescroll";
import scrollOptions from "@/common/scrollbar.js"; import scrollOptions from "@/common/scrollbar.js";
import infoBoardUtils from "@screen/utils/infoBoard.js";
import testDeviceList from "@screen/testData/deviceList.js"; import testDeviceList from "@screen/testData/deviceList.js";
import testDeviceInfo from "@screen/testData/infoBoard.js"; import testDeviceInfo from "@screen/testData/infoBoard.js";
@ -365,13 +352,14 @@ export default {
data() { data() {
return { return {
multiPublish: true,
toggleIndex: 0, toggleIndex: 0,
toRightCategory: "", // toRightCategory: "", //
arrowRightVisible: false, // arrowRightVisible: false, //
loading: false, loading: false,
submitButton: false, // submitButton: false, //
selectedSize: "", // selectedSize: "", //
selectedDevice: {}, selectedDevices: [],
boardSizeDic: {}, // boardSizeDic: {}, //
boardDirectionList: [], // boardDirectionList: [], //
userQueryParams: { userQueryParams: {
@ -574,12 +562,11 @@ export default {
if (!this.selectedSize) { if (!this.selectedSize) {
this.selectedSize = item.otherConfig.screenSize; this.selectedSize = item.otherConfig.screenSize;
} }
// if (!this.selectedDevice.deviceName) { // if (!this.selectedDevices.deviceName) {
// this.selectedDevice = item; // this.selectedDevices = item;
// } // }
}); });
this.____onChangeSize(); this.____onChangeSize();
// this.____getDeviceInfo();
} else { } else {
getBoardList(param).then((res) => { getBoardList(param).then((res) => {
res.data.forEach((item, index) => { res.data.forEach((item, index) => {
@ -596,8 +583,8 @@ export default {
if (!this.selectedSize) { if (!this.selectedSize) {
this.selectedSize = item.otherConfig.screenSize; this.selectedSize = item.otherConfig.screenSize;
} }
// if (!this.selectedDevice.deviceName) { // if (!this.selectedDevices.deviceName) {
// this.selectedDevice = item; // this.selectedDevices = item;
// } // }
}); });
this.____onChangeSize(); this.____onChangeSize();
@ -605,22 +592,6 @@ export default {
}); });
} }
}, },
____getDeviceInfo() {
if (IS_TESTING) {
this.selectedBdMsg = _.cloneDeep(testDeviceInfo.data["3A"].content);
} else {
if (!this.selectedDevice.iotDeviceId) {
return;
}
getBoardDeviceInfo(this.selectedDevice.iotDeviceId)
.then((res) => {
this.selectedBdMsg = res.data["3A"].content;
})
.catch((err) => {});
}
},
____forkDeviceInfo(deviceFrom) { ____forkDeviceInfo(deviceFrom) {
// //
@ -819,7 +790,7 @@ export default {
// //
____onPublish() { ____onPublish() {
if (!this.selectedDevice.iotDeviceId) { if (!this.selectedDevices.length) {
this.$message.warning("请选择设备!"); this.$message.warning("请选择设备!");
return; return;
} }
@ -834,50 +805,26 @@ export default {
this.allVmsTemplate("no"); this.allVmsTemplate("no");
}, },
//
handleCheckAllChange(val) {
this.checkedDeviceIds = val ? this.deviceList : [];
},
// //
____onSelectDevices(arr) { ____onSelectDevices(arr) {
if (arr.length == 0) {
this.selectedDevice = {}; this.selectedDevices = [];
if (this.checkedDeviceIds.length == 0) {
return; return;
} }
this.checkedDeviceIds = [arr.pop()];
if (!this.checkedDeviceIds[0] || this.checkedDeviceIds[0].includes("null_")) { this.selectedDevices = _.filter(this.boardSizeDic[this.selectedSize].list, (item)=>{
this.$message.warning("设备未接入!"); return this.checkedDeviceIds.includes(item.iotDeviceId)
}
this.selectedDevice = _.find(this.boardSizeDic[this.selectedSize].list, {
iotDeviceId: this.checkedDeviceIds[0],
}); });
// this.____forkDeviceInfo(this.selectedDevice);
// this.____forkDeviceInfo(this.selectedDevices);
}, },
// ____onCheckDeviceInfo(item) {
// this.selectedDevice = _.find(this.boardSizeDic[this.selectedSize].list, { iotDeviceId: value[0] });
// this.selectedDevice = item;
// this.selectedDevice = this.deviceList
// this.____forkDeviceInfo();
// this.checkedDeviceIds = value
// let val = JSON.parse(JSON.stringify(value))
// for (let itm of this.deviceList) {
// if (val.indexOf(itm) > -1) {
// this.checkAll = true
// } else {
// this.checkAll = false
// return
// }
// }
// this.$forceUpdate()
// },
// //
____onChangeSize(val) { ____onChangeSize(val) {
console.log("777777");
this.____setAvailableTemplate(); this.____setAvailableTemplate();
this.checkedDeviceIds = []; this.checkedDeviceIds = [];
this.selectedDevice = {}; this.selectedDevices = [];
this.selectedBdMsg = []; this.selectedBdMsg = [];
// this.contentList = [] // this.contentList = []
// this.deviceList = [] // this.deviceList = []
@ -1012,39 +959,6 @@ export default {
return value; return value;
}, },
//
getColorStyle(font) {
if (font == "黄色" || font == "yellow" || font == "4") {
return "#FFFF00";
} else if (font == "红色" || font == "red" || font == "1") {
return "#FF0000";
} else if (
font == "绿色" ||
font == "GreenYellow" ||
font == "000255000000" ||
font == "2"
) {
return "#00FF00";
} else if (font == "蓝色" || font == "blue" || font == "3") {
return "#0000FF";
} else if (font == "7" || font == "white") {
return "#FFFFFF";
} else {
return "#" + font;
}
},
//
getTextAlign(font) {
if (font == "0") {
return "left";
} else if (font == "1") {
return "right";
} else {
return "center";
}
},
// //
getCoordinate(coordinate, type, screenSize) { getCoordinate(coordinate, type, screenSize) {
let width = ""; let width = "";
@ -1082,50 +996,6 @@ export default {
} }
} }
}, },
getFontStyle(font) {
if (font == "宋体") {
return "Simsun";
} else if (font == "黑体") {
return "SimHei";
} else if (font == "楷体") {
return "KaiTi";
} else {
return font;
}
},
getFont(font) {
if (font == "KaiTi" || font == "k") {
return "楷体";
} else if (font == "SimSun" || font == "s") {
return "宋体";
} else if (font == "SimHei" || font == "h") {
return "黑体";
} else if (font == "FangSong" || font == "f") {
return "仿宋";
} else if (font == "LiSu" || font == "l") {
return "隶书";
} else {
return font;
}
},
// //
// moveTop(i, item) {
// if (item && i) {
// let obj = { ...this.contentList[i - 1] };
// this.contentList.splice(i - 1, 1, item);
// this.contentList.splice(i, 1, obj);
// this.$forceUpdate();
// }
// },
// //
// moveBottom(i, item) {
// if (item && typeof i === "number") {
// let obj = { ...this.contentList[i + 1] };
// this.contentList.splice(i + 1, 1, item);
// this.contentList.splice(i, 1, obj);
// this.$forceUpdate();
// }
// },
dialogClose() { dialogClose() {
this.showEmit = false; this.showEmit = false;
this.arrowRightVisible = false; this.arrowRightVisible = false;

20
ruoyi-ui/src/views/JiHeExpressway/utils/enum.js

@ -263,3 +263,23 @@ export const SchedulingEnum = {
text: "夜班", text: "夜班",
}, },
}; };
const CameraChildTypes = {
11: "高清网络枪型固定摄像机",
12: "高清网络球形摄像机",
13: "桥下高清网络球形摄像机",
14: "360°全景摄像机",
15: "180°全景摄像机",
};
const BoardChildTypes = {
21: "门架式可变信息标志",
22: "大学城入口站前板",
23: "雨棚可变信息标志",
24: "站前悬臂式可变信息标志",
};
export const ChildTypes = {
1: CameraChildTypes,
2: BoardChildTypes,
};

2
ruoyi-ui/src/views/websocket.vue

@ -31,7 +31,7 @@ export default {
// websocket // websocket
this.socket.initialize({ this.socket.initialize({
// url: 'ws://' + location.hostname + ':' + port + path, // url: 'ws://' + location.hostname + ':' + port + path,
url: 'wss://' + location.hostname + ':' + window.location.port || 80 + '/ws', url: 'wss://' + location.hostname + ':' + window.location.port + '/ws' || 80 + '/ws',
// url: "ws://10.7.179.15" + ":" + port + path, // url: "ws://10.7.179.15" + ":" + port + path,
// url: "ws://10.168.64.171" + ":" + port + path, // url: "ws://10.168.64.171" + ":" + port + path,
// url: 'ws://10.168.78.127'+ ':' + port + path, // url: 'ws://10.168.78.127'+ ':' + port + path,

4
ruoyi-ui/vue.config.js

@ -52,8 +52,8 @@ module.exports = {
// target: `http://10.0.81.204:8087`, //现场后台 刘文阁 // target: `http://10.0.81.204:8087`, //现场后台 刘文阁
// target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁 // target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁
// target: `http://10.168.78.135: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.68.42:8087`, //王思祥
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "", ["^" + process.env.VUE_APP_BASE_API]: "",

Loading…
Cancel
Save