diff --git a/dist.rar b/dist.zip similarity index 67% rename from dist.rar rename to dist.zip index 852ffab..4acad6d 100644 Binary files a/dist.rar and b/dist.zip differ diff --git a/src/api/index.js b/src/api/index.js index 1b2d53c..937ca58 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -122,7 +122,7 @@ export function deviceStatus(data) { } }) } - +//节目单接口旧 export function infoBoardTemplateList(data) { return request({ url: '/json/iot/infoBoardTemplateList', @@ -133,6 +133,19 @@ export function infoBoardTemplateList(data) { } }) } + +//节目单接口 +export function getProgramTree(data) { + return request({ + url: `/iotApi/informationPublish/program/getProgramTree`, + method: "post", + data: data, + headers:{ + 'Content-Type':'application/json', + } + }); +} + export function warnList(data) { return request({ url: '/json/warn/warnList', diff --git a/src/views/control/index.vue b/src/views/control/index.vue index 2f91e8a..fa4ea10 100644 --- a/src/views/control/index.vue +++ b/src/views/control/index.vue @@ -503,6 +503,13 @@ export default { item.imgUrl = imgForm['urls'][j.command] } }) + }else if(that.dataForm.deviceType == '11'){ + let imgForm = window.config.drapLeftElMap[that.dataForm.deviceType]; + that.componentsList.forEach(item=>{ + if(item.deviceId == that.dataForm.deviceId){ + item.imgUrl = imgForm['urls'][j.command] + } + }) }else if(that.dataForm.deviceType == '40' || that.dataForm.deviceType == '41' || that.dataForm.deviceType == '42'){ that.iotKeyData = []; const str1 = that.dataForm.iotKey.split('|'); diff --git a/src/views/device/deviceView.vue b/src/views/device/deviceView.vue index 3bbd5d4..202550e 100644 --- a/src/views/device/deviceView.vue +++ b/src/views/device/deviceView.vue @@ -502,15 +502,18 @@ export default { 1: { left: 'K30+600', right: 'K34+800', - length1: '4000', - length2: '2616', + // length1: '4000', + // length2: '2616', + length1: '2616', + length2: '2606', width: 3436, pileNumData: ['K31+294', 'K33+916'], }, 2: { left: 'K58+176', right: 'K60+976', - length1: '2800', + // length1: '2800', + length1: '2200', length2: '2200', width: 3436, pileNumData: ['K58+476', 'K60+676'], diff --git a/src/views/view/index.vue b/src/views/view/index.vue index cebb699..dfc769b 100644 --- a/src/views/view/index.vue +++ b/src/views/view/index.vue @@ -753,7 +753,7 @@

{{ filedFomatter(item1, deviceTypeList) }}控制

-
{{ filedFomatter(item.direction, directionList) }} {{ item.id }}({{ item.pileNum }}) -

-
+ --> +

@@ -1450,8 +1472,7 @@ :label="item.id" v-for="item in taskList" :key="item.id" - >{{ item.name }} + >{{ item.name }} @@ -1479,29 +1500,51 @@

--> - + + +
+ + {{ data.name }} + {{ data.content }} + + +
+ 高宽:{{ data.displaySize }} + 字体大小:{{ data.fontSize }} 字体颜色:{{getColor(data.fontColor)}} + +
+
@@ -1927,7 +1970,7 @@

--> - + @@ -2116,8 +2158,7 @@ background: #2b6bb6; margin: 7px 5px 0 0; " - >批量控制 + >批量控制

