Browse Source

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

wangqin
zhangzhang 1 year ago
parent
commit
f578123fc3
  1. 2
      ruoyi-ui/src/App.vue
  2. 2
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/index.vue
  3. 6
      ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue
  4. 7
      ruoyi-ui/src/views/JiHeExpressway/mixins/InfoBoard.js
  5. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue
  6. 56
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
  7. 87
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/AddNEditDialog.vue
  8. 45
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/TaskItem.vue
  9. 27
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue
  10. 26
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/timeEditDialog.vue
  11. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/index.vue
  12. 55
      ruoyi-ui/src/views/JiHeExpressway/pages/datav/gisAndBim/index.vue
  13. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/DetailCard.vue
  14. 34
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/index.vue
  15. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/ListItem.vue
  16. 48
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/data.js
  17. 95
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue
  18. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/index.vue
  19. 7
      ruoyi-ui/src/views/JiHeExpressway/utils/api/batch.js
  20. 2
      ruoyi-ui/vue.config.js

2
ruoyi-ui/src/App.vue

@ -9,7 +9,7 @@
<template> <template>
<div id="app"> <div id="app">
<router-view /> <router-view />
<!-- <websocket /> --> <websocket />
<!-- <websocket_phone /> --> <!-- <websocket_phone /> -->
</div> </div>
</template> </template>

2
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/index.vue

@ -2,7 +2,7 @@
<div class="TimeLine2"> <div class="TimeLine2">
<!-- { "time": "2024/4/16 11:30:07", "name": "1", "desc": "111", "source": 1 } --> <!-- { "time": "2024/4/16 11:30:07", "name": "1", "desc": "111", "source": 1 } -->
<div class="node" v-for="(item, index) in data" :key="index"> <div class="node" v-for="(item, index) in data" :key="index">
<div class="content"> <div class="content" v-if="!item.onlyright">
<template v-if="item.source == 2"> <template v-if="item.source == 2">
<!-- <template v-if="direction === 'auto' ? !!((index + 1) & 1) : true"> --> <!-- <template v-if="direction === 'auto' ? !!((index + 1) & 1) : true"> -->
<span class="title" v-if="item.title">{{ item.title }}</span> <span class="title" v-if="item.title">{{ item.title }}</span>

6
ruoyi-ui/src/views/JiHeExpressway/components/infoBoard/BoardInfoEditor.vue

@ -182,13 +182,10 @@ import {
getFontSizeByDevicePixel, getFontSizeByDevicePixel,
uploadBoardEditInfo, uploadBoardEditInfo,
} from "@/api/board/template"; } from "@/api/board/template";
import { devicessize } from "@/api/information/api.js";
import { checkIotBoardContent } from "@/api/board/vocabulary";
import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue"; import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue";
import BoardTplPreview from "@screen/components/infoBoard/BoardTplPreview.vue"; import BoardTplPreview from "@screen/components/infoBoard/BoardTplPreview.vue";
import infoBoardUtils from "@screen/utils/infoBoard.js"; import infoBoardUtils from "@screen/utils/infoBoard.js";
import { checkBoardContent } from "@/api/board/board"; import { checkBoardContent } from "@/api/board/board";
import { debounce } from "lodash";
export default { export default {
data() { data() {
return { return {
@ -303,8 +300,8 @@ export default {
textContent: "", textContent: "",
fontStyle: "0", fontStyle: "0",
displayAreaWidth: "768", displayAreaWidth: "768",
playbackDuration: "50",
displayAreaHeight: "64", displayAreaHeight: "64",
playbackDuration: "50",
volume: "0", volume: "0",
xCoordinate: "0", xCoordinate: "0",
screenEntrySpeed: "1", screenEntrySpeed: "1",
@ -483,7 +480,6 @@ export default {
this.mode this.mode
); );
} else { } else {
console.log(this.tpl , "tttttttttppplllll")
this.dataForm = infoBoardUtils.dialogSourceFormat( this.dataForm = infoBoardUtils.dialogSourceFormat(
this.tpl, this.tpl,
this.type, this.type,

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

@ -47,11 +47,14 @@ export default {
// 发布信息 // 发布信息
____publishInfo() { ____publishInfo() {
let deviceList = []; let deviceList = [];
if (this.isMultiControl && !this.selectItems.length) {
if (this.isMultiControl){
if (!this.selectItems.length) {
return Message.error("请至少选择一个设备!"); return Message.error("请至少选择一个设备!");
} }
const selectItems = this.selectItems.map((item) => JSON.parse(item)); const selectItems = this.selectItems.map((item) => JSON.parse(item));
if (this.isMultiControl) deviceList = selectItems; deviceList = selectItems;
}
else { else {
if (this.selectedDevice) deviceList = [this.selectedDevice]; if (this.selectedDevice) deviceList = [this.selectedDevice];
else deviceList = this.selectedDevices; else deviceList = this.selectedDevices;

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/TrafficIncidents/index.vue

@ -11,7 +11,7 @@
<Button @click.native="handleEventRelieve" style="width: 100px;"> <Button @click.native="handleEventRelieve" style="width: 100px;">
事件解除 事件解除
</Button> </Button>
<Button @click.native="goStrategy" style="width: 100px;"> <Button @click.native="goDispatch" style="width: 100px;">
设备管控 设备管控
</Button> </Button>
<Button @click.native="goDispatch" style="width: 100px;"> <Button @click.native="goDispatch" style="width: 100px;">

56
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue

@ -16,7 +16,7 @@
<span class="close" @click="() => { this.activeIcon = null; }"> <span class="close" @click="() => { this.activeIcon = null; }">
<i class="el-icon-close" /> <i class="el-icon-close" />
</span> </span>
<div v-if="tabAction === '1'" style="width:70vw;"> <div v-if="tabAction === '1'" style="width:70vw; min-height: 500px;">
<Form v-model="data" labelWidth="90px" column="2" class="form" ref="FormConfigRef" :formList="formList" /> <Form v-model="data" labelWidth="90px" column="2" class="form" ref="FormConfigRef" :formList="formList" />
<component ref="ControlComponent" :is="componentMap[DeviceTopics[data.deviceType]]" :isMultiControl="true" <component ref="ControlComponent" :is="componentMap[DeviceTopics[data.deviceType]]" :isMultiControl="true"
:visible="true" :selectItems="data.childType" @update:activeIcon="(val) => { this.activeIcon = val }" :visible="true" :selectItems="data.childType" @update:activeIcon="(val) => { this.activeIcon = val }"
@ -53,9 +53,10 @@
<div v-if="tabAction === '3'" style="width:70vw;height: 500px;display: flex;flex-direction: column; justify-content: center;align-items: flex-start;" > <div v-if="tabAction === '3'" style="width:70vw;height: 500px;display: flex;flex-direction: column; justify-content: center;align-items: flex-start;" >
<Form v-model="dataRecord" style="width:100%;" labelWidth="90px" column="2" class="form" ref="FormRecordRef" :formList="formRecord" /> <Form v-model="dataRecord" style="width:100%;" labelWidth="90px" column="2" class="form" ref="FormRecordRef" :formList="formRecord" />
<Table :data="tableData" height="500px" style="margin: 20px;width:95%"> <Table :data="tableData" height="500px" style="margin: 20px;width:95%">
<ElTableColumn label="管控时间" prop="operTime" width="300"/> <ElTableColumn label="管控时间" prop="operTime" width="200"/>
<ElTableColumn label="管控方式" prop="operType" width="200"/> <ElTableColumn label="设备名称" prop="dcDeviceName" width="300"/>
<ElTableColumn label="操作人" prop="operName" width="200"/> <ElTableColumn label="管控方式" prop="operType" width="100"/>
<ElTableColumn label="操作人" prop="operName" width="100"/>
<ElTableColumn label="执行结果" prop="stakeMark" > <ElTableColumn label="执行结果" prop="stakeMark" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover <el-popover
@ -71,7 +72,7 @@
<!-- 分页 --> <!-- 分页 -->
<div class="footer" style="margin-top:-20px;margin-bottom: 30px"> <div class="footer" style="margin-top:-20px;margin-bottom: 30px">
<ElPagination @current-change="bindResult" @size-change="onSizeChange" width="'100%'" :page-sizes="[10, 20, 30, 40, 50]" <ElPagination @current-change="bindRecord" @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" :page-size="searchData.pageSize" :current-page.sync="searchData.pageNum" layout="total, sizes, prev, pager, next"
:total="tableTotal" class="Pagination"> :total="tableTotal" class="Pagination">
</ElPagination> </ElPagination>
@ -191,8 +192,8 @@ export default {
type: "select", type: "select",
options: { options: {
options: [ options: [
{ key: "1", label: "济南方向" }, { key: "1", label: "菏泽方向" },
{ key: "3", label: "菏泽方向" }, { key: "3", label: "济南方向" },
{ key: "2", label: "双向" }, { key: "2", label: "双向" },
], ],
}, },
@ -310,6 +311,7 @@ export default {
key: "childType", key: "childType",
type: "select", type: "select",
isAlone: true, isAlone: true,
width: '100%',
options: { options: {
clearable: true, clearable: true,
options: [], options: [],
@ -375,7 +377,7 @@ export default {
required: false, required: false,
type: "datePicker", type: "datePicker",
options: { options: {
style: "width: auto", style: "width: 96%",
type: "datetimerange", type: "datetimerange",
format: "yyyy-MM-dd HH:mm:ss", format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss", valueFormat: "yyyy-MM-dd HH:mm:ss",
@ -423,21 +425,10 @@ export default {
}, },
tabClick() { tabClick() {
if(this.tabAction === '2'){ if(this.tabAction === '2'){
request({ this.bindTimeing();
url: `/business/dcBatchFunctionsJobGroup/list`,
method: "get",
params: {},
})
.then((result) => {
if (result.code != 200) return;
this.tableTotal = result.total;
this.data = result.rows;
})
.finally(() => {
});
} else if(this.tabAction === '3'){ } else if(this.tabAction === '3'){
this.dataRecord.operTime = [moment().startOf('month').format('YYYY-MM-DD 00:00:00'),moment().endOf('month').format('YYYY-MM-DD 23:59:59'),] this.dataRecord.operTime = [moment().startOf('month').format('YYYY-MM-DD 00:00:00'),moment().endOf('month').format('YYYY-MM-DD 23:59:59'),]
this.bindResult(); this.bindRecord();
} }
}, },
handleClick(type) { handleClick(type) {
@ -466,11 +457,21 @@ export default {
Message.success(`操作成功!`); Message.success(`操作成功!`);
}) })
}, },
bindResult(){ bindTimeing(){
// dataRecord:{ request({
// operType: "0", url: `/business/dcBatchFunctionsJobGroup/list`,
// operTime:['2024-04-01 00:00:00','2024-04-25 23:59:59'] method: "get",
// }, params: {},
})
.then((result) => {
if (result.code != 200) return;
this.tableTotal = result.total;
this.data = result.rows;
})
.finally(() => {
});
},
bindRecord(){
request({ request({
url: `/business/dcOperLog/list`, url: `/business/dcOperLog/list`,
method: "get", method: "get",
@ -482,6 +483,7 @@ export default {
e.operTime = moment(e.operTime).format('YYYY-MM-DD HH:mm:ss') e.operTime = moment(e.operTime).format('YYYY-MM-DD HH:mm:ss')
e.operType = _.find(this.Enum_ControlType,{key:e.operType}).label e.operType = _.find(this.Enum_ControlType,{key:e.operType}).label
}); });
console.log(result.rows)
this.tableData = result.rows; this.tableData = result.rows;
this.tableTotal = result.total; this.tableTotal = result.total;
}) })
@ -492,7 +494,7 @@ export default {
this.tableData = []; this.tableData = [];
this.searchData.pageSize = pageSize; this.searchData.pageSize = pageSize;
this.searchData.pageNum = 1; this.searchData.pageNum = 1;
this.bindResult(); this.bindRecord();
}, },
showResult(res){ showResult(res){
this.digResultVisible = true this.digResultVisible = true

87
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/AddNEditDialog.vue

@ -1,6 +1,5 @@
<template> <template>
<Dialog v-model="modelVisible" :title="propData ? '修改' : '新增'" width="1400px"> <Dialog v-model="modelVisible" :title="propData ? '修改' : '新增'" width="1400px">
{{ editData }}
<div class="AddNEditDialog"> <div class="AddNEditDialog">
<!-- <Form :value="propData" class="form" ref="basicInfoForm" :formList="formList" column="1" labelWidth="80px" /> --> <!-- <Form :value="propData" class="form" ref="basicInfoForm" :formList="formList" column="1" labelWidth="80px" /> -->
<el-form ref="basicInfoForm" :model="editData" label-width="80px" :rules="groupBasicRules"> <el-form ref="basicInfoForm" :model="editData" label-width="80px" :rules="groupBasicRules">
@ -25,23 +24,28 @@
<div class="fl-around task_op"> <div class="fl-around task_op">
<el-button size="mini" type="primary" @click="onAddTaskGroup">新增任务组</el-button> <el-button size="mini" type="primary" @click="onAddTaskGroup">新增任务组</el-button>
</div> </div>
<div class="task" v-for="taskGroup,index in taskGroupsEditing"> <div class="all_groups">
<div class="task_group" v-for="taskGroup,index in taskGroupsEditing">
<div class="fl-around task_info"> <div class="fl-around task_info">
<el-input v-model="taskGroup.time" style="width: 180px;"></el-input> <div class="time_show">
<el-input placeholder="请输入内容" v-model="taskGroup.time" style="width: 180px;" disabled>
</el-input>
<i class="icon el-icon-edit-outline" @click='onModifyTime(taskGroup)'></i>
</div>
<div class="fl-around task_op"> <div class="fl-around task_op">
<el-button size="mini" type="primary" @click="onAddTaskItem(taskGroup)">新增子任务</el-button> <el-button size="mini" type="primary" @click="onAddTaskItem(taskGroup)">新增子任务</el-button>
<el-button size="mini" type="primary">删除</el-button> <el-button size="mini" type="danger" @click="onDeleteTaskGroup(taskGroup)">删除任务组</el-button>
</div> </div>
</div> </div>
<div> <div>
<!--
<p v-for="item, index1 in taskGroup.tasksEdit">
{{ item.jobId }}</p> -->
<TaskItem v-for="item, index1 in taskGroup.tasksEdit" :propData="item" :groupId="propData.id" <TaskItem v-for="item, index1 in taskGroup.tasksEdit" :propData="item" :groupId="propData.id"
:time="taskGroup.time" @onModify="newV=>onModifyItem(newV, item)"> :time="taskGroup.time" @onSubmit="onSubmitTaskItem">
</TaskItem> </TaskItem>
</div> </div>
</div> </div>
</div>
</template> </template>
</div> </div>
@ -52,7 +56,7 @@
<taskEditDialog v-model="isEditing" :groupId="propData.id" :time="selectedTaskGroup.time" :propData="{}" <taskEditDialog v-model="isEditing" :groupId="propData.id" :time="selectedTaskGroup.time" :propData="{}"
@onSubmit="onSubmitTaskItem" /> @onSubmit="onSubmitTaskItem" />
<timeEditDialog v-model="isShowTimeEdit" @onSubmit="onSubmitTime" /> <timeEditDialog v-model="isShowTimeEdit" :propData="editingTime" @onSubmit="onSubmitTime" />
</Dialog> </Dialog>
</template> </template>
@ -99,6 +103,7 @@ export default {
// } // }
}; };
return { return {
editingTime:"",
editData:{}, editData:{},
mode:"", mode:"",
isEditing:false, isEditing:false,
@ -156,18 +161,61 @@ export default {
}, },
methods: { methods: {
onSubmitTaskItem(){ onSubmitTaskItem(){
this.isEditing = false;
request({
url: `/business/dcBatchFunctionsJobGroup/${this.propData.id}`,
method: "GET"
}).then(res=>{
this.editData = {
id: res.data.id,
groupName: res.data.groupName,
status: res.data.status,
remark: res.data.remark,
detailedConfiguration: res.data.detailedConfiguration
}
this.getTaskList(); //task this.getTaskList(); //task
});
}, },
onAddTaskGroup(){ onAddTaskGroup(){
this.isShowTimeEdit = true; this.isShowTimeEdit = true;
}, },
onModifyTime(taskG){
this.editingTime = taskG.time;
this.selectedTaskGroup = taskG;
this.isShowTimeEdit = true;
},
onDeleteTaskGroup(taskG){
request({
url: `/business/dcBatchFunctionsJob/time/${this.propData.id}/${taskG.time}`,
method: "DELETE"
}).then(res => {
request({
url: `/business/dcBatchFunctionsJobGroup/${this.propData.id}`,
method: "GET"
}).then(res => {
this.editData = {
id: res.data.id,
groupName: res.data.groupName,
status: res.data.status,
remark: res.data.remark,
detailedConfiguration: res.data.detailedConfiguration
}
this.getTaskList(); //task
});
});
},
onSubmitTime(time){ onSubmitTime(time){
this.isShowTimeEdit = false; this.isShowTimeEdit = false;
if (this.selectedTaskGroup){
this.selectedTaskGroup.time = time;
}else{
this.taskGroupsEditing.push({ time, tasks: [] }); this.taskGroupsEditing.push({ time, tasks: [] });
}
let detailedConfiguration =[]; let detailedConfiguration =[];
this.taskGroupsEditing.forEach(item=>{ this.taskGroupsEditing.forEach(item=>{
detailedConfiguration.push({time:item.time, tasks:_.map(item.tasksEdit, "id")}); detailedConfiguration.push({time:item.time, tasks:_.map(item.tasksEdit, "jobId")});
}); });
request({ request({
url: `/business/dcBatchFunctionsJobGroup`, url: `/business/dcBatchFunctionsJobGroup`,
@ -179,6 +227,7 @@ export default {
}) })
.then((result) => { .then((result) => {
if (result.code != 200) return; if (result.code != 200) return;
Message.success(`提交成功!`); Message.success(`提交成功!`);
}) })
}, },
@ -186,10 +235,6 @@ export default {
this.selectedTaskGroup = taskG; this.selectedTaskGroup = taskG;
this.isEditing = true; this.isEditing = true;
}, },
onModifyItem(newV , oldV){
console.log(newV, oldV , "修改条目》》》")
// oldV.devices
},
initEditingData(){ initEditingData(){
if(this.propData?.id){ if(this.propData?.id){
this.mode = "edit" this.mode = "edit"
@ -212,7 +257,7 @@ export default {
}, },
getTaskList(){ getTaskList(){
this.taskGroupsEditing = JSON.parse(this.propData.detailedConfiguration); this.taskGroupsEditing = JSON.parse(this.editData.detailedConfiguration);
// this.taskGroupsEditing = [{time:"08:00:00",tasks:[1],tasksEdit:[]}]; // this.taskGroupsEditing = [{time:"08:00:00",tasks:[1],tasksEdit:[]}];
// //
@ -312,9 +357,17 @@ export default {
font-size: 12px; font-size: 12px;
} }
} }
.task{ .all_groups{
border: 1px solid #FFF; max-height:500px;
overflow-y: scroll;
}
.task_group{
border: 1px solid #09B;
.task_info{ .task_info{
padding:10px 0; background: #005070;
.time_show{
color: #0AC;
}
} }
.task_op{ .task_op{
} }

45
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/TaskItem.vue

@ -1,21 +1,21 @@
<template> <template>
<div class="task_editor_box" v-if="isCompReady"> <div class="task_editor_box" v-if="isCompReady">
<el-form> <div class="flex main_ctt">
<div class="flex" style="justify-content: space-between;"> <div class="device_type">
<div>
设备类型: 设备类型:
<span v-if="editData.deviceType">{{ deviceTypeDic[editData.deviceType].label }}</span> <span v-if="editData.deviceType">{{ deviceTypeDic[editData.deviceType].label }}</span>
</div> </div>
<div> <div class="devices">
设备:
<template v-if="editData.devices"> <template v-if="editData.devices">
<span v-for="item,index in editData.devices"> <span v-for="item,index in editData.devices" v-if="index<5" class="title">
{{ deviceDic[item.id].deviceName }} {{ deviceDic[item.id].deviceName }}
</span>{{ editData.devices.length }} </span>
<span v-if="editData.devices.length >= 6" class="other">{{ editData.devices.length }}个设备</span>
</template> </template>
</div> </div>
<div class="content">
<template v-if="editData.deviceType=='2'"> <template v-if="editData.deviceType=='2'">
<BoardRecordPreview :tpl="editData.params" style=" width:300px; height: 100%;"> <BoardRecordPreview :tpl="editData.params" class="board">
</BoardRecordPreview> </BoardRecordPreview>
</template> </template>
<template v-if="editData.deviceType == '5'"> <template v-if="editData.deviceType == '5'">
@ -31,12 +31,12 @@
</template> </template>
<el-form-item> </div>
<div class="button">
<el-button size="mini" type="primary" @click="onModify">修改</el-button> <el-button size="mini" type="primary" @click="onModify">修改</el-button>
<el-button size="mini" type="danger" @click="onDelete">删除</el-button> <el-button size="mini" type="danger" @click="onDelete">删除</el-button>
</el-form-item>
</div> </div>
</el-form> </div>
<taskEditDialog v-model="isEditingTask" :groupId="groupId" :time="time" :deviceDic="deviceDic" <taskEditDialog v-model="isEditingTask" :groupId="groupId" :time="time" :deviceDic="deviceDic"
:deviceList="deviceList" :propData="editData" @onSubmit="onSubmit" /> :deviceList="deviceList" :propData="editData" @onSubmit="onSubmit" />
@ -79,13 +79,14 @@ export default {
}, },
mounted() { mounted() {
this.deviceTypeDic = deviceTypeDic; this.deviceTypeDic = deviceTypeDic;
this.isCompReady = true;
console.log(JSON.parse(this.propData.callParameter || '[{}]')[0], "++++=====######");
this.initBasicData().then(res=>{ this.initBasicData().then(res=>{
let temp = JSON.parse(this.propData.callParameter || '[{}]')[0]; //callParameter let temp = JSON.parse(this.propData.callParameter || '[{}]')[0]; //callParameter
//BoardRecordPreview //BoardRecordPreview
if(temp.functions){ if(temp.functions){
temp.functions[1].params.CONTENT = temp.functions[1].params.CONTENT.replaceAll(/\\n/g, '\\\\n').replaceAll(/=/g, '\\=').replaceAll(/,/g, '\\,').replaceAll(/&nbsp/g, ' '); // temp.functions[1].params.CONTENT = temp.functions[1].params.CONTENT.replaceAll(/\\n/g, '\\\\n').replaceAll(/=/g, '\\=').replaceAll(/,/g, '\\,').replaceAll(/&nbsp/g, ' ');
this.editData = { this.editData = {
id: this.propData.jobId, id: this.propData.jobId,
direction: temp.direction, direction: temp.direction,
@ -105,7 +106,7 @@ export default {
this.isEditingTask = true; this.isEditingTask = true;
}, },
onSubmit(para){ onSubmit(para){
this.emit("onSubmit"); this.$emit("onSubmit");
this.isEditingTask = false; this.isEditingTask = false;
// let devices = _.filter(this.deviceOptions, item=>{ // let devices = _.filter(this.deviceOptions, item=>{
// this.editData.devices.includes(item.id); // this.editData.devices.includes(item.id);
@ -123,7 +124,8 @@ export default {
}) })
.then((result) => { .then((result) => {
if (result.code != 200) return; if (result.code != 200) return;
Message.success("删除成功"); this.$message.success("删除成功");
this.$emit("onSubmit");
}) })
}, },
initBasicData(){ initBasicData(){
@ -144,6 +146,17 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.task_editor_box{ .task_editor_box{
.main_ctt{ align-items: stretch; border-top:1px dashed #0AC; padding: 6px 0; max-height: 80px;
.device_type{ width: 200px; display: flex; flex-direction: row; align-items: center; }
.devices{ flex: 1; display: flex; flex-wrap: wrap; align-items: flex-start;
span{ font-size:14px; margin:0 4px 3px 0; border-radius: 3px; white-space: nowrap; word-break: break-all; float: left;}
.title{border: 1px solid #0AC; padding: 2px 8px;}
.other{padding: 3px 8px;}
}
.content{ width: 300px; display: flex; align-items: stretch;
.board{ flex: 1; }
}
.button{ width:140px; margin-left: 10px}
}
} }
</style> </style>

27
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue

@ -121,7 +121,7 @@ import { getDeviceList } from "@screen/utils/api/device.js"
import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue"; import BoardPreview from "@screen/components/infoBoard/BoardPreview.vue";
import BoardInfoEditor from "@screen/components/infoBoard/BoardInfoEditor"; import BoardInfoEditor from "@screen/components/infoBoard/BoardInfoEditor";
import BoardUtils from "@screen/utils/infoBoard.js" import BoardUtils from "@screen/utils/infoBoard.js"
import { addTaskRequest } from "@screen/utils/api/batch.js" import { submitTaskRequest } from "@screen/utils/api/batch.js"
export default { export default {
name: "taskEditDialog", name: "taskEditDialog",
components: { components: {
@ -206,15 +206,27 @@ export default {
// { "STAY": 90, "ACTION": "1", "SPEED": "0", "COLOR": "ffff00", "FONT": "3", "FONT_SIZE": "24", "CONTENT": "\\\\n", "width": "160", "height": "80", "formatStyle": "2" } // { "STAY": 90, "ACTION": "1", "SPEED": "0", "COLOR": "ffff00", "FONT": "3", "FONT_SIZE": "24", "CONTENT": "\\\\n", "width": "160", "height": "80", "formatStyle": "2" }
this.editData.type2 = BoardUtils.contentToDeviceItem(this.propData.params); this.editData.type2 = BoardUtils.contentToDeviceItem(this.propData.params);
}else{ }else{
this.searchData.deviceType = "";
this.searchData.direction = "";
this.filterData.screenSize = "";
this.editData.devices = [];
this.editData.type2 = {};
} }
}, },
onEditBoard(){ onEditBoard(){
let arr = this.filterData.screenSize.split("*");
console.log(arr, "传入的尺寸")
this.editDialog = { this.editDialog = {
visible: true, visible: true,
mode: this.mode, mode: this.mode,
type: "device", type: "device",
tpl:this.editData.type2 tpl: {
...this.editData.type2,
origin:{
displayAreaWidth: arr[0],
displayAreaHeight: arr[1]
}
}
// { // {
// "residenceTime": "90", // "residenceTime": "90",
// "intonation": "0", // "intonation": "0",
@ -250,6 +262,7 @@ export default {
}; };
}, },
____onEditSubmit(data){ ____onEditSubmit(data){
this.editDialog.visible = false; this.editDialog.visible = false;
this.editData.type2 = data.data; this.editData.type2 = data.data;
}, },
@ -276,11 +289,9 @@ export default {
if(this.mode == "add"){ if(this.mode == "add"){
} }
alert(111) submitTaskRequest(this.propData.id, this.groupId, this.time, devices, params, { deviceType: this.searchData.deviceType, screenSize: this.filterData.screenSize }).then(res=>{
addTaskRequest(this.groupId, this.time, devices, params, { deviceType: this.searchData.deviceType, screenSize: this.filterData.screenSize }).then(res=>{
console.log(res)
});
this.$emit("onSubmit") this.$emit("onSubmit")
});
}, },
processParams(){ processParams(){
if(this.searchData.deviceType == "2"){ if(this.searchData.deviceType == "2"){
@ -322,8 +333,10 @@ export default {
this.editData.devices = []; this.editData.devices = [];
let arr = this.filterData.screenSize.split("*"); let arr = this.filterData.screenSize.split("*");
this.editData.type2 = { this.editData.type2 = {
origin:{
displayAreaWidth: +arr[0], displayAreaWidth: +arr[0],
displayAreaHeight: +arr[1] displayAreaHeight: +arr[1]
}
}; };
} }
} }

26
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/timeEditDialog.vue

@ -1,24 +1,12 @@
<template> <template>
<Dialog v-model="modelVisible" title="修改" width="400px" label-width="120px"> <Dialog v-model="modelVisible" title="修改" width="400px" label-width="120px">
<el-form> <el-form>
<el-form-item label="触发时间"> <el-form-item label="时">
<el-col :span="4">
<el-input v-model="editData.hour"></el-input> <el-input v-model="editData.hour"></el-input>
</el-col> </el-form-item>
<el-col :span="1"> <el-form-item label="钟">
:
</el-col>
<el-col :span="4">
<el-input v-model="editData.minute"></el-input> <el-input v-model="editData.minute"></el-input>
</el-col>
<el-col :span="1">
:
</el-col>
<el-col :span="4">
<el-input v-model="editData.second"></el-input>
</el-col>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="mini" type="primary" @click="onSubmit">保存</el-button> <el-button size="mini" type="primary" @click="onSubmit">保存</el-button>
</el-form-item> </el-form-item>
@ -39,14 +27,13 @@ export default {
}, },
props: { props: {
visible: Boolean, visible: Boolean,
propData: Object propData: String
}, },
data() { data() {
return { return {
editData:{ editData:{
hour:"", hour:"",
minute:"", minute:""
second:""
} }
}; };
}, },
@ -73,14 +60,13 @@ export default {
}, },
methods: { methods: {
onSubmit(){ onSubmit(){
let time = [this.editData.hour.trim(), this.editData.minute.trim(), this.editData.second.trim()].join(":"); let time = [this.editData.hour.trim(), this.editData.minute.trim(), "00"].join(":");
this.$emit("onSubmit", time) this.$emit("onSubmit", time)
}, },
transformData(){ transformData(){
let arr = this.propData.split(":"); let arr = this.propData.split(":");
this.editData.hour = arr[0]; this.editData.hour = arr[0];
this.editData.minute = arr[1]; this.editData.minute = arr[1];
this.editData.second = arr[2];
} }
} }
}; };

22
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/index.vue

@ -9,12 +9,12 @@
</template> </template>
新增 新增
</ButtonGradient> </ButtonGradient>
<ButtonGradient @click.native="handleExport"> <!-- <ButtonGradient @click.native="handleExport">
<template #prefix> <template #prefix>
<img src="@screen/images/export.svg" /> <img src="@screen/images/export.svg" />
</template> </template>
导出 导出
</ButtonGradient> </ButtonGradient> -->
<ButtonGradient @click.native="onReset"> <ButtonGradient @click.native="onReset">
<template #prefix> <template #prefix>
<img src="@screen/images/refresh.svg" /> <img src="@screen/images/refresh.svg" />
@ -23,7 +23,7 @@
</ButtonGradient> </ButtonGradient>
</div> </div>
<InputSearch style="width: 402px" type="input" params="word" :disable="true" placeholder="请输入敏感词,回车搜索" <InputSearch style="width: 402px" type="input" params="word" :disable="true" placeholder="请输入关键词,回车搜索"
@handleSearch="handleSearch" ref="form" /> @handleSearch="handleSearch" ref="form" />
</div> </div>
@ -151,7 +151,7 @@ export default {
}, },
getSearchData() { getSearchData() {
let params = { let params = {
word: this.searchData?.word, groupName: this.searchData?.word,
pageSize: this.pageSize, pageSize: this.pageSize,
pageNum: this.currentPage, pageNum: this.currentPage,
}; };
@ -182,13 +182,13 @@ export default {
this.isShowDialog = true; this.isShowDialog = true;
this.dialogData = data||{}; this.dialogData = data||{};
}, },
handleExport() { // handleExport() {
exportFile({ // exportFile({
url: "/business/dcInfoBoardVocabulary/export", // url: "/business/dcInfoBoardVocabulary/export",
filename: "情报板敏感词", // filename: "",
data: this.getSearchData(), // data: this.getSearchData(),
}); // });
}, // },
handleSearch(data) { handleSearch(data) {
this.searchData = data; this.searchData = data;
this.getData(); this.getData();

55
ruoyi-ui/src/views/JiHeExpressway/pages/datav/gisAndBim/index.vue

@ -1,4 +1,4 @@
<template> <!-- <template>
<div> <div>
<img class="img" src="@screen/images/digital/gisAndBim.jpg" /> <img class="img" src="@screen/images/digital/gisAndBim.jpg" />
</div> </div>
@ -11,4 +11,57 @@
height: 1030px; height: 1030px;
width: 1920px; width: 1920px;
} }
</style> -->
<template>
<div class='comp_box'>
<iframe class="iframe" :src="alarmUrl" frameborder="0"></iframe>
</div>
</template>
<script>
import { getConfigKey } from "@/api/system/config.js";
export default {
name: 'InDevelopment',
components: {
},
props: {
text: {
type: String,
default: "暂无数据"
},
alarmUrl: {
type: String,
default: "",
}
},
mounted() {
this.alarmUrl = "http://10.0.86.37:81/?HoveringMouse=true&LightMode=false";
// getConfigKey("dc.alarmUrl").then((res) => {
// this.alarmUrl = res.msg
// });
}
}
</script>
<style lang='scss' scoped>
.comp_box {
// padding-top:160px;
width: 100%;
height: 100%;
color: #8A9EAA;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.iframe {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
}
</style> </style>

10
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/DetailCard.vue

@ -16,17 +16,17 @@
<div class="content"> <div class="content">
{{ data.desc }} {{ data.desc }}
</div> </div>
<div class="people"> <!-- <div class="people">
<img src="@screen/images/people.svg" alt=""> <img src="@screen/images/people.svg" alt="">
<span>发布对象: 甘易玫</span> <span>发布对象: 甘易玫</span>
</div> </div> -->
<div class="people"> <div class="people">
<img src="@screen/images/people.svg" alt=""> <img src="@screen/images/people.svg" alt="">
<span>当前管制: 甘易玫</span> <span>当前管制: {{data.posts}}</span>
</div> </div>
<div class="suffix remark"> <!-- <div class="suffix remark">
备注: 备注:
</div> </div> -->
<div class="suffix share-with"> <div class="suffix share-with">
分享至 分享至
<img v-for="item in shareWithData" :key="item" :src="require(`@screen/images/shareWith/${item}.svg`)"> <img v-for="item in shareWithData" :key="item" :src="require(`@screen/images/shareWith/${item}.svg`)">

34
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditDetails/index.vue

@ -1,5 +1,5 @@
<template> <template>
<Card2 class='AuditDetails' title="审核详情"> <Card2 class='AuditDetails' title="详情">
<TimeLine2 :data="timeLine2List" style="flex: 1;" direction="right"> <TimeLine2 :data="timeLine2List" style="flex: 1;" direction="right">
<template #content="{ data }"> <template #content="{ data }">
<DetailCard :data="data" /> <DetailCard :data="data" />
@ -12,6 +12,7 @@
import Card2 from "@screen/components/Card2/Card.vue"; import Card2 from "@screen/components/Card2/Card.vue";
import TimeLine2 from "@screen/components/TimeLine/TimeLine2/index"; import TimeLine2 from "@screen/components/TimeLine/TimeLine2/index";
import DetailCard from "./DetailCard.vue" import DetailCard from "./DetailCard.vue"
import request from '@/utils/request'
export default { export default {
name: 'AuditDetails', name: 'AuditDetails',
@ -22,14 +23,33 @@ export default {
}, },
data() { data() {
return { return {
timeLine2List: Array.from({ length: 6 }).map(() => ({ timeLine2List: [],
time: "2023-12-21 16:35:44", }
name: "甘易玫", },
methods:{
bind(id){
request({
url: '/business/manage/listEvent?eventId='+id,
method: 'get'
}).then(res=>{
console.log(id, res)
let list = []
res.data.forEach(e => {
list.push({
source: "1",
onlyright:true,
time: e.eventTime,
name: e.createBy,
descTitle: "事件详情", descTitle: "事件详情",
desc: "因改扩建施工,接交警通知,G3京台高速崮山(辅)、泰安西站双向入口临时关闭,万德站北京方向入口临时关闭,崮山(主)站北京方向出口临时关闭;济南崮山服务区(台北方向)入口临时关闭。泰安服务区(北京方向)入口临时关闭。泰山枢纽(G22青兰高速兰州方向转G3京台高速北京方向匝道、G22青兰高速青岛方向转G3京台高速北京方向匝道)临时关闭。", desc: e.contentDetails,
posts: '淄博发展公司管理员', posts: e.facilityName,
channel:e.publishChannels,
state: 0, state: 0,
})), })
});
this.timeLine2List = list;
})
} }
} }
} }

18
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/ListItem.vue

@ -1,7 +1,7 @@
<template> <template>
<div class='ListItem'> <div class='ListItem' v-on="$listeners">
<img class="prefix" :src="require(`@screen/images/ListItem/${eventTypeIcon[data.type]}.svg`)" /> <img class="prefix keep-ratio" :src="require(`@screen/images/ListItem/${data.icon}.svg`)" />
<div class="center"> <div class="center keep-ratio">
<div class="header"> <div class="header">
<span class="title">{{ data.title || '-' }}</span> <span class="title">{{ data.title || '-' }}</span>
<span class="state" :style="{ backgroundColor: state[data.isverify].color }">{{ state[data.isverify].text <span class="state" :style="{ backgroundColor: state[data.isverify].color }">{{ state[data.isverify].text
@ -9,7 +9,7 @@
</div> </div>
<div class="content">{{ data.content || '-' }}</div> <div class="content">{{ data.content || '-' }}</div>
</div> </div>
<img class="suffix" :src="require(`@screen/images/ListItem/${state[data.isverify].icon}.svg`)" /> <!-- <img class="suffix keep-ratio" :src="require(`@screen/images/ListItem/${state[data.isverify].icon}.svg`)" /> -->
</div> </div>
</template> </template>
@ -27,25 +27,21 @@ export default {
}, },
data() { data() {
return { return {
eventTypeIcon: {
0: 'AbnormalWeather',
1: 'TrafficControl',
},
state: { state: {
0: { 0: {
color: "#00B1A0", color: "#00B1A0",
text: "待审核", text: "待确认",
icon: 'ToBeReviewed' icon: 'ToBeReviewed'
}, },
1: { 1: {
color: "#057DD3", color: "#057DD3",
text: "已审核", text: "处理中",
icon: 'Reviewed' icon: 'Reviewed'
}, },
2: { 2: {
color: "#C55253", color: "#C55253",
text: "未通过", text: "已完成",
icon: 'Failed' icon: 'Failed'
}, },
} }

48
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/data.js

@ -11,40 +11,40 @@ export const searchFormList = [
options: [ options: [
{ {
key: "0", key: "0",
label: "未解决", label: "待确认",
}, },
{ {
key: "1", key: "1",
label: "已解决", label: "处理中",
}, },
{ {
key: "2", key: "2",
label: "已关闭", label: "已完成",
},
],
},
},
{
label: "审核状态:",
key: "checkState",
type: "RadioGroup",
options: {
options: [
{
key: "0",
label: "待审核",
},
{
key: "1",
label: "已审核",
},
{
key: "2",
label: "未通过",
}, },
], ],
}, },
}, },
// {
// label: "审核状态:",
// key: "checkState",
// type: "RadioGroup",
// options: {
// options: [
// {
// key: "0",
// label: "待审核",
// },
// {
// key: "1",
// label: "已审核",
// },
// {
// key: "2",
// label: "未通过",
// },
// ],
// },
// },
{ {
label: "时间范围:", label: "时间范围:",
key: "daterange", key: "daterange",

95
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/Cards/AuditLists/index.vue

@ -1,17 +1,20 @@
<template> <template>
<Card2 class="Auditlists" title="审核列表"> <Card2 class="Auditlists" title="审核列表">
<InputSearch style="width: 100%" :formList="searchFormList" /> <InputSearch style="width: 100%" :formList="searchFormList" @handleSearch="handleSearch" />
<div class="body"> <div class="body">
<ListItem <ListItem
v-for="item in list.rows" v-for="item in list.rows"
:key="item.id" :key="item.id"
:data="item" :data="item"
origin="left" origin="left"
class="middle-ratio" @click.native="onClick(item)"
/> />
</div> </div>
<div class="footer"> <div class="footer">
<Pagination layout="total,prev, pager, next, jumper" :total="list.total" /> <Pagination layout="total,prev, pager, next, jumper" :total="list.total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="bindList" />
</div> </div>
</Card2> </Card2>
</template> </template>
@ -25,6 +28,19 @@ import ListItem from "./ListItem.vue";
import { method } from "lodash"; import { method } from "lodash";
import request from '@/utils/request' import request from '@/utils/request'
import {DirectionTypes} from '@screen/utils/enum.js'; import {DirectionTypes} from '@screen/utils/enum.js';
const enum_event_type = [
{key:'1',value:'交通事故',icon:"TrafficControl"},
{key:'2',value:'车辆故障',icon:"TrafficControl"},
{key:'3',value:'交通管制',icon:"TrafficControl"},
{key:'4',value:'交通拥堵',icon:"TrafficControl"},
{key:'5',value:'非法上路',icon:"TrafficControl"},
{key:'6',value:'路障清除',icon:"TrafficControl"},
{key:'7',value:'施工建设',icon:"TrafficControl"},
{key:'8',value:'服务区异常',icon:"TrafficControl"},
{key:'9',value:'设施设备隐患',icon:"TrafficControl"},
{key:'10',value:'异常天气', icon:"AbnormalWeather"},
{key:'11',value:'其他事件',icon:"TrafficControl"}
]
export default { export default {
name: "Auditlists", name: "Auditlists",
components: { components: {
@ -38,65 +54,54 @@ export default {
return { return {
searchFormList, searchFormList,
list:{total:0,rows:[]}, list:{total:0,rows:[]},
eventType:[ queryParams: {
'交通事故', pageNum: 1,
'车辆故障', pageSize: 10,
'交通管制', },
'交通拥堵', p:{}
'非法上路',
'路障清除',
'施工建设',
'',
'',
'',
'',
],
list1: Array.from({ length: 3 }).map(() => ({
title: "异常天气",
content: "2023.12.23 13:00:00 济南方向K100+000 中雪",
type: 0,
isverify: (() => {
const min = 0;
const max = 2;
return Math.floor(Math.random() * (max - min + 1)) + min;
})(),
})),
list2: Array.from({ length: 10 }).map(() => ({
title: "交通事故",
content: "2023.12.23 13:00:00 济南方向K100+000 交通事故",
type: 1,
isverify: (() => {
const min = 0;
const max = 2;
return Math.floor(Math.random() * (max - min + 1)) + min;
})(),
})),
}; };
}, },
created() { created() {
this.bindList() this.bindList()
// axiosIns.get("/business/dcPublishInfo/list")
// .then((result) => {
// console.log("%c [ result ]-39-index.vue", "font-size:15px; background:#4bd543; color:#8fff87;", result);
// if (result.code !== 200) return this.list = [];
// this.list = result.rows;
// }).catch((err) => {
// });
}, },
methods:{ methods:{
onClick(e){
this.$emit("click",e.eventId);
},
handleSearch(e){
let p = {};
if(e.eventState){
p['eventState']= e.eventState
}
if(e.eventType){
p['eventState']= e.eventState
}
if(e.startStakeMark && e.startStakeMark.length === 2){
p['startStakeMarkValue']= `K${e.startStakeMark[0]}+${e.startStakeMark[1]}`
}
if(e.endStakeMark && e.endStakeMark.length === 2){
p['endStakeMarkValue']= `K${e.endStakeMark[0]}+${e.endStakeMark[1]}`
}
this.p = p;
this.list = [];
this.bindList()
},
bindList(){ bindList(){
request({ request({
url: '/business/manage/list', url: '/business/manage/list',
method: 'get', method: 'get',
data: {} params: this.p
}).then(res=>{ }).then(res=>{
res.rows.forEach(e => { res.rows.forEach(e => {
console.log(e) const ev = _.find(enum_event_type,{key:e.eventType})
e.content = `${e.eventTime} ${e.stakeMark} ${DirectionTypes[e.direction]} ${e.contentDetails}` e.content = `${e.eventTime} ${e.stakeMark} ${DirectionTypes[e.direction]} ${e.contentDetails}`
e.type = e.eventType e.type = e.eventType
e.icon = ev.icon
e.title = ev.value
e.isverify = e.eventState e.isverify = e.eventState
}); });
this.list = res this.list = res
this.$emit("click",res.rows[0].eventId);
}) })
} }
} }

10
ruoyi-ui/src/views/JiHeExpressway/pages/service/InformationReleaseManagement/index.vue

@ -1,7 +1,7 @@
<template> <template>
<div class='info_publish'> <div class='info_publish'>
<AuditLists class="card" /> <AuditLists @click="onListClick" class="card" />
<AuditDetails class="card" /> <AuditDetails ref="refDetail" class="card" />
</div> </div>
</template> </template>
@ -14,6 +14,12 @@ export default {
components: { components: {
AuditLists, AuditLists,
AuditDetails AuditDetails
},
methods:{
onListClick(id){
this.$refs.refDetail.bind(id)
}
} }
} }
</script> </script>

7
ruoyi-ui/src/views/JiHeExpressway/utils/api/batch.js

@ -1,7 +1,7 @@
import request from '@/utils/request' import request from '@/utils/request'
export function addTaskRequest(jobGroup, time, devices, params, others) { export function submitTaskRequest(id, jobGroup, time, devices, params, others) {
let temp = [{ let temp = [{
...others, ...others,
devices: devices, devices: devices,
@ -31,11 +31,14 @@ export function addTaskRequest(jobGroup, time, devices, params, others) {
time, time,
callParameter: JSON.stringify(temp) callParameter: JSON.stringify(temp)
} }
if(id!=undefined){
data.jobId = id;
}
// console.log(JSON.stringify(data)); // console.log(JSON.stringify(data));
return request({ return request({
// url: '/business/board/batch/publish', // url: '/business/board/batch/publish',
url: `/business/dcBatchFunctionsJob`, url: `/business/dcBatchFunctionsJob`,
method: 'post', method: id ? 'put' : 'post',
// data: data // data: data
data data
}) })

2
ruoyi-ui/vue.config.js

@ -54,7 +54,7 @@ module.exports = {
// 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`, //王思祥
// 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.65.156:8097`, //孟
// target: `http://10.168.56.165:8087`, //王家宝 // target: `http://10.168.56.165:8087`, //王家宝
// target: `http://10.168.77.128:8087`, //王兴琳 // target: `http://10.168.77.128:8087`, //王兴琳

Loading…
Cancel
Save