Compare commits

..

4 Commits

Author SHA1 Message Date
luoshiwen 21d7352e20 2.27 2023-02-27 18:03:29 +08:00
luoshiwen 5a0bffb453 20230227 2023-02-27 18:00:17 +08:00
luoshiwen 0f4bb8a63a 20230227 2023-02-27 15:23:15 +08:00
luoshiwen ba0b421428 20230227 2023-02-27 08:50:22 +08:00
22 changed files with 537 additions and 525 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\babel-loader\\lib\\index.js!E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\视频边缘计算管理平台\\TransFlow\\src\\components\\target\\OD.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\视频边缘计算管理平台\\TransFlow\\src\\components\\target\\OD.vue","mtime":1677026201574},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport lineChart from \"../chart/lineChart.vue\";\nimport barChart from \"../chart/barChart.vue\";\nimport tableShow from \"../chart/tableShow.vue\";\nimport detailDialog from \"../chart/detailDialog.vue\";\nimport thermalChart from \"../chart/thermalChart.vue\";\nimport regionTable from \"../chart/regionTable.vue\";\nexport default {\n name: 'OD',\n //od组件\n components: {\n lineChart: lineChart,\n barChart: barChart,\n tableShow: tableShow,\n detailDialog: detailDialog,\n thermalChart: thermalChart,\n regionTable: regionTable\n },\n props: ['pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'],\n data: function data() {\n return {};\n },\n methods: {},\n mounted: function mounted() {},\n watch: {\n dataArr: {\n handler: function handler(newVal) {\n console.log(newVal, '292929');\n }\n }\n }\n};",{"version":3,"sources":["OD.vue"],"names":[],"mappings":";;;;;;;;;;AAWA,OAAA,SAAA;AACA,OAAA,QAAA;AACA,OAAA,SAAA;AACA,OAAA,YAAA;AACA,OAAA,YAAA;AACA,OAAA,WAAA;AACA,eAAA;AACA,EAAA,IAAA,EAAA,IADA;AACA;AACA,EAAA,UAAA,EAAA;AACA,IAAA,SAAA,EAAA,SADA;AAEA,IAAA,QAAA,EAAA,QAFA;AAGA,IAAA,SAAA,EAAA,SAHA;AAIA,IAAA,YAAA,EAAA,YAJA;AAKA,IAAA,YAAA,EAAA,YALA;AAMA,IAAA,WAAA,EAAA;AANA,GAFA;AAUA,EAAA,KAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,OAAA,EAAA,WAAA,CAVA;AAWA,EAAA,IAXA,kBAWA;AACA,WAAA,EAAA;AAGA,GAfA;AAgBA,EAAA,OAAA,EAAA,EAhBA;AAiBA,EAAA,OAjBA,qBAiBA,CAAA,CAjBA;AAkBA,EAAA,KAAA,EAAA;AACA,IAAA,OAAA,EAAA;AACA,MAAA,OADA,mBACA,MADA,EACA;AACA,QAAA,OAAA,CAAA,GAAA,CAAA,MAAA,EAAA,QAAA;AACA;AAHA;AADA;AAlBA,CAAA","sourcesContent":["<template>\r\n <div class=\"setion\">\r\n <p class=\"chartTitle\"><span class=\"titleIcon\"></span> {{ componentName }}{{ triggerType }}</p>\r\n <div class=\"border\">\r\n <detailDialog />\r\n <thermalChart :pageType=\"pageType\" :list=\"dataArr\" :status=\"triggerType\" :title=\"title\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport lineChart from '../chart/lineChart.vue';\r\nimport barChart from '../chart/barChart.vue';\r\nimport tableShow from '../chart/tableShow.vue';\r\nimport detailDialog from '../chart/detailDialog.vue';\r\nimport thermalChart from '../chart/thermalChart.vue';\r\nimport regionTable from '../chart/regionTable.vue';\r\nexport default {\r\n name: 'OD', //od组件\r\n components: {\r\n lineChart,\r\n barChart,\r\n tableShow,\r\n detailDialog,\r\n thermalChart,\r\n regionTable\r\n },\r\n props: ['pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'],\r\n data() {\r\n return {\r\n\r\n };\r\n },\r\n methods: {},\r\n mounted() { },\r\n watch: {\r\n dataArr: {\r\n handler(newVal) {\r\n console.log(newVal,'292929');\r\n }\r\n }\r\n\r\n }\r\n\r\n};\r\n</script>\r\n<style scoped>\r\n.typeContent {\r\n box-sizing: border-box;\r\n}\r\n\r\n.border {\r\n width: 100%;\r\n margin-bottom: 20px;\r\n position: relative;\r\n}\r\n</style>"],"sourceRoot":"src/components/target"}]} {"remainingRequest":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\babel-loader\\lib\\index.js!E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\视频边缘计算管理平台\\TransFlow\\src\\components\\target\\OD.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\视频边缘计算管理平台\\TransFlow\\src\\components\\target\\OD.vue","mtime":1677484923538},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\nimport lineChart from \"../chart/lineChart.vue\";\nimport barChart from \"../chart/barChart.vue\";\nimport tableShow from \"../chart/tableShow.vue\";\nimport detailDialog from \"../chart/detailDialog.vue\";\nimport thermalChart from \"../chart/thermalChart.vue\";\nimport regionTable from \"../chart/regionTable.vue\";\nexport default {\n name: 'OD',\n //od组件\n components: {\n lineChart: lineChart,\n barChart: barChart,\n tableShow: tableShow,\n detailDialog: detailDialog,\n thermalChart: thermalChart,\n regionTable: regionTable\n },\n props: ['pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'],\n data: function data() {\n return {};\n },\n methods: {},\n mounted: function mounted() {},\n watch: {}\n};",{"version":3,"sources":["OD.vue"],"names":[],"mappings":";;;;;;;;;AAUA,OAAA,SAAA;AACA,OAAA,QAAA;AACA,OAAA,SAAA;AACA,OAAA,YAAA;AACA,OAAA,YAAA;AACA,OAAA,WAAA;AACA,eAAA;AACA,EAAA,IAAA,EAAA,IADA;AACA;AACA,EAAA,UAAA,EAAA;AACA,IAAA,SAAA,EAAA,SADA;AAEA,IAAA,QAAA,EAAA,QAFA;AAGA,IAAA,SAAA,EAAA,SAHA;AAIA,IAAA,YAAA,EAAA,YAJA;AAKA,IAAA,YAAA,EAAA,YALA;AAMA,IAAA,WAAA,EAAA;AANA,GAFA;AAUA,EAAA,KAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,OAAA,EAAA,WAAA,CAVA;AAWA,EAAA,IAXA,kBAWA;AACA,WAAA,EAAA;AAGA,GAfA;AAgBA,EAAA,OAAA,EAAA,EAhBA;AAiBA,EAAA,OAjBA,qBAiBA,CAAA,CAjBA;AAkBA,EAAA,KAAA,EAAA;AAlBA,CAAA","sourcesContent":["<template>\r\n <div class=\"setion\">\r\n <div class=\"border\">\r\n <detailDialog />\r\n <thermalChart :pageType=\"pageType\" :list=\"dataArr\" :status=\"triggerType\" :title=\"title\" ref=\"ODChartRef\"/>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport lineChart from '../chart/lineChart.vue';\r\nimport barChart from '../chart/barChart.vue';\r\nimport tableShow from '../chart/tableShow.vue';\r\nimport detailDialog from '../chart/detailDialog.vue';\r\nimport thermalChart from '../chart/thermalChart.vue';\r\nimport regionTable from '../chart/regionTable.vue';\r\nexport default {\r\n name: 'OD', //od组件\r\n components: {\r\n lineChart,\r\n barChart,\r\n tableShow,\r\n detailDialog,\r\n thermalChart,\r\n regionTable\r\n },\r\n props: ['pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'],\r\n data() {\r\n return {\r\n\r\n };\r\n },\r\n methods: {},\r\n mounted() { },\r\n watch: {\r\n }\r\n\r\n};\r\n</script>\r\n<style scoped>\r\n.typeContent {\r\n box-sizing: border-box;\r\n}\r\n\r\n.border {\r\n width: 100%;\r\n margin-bottom: 20px;\r\n position: relative;\r\n}\r\n</style>"],"sourceRoot":"src/components/target"}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,30 @@ export const getUpdInfoApi = params => {
params params
}); });
}; };
// 保存udp
export const setUpdInfoApi = data => {
return axios.post('api/SetUdppz', data, { headers: { 'Content-Type': 'multipart/form-data' } });
};
export const resetReboot = data => { export const resetReboot = data => {
return axios.post('api/SetReboot', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); return axios.post('api/SetReboot', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } });
}; };
// 关于本机备份配置
export const ConfigBackup = () => {
return axios.post('api/ConfigBackup', { headers: { 'Content-Type': 'application/json' } });
};
// 还原服务器设置
export const ConfigRestore = () => {
return axios.post('api/ConfigRestore');
};
// 还原服务器出厂设置
export const ResetFactory = () => {
return axios.post('api/ResetFactory', { headers: { 'Content-Type': 'application/json' } });
};

View File

@ -7,10 +7,11 @@ export default {
name: 'thermalChart', // name: 'thermalChart', //
data() { data() {
return { return {
endData: [], thermalChartData:[]
startData: [],
odData: []
}; };
},
created() {
}, },
props: { props: {
list: { list: {
@ -33,106 +34,132 @@ export default {
// }, // },
}, },
methods: { methods: {
drawThermalChart() { //od
ODhanlde(odData) {
console.log(odData);
// var odData = this.odData
var chartData = []
var start = []
for (let i = 0; i < odData.length; i++) {
let item = odData[i].data
for (let j = 0; j < item.length; j++) {
start.push(item[j].start)
//
// od
chartData.push([i, j, item[j].quantity])
// console.log([i,j,item[j].val]);
}
}
// this.thermalChartData = chartData
return chartData
// console.log(chartData, this.unique(start), 'od');
},
//
unique(arr) {
let newArr = []
arr.forEach(item => {
return newArr.includes(item) ? '' : newArr.push(item)
})
return newArr
},
//
drawThermalChart(odData, startEnd) {
// console.log(chartData);
let myChart = this.$echarts.init(this.$refs.thermalChart); let myChart = this.$echarts.init(this.$refs.thermalChart);
let option = { let option = {
grid: { dataZoom: [
left: '2%', {
right: '4%', id: "dataZoomY",
bottom: '10%', type: "slider",
top: '20%', yAxisIndex: [0],
containLabel: true startValue: 0,
endValue: 10,
filterMode: "empty",
}, },
textStyle: { color: '#666', fontSize: 13 }, ],
// toolbox: { tooltip: {
// show: true, position: "top",
// feature: { saveAsImage: { backgroundColor: 'rgba(0,0,0,0)' }, restore: {} }, // formatter: function (params) {
// iconStyle: { borderColor: '#666' } // return (
// "" + days[params.value[1]] + "<br/>" + "" + params.data[2]
// );
// }, // },
tooltip: {}, },
animation: false,
grid: {
left: "3%",
right: "8%",
bottom: "8%",
containLabel: true,
},
xAxis: { xAxis: {
nameTextStyle: { color: '#666', padding: [0, 0, -10, 0], fontSize: 13 }, type: "category",
axisLabel: { interval: 0, textStyle: { fontSize: 13 } }, data: startEnd.start.split(','),
axisTick: { lineStyle: { color: '#c8c8c8', width: 1 }, show: true }, axisLine: {
splitLine: { show: false }, lineStyle: {
axisLine: { lineStyle: { color: '#c8c8c8', width: 1 }, show: true }, color: "#000",
type: 'category', },
data: this.endData, },
splitArea: { show: true, areaStyle: { color: ['rgba(200,200,200,0.3)', 'rgba(200,200,200,0.2)'] } } axisLabel: {
interval: 0,
rotate: 40,
},
splitArea: {
show: true,
},
// name: "",
}, },
yAxis: { yAxis: {
nameTextStyle: { color: '#666', padding: [0, 0, -10, 0], fontSize: 13 }, type: "category",
axisLabel: { interval: 0, textStyle: { fontSize: 13 } }, data: startEnd.end.split(','),
axisTick: { lineStyle: { color: '#c8c8c8', width: 1 }, show: true }, axisLine: {
splitLine: { show: false }, lineStyle: {
axisLine: { lineStyle: { color: '#c8c8c8', width: 1 }, show: true }, color: "#000",
type: 'category',
data: ['gate1','gate2']
}, },
visualMap: [ },
{ axisLabel: {
min: 100, interval: 0,
max: 400, rotate: 40,
},
splitArea: {
show: true,
},
// name: "",
},
visualMap: {
min: 1,
max: 50,
calculable: true,
orient: "horizontal",
left: "center",
bottom: "1%",
text: ["50", "1"], //
//color:['#20a0ff','#D2EDFF'],
calculable: false, calculable: false,
orient: 'horizontal', color: ["#22DDDD", "#fec42c", "#80F1BE"],
left: 'center', },
top: 20,
color: ['#C7021D', '#79E73C'],
text: ['高', '低'],
textStyle: { color: '#666', fontSize: 13 }
}
],
series: [ series: [
{ {
type: 'heatmap', name: "OD图",
// pageSize: 20, type: "heatmap",
pointSize: 10, data: this.ODhanlde(odData),
blurSize: 10, label: {
data: [ normal: {
[0, 0, 100], show: true,
[0, 1, 100], },
[0, 2, 100], },
[0, 3, 100],
// [0, 4, 100],
// [0, 5, 100],
// [0, 6, 200],
[1, 0, 120],
[1, 1, 120],
[1, 2, 125],
[1, 3, 120],
// [1, 4, 120],
// [1, 5, 120],
// [1, 6, 120],
[2, 0, 120],
[2, 1, 140],
[2, 2, 140],
[2, 3, 140],
// [2, 4, 140],
// [2, 5, 140],
// [2, 6, 140],
[3, 0, 200],
[3, 1, 200],
[3, 2, 200],
[3, 3, 200]
// [3, 4, 200],
// [3, 5, 200],
// [3, 6, 200],
// [4, 4, 300],
// [4, 5, 300],
// [4, 6, 300]
],
label: { show: true, color: '#fff' },
itemStyle: { itemStyle: {
borderColor: 'rgba(255, 255, 255, 0.5)', emphasis: {
emphasis: { shadowBlur: 0, shadowColor: 'rgba(255, 255, 255, 0.5)' } shadowBlur: 10,
} shadowColor: "rgba(120, 0, 0, 0.5)",
} },
] },
},
],
}; };
myChart.setOption(option); myChart.setOption(option);
window.addEventListener('resize', function () { window.addEventListener('resize', function () {
myChart.resize(); myChart.resize();
@ -144,29 +171,15 @@ export default {
} }
}, },
mounted() { mounted() {
// if (this.list) {
// this.drawThermalChart()
// }
}, },
watch: { watch: {
list: {
handler(newVal) {
// this.odData = []
// console.log(newVal ,'1111111111');
// if (newVal) {
// newVal[newVal.length - 1].ob_data.forEach(ele => {
// ele.forEach(item => {
// this.odData.push([])
// })
// })
// }
// console.log(this.odData,'155');
this.drawThermalChart();
},
// immediate:true
}
} }
}; };
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -1,56 +0,0 @@
<template>
<div class="setion">
<div class="border">
<detailDialog />
<thermalChart :pageType="pageType" :list="dataArr" :status="triggerType" :title="title" />
</div>
</div>
</template>
<script>
import lineChart from '../chart/lineChart.vue';
import barChart from '../chart/barChart.vue';
import tableShow from '../chart/tableShow.vue';
import detailDialog from '../chart/detailDialog.vue';
import thermalChart from '../chart/thermalChart.vue';
import regionTable from '../chart/regionTable.vue';
export default {
name: 'OD', //od
components: {
lineChart,
barChart,
tableShow,
detailDialog,
thermalChart,
regionTable
},
props: ['pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'],
data() {
return {
};
},
methods: {},
mounted() { },
watch: {
dataArr: {
handler(newVal) {
console.log(newVal,'292929');
}
}
}
};
</script>
<style scoped>
.typeContent {
box-sizing: border-box;
}
.border {
width: 100%;
margin-bottom: 20px;
position: relative;
}
</style>

View File

@ -6,10 +6,10 @@
<div class="typeContent"> <div class="typeContent">
<div v-if="newDataArr && newDataArr.length != 0 && newDataArr != undefined"> <div v-if="newDataArr && newDataArr.length != 0 && newDataArr != undefined">
<div v-if="title == '类型'" style="display:flex"> <div v-if="title == '类型'" style="display:flex">
<el-card v-for="(n, i) in newDataArr[0].type_data" :key="i" style="width: 150px; margin-bottom: 20px; text-align: center"> <el-card v-for="(n, i) in newDataArr[0].type_data" :key="i"
style="width: 150px; margin-bottom: 20px; text-align: center">
<div> <div>
<span style="font-size: 15px;">{{ n.name }}</span <span style="font-size: 15px;">{{ n.name }}</span><br />
><br />
<span style="font-size: 30px; font-weight: bold">{{ n.quantity }}</span> <span style="font-size: 30px; font-weight: bold">{{ n.quantity }}</span>
</div> </div>
<div> <div>
@ -28,12 +28,14 @@
{{ getTotal(newDataArr) }} {{ getTotal(newDataArr) }}
</span> </span>
</div> </div>
<div style="font-size: 30px; font-weight: bold" v-if="title == '速度' && dataArr.length != 0 && dataArr != undefined"> <div style="font-size: 30px; font-weight: bold"
v-if="title == '速度' && dataArr.length != 0 && dataArr != undefined">
<span style="font-size: 15px;">速度</span><br /> <span style="font-size: 15px;">速度</span><br />
<!-- <span style="font-size: 30px; font-weight: bold">{{ typeValue.speed }}</span> --> <!-- <span style="font-size: 30px; font-weight: bold">{{ typeValue.speed }}</span> -->
<span style="font-size: 30px; font-weight: bold">{{ newDataArr[0].speed }}</span> <span style="font-size: 30px; font-weight: bold">{{ newDataArr[0].speed }}</span>
</div> </div>
<div style="font-size: 30px; font-weight: bold" v-if="title == '流量' && dataArr.length != 0 && dataArr != undefined"> <div style="font-size: 30px; font-weight: bold"
v-if="title == '流量' && dataArr.length != 0 && dataArr != undefined">
<span style="font-size: 15px;">流量</span><br /> <span style="font-size: 15px;">流量</span><br />
<span style="font-size: 30px; font-weight: bold">{{ newDataArr[0].flow }}</span> <span style="font-size: 30px; font-weight: bold">{{ newDataArr[0].flow }}</span>
</div> </div>
@ -68,9 +70,9 @@
<div class="tableTitle" v-if="newDataArr && newDataArr.length != 0 && newDataArr != undefined"> <div class="tableTitle" v-if="newDataArr && newDataArr.length != 0 && newDataArr != undefined">
<div> <div>
<span <span
style="width: 10px;height:10px;border-radius: 50%;background-color: #3297ff;display: inline-block;vertical-align: middle;margin-right: 8px;" style="width: 10px;height:10px;border-radius: 50%;background-color: #3297ff;display: inline-block;vertical-align: middle;margin-right: 8px;"></span>
></span> <span style="font-size:18px;">{{ this.chartName + '-' + this.componentName + '-' + '表格' + '-' +
<span style="font-size:18px;">{{ this.chartName + '-' + this.componentName + '-' + '表格' + '-' + triggerType }}</span> triggerType }}</span>
</div> </div>
<div class="tableTime"> <div class="tableTime">
{{ newDataArr[0].time ? newDataArr[0].time : '' }} {{ newDataArr[0].time ? newDataArr[0].time : '' }}
@ -85,55 +87,28 @@
</div> </div>
<div class="border" v-if="echartArr.includes('曲线图')"> <div class="border" v-if="echartArr.includes('曲线图')">
<detailDialog /> <detailDialog />
<lineChart <lineChart :componentName="componentName" :chartName="chartName" :pageType="pageType" :list="newDataArr"
:componentName="componentName" :status="triggerType" :title="title" :typeValue="typeValue" ref="lineChartRef" />
:chartName="chartName"
:pageType="pageType"
:list="newDataArr"
:status="triggerType"
:title="title"
:typeValue="typeValue"
ref="lineChartRef"
/>
</div> </div>
<div class="border" v-if="echartArr.includes('饼状图')"> <div class="border" v-if="echartArr.includes('饼状图')">
<detailDialog /> <detailDialog />
<pieChart <pieChart :componentName="componentName" :chartName="chartName" :pageType="pageType" :list="newDataArr"
:componentName="componentName" :status="triggerType" :title="title" :typeValue="typeValue" ref="pieChartRef" />
:chartName="chartName"
:pageType="pageType"
:list="newDataArr"
:status="triggerType"
:title="title"
:typeValue="typeValue"
ref="pieChartRef"
/>
</div> </div>
<div class="border" v-if="echartArr.includes('均值图')"> <div class="border" v-if="echartArr.includes('均值图')">
<detailDialog /> <detailDialog />
<avgChart <avgChart ref="avgChartRef" :componentName="componentName" :chartName="chartName" :pageType="pageType"
ref="avgChartRef" :list="newDataArr" :status="triggerType" :title="title" :typeValue="typeValue" />
:componentName="componentName"
:chartName="chartName"
:pageType="pageType"
:list="newDataArr"
:status="triggerType"
:title="title"
:typeValue="typeValue"
/>
</div> </div>
<div class="border" v-if="echartArr.includes('直方图')"> <div class="border" v-if="echartArr.includes('直方图')">
<detailDialog /> <detailDialog />
<barChart <barChart :componentName="componentName" :chartName="chartName" :pageType="pageType" :list="newDataArr"
:componentName="componentName" :status="triggerType" :title="title" :typeValue="typeValue" ref="barChartRef" />
:chartName="chartName" </div>
:pageType="pageType" <div class="border" v-if="echartArr.includes('矩阵图')">
:list="newDataArr" <detailDialog />
:status="triggerType" <thermalChart :componentName="componentName" :pageType="pageType" :list="newDataArr"
:title="title" :status="triggerType" :title="title" :typeValue="typeValue" ref="ODChartRef" />
:typeValue="typeValue"
ref="barChartRef"
/>
</div> </div>
</div> </div>
</template> </template>
@ -146,9 +121,10 @@ import tableShow from '../chart/tableShow.vue';
import pieChart from '../chart/pieChart.vue'; import pieChart from '../chart/pieChart.vue';
import detailDialog from '../chart/detailDialog.vue'; import detailDialog from '../chart/detailDialog.vue';
import regionTable from '../chart/regionTable.vue'; import regionTable from '../chart/regionTable.vue';
import thermalChart from '../chart/thermalChart.vue';
export default { export default {
name: 'typeChart', // name: 'typeChart', //
props: ['typeValue', 'pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName'], props: ['typeValue', 'pageType', 'triggerType', 'dataArr', 'echartArr', 'componentName', 'title', 'chartName','startEndData'],
components: { components: {
lineChart, lineChart,
barChart, barChart,
@ -156,7 +132,8 @@ export default {
detailDialog, detailDialog,
regionTable, regionTable,
pieChart, pieChart,
avgChart avgChart,
thermalChart
}, },
data() { data() {
return { return {
@ -175,7 +152,8 @@ export default {
}; };
}, },
created() { created() {
console.log(this.title); // console.log(this.title);
console.log(this.componentName);
}, },
methods: { methods: {
// //

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="content-box"> <div class="content-box">
<div class="container"> <div class="container">
<p class="title">UPD服务设置</p> <p class="title">UDP服务设置</p>
<el-form :model="form" label-position="left" label-width="180px"> <el-form :model="form" label-position="left" label-width="180px">
<el-form-item label="upd服务器端口:"> <el-form-item label="UDP服务器端口:">
<el-input-number v-model="form.name" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="form.name" controls-position="right" :min="1"></el-input-number>
</el-form-item> </el-form-item>
@ -16,16 +16,20 @@
bytes bytes
</el-form-item> </el-form-item>
</el-form> </el-form>
<div>
<el-button type="primary" @click="saveBtn()">保存</el-button>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getUpdInfoApi } from '../../api/aboutMachine'; import { getUpdInfoApi ,setUpdInfoApi} from '../../api/aboutMachine';
export default { export default {
data() { data() {
return { return {
form: { form: {
id:'1',
name: 55570, name: 55570,
delivery: true, delivery: true,
bytes: 4096 bytes: 4096
@ -33,14 +37,32 @@ export default {
}; };
}, },
methods: { methods: {
//
getUpd() { getUpd() {
getUpdInfoApi() getUpdInfoApi()
.then(res => { .then(res => {
console.log(res.data.data); console.log(res.data);
this.form.id = res.data.data.id
this.form.name = res.data.data.udp_port
this.form.delivery = res.data.data.is_qiong == '是' ? true:false
this.form.bytes = res.data.data.max_pack + ''
}) })
.catch(err => { .catch(err => {
this.$message.error(res.data.msg); this.$message.error(res.data.msg);
}); });
},
saveBtn(){
let formData = new FormData();
formData.append('id', this.form.id);
formData.append('udp_port', this.form.name);
formData.append('is_qiong', this.form.delivery==true?'是':'否');
formData.append('max_pack', this.form.bytes );
setUpdInfoApi(formData).then(res=>{
this.$message.success('保存' + res.data.msg);
}).catch(error=>{
// this.$message.error(res.data.msg);
})
} }
}, },
mounted() { mounted() {

View File

@ -6,12 +6,8 @@
<div class="dataBoard" ref="dataBoard" v-if="activeName == 'second'"> <div class="dataBoard" ref="dataBoard" v-if="activeName == 'second'">
<!-- 断面 --> <!-- 断面 -->
<div class="plate1" ref="plate1"> <div class="plate1" ref="plate1">
<div <div :class="sectionData.length <= 1 ? 'sectionBox' : 'section'" ref="section" v-for="s in sectionData"
:class="sectionData.length <= 1 ? 'sectionBox' : 'section'" :key="s.analogAreaComponentId">
ref="section"
v-for="s in sectionData"
:key="s.analogAreaComponentId"
>
<template> <template>
<div ref="sectionContent"> <div ref="sectionContent">
<div> <div>
@ -22,59 +18,34 @@
</div> </div>
<el-tabs> <el-tabs>
<el-collapse v-model="acticveName" @change="handleChange"> <el-collapse v-model="acticveName" @change="handleChange">
<div style="position:relative" v-for="o in s.children" :key="o.analogAreaComponentId"> <div style="position:relative" v-for="o in s.children"
:key="o.analogAreaComponentId">
<div class="titleGnag"></div> <div class="titleGnag"></div>
<el-collapse-item :title="o.componentName + o.timeMode" :name="o.analogAreaComponentId" > <el-collapse-item :title="o.componentName + o.timeMode"
<OD :name="o.analogAreaComponentId">
v-if="o.componentName.includes('OD')"
:pageType="o.graphicType"
triggerType="触发"
:componentName="o.componentName"
:echartArr="o.presentationForm"
:dataArr="o.trigger"
:title="o.componentName.split('_')[0]"
:chartName="o.combinationName"
/>
<!--触发的组件 --> <!--触发的组件 -->
<!--触发的组件 --> <typeChart ref="typeChartRef" v-if="o.timeMode === '触发'"
<typeChart :pageType="o.graphicType" :triggerType="o.timeMode"
ref="typeChartRef" :componentName="o.componentName" :dataArr="o.trigger"
v-if="o.timeMode === '触发'" :echartArr="o.presentationForm" :title="o.componentName.split('_')[0]"
:pageType="o.graphicType" :chartName="o.combinationName" :typeValue="typeTimeMode"
:triggerType="o.timeMode" :startEndData="{ start: o.startSectionNames, end: o.endSectionNames }" />
:componentName="o.componentName" <typeChart ref="typeChartRef1" v-if="o.timeMode === '周期时刻'"
:dataArr="o.trigger" :pageType="o.graphicType" :triggerType="o.timeMode"
:echartArr="o.presentationForm" :componentName="o.componentName" :dataArr="o.cycleTimeData"
:title="o.componentName.split('_')[0]" :echartArr="o.presentationForm" :title="o.componentName.split('_')[0]"
:chartName="o.combinationName" :chartName="o.combinationName" :typeValue="typeCycleTimeData"
:typeValue="typeTimeMode" :startEndData="{ start: o.startSectionNames, end: o.endSectionNames }" />
/>
<typeChart
ref="typeChartRef1"
v-if="o.timeMode === '周期时刻'"
:pageType="o.graphicType"
:triggerType="o.timeMode"
:componentName="o.componentName"
:dataArr="o.cycleTimeData"
:echartArr="o.presentationForm"
:title="o.componentName.split('_')[0]"
:chartName="o.combinationName"
:typeValue="typeCycleTimeData"
/>
<!-- 周期统计的组件 --> <!-- 周期统计的组件 -->
<typeChart <typeChart ref="typeChartRef2" style="width: 100%;"
ref="typeChartRef2" v-if="o.timeMode === '周期统计'" :pageType="o.graphicType"
style="width: 100%;" :triggerType="o.timeMode" :componentName="o.componentName"
v-if="o.timeMode === '周期统计'" :dataArr="o.cycleStatisticsData" :echartArr="o.presentationForm"
:pageType="o.graphicType" :title="o.componentName.split('_')[0]" :chartName="o.combinationName"
:triggerType="o.timeMode"
:componentName="o.componentName"
:dataArr="o.cycleStatisticsData"
:echartArr="o.presentationForm"
:title="o.componentName.split('_')[0]"
:chartName="o.combinationName"
:typeValue="typeCycleStatistics" :typeValue="typeCycleStatistics"
/> :startEndData="{ start: o.startSectionNames, end: o.endSectionNames }" />
</el-collapse-item> </el-collapse-item>
</div> </div>
</el-collapse> </el-collapse>
@ -90,13 +61,12 @@
</template> </template>
<script> <script>
import typeChart from '../../components/target/typeChart.vue'; import typeChart from '../../components/target/typeChart.vue';
import OD from '../../components/target/OD.vue';
// import {mapMutation} from 'vuex' // import {mapMutation} from 'vuex'
import { getComponentSection } from '../../api/index'; import { getComponentSection } from '../../api/index';
export default { export default {
components: { components: {
typeChart, typeChart,
OD
}, },
props: { props: {
activeName: { activeName: {
@ -172,6 +142,15 @@ export default {
// this.getNew() // this.getNew()
}, },
methods: { methods: {
//
handleChange(val) {
this.$nextTick(function () {
var myEvent = new Event("resize");
window.dispatchEvent(myEvent);
});
},
getNew() { getNew() {
// this.idVal = ; // this.idVal = ;
getComponentSection({ VideoId: this.$route.query.id, Number: 10 }).then(res => { getComponentSection({ VideoId: this.$route.query.id, Number: 10 }).then(res => {
@ -179,18 +158,10 @@ export default {
// console.log(res.data.data, ''); // console.log(res.data.data, '');
this.componentList = res.data.data; this.componentList = res.data.data;
this.siftData(); this.siftData();
} }
}); });
}, },
//
handleChange() {
this.$nextTick(function () {
var myEvent = new Event("resize");
window.dispatchEvent(myEvent);
});
},
siftData() { siftData() {
this.sectionArr = []; this.sectionArr = [];
this.sectionData = []; this.sectionData = [];
@ -325,7 +296,6 @@ export default {
handler(newVal) { handler(newVal) {
this.triggerList = newVal; this.triggerList = newVal;
// //
// console.log(newVal, '');
var _this = this var _this = this
if (newVal.length != 0 && _this.sectionData) { if (newVal.length != 0 && _this.sectionData) {
_this.classify.forEach((ele, index) => { _this.classify.forEach((ele, index) => {
@ -344,7 +314,7 @@ export default {
} }
ele.trigger.unshift(item); ele.trigger.unshift(item);
_this.$nextTick(() => { _this.$nextTick(() => {
if(_this.$refs.typeChartRef1!=undefined){ if (_this.$refs.typeChartRef != undefined) {
for (let i = 0; i < _this.$refs.typeChartRef.length; i++) { for (let i = 0; i < _this.$refs.typeChartRef.length; i++) {
// console.log(_this.$refs.typeChartRef[i], ''); // console.log(_this.$refs.typeChartRef[i], '');
let itemTypeChart = _this.$refs.typeChartRef[i] let itemTypeChart = _this.$refs.typeChartRef[i]
@ -367,7 +337,9 @@ export default {
if (itemTypeChart.echartArr.includes('均值图') && itemTypeChart.$refs.avgChartRef != undefined) { if (itemTypeChart.echartArr.includes('均值图') && itemTypeChart.$refs.avgChartRef != undefined) {
itemTypeChart.$refs.avgChartRef.drawBar(itemTypeChart.dataArr[0]) itemTypeChart.$refs.avgChartRef.drawBar(itemTypeChart.dataArr[0])
} }
if (itemTypeChart.componentName.includes('OD') && itemTypeChart.$refs.ODChartRef != undefined && itemTypeChart.dataArr[0].ob_data.length != 0) {
itemTypeChart.$refs.ODChartRef.drawThermalChart(itemTypeChart.dataArr[0].ob_data, itemTypeChart.startEndData)
}
} }
} }
} }
@ -433,6 +405,9 @@ export default {
if (itemTypeChartRef1.echartArr.includes('均值图') && itemTypeChartRef1.$refs.avgChartRef != undefined) { if (itemTypeChartRef1.echartArr.includes('均值图') && itemTypeChartRef1.$refs.avgChartRef != undefined) {
itemTypeChartRef1.$refs.avgChartRef.drawBar(itemTypeChartRef1.dataArr[0]) itemTypeChartRef1.$refs.avgChartRef.drawBar(itemTypeChartRef1.dataArr[0])
} }
if (itemTypeChartRef1.componentName.includes('OD') && itemTypeChartRef1.$refs.ODChartRef != undefined && itemTypeChartRef1.dataArr[0].ob_data.length != 0) {
itemTypeChartRef1.$refs.ODChartRef.drawThermalChart(itemTypeChartRef1.dataArr[0].ob_data, itemTypeChartRef1.startEndData)
}
} }
} }
} }
@ -487,6 +462,9 @@ export default {
if (itemTypeChartRef1.echartArr.includes('均值图') && itemTypeChartRef1.$refs.avgChartRef != undefined) { if (itemTypeChartRef1.echartArr.includes('均值图') && itemTypeChartRef1.$refs.avgChartRef != undefined) {
itemTypeChartRef1.$refs.avgChartRef.drawBar(itemTypeChartRef1.dataArr[0]) itemTypeChartRef1.$refs.avgChartRef.drawBar(itemTypeChartRef1.dataArr[0])
} }
if (itemTypeChartRef1.componentName.includes('OD') && itemTypeChartRef1.$refs.ODChartRef != undefined && itemTypeChartRef1.dataArr[0].ob_data.length != 0) {
itemTypeChartRef1.$refs.ODChartRef.drawThermalChart(itemTypeChartRef1.dataArr[0].ob_data, itemTypeChartRef1.startEndData)
}
} }
} }
} }
@ -644,6 +622,7 @@ export default {
position: absolute; position: absolute;
top: 14px; top: 14px;
} }
.el-collapse-item__header { .el-collapse-item__header {
font-size: 15px; font-size: 15px;
margin-left: 10px; margin-left: 10px;

View File

@ -8,39 +8,25 @@
<el-button type="primary" style="margin-left:10px" @click="saveHostName" size="small">保存</el-button> <el-button type="primary" style="margin-left:10px" @click="saveHostName" size="small">保存</el-button>
</el-form-item> </el-form-item>
<el-form-item label="时间:" :label-width="formLabelWidth"> <el-form-item label="时间:" :label-width="formLabelWidth">
<el-date-picker <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
type="datetime" v-model="sizeForm.date1" style="width: 50%;" autocomplete="off"></el-date-picker>
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"
v-model="sizeForm.date1"
style="width: 50%;"
autocomplete="off"
></el-date-picker>
<el-button @click="saveTime" type="primary" style="margin-left:10px" size="small">校时</el-button> <el-button @click="saveTime" type="primary" style="margin-left:10px" size="small">校时</el-button>
</el-form-item> </el-form-item>
<p>备份&恢复</p> <p>备份&恢复</p>
<el-form-item label="备份服务器设置:"> <el-form-item label="备份服务器设置:">
<el-col :span="12"> <el-col :span="12">
<el-button type="primary" size="small">备份</el-button> <el-button type="primary" size="small" @click="backupHandle()">备份</el-button>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="还原服务器设置:"> <el-form-item label="还原服务器设置:">
<el-col :span="3"> <el-col :span="3">
<el-button type="primary" disabled size="small">备份</el-button> <el-button type="primary" size="small" @click="restoreHandle()">备份</el-button>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-upload <el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/"
class="upload-demo" :on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove" multiple
action="https://jsonplaceholder.typicode.com/posts/" :limit="3" :on-exceed="handleExceed" :file-list="fileList">
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
</el-upload> </el-upload>
</el-col> </el-col>
@ -65,7 +51,8 @@
<el-form-item label="跳帧设置:"> <el-form-item label="跳帧设置:">
<el-select v-model="FPS" size="mini" placeholder="请选择"> <el-select v-model="FPS" size="mini" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select> </el-select>
<i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>默认取值单路视频流 0 2-3 路视频流 <i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>默认取值单路视频流 0 2-3 路视频流
14-6 路视频流 4 14-6 路视频流 4
@ -77,7 +64,7 @@
</template> </template>
<script> <script>
import { getHostInfoApi, resetReboot } from '../../api/aboutMachine'; import { getHostInfoApi, resetReboot, ConfigBackup, ConfigRestore, ResetFactory } from '../../api/aboutMachine';
import { getQuanjszData } from '../../api/index'; import { getQuanjszData } from '../../api/index';
import serverUrl from '../../config/apiurl.js'; import serverUrl from '../../config/apiurl.js';
import { setQuanjsz } from '@/api/index'; import { setQuanjsz } from '@/api/index';
@ -199,6 +186,62 @@ export default {
}); });
}); });
}, },
//
backupHandle() {
this.$confirm('此操作将备份操作, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
ConfigBackup().then(res => {
this.$message({
type: 'success',
message: '备份' + res.data.msg
});
}).catch(() => {
this.$message.error(res.data.msg);
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消备份'
});
});
},
//
restoreHandle() {
this.$confirm('此操作将还原服务器设置, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
//
ConfigRestore().then(res => {
console.log(res.data, '还原服务器设置');
this.$message({
type: 'success',
message: '还原'
});
}).catch(() => {
this.$message.error(res.data.msg);
})
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消备份'
});
});
},
//
handleReset() { handleReset() {
this.$confirm('此操作将重置默认值, 是否继续?', '提示', { this.$confirm('此操作将重置默认值, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
@ -206,10 +249,17 @@ export default {
type: 'warning' type: 'warning'
}) })
.then(() => { .then(() => {
// this.$message({ //
// type: 'success', ResetFactory().then(res => {
// message: '!' // console.log(res.data,'');
// }); this.$message({
type: 'success',
message: '重置' + res.data.msg
});
}).catch(()=>{
this.$message.error(res.data.msg);
})
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
@ -311,12 +361,15 @@ export default {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
} }
/deep/ .el-form-item { /deep/ .el-form-item {
margin-bottom: 15px; margin-bottom: 15px;
} }
.container { .container {
width: 100%; width: 100%;
height: 100%; height: 100%;
p { p {
width: 95%; width: 95%;
font-size: 25px; font-size: 25px;