--> - + + +
+ + {{ data.name }} + {{ data.content }} + + +
+ 高宽:{{ data.displaySize }} + + 大小:{{ data.fontSize }} 颜色:{{getColor(data.fontColor)}} + +
+
@@ -2256,6 +2322,7 @@ import { planDetail, planExecute, verify, + getProgramTree } from '../../api' import { tunnelLeftList, tunnelRightList } from '../../utils/pathJson' @@ -2271,6 +2338,8 @@ export default { area: '2', editable: '2', }, + treeData: [], + filterText: "", areaList: window.config.areaList, deviceTypeList: window.config.deivceTypeList, deviceTypeList1: [ @@ -2301,19 +2370,22 @@ export default { warnTypeList: window.config.warnTypeList, warnStatusList: window.config.warnStatusList, deviceBarTypeList: [ - { id: '15', name: '情报板1' }, + { id: '15', name: '情报板' }, { id: '11', name: '风机' }, { id: '13', name: '车道指示灯' }, { id: '14', name: '交通信号灯' }, { id: '19', name: '卷帘门' }, - /*{id: '16', name: '报警器'},*/ { - id: '17', - name: '广播电话系统', - url: window.config.typeUrlLink['17'], - }, - { id: '12', name: '照明系统', url: window.config.typeUrlLink['12'] }, + { id: '40', name: '消防泵房' }, + { id: '41', name: '污水泵房' }, + /*{id: '16', name: '报警器'},*/ + // { + // id: '17', + // name: '广播电话系统', + // url: window.config.typeUrlLink['17'], + // }, + // { id: '12', name: '照明系统', url: window.config.typeUrlLink['12'] } + // , ], - taskEnum: window.config.taskEnum, totalWidth: 1562, totalHeight: 560, @@ -2343,8 +2415,10 @@ export default { 1: { left: 'K30+600', right: 'K34+800', - length1: '4000', - length2: '2616', + // length1: '4000', + // length2: '2616', + length1: '2616', + length2: '2606', width: 5000, pileNumData: ['K31+294', 'K33+916'], n: 10, @@ -2352,7 +2426,8 @@ export default { 2: { left: 'K58+176', right: 'K60+976', - length1: '2800', + // length1: '2800', + length1: '2200', length2: '2200', width: 5000, pileNumData: ['K58+476', 'K60+676'], @@ -2389,7 +2464,7 @@ export default { pileNumList: [], deviceForm: {}, - warnShow: false, + warnShow: true, planShow: false, planList: [], planDetailShow: false, @@ -2419,7 +2494,15 @@ export default { tempMap: {}, controlShow: false, multipleSelection: [], - warnList: [], + warnList: [{ + id:'1', + status:1, + type:'' + },{ + id:'2', + status:2, + type:'' + }], componentsWarnList: [], statusTimer: null, deviceLoading: false, @@ -2440,6 +2523,13 @@ export default { planLoading: false, planSuccess: false, planDeviceType: ['14', '13', '11', '15', '19'], + defaultProps: { + children: "children", + label: "name", + name:"name", + content: "content", + // displaySize: "displaySize", + }, listMedia: [ /*{ id:20, @@ -2649,21 +2739,23 @@ export default { // console.log(item,item.direction,'xxxxxxxxxx') if(item.direction == 2){ //下行 if(item.rotationDirection == null || item.rotationDirection == '正转'){ - json.imgUrl = './lib/icon/112.gif' - }else if(item.rotationDirection == '反转'){ json.imgUrl = './lib/icon/111.gif' + }else if(item.rotationDirection == '反转'){ + json.imgUrl = './lib/icon/112.gif' } else if(item.rotationDirection == '停止'){ json.imgUrl = './lib/icon/11.png' } + console.log("json.imgUrl",json.imgUrl) }else if(item.direction == 1){ //上行 if(item.rotationDirection == null || item.rotationDirection == '正转'){ - json.imgUrl = './lib/icon/112.gif' - }else if(item.rotationDirection == '反转'){ json.imgUrl = './lib/icon/111.gif' + }else if(item.rotationDirection == '反转'){ + json.imgUrl = './lib/icon/112.gif' } else if(item.rotationDirection == '停止'){ json.imgUrl = './lib/icon/11.png' } + console.log("json.imgUrl",json.imgUrl) } } //交通信号灯 @@ -2926,6 +3018,7 @@ export default { } else if (item.deviceType == '15' && item.modelId) { if (j.body) { j.dataFormBody = JSON.parse(j.body) + console.log("j.dataFormBody",j.dataFormBody) that.loadinfoBoardTemplate( 3, j.dataFormBody.textInfoList, @@ -3315,6 +3408,18 @@ export default { } })*/ }, + handleCheckChange(data, checked, indeterminate) { + console.log(data, checked, indeterminate); + // this.addComment(data,data.programId) + + }, + handleCheck(checkedNodes) { + console.log(checkedNodes, "cscscscs"); + // 这里可以处理选中项的逻辑,比如更新checkedKeys等。 + // this.textInfoList = checkedNodes.push() // 根据需要更新checkedKeys数组,例如只保留id等。 + this.textInfoList.push(checkedNodes.programId) + console.log(this.textInfoList, "cscscscs"); + }, loadWarnMarker(data) { var that = this that.componentsWarnList = [] @@ -3770,8 +3875,10 @@ export default { // 13 车道指示灯 console.log('1111111111111111111111111', that.dataForm.deviceType) if (that.dataForm.deviceType == '15') { + console.log("that.dataFormBody",that.dataFormBody) if (that.dataForm.task) { var j = JSON.parse(that.dataForm.task) + console.log("j.dataFormBody",j.dataFormBody) that.$set(that.dataForm, 'taskName', j.command) if (j.body) { j.dataFormBody = JSON.parse(j.body) @@ -4068,7 +4175,7 @@ export default { } if (that.dataForm.deviceType == '15') { - //that.loadinfoBoardTemplate(1,j.dataFormBody.textInfoList); + // that.loadinfoBoardTemplate(1,j.dataFormBody.textInfoList); } else if (that.dataForm.deviceType == '26') { that.dataForm.speed26 = j.speed that.dataForm.direction26 = j.direction == '0' ? '正向' : '反向' @@ -4202,12 +4309,55 @@ export default { }) }, loadinfoBoardTemplate(index, list, modelId) { + console.log("index",index) var that = this + getProgramTree({ name: this.filterText }).then((res) => { + console.log("this.treeData",res.data.data) + console.log("res.code",res.data.code) + if (res.data.code == 200) { + console.log("this.treeData",res.data.data) + res.data.data.forEach((item) => { + // this.count += item.children.length; + if (item.children) { + item.children.forEach((child) => { + if (child.dynamicValueNum > 0) { + console.log("大于0"); + for (let i = 0; i < child.dynamicValueNum; i++) { + child["contentValue" + (i + 1)] = + child.dynamicValueList.length > 0 + ? child.dynamicValueList[i] + : ""; + } + } + }); + } + }); + + // this.treeData = res.data; + this.treeData = res.data.data; + // this.infoBoardTemplateList = res.data.data + console.log("this.treeData",this.treeData) + this.infoBoardTemplateList = [] + const newArray = res.data.data.flatMap(item => item.children); + console.log("newArray",newArray) + this.infoBoardTemplateList = newArray + // res.data.data.forEach((item, i) => { + // + // var form = { + // ...item, + // templateHtml: that.domRender(item.textInfo), + // } + // that.infoBoardTemplateList.push(form) + // }) + + } + }); infoBoardTemplateList().then((res) => { if (res.status == 200) { if (res.data.retCode == 0) { if (index == 1) { that.templateHtmlList = [] + console.log("res.data.result111111111111",res.data.result) res.data.result.forEach((item, i) => { list.forEach((item1) => { if (item.id == item1.id) { @@ -4295,7 +4445,7 @@ export default { that.templateDisplay(0) // 递归调用显示函数 } } else if (index == 2) { - that.infoBoardTemplateList = res.data.result + // that.infoBoardTemplateList = res.data.result } else if (index == 3) { that.templateHtmlList = [] res.data.result.forEach((item, i) => { @@ -4346,14 +4496,14 @@ export default { that.templateDisplay(0, 3) // 递归调用显示函数 } } else { - that.infoBoardTemplateList = [] - res.data.result.forEach((item, i) => { - var form = { - ...item, - templateHtml: that.domRender(item.textInfo), - } - that.infoBoardTemplateList.push(form) - }) + // that.infoBoardTemplateList = [] + // res.data.result.forEach((item, i) => { + // var form = { + // ...item, + // templateHtml: that.domRender(item.textInfo), + // } + // that.infoBoardTemplateList.push(form) + // }) } } else { that.$message.warning(res.data.message) @@ -4373,6 +4523,29 @@ export default { that.tempTimer = setTimeout(() => { that.templateDisplay(nextIndex, m) // 递归调用显示函数 }, nextTime) + }, + handleAddToTable(node, data) { + console.log("添加至表格", node, data); + // let exists = this.tableData.find( + // (obj) => obj.programId === node.data.programId + // ); + // if (exists) return this.$message("该项已添加,请勿重复添加!"); + // this.tableData.push(data); + // console.log("添加至表格", this.tableData); + }, + filterNode(value, data) { + console.log(value, data); + if (!value) return true; + return data.name.indexOf(value) !== -1; + }, + getColor(value){ + if(value =="#7b5ba1"){ + return '红' + }else if(value =="#008000"){ + return '绿' + }else if(value =="#FFFF00"){ + return '黄' + } }, addComment(event, row) { this.tempMap[row.id] = { @@ -4544,10 +4717,14 @@ export default { let checkArr = [] //选中的情报板 if(that.textInfoList.length > 0){ that.textInfoList.forEach((item1) => { - checkArr.push(that.infoBoardTemplateList[item1-1]) + that.infoBoardTemplateList.forEach((item) => { + if(item1==item.programId){ + checkArr.push(item) + } + }) }) } - + console.log(checkArr, '555555555555') // let arr = [ // { id: 1, textInfo: '隧道火灾,禁止驶入' }, // { id: 2, textInfo: '隧道限速{}Km/h' }, @@ -4555,16 +4732,15 @@ export default { // { id: 4, textInfo: '隧道火灾,禁止驶入3' }, // { id: 5, textInfo: '隧道限速{}Km/h,最高速{}Km/h,最低速{}Km/h' }, // ]; - let temp = this.tempMap // 遍历 checkArr 数组 checkArr.forEach(item => { - let text = item.textInfo; + let text = item.content; // 如果 temp 中存在该 id 的数据 - if (temp[item.id]) { - let replacements = temp[item.id]; + if (temp[item.programId]) { + let replacements = temp[item.programId]; let matchCount = 0; // 替换每个 {} 占位符 @@ -4583,8 +4759,9 @@ export default { } // 更新 checkArr 中的 textInfo - item.textInfo = text; + item.content = text; }); + let company = '' if(that.dataForm.extraJson){ let extr = JSON.parse(that.dataForm.extraJson); @@ -4601,23 +4778,25 @@ export default { let Size = (val.cmsWidth == 384 && val.cmsHeight == 288) ? '1' : (val.cmsWidth == 128 && val.cmsHeight == 80) ? '2' : (val.cmsWidth == 576 && val.cmsHeight == 48) ? '3' : (val.cmsWidth == 624 && val.cmsHeight == 48) ? '4' : (val.cmsWidth == 128 && val.cmsHeight == 64) ? '5' : '' data.playProgramlist.push( { - programId: val.id, - name: val.textInfo, - programType: "", - type: "", - displaySize: val.textInfo, - displayMode: Size, - displaySpeed: "", - fontFamily: val.fontName, - fontSize: this.convertFontSize(val.fontSize), - fontColor: this.getHexColor(val.fontColor), - alignment: val.fontFormat, - content: val.textInfo + programId: val.programId, + name: val.name, + programType: val.programType, + type: val.type, + displaySize: val.displaySize, + displayMode: val.displayMode, + displaySpeed: val.displaySpeed, + fontFamily: val.fontFamily, + // fontSize: this.convertFontSize(val.fontSize), + // fontColor: this.getHexColor(val.fontColor), + fontSize: val.fontSize, + fontColor: val.fontColor, + alignment: val.alignment, + content: val.content } ) + console.log("data.playProgramlist",data.playProgramlist) }) } - console.log(data, 'dadadada') playManuallyTriggered(data, '/xjIotApi/iotServiceCommon/playManuallyTriggered').then((res)=>{ console.log(res, 'rrrr') that.deviceLoading = false @@ -4713,6 +4892,7 @@ export default { if (that.dataForm.deviceType == '12') { that.$set(that.dataForm, 'light', b.light) } else if (that.dataForm.deviceType == '15') { + console.log("b.textInfoList",b.textInfoList) that.loadinfoBoardTemplate(1, b.textInfoList) } } @@ -5032,6 +5212,7 @@ export default { that.warnTimer = null } }, + } @@ -5059,7 +5240,51 @@ export default { .infowindow { position: absolute; } + .el-tree { + padding: 10px; + } + ::v-deep .el-tree-node__expand-icon { + // display: none !important; + // display: none !important; + } + + .custom-tree-node { + // flex: 1; + // display: flex; + // align-items: center; + // justify-content: space-between; + font-size: 14px; + padding-right: 8px; + // line-height: 55px; + // display: inline-block; + position: relative; + .label{ + flex: 1; + max-width: 200px !important; + display: inline-block; + white-space: nowrap; /* 防止文本换行 */ + overflow: hidden; /* 隐藏溢出的文本 */ + text-overflow: ellipsis; /* 显示省略号 */ + // background: saddlebrown; + } + .icon{ + height: 100%; + position: absolute; + right: 10px; + z-index: 9999 !important; + } + } + .custom-tree-node:hover .node-actions { + display: block; + position: absolute; + right: 0px; + top: 3px; + z-index: 9999 !important; + } + .node-actions { + display: none; + } .header { width: 100%; height: 65px; @@ -5541,4 +5766,11 @@ export default { zoom: 0.8; } } + + .el-tree-node__content{ + display: flex; + align-items: center; + height: 40px ; + cursor: pointer; + } diff --git a/vue.config.js b/vue.config.js index 0b5066e..47f749e 100644 --- a/vue.config.js +++ b/vue.config.js @@ -14,7 +14,8 @@ module.exports = { //本地服务接口地址 // target: 'http://link.ser99.vip:8080/zhongkai', // target: 'http://65.73.11.246:7774', - target: 'http://172.16.1.155:8009', + // target: 'http://172.16.1.155:8009', + target: 'http://172.16.1.103:8084', // target: 'http://172.16.1.162:8233', // target: 'http://192.168.13.138:8233', // target: 'http://172.16.1.113:8012', @@ -27,7 +28,8 @@ module.exports = { '/xjIotApi': { //集采 // target: 'http://65.73.11.246:8083', - target: 'http://172.16.1.155:8080', + // target: 'http://172.16.1.155:8080', + target: 'http://172.16.1.103:8084', ws: true, https: true, pathRewrite: { @@ -37,7 +39,8 @@ module.exports = { '/iotApi': { //平台 // target: 'http://65.73.11.246:8090', - target: 'http://172.16.1.155:8080', + // target: 'http://172.16.1.155:8080', + target: 'http://172.16.1.103:8080', ws: true, https: true, pathRewrite: {