Merge remote-tracking branch 'origin/master'

master
xs 5 months ago
commit b0549805fa

@ -1,7 +1,8 @@
<template> <template>
<div style="display: inline-block;width: 100%;height: 100% "> <div style="display: inline-block;width: 100%;height: 100% ">
<div style="background-color: #094170"> <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"> <div class="scrollTable" style="font-weight: bold;" :style="`width:calc(${100/defaultData.th.length}%)`"
v-for="i in defaultData.th">
{{ i }} {{ i }}
</div> </div>
</div> </div>
@ -66,21 +67,21 @@ export default {
} }
}, },
async mounted() { async mounted() {
setTimeout(async () => {
await this.getData() await this.getData()
}, 500)
this.getOption() this.getOption()
setInterval(async () => { setInterval(async () => {
await this.getData() await this.getData()
}, 1000*10) }, 1000 * 60)
}, },
methods: { methods: {
async getData(e) { async getData(e) {
let data = await this.$getFinalData(this.defaultData.requests) let data = await this.$getFinalData(this.defaultData.requests)
console.log('data', data)
this.$set(this, 'networkData', data) this.$set(this, 'networkData', data)
}, },
getOption() { getOption() {
this.tableData = this.defaultTableData this.tableData = this.defaultTableData
console.log('this.tableData',this.tableData)
}, },
}, },
} }

@ -53,10 +53,6 @@
</div> </div>
</el-form> </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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="数据配置" name="2"> <el-collapse-item title="数据配置" name="2">
@ -65,6 +61,10 @@
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </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> </div>
</el-col> </el-col>
<el-col :span="12" style="height: 100%"> <el-col :span="12" style="height: 100%">

@ -57,10 +57,6 @@
</div> </div>
</el-form> </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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="数据配置" name="2"> <el-collapse-item title="数据配置" name="2">
@ -69,6 +65,10 @@
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </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> </div>
</el-col> </el-col>
<el-col :span="12" style="height: 100%"> <el-col :span="12" style="height: 100%">

@ -30,10 +30,6 @@
</el-form-item> </el-form-item>
</el-form> </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> </div>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="数据配置" name="2"> <el-collapse-item title="数据配置" name="2">
@ -42,6 +38,10 @@
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </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> </div>
</el-col> </el-col>
<el-col :span="12" style="height: 100%"> <el-col :span="12" style="height: 100%">
@ -170,8 +170,13 @@ export default {
}, },
dataChange() { dataChange() {
this.pieData = this.networkData[this.defaultData.configForm.data] 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) console.log('this.pieData', this.pieData)
this.option = Object.keys(this.pieData?.[0]).map(e => { this.option = keys.map(e => {
return { return {
value: e, value: e,
label: e label: e

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

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

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

@ -2,6 +2,148 @@ import {interfaceRequest} from "@/components/networkRequest/requestSend";
import {getHistoryData} from "@/api/configuration/equipment"; import {getHistoryData} from "@/api/configuration/equipment";
import Vue from 'vue' 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) => { const mappingFunction = async (data, method) => {
if (data.type === 1) { if (data.type === 1) {
let res2 = await interfaceRequest(data) let res2 = await interfaceRequest(data)
@ -28,33 +170,12 @@ const mappingFunction = async (data, method) => {
} }
if (data.type === 2) { if (data.type === 2) {
let res2 = await getHistoryData({ let res2 = await getDeviceData(data)
deviceModeId: data.deviceModeId, console.log('res2666', res2)
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 returnRes = {} let returnRes = {}
method?.mappingArr?.forEach(v => { method?.mappingArr?.forEach(v => {
let res = res2.data let res = res2.data
console.log(res)
for (let i of (v?.region || [])) { for (let i of (v?.region || [])) {
if (res[i]) { if (res[i]) {
res = res[i] res = res[i]
@ -64,8 +185,10 @@ const mappingFunction = async (data, method) => {
} }
} }
if (v?.isArray && v?.mapData && Array.isArray(res)) { 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 = {
...returnRes, ...returnRes,
[v?.name]: res [v?.name]: res
@ -175,8 +298,9 @@ const clearObjNull = (e, data1) => {
return Object.keys(obj).length === 0 ? null : obj return Object.keys(obj).length === 0 ? null : obj
} }
const clearArrNull = (e, data1) => { const clearArrNull = (e, data1) => {
return e
if (!Array.isArray(e)) { if (!Array.isArray(e)) {
return null return e
} }
let arr = [] let arr = []
e.forEach(v => { e.forEach(v => {
@ -288,5 +412,6 @@ export {
detectingNullValues, detectingNullValues,
getFinalData, getFinalData,
parseTime, parseTime,
testColor testColor,
getDeviceData
} }

Loading…
Cancel
Save