diff --git a/ruoyi-ui/src/api/board/board.js b/ruoyi-ui/src/api/board/board.js
index 4378d3cc..95397b90 100644
--- a/ruoyi-ui/src/api/board/board.js
+++ b/ruoyi-ui/src/api/board/board.js
@@ -15,8 +15,11 @@ export function getBoardList(query) {
// 查询设备列表
export function getBoardDeviceInfo(deviceId) {
return request({
- url: `/business/board/realtimeProperty/${deviceId}`,
- method: 'get'
+ // url: `/business/board/realtimeProperty/${deviceId}`,
+ url: `/business/device/properties/realtime/${deviceId}/3A`,
+ // url: `/business/device/batchFunctions`,
+ method: 'GET',
+ params: {}
})
}
@@ -40,11 +43,49 @@ export function saveBoardReleaseLog(data) {
})
}
-
export function publishToBoard(data) {
+ let devices = []
+ data.deviceList.map(item=>{
+ devices.push(
+ {
+ id: item.id,
+ iotDeviceId: item.iotDeviceId,
+ deviceType: "2"
+ }
+ )
+ })
+
return request({
- url: '/business/board/batch/publish',
+ // url: '/business/board/batch/publish',
+ url: `/business/device/batchFunctions`,
method: 'post',
- data: data
+ // data: data
+ data: {
+ devices,
+ "functions": [
+ {
+ "functionId": "11",
+ "params": {
+ "size": "65535",
+ "fileName": "play010.lst"
+ }
+ },
+ {
+ "functionId": "13",
+ "params": {
+ parameters : data.content
+ }
+ },
+ {
+ "functionId": "1B",
+ "params": {
+ "fileId": "10"
+ }
+ }
+
+ ]
+ }
})
-}
\ No newline at end of file
+}
+
+
diff --git a/ruoyi-ui/src/assets/styles/JiHeExpressway.scss b/ruoyi-ui/src/assets/styles/JiHeExpressway.scss
index f68d1c59..acc3b11b 100644
--- a/ruoyi-ui/src/assets/styles/JiHeExpressway.scss
+++ b/ruoyi-ui/src/assets/styles/JiHeExpressway.scss
@@ -1,4 +1,6 @@
+.flex{ display: flex;}
.fl-col{ display: flex; flex-direction: column;}
+.fl-around{display: flex; justify-content: space-between;}
.fl-1{ flex: 1;}
.theme-jihe {
$lightBlue: #3de8ff;
diff --git a/ruoyi-ui/src/common/getBoardBaseData.js b/ruoyi-ui/src/common/getBoardBaseData.js
index 221d4b83..7aec0b3d 100644
--- a/ruoyi-ui/src/common/getBoardBaseData.js
+++ b/ruoyi-ui/src/common/getBoardBaseData.js
@@ -1,25 +1,42 @@
import Vue from "vue";
import { getDicts } from "@/api/system/dict/data";
-export default function(){
-
-
- return Promise.all([
- getDicts('iot_device_font_type'),
- // getDicts('iot_devices_font_color'),
- // getDicts('iot_device_font_inScreen_mode'),
- // getDicts('iot_template_category'),
- // getDicts('iot_device_font_size'),
- ]).then(resArr=>{
- initFontType(resArr[0]);
+export default function () {
- function initFontType(res){
- let dic = {};
- res.data.forEach(item => {
- dic[item.dictValue] = item.cssClass;
+
+ return Promise.all([
+ getDicts('iot_device_font_type'),
+ getDicts('iot_board_pixel'),
+ // getDicts('iot_devices_font_color'),
+ // getDicts('iot_device_font_inScreen_mode'),
+ // getDicts('iot_template_category'),
+ // getDicts('iot_device_font_size'),
+ ]).then(resArr => {
+ initFontType(resArr[0]);
+ initListAndDic(1, "boardPixel", "dictLabel");
+
+ function initFontType(res) { //历史原因,情报板字体类型单独一个方法
+ let dic = {};
+ res.data.forEach(item => {
+ dic[item.dictValue] = item.cssClass;
+ });
+ Vue.prototype.fontTypeDic = dic;
+ Vue.prototype.fontTypeList = res.data;
+ }
+
+ function initListAndDic(idx, namePrefix, labelField) {
+ let dic = {};
+ let list = [];
+ resArr[idx].data.forEach(item => {
+ dic[item.dictValue] = item[labelField];
+ list.push({
+ label: item[labelField],
+ value: item.dictValue
});
- Vue.prototype.fontTypeDic = dic;
- Vue.prototype.fontTypeList = res.data;
- }
- });
+ });
+ Vue.prototype[namePrefix + "Dic"] = dic;
+ Vue.prototype[namePrefix + "Options"] = list;
+ }
+
+ });
}
\ No newline at end of file
diff --git a/ruoyi-ui/src/common/menuData.js b/ruoyi-ui/src/common/menuData.js
index 9a1cbf94..f715bde9 100644
--- a/ruoyi-ui/src/common/menuData.js
+++ b/ruoyi-ui/src/common/menuData.js
@@ -102,6 +102,20 @@ export default [
},
],
},
+ {
+ title: "设备管控",
+ name: "controlDevice",
+ path: "/control/device",
+ redirect: "controlDeviceStrategy",
+ children: [
+ {
+ title: "管控策略",
+ path: "/control/device/strategy",
+ name: "controlDeviceStrategy",
+ component: "control/device/strategy/index.vue",
+ }
+ ],
+ },
{
title: "扫码报警",
name: "controlQR",
diff --git a/ruoyi-ui/src/store/modules/menu.js b/ruoyi-ui/src/store/modules/menu.js
index 750b9d83..6f0103f4 100644
--- a/ruoyi-ui/src/store/modules/menu.js
+++ b/ruoyi-ui/src/store/modules/menu.js
@@ -5,12 +5,12 @@ const state = {
const mutations = {
saveRecent(state){
- localStorage.setItem("recentPages", JSON.stringify(state.recentPages));
+ sessionStorage.setItem("recentPages", JSON.stringify(state.recentPages));
},
addRecent(state, item) {
if(state.recentPages.length == 0 ){
- state.recentPages = JSON.parse(localStorage.getItem("recentPages") || "[]");
+ state.recentPages = JSON.parse(sessionStorage.getItem("recentPages") || "[]");
}
let temp;
state.recentPages.forEach((unit,index)=>{
@@ -31,16 +31,21 @@ const state = {
},
openRecent(state){
state.isRecentOpen = true;
- localStorage.setItem("isRecentOpen", true);
+ sessionStorage.setItem("isRecentOpen", true);
},
closeRecent(state){
state.isRecentOpen = false;
- localStorage.setItem("isRecentOpen", false);
+ sessionStorage.setItem("isRecentOpen", false);
},
removeRecent(state, item) {
let i = state.recentPages.findIndex(unit => unit.path == item.path);
state.recentPages.splice(i, 1);
mutations.saveRecent(state);
+ },
+ resetRecent(state, para){
+ state.isRecentOpen = false;
+ sessionStorage.setItem("isRecentOpen", false);
+ sessionStorage.removeItem("recentPages")
}
}
@@ -48,7 +53,7 @@ const state = {
const getters = {
isRecentOpen(state){
if (state.isRecentOpen === ""){
- state.isRecentOpen = JSON.parse(localStorage.getItem("isRecentOpen")) || false;
+ state.isRecentOpen = JSON.parse(sessionStorage.getItem("isRecentOpen")) || false;
}
return state.isRecentOpen;
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue
index 7860b65d..a20049f4 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/components/Card1/index.vue
@@ -8,7 +8,7 @@
>
- {{ item.label }}:
+ {{ item.label }}:
{{ getValue(item) }}{{ item.suffix }}
@@ -94,6 +94,10 @@ export default {
type: Boolean,
default: true,
},
+ labelWidth:{
+ type: [String,Number],
+ default:70
+ }
},
data() {
return {
@@ -151,7 +155,7 @@ export default {
& > :first-child {
margin-right: 6px;
- flex: 1;
+ // flex: 1;
}
& > :last-child {
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Video/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/Video/index.vue
index fb177728..5353882a 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/components/Video/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/components/Video/index.vue
@@ -13,7 +13,7 @@
-
+
@@ -61,7 +61,7 @@ export default {
return {
active: "video"
}
- }
+ },
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Video2/flv-stream.js b/ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/flv-stream.js
similarity index 100%
rename from ruoyi-ui/src/views/JiHeExpressway/components/Video2/flv-stream.js
rename to ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/flv-stream.js
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Video2/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/index.vue
similarity index 100%
rename from ruoyi-ui/src/views/JiHeExpressway/components/Video2/index.vue
rename to ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/index.vue
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Video2/videoStream.js b/ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/videoStream.js
similarity index 100%
rename from ruoyi-ui/src/views/JiHeExpressway/components/Video2/videoStream.js
rename to ruoyi-ui/src/views/JiHeExpressway/components/VideoMulti/videoStream.js
diff --git a/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js b/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js
index 22b3556f..54776453 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js
@@ -48,11 +48,11 @@ export default{
},
// 发布信息
____publishInfo() {
- let deviceIdList = [];
+ let deviceList = [];
if (this.selectedDevice){
- deviceIdList = [this.selectedDevice.iotDeviceId];
+ deviceList = [this.selectedDevice];
}else{
- deviceIdList = this.checkedDeviceIds;
+ deviceList = this.selectedDevices;
}
this.$confirm('是否确定发布情报板?', '提示', {
confirmButtonText: '确定',
@@ -84,7 +84,7 @@ export default{
})
})
- let data = { content: content, deviceIdList }
+ let data = { content: content, deviceList }
if (IS_TESTING) {
// this.saveLog(content);
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastParam.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastParam.vue
index e6b921b7..ef8e87a9 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastParam.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastParam.vue
@@ -1,6 +1,6 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139,10 +84,8 @@
-
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/components/DeviceParamsMulti.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/components/DeviceParamsMulti.vue
new file mode 100644
index 00000000..26bf1e93
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/components/DeviceParamsMulti.vue
@@ -0,0 +1,201 @@
+
+
+
暂无设备参数
+
+
+ {{ data.text }}
+ handleSwitcherChange(value, data)" />
+ {{ data.state ? '开' :
+ '关' }}
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue
index ebee4b2c..9429111d 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue
@@ -1,32 +1,12 @@
-
@@ -35,7 +15,7 @@
import Dialog from "@screen/components/Dialog/index.vue";
import Descriptions from "@screen/components/Descriptions.vue";
// import { getRoadInfoByStakeMark, getProduct } from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js"
-import Video from "@screen/components/Video";
+import Video from "@screen/components/VideoMulti";
import request from "@/utils/request";
import { dialogDelayVisible } from "./../mixin";
@@ -141,10 +121,10 @@ export default {
this.data = { ...data, ...this.data };
console.log("trafficIncidents", data);
})
- .catch((err) => {});
+ .catch((err) => { });
},
methods: {
- handleClickTabs() {},
+ handleClickTabs() { },
},
};
@@ -165,7 +145,7 @@ export default {
display: flex;
gap: 9px;
- > div.video-stream {
+ >div.video-stream {
height: 210px;
}
}
@@ -193,7 +173,7 @@ export default {
align-items: center;
justify-content: end;
- > div {
+ >div {
font-size: 16px;
padding: 6px 12px;
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
index 78bf3965..18227f6a 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
@@ -12,7 +12,9 @@
{ this.activeIcon = null; }">
-
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/AddNEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/AddNEditDialog.vue
new file mode 100644
index 00000000..a42214a6
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/AddNEditDialog.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ onModifyItem(newV, item)">
+
+
+
+
+
+
+
+
+ 取消
+
+ 确定
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/TaskItem.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/TaskItem.vue
new file mode 100644
index 00000000..c3d2379f
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/TaskItem.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+ {{ data }}
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue
new file mode 100644
index 00000000..480d89dd
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/data.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/data.js
new file mode 100644
index 00000000..f48c073f
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/data.js
@@ -0,0 +1,38 @@
+import { cloneDeep, merge } from "lodash";
+import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js";
+
+export const searchFormList = [
+ {
+ label: "关键词:",
+ key: "word",
+ }
+];
+
+export const addEditFormList = [
+ {
+ label: "关键词:",
+ key: "word",
+ required: true,
+ isAlone:true,
+ options: {
+ type: "text",
+ autosize: true,
+ // maxlength: 50,
+ autosize: { minRows: 1, maxRows: 20 },
+ showWordLimit: true,
+ }
+ },
+ {
+ label: "关键词2:",
+ key: "word2",
+ isAlone: false,
+ required: true,
+ options: {
+ type: "textarea",
+ autosize: true,
+ // maxlength: 50,
+ autosize: { minRows: 2, maxRows: 20 },
+ showWordLimit: true,
+ }
+ }
+];
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/index.vue
new file mode 100644
index 00000000..307520fc
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/index.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+ 导出
+
+
+
+
+
+ 刷新
+
+
+
+
+
+
+
+
暂无数据
+
+
+
+
+
+
+
+ handleSwitcherChange(value, item) " />
+ handleAddEdit(true, item)">
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/RealTimeVideo/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/RealTimeVideo/index.vue
index 36918c50..0328d45d 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/RealTimeVideo/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/RealTimeVideo/index.vue
@@ -1,11 +1,13 @@
-
+
济南方向
-
+
菏泽方向
@@ -13,7 +15,7 @@