Merge remote-tracking branch 'origin/master'

master
xs 5 months ago
commit b0549805fa

@ -1,8 +1,9 @@
<template>
<div style="display: inline-block;width: 100%;height: 100% ">
<div style="background-color: #094170">
<div class="scrollTable" style="font-weight: bold;" :style="`width:calc(${100/defaultData.th.length}%)`" v-for="i in defaultData.th">
{{i}}
<div class="scrollTable" style="font-weight: bold;" :style="`width:calc(${100/defaultData.th.length}%)`"
v-for="i in defaultData.th">
{{ i }}
</div>
</div>
<vue-seamless-scroll
@ -31,14 +32,14 @@ import Vue from "vue";
import vueSeamlessScroll from "vue-seamless-scroll";
export default {
props: ['defaultData','defaultTableData'],
props: ['defaultData', 'defaultTableData'],
expose: ['getRequestData'],
components: {
vueSeamlessScroll,
},
data() {
return {
tableData:[],
tableData: [],
chartTableOption: {
step: 0.5, //
limitMoveNum: 3, // this.dataList.length
@ -58,7 +59,7 @@ export default {
},
deep: true
},
defaultTableData:{
defaultTableData: {
handler(a, b) {
this.getOption()
},
@ -66,21 +67,21 @@ export default {
}
},
async mounted() {
await this.getData()
setTimeout(async () => {
await this.getData()
}, 500)
this.getOption()
setInterval(async () => {
await this.getData()
}, 1000*10)
}, 1000 * 60)
},
methods: {
async getData(e) {
let data = await this.$getFinalData(this.defaultData.requests)
console.log('data', data)
this.$set(this, 'networkData', data)
},
getOption() {
this.tableData = this.defaultTableData
console.log('this.tableData',this.tableData)
},
},
}

@ -53,10 +53,6 @@
</div>
</el-form>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-collapse-item>
<el-collapse-item title="数据配置" name="2">
@ -65,6 +61,10 @@
</div>
</el-collapse-item>
</el-collapse>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-col>
<el-col :span="12" style="height: 100%">

@ -57,10 +57,6 @@
</div>
</el-form>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-collapse-item>
<el-collapse-item title="数据配置" name="2">
@ -69,6 +65,10 @@
</div>
</el-collapse-item>
</el-collapse>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-col>
<el-col :span="12" style="height: 100%">

@ -30,10 +30,6 @@
</el-form-item>
</el-form>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-collapse-item>
<el-collapse-item title="数据配置" name="2">
@ -42,6 +38,10 @@
</div>
</el-collapse-item>
</el-collapse>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-col>
<el-col :span="12" style="height: 100%">
@ -170,8 +170,13 @@ export default {
},
dataChange() {
this.pieData = this.networkData[this.defaultData.configForm.data]
let keys = []
this.pieData.forEach(ee=>{
keys = [...new Set(keys.concat(Object.keys(ee)))]
})
console.log('this.pieData', this.pieData)
this.option = Object.keys(this.pieData?.[0]).map(e => {
this.option = keys.map(e => {
return {
value: e,
label: e

@ -48,10 +48,6 @@
</el-form-item>
</el-form>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-collapse-item>
<el-collapse-item title="数据配置" name="2">
@ -60,6 +56,10 @@
</div>
</el-collapse-item>
</el-collapse>
<div style="text-align: center;height: 60px;line-height: 60px">
<el-button type="primary" @click="onSubmit"></el-button>
<el-button>重置</el-button>
</div>
</div>
</el-col>
<el-col :span="12" style="height: 100%">
@ -87,9 +87,12 @@ export default {
props: ['defaultData', 'isDialog'],
watch: {
'defaultData.requests': {
handler() {
async handler() {
setTimeout(async ()=>{
await this.getData()
this.dataChange()
},1000)
console.log('this.networkData1122')
this.dataChange()
},
deep: true
},
@ -109,12 +112,12 @@ export default {
this.dataChange()
setInterval(async () => {
await this.getData()
}, 1000 * 10)
}, 1000 * 60)
},
methods: {
async getData(e) {
console.log('data1-1', data)
let data = await this.$getFinalData(this.defaultData.requests)
console.log('data', data)
this.$set(this, 'networkData', data)
},
async onSubmit() {
@ -124,7 +127,11 @@ export default {
},
dataChange() {
this.tableData = this.networkData[this.defaultData.tableDataKey]
let keys = Object.keys(this.tableData?.[0] || {})
let keys = []
this.tableData.forEach(ee=>{
keys = [...new Set(keys.concat(Object.keys(ee)))]
})
this.tdkeys = keys
}
},

@ -206,7 +206,14 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间周期">
<el-form-item label="是否按照实时时间计算" >
<el-switch
v-model="equipmentIntervalForm.isRealTime"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
<el-form-item label="时间周期" v-if="!equipmentIntervalForm.isRealTime">
<el-date-picker
@change="timeChange"
v-model="equipmentIntervalForm.time"
@ -360,6 +367,7 @@ export default {
this.$set(this, 'equipmentIntervalForm', {
intervalType: firstDevice.intervalType,
interval: firstDevice.interval,
isRealTime: firstDevice.isRealTime,
time: [this.$parseTime(firstDevice?.startTime), this.$parseTime(firstDevice?.endTime)]
})
},
@ -404,6 +412,7 @@ export default {
this.$set(this.requests[k], 'endTime', new Date(this.equipmentIntervalForm.time[1]).getTime())
}
})
this.setIntervalDialogVisible = false
},
subtractRequest(key) {
if (this.requests?.length > 1) {
@ -438,15 +447,14 @@ export default {
this.addRequestForm = {}
},
addEquipmentConfirm() {
console.log('123123,345345,12313',this.addEquipmentForm)
console.log('123123,345345,12313',this.requests)
if (this.updateDeviceFlag) {
this.$set(this.requests, this.updateDeviceIndex, Vue.observable({
...this.addEquipmentForm,
interval: this.equipmentIntervalForm.interval,
intervalType: this.equipmentIntervalForm.intervalType,
startTime: new Date(this.equipmentIntervalForm.time[0]).getTime(),
endTime: new Date(this.equipmentIntervalForm.time[1]).getTime(),
isRealTime:this.equipmentIntervalForm.isRealTime,
startTime: new Date(this.equipmentIntervalForm.time?.[0]).getTime(),
endTime: new Date(this.equipmentIntervalForm.time?.[1]).getTime(),
type: 2,
connectionStatus: -1,
isOpen: true
@ -456,8 +464,9 @@ export default {
...this.addEquipmentForm,
interval: this.equipmentIntervalForm.interval,
intervalType: this.equipmentIntervalForm.intervalType,
startTime: new Date(this.equipmentIntervalForm.time[0]).getTime(),
endTime: new Date(this.equipmentIntervalForm.time[1]).getTime(),
isRealTime:this.equipmentIntervalForm.isRealTime,
startTime: new Date(this.equipmentIntervalForm.time?.[0]).getTime(),
endTime: new Date(this.equipmentIntervalForm.time?.[1]).getTime(),
type: 2,
connectionStatus: -1,
isOpen: true
@ -477,16 +486,18 @@ export default {
},
testDeviceConnection(i, k) {
this.$set(this.requests[k], 'connectionStatus', 0)
getHistoryData({
this.$getDeviceData({
deviceModeId: i.deviceModeId,
functionIdentifier: i.functionIdentifier,
interval: i.interval,
isRealTime:i.isRealTime,
"sceneId": 144,
"deviceId": i.deviceId,
startTime: i.startTime,
endTime: i.endTime,
intervalType: 1 || i.intervalType,
}).then(e => {
console.log('eee',e)
// this.$set(this.requests[k], 'connectionStatus', e.status ? 1 : 2)
this.$set(this.requests[k], 'connectionStatus', e.code === 200 ? 1 : 2)
this.$set(this.requests[k], 'request', e.data)
@ -593,8 +604,9 @@ export default {
},
async setDeviceMapping(i, k) {
if (!this.requests?.[k]?.request) {
await getHistoryData({
await this.$getDeviceData({
deviceModeId: i.deviceModeId,
isRealTime:i.isRealTime,
functionIdentifier: i.functionIdentifier,
interval: i.interval,
"sceneId": 144,
@ -628,11 +640,18 @@ export default {
children: fun(v[e])
}
} else {
let keys = []
if(Array.isArray(v[e])){
v[e].forEach(ee=>{
keys = [...new Set(keys.concat(Object.keys(ee)))]
})
}
console.log('keys',keys)
return {
value: e,
label: e,
type: Array.isArray(v[e]) ? 'Array' : 'String',
enum: Array.isArray(v[e]) ? Object.keys(v[e]?.[0] || {}) : [],
enum: Array.isArray(v[e]) ? keys : [],
}
}
})
@ -640,6 +659,7 @@ export default {
let option = fun(data)
this.options = option
console.log('option',option)
if (this.mappingForm.isArray) {
this.mappingChange()
}

@ -50,7 +50,8 @@ import {
clearArrNull,
clearNull,
getFinalData,
testColor
testColor,
getDeviceData
} from '@/utils/scrin'
import request from '@/utils/request'
@ -75,6 +76,7 @@ Vue.prototype.$request = request
Vue.prototype.$detectingNullValues = detectingNullValues
Vue.prototype.$getFinalData = getFinalData
Vue.prototype.$testColor = testColor
Vue.prototype.$getDeviceData = getDeviceData
// 全局组件挂载
Vue.component('DictTag', DictTag)

@ -2,6 +2,148 @@ import {interfaceRequest} from "@/components/networkRequest/requestSend";
import {getHistoryData} from "@/api/configuration/equipment";
import Vue from 'vue'
const getDeviceData = async (data) => {
let getTime = (e) => {
if (e === '1') {
return [(new Date().getTime() - (1000 * 60 * 60 * 24)), (new Date().getTime())]
}
if (e === '2') {
return [(new Date().getTime() - (1000 * 60 * 60 * 24)), (new Date().getTime())]
}
if (e === '3') {
return [(new Date().getTime() - (1000 * 60 * 60 * 24 * 7)), (new Date().getTime())]
}
if (e === '4') {
return [(new Date().getTime() - (1000 * 60 * 60 * 24 * 30)), (new Date().getTime())]
}
if (e === '5') {
return [(new Date().getTime() - (1000 * 60 * 60 * 24 * 365)), (new Date().getTime())]
}
}
const getTimeList = (e, isRealTime, startTimeArg, endTimeArg) => {
let startTime, endTime
if (!isRealTime) {
startTime = startTimeArg
endTime = endTimeArg
} else {
startTime = getTime(e)[0]
endTime = getTime(e)[1]
}
if (e === '1') {
let scope = Math.ceil((endTime - startTime) / (1000 * 60 * 60)) || 0
let arr = Array(scope).fill(1).map((v, k) => {
return parseTime(endTime - (1000 * 60 * 60) * k, '{y}-{m}-{d} {h}:{i}')
})
return arr.reverse()
}
if (e === '2') {
let scope = Math.ceil((endTime - startTime) / (1000 * 60 * 60)) || 0
let arr = Array(scope).fill(1).map((v, k) => {
return parseTime(endTime - (1000 * 60 * 60) * k, '{y}-{m}-{d} {h}')
})
return arr.reverse()
}
if (e === '3') {
let scope = Math.ceil((endTime - startTime) / (1000 * 60 * 60 * 24)) || 0
let arr = Array(scope).fill(1).map((v, k) => {
return parseTime(endTime - (1000 * 60 * 60 * 24) * k, '{y}-{m}-{d}')
})
return arr.reverse()
}
if (e === '4') {
let scope = Math.ceil((endTime - startTime) / (1000 * 60 * 60 * 24)) || 0
let arr = Array(scope).fill(1).map((v, k) => {
return parseTime(endTime - (1000 * 60 * 60 * 24) * k, '{y}-{m}-{d}')
})
return arr.reverse()
}
if (e === '5') {
let scope = Math.ceil((endTime - startTime) / (1000 * 60 * 60 * 24 * 30)) || 0
let arr = Array(scope).fill(1).map((v, k) => {
return parseTime(endTime - (1000 * 60 * 60 * 24 * 30) * k, '{y}-{m}')
})
return arr.reverse()
}
}
const res2 = await getHistoryData({
deviceModeId: data.deviceModeId,
functionIdentifier: data.functionIdentifier,
interval: data.interval,
"sceneId": 144,
"deviceId": data.deviceId,
startTime: data.isRealTime ? getTime(data.interval)?.[0] : data.startTime,
endTime: data.isRealTime ? getTime(data.interval)?.[1] : data.endTime,
intervalType: 1 || data.intervalType,
})
if (data.isRealTime) {
if (data.interval === '1') {
let arr = getTimeList(data.interval, data.isRealTime)
res2.data.groupDeviceData.dataList = arr.map(v => {
let data = res2.data.groupDeviceData.dataList.find(vv => parseTime(vv.time, '{y}-{m}-{d} {h}:{i}') === v)
return {...data, time: v}
})
}
if (data.interval === '2') {
let arr = getTimeList(data.interval, data.isRealTime)
res2.data.groupDeviceData.dataList = arr.map(v => {
let data = res2.data.groupDeviceData.dataList.find(vv => parseTime(vv.time, '{y}-{m}-{d} {h}') === v)
return {...data, time: v}
})
}
if (data.interval === '3') {
let arr = getTimeList(data.interval, data.isRealTime)
console.log('arr', arr)
res2.data.groupDeviceData.dataList = arr.map(v => {
let data = res2.data.groupDeviceData.dataList.find(vv => parseTime(vv.time, '{y}-{m}-{d}') === v)
return {...data, time: v}
})
}
if (data.interval === '4') {
let arr = getTimeList(data.interval, data.isRealTime)
console.log('arr', arr)
res2.data.groupDeviceData.dataList = arr.map(v => {
let data = res2.data.groupDeviceData.dataList.find(vv => parseTime(vv.time, '{y}-{m}-{d}') === v)
return {...data, time: v}
})
}
if (data.interval === '5') {
let arr = getTimeList(data.interval, data.isRealTime)
console.log('arr', arr)
res2.data.groupDeviceData.dataList = arr.map(v => {
let data = res2.data.groupDeviceData.dataList.find(vv => parseTime(vv.time, '{y}-{m}') === v)
return {...data, time: v}
})
}
} else {
if (data.interval === '5') {
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}')}
})
} else if (data.interval === '4' || data.interval === '3') {
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}-{d}')}
})
} else {
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}-{d} {h}:{i}:{s}')}
})
}
}
debugger
console.log('res2222222', res2)
debugger
return res2
}
const mappingFunction = async (data, method) => {
if (data.type === 1) {
let res2 = await interfaceRequest(data)
@ -28,33 +170,12 @@ const mappingFunction = async (data, method) => {
}
if (data.type === 2) {
let res2 = await getHistoryData({
deviceModeId: data.deviceModeId,
functionIdentifier: data.functionIdentifier,
interval: data.interval,
"sceneId": 144,
"deviceId": data.deviceId,
startTime: data.startTime,
endTime: data.endTime,
intervalType: 1 || data.intervalType,
})
console.log('datadata', data.interval)
if (data.interval === '5') {
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}')}
})
} else if (data.interval === '4' || data.interval === '3') {
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}-{d}')}
})
}else{
res2.data.groupDeviceData.dataList = res2.data.groupDeviceData.dataList.map(e => {
return {...e, time: parseTime(e.time, '{y}-{m}-{d} {h}:{i}:{s}')}
})
}
let res2 = await getDeviceData(data)
console.log('res2666', res2)
let returnRes = {}
method?.mappingArr?.forEach(v => {
let res = res2.data
console.log(res)
for (let i of (v?.region || [])) {
if (res[i]) {
res = res[i]
@ -64,8 +185,10 @@ const mappingFunction = async (data, method) => {
}
}
if (v?.isArray && v?.mapData && Array.isArray(res)) {
res = res.map(e => e[v.mapData])
console.log('res10101010101',res)
res = res.map(e => e[v.mapData]||null)
}
console.log('res10101010101--1',res)
returnRes = {
...returnRes,
[v?.name]: res
@ -175,8 +298,9 @@ const clearObjNull = (e, data1) => {
return Object.keys(obj).length === 0 ? null : obj
}
const clearArrNull = (e, data1) => {
return e
if (!Array.isArray(e)) {
return null
return e
}
let arr = []
e.forEach(v => {
@ -288,5 +412,6 @@ export {
detectingNullValues,
getFinalData,
parseTime,
testColor
testColor,
getDeviceData
}

Loading…
Cancel
Save