缺陷bug修改
This commit is contained in:
parent
f3cc9ac27c
commit
a4be773f45
@ -1,12 +1,4 @@
|
|||||||
import request from '@/utils/request';
|
import request from '@/utils/request';
|
||||||
// 查询环境设备
|
|
||||||
export function getWeatherLogPage(params:any){
|
|
||||||
return request({
|
|
||||||
url: '/basedata/weather-log/getWeatherLogPage' ,
|
|
||||||
method: 'get',
|
|
||||||
params:params
|
|
||||||
});
|
|
||||||
}
|
|
||||||
export function getdeviceworkdata(params:any){
|
export function getdeviceworkdata(params:any){
|
||||||
return request({
|
return request({
|
||||||
url: '/auxcontrol/device-work-data/page' ,
|
url: '/auxcontrol/device-work-data/page' ,
|
||||||
|
@ -225,3 +225,44 @@ export function editArea(params: any) {
|
|||||||
params: params
|
params: params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//按类型查询模型对象
|
||||||
|
export function getModelListByType(params: any) {
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-model/getModelListByType',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//按 任务查找模型
|
||||||
|
export function getDevicelListByTask(params: any) {
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-model/getDevicelListByTask',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//添加模型信息
|
||||||
|
export function addModelObject(params: any) {
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-model/addModelObject',
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//删除模型对象
|
||||||
|
export function deleteModelObject(params: any) {
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-model/deleteModelObject',
|
||||||
|
method: 'post',
|
||||||
|
params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改模型信息
|
||||||
|
export function updateModelObject(params: any) {
|
||||||
|
return request({
|
||||||
|
url: '/basedata/substation-model/updateModelObject',
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
BIN
riis-web/src/assets/3d/xq1.png
Normal file
BIN
riis-web/src/assets/3d/xq1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 370 B |
@ -541,7 +541,7 @@ export default {
|
|||||||
},
|
},
|
||||||
fullscreenSwich: function () {
|
fullscreenSwich: function () {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
if (this.devicechannelInfo) {
|
if (this.devicechannelInfo&&this.devicechannelInfo.deviceId ) {
|
||||||
if(this.zhu){
|
if(this.zhu){
|
||||||
let isFull = this.isFullscreen()
|
let isFull = this.isFullscreen()
|
||||||
jessibucaPlayer[this._uid].setFullscreen(!isFull)
|
jessibucaPlayer[this._uid].setFullscreen(!isFull)
|
||||||
|
@ -211,7 +211,7 @@ const tableData = ref([]);
|
|||||||
const total = ref()
|
const total = ref()
|
||||||
const dialog = ref(false)
|
const dialog = ref(false)
|
||||||
const algorithmId = ref('')
|
const algorithmId = ref('')
|
||||||
const queryParams = ref({
|
const queryParams:any = ref({
|
||||||
algorithmId: '',
|
algorithmId: '',
|
||||||
current: 1,
|
current: 1,
|
||||||
size: 10,
|
size: 10,
|
||||||
@ -219,6 +219,7 @@ const queryParams = ref({
|
|||||||
function gatdata() {
|
function gatdata() {
|
||||||
dialog.value = true
|
dialog.value = true
|
||||||
queryParams.value.algorithmId = algorithmId.value
|
queryParams.value.algorithmId = algorithmId.value
|
||||||
|
queryParams.value.stationCode = userStore.stationCode
|
||||||
getAlgorithmClassComponentPage(queryParams.value).then((res: any) => {
|
getAlgorithmClassComponentPage(queryParams.value).then((res: any) => {
|
||||||
dialog.value = false
|
dialog.value = false
|
||||||
tableData.value = res.data.records
|
tableData.value = res.data.records
|
||||||
@ -404,7 +405,7 @@ const paramstable: any = ref({
|
|||||||
componentId: ''
|
componentId: ''
|
||||||
})
|
})
|
||||||
function getdevicedata1() {
|
function getdevicedata1() {
|
||||||
|
devicedataloading.value = true
|
||||||
if (sourceType.value == 1) {
|
if (sourceType.value == 1) {
|
||||||
paramstable.value.bayId = bayId.value
|
paramstable.value.bayId = bayId.value
|
||||||
paramstable.value.componentId = componentId.value
|
paramstable.value.componentId = componentId.value
|
||||||
@ -438,7 +439,7 @@ function getdevicedata1() {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
devicedataloading.value = true
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -824,7 +825,6 @@ onMounted(() => {
|
|||||||
<div :class="sourceType == 2 ? 'bianhua' : ''" @click="typeChange(2)">关联信号</div>
|
<div :class="sourceType == 2 ? 'bianhua' : ''" @click="typeChange(2)">关联信号</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="faulttemplate-box1">
|
<div class="faulttemplate-box1">
|
||||||
|
|
||||||
<div class="silderRight1">
|
<div class="silderRight1">
|
||||||
<div
|
<div
|
||||||
style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:15px 0px">
|
style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:15px 0px">
|
||||||
|
@ -61,17 +61,10 @@ const currentNodeKey = ref("")
|
|||||||
//获取企业树形信息
|
//获取企业树形信息
|
||||||
const value = ref()
|
const value = ref()
|
||||||
const optionSelect = ref()
|
const optionSelect = ref()
|
||||||
function getSelect() {
|
|
||||||
getTreefirst().then((res: any) => {
|
|
||||||
optionSelect.value = res.data
|
|
||||||
value.value = res.data[0].stationId
|
|
||||||
getTree(res.data[0].stationId)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const areaId = ref()
|
const areaId = ref()
|
||||||
function getTree(val: any) {
|
function getTree() {
|
||||||
const params = {
|
const params = {
|
||||||
stationId: val
|
stationId: userStore.stationId
|
||||||
}
|
}
|
||||||
getTreelist(params).then((res: any) => {
|
getTreelist(params).then((res: any) => {
|
||||||
if (res.data.length == 0) {
|
if (res.data.length == 0) {
|
||||||
@ -873,7 +866,8 @@ const patroldeviceName = ref()
|
|||||||
const manufacturerList: any = ref([])
|
const manufacturerList: any = ref([])
|
||||||
//获取用户列表信息
|
//获取用户列表信息
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getSelect();
|
getTree()
|
||||||
|
// getSelect();
|
||||||
notification()
|
notification()
|
||||||
getDeviceByType({ dictcode: 'DeviceClass' }).then((res: any) => {
|
getDeviceByType({ dictcode: 'DeviceClass' }).then((res: any) => {
|
||||||
DeviceClass.value = res.data
|
DeviceClass.value = res.data
|
||||||
@ -1024,9 +1018,9 @@ function onSubmit(row: any) {
|
|||||||
}).catch(function (error: any) {
|
}).catch(function (error: any) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
function ptzCamera(command: any) { // 监控视频控制方法
|
function ptzCamera(command: any) { // 监控视频控制方法 userStore.stationId
|
||||||
isGaoliang.value = command
|
isGaoliang.value = command
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/control/' + deviceId.value + '/' + channelId.value + '?command=' + command +
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/control/' + deviceId.value + '/' + channelId.value + '?command=' + command +
|
||||||
'&horizonSpeed=' + controSpeed.value + '&verticalSpeed=' + controSpeed.value + '&zoomSpeed=' + controSpeed.value, {}).then((res: any) => { })
|
'&horizonSpeed=' + controSpeed.value + '&verticalSpeed=' + controSpeed.value + '&zoomSpeed=' + controSpeed.value, {}).then((res: any) => { })
|
||||||
@ -1036,7 +1030,7 @@ function ptzCamera(command: any) { // 监控视频控制方法
|
|||||||
}
|
}
|
||||||
function presetPosition(cmdCode: any, presetPos: any) { // 预置位操作 ---设置、删除、调用
|
function presetPosition(cmdCode: any, presetPos: any) { // 预置位操作 ---设置、删除、调用
|
||||||
|
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode + '¶meter1=0¶meter2=' + presetPos + '&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode + '¶meter1=0¶meter2=' + presetPos + '&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1046,7 +1040,7 @@ const isLighting = ref(false)
|
|||||||
function lightingClick(row: any) { // 灯光方法
|
function lightingClick(row: any) { // 灯光方法
|
||||||
const cmdCode = ref(10)
|
const cmdCode = ref(10)
|
||||||
const parameter1 = isLighting.value
|
const parameter1 = isLighting.value
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=' + parameter1 + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=' + parameter1 + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1056,7 +1050,7 @@ const isInfrared = ref(false)
|
|||||||
function infraredClick(row: any) { // 红外方法
|
function infraredClick(row: any) { // 红外方法
|
||||||
const cmdCode = ref(13)
|
const cmdCode = ref(13)
|
||||||
const parameter1 = isInfrared.value
|
const parameter1 = isInfrared.value
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=' + parameter1 + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=' + parameter1 + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1067,7 +1061,7 @@ const isWiper = ref(false)
|
|||||||
function WiperClick(row: any) { // 雨刷方法
|
function WiperClick(row: any) { // 雨刷方法
|
||||||
const cmdCode = ref(1)
|
const cmdCode = ref(1)
|
||||||
const combindCode2 = isWiper.value
|
const combindCode2 = isWiper.value
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=0&combindCode2=' + combindCode2, {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=0&combindCode2=' + combindCode2, {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1086,7 +1080,7 @@ function condensationChang(command: any) { // 光聚方法
|
|||||||
isGaoliang.value = '66'
|
isGaoliang.value = '66'
|
||||||
cmdCode.value = 66
|
cmdCode.value = 66
|
||||||
}
|
}
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=80¶meter2=0&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=80¶meter2=0&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1103,7 +1097,7 @@ function apertureChang(command: any) { // 光圈方法
|
|||||||
cmdCode.value = 72
|
cmdCode.value = 72
|
||||||
isGaoliang.value = '72'
|
isGaoliang.value = '72'
|
||||||
}
|
}
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=80&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=80&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1163,7 +1157,7 @@ function getCamera() {
|
|||||||
const params = {
|
const params = {
|
||||||
patroldeviceName: patroldeviceName.value,
|
patroldeviceName: patroldeviceName.value,
|
||||||
type: '10',
|
type: '10',
|
||||||
stationId: value.value,
|
stationId: userStore.stationId,
|
||||||
areaId: '',
|
areaId: '',
|
||||||
}
|
}
|
||||||
GetCamera(params).then(res => {
|
GetCamera(params).then(res => {
|
||||||
@ -1377,7 +1371,7 @@ const total1 = ref()
|
|||||||
const tableData1: any = ref()
|
const tableData1: any = ref()
|
||||||
function getData1() {
|
function getData1() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
paramstable1.value.stationId = value.value
|
paramstable1.value.stationId = userStore.stationId
|
||||||
getdata(JSON.stringify(paramstable1.value)).then((res: any) => {
|
getdata(JSON.stringify(paramstable1.value)).then((res: any) => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
tableData1.value = res.data.records
|
tableData1.value = res.data.records
|
||||||
@ -1723,12 +1717,12 @@ function handleSelectionChange(val: any) {
|
|||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="title" style="font-size: 14px;">分类导航</div>
|
<div class="title" style="font-size: 14px;">分类导航</div>
|
||||||
</div>
|
</div>
|
||||||
<el-select v-model="value" placeholder=""
|
<!-- <el-select v-model="value" placeholder=""
|
||||||
style="width: 100% !important; padding:5px; display: flex; justify-content: center;margin-top:10px;"
|
style="width: 100% !important; padding:5px; display: flex; justify-content: center;margin-top:10px;"
|
||||||
@change="getTree">
|
@change="getTree">
|
||||||
<el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName"
|
<el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName"
|
||||||
:value="item.stationId" style="width:100%" />
|
:value="item.stationId" style="width:100%" />
|
||||||
</el-select>
|
</el-select> -->
|
||||||
<el-scrollbar height="calc(78vh)" style="width:99%">
|
<el-scrollbar height="calc(78vh)" style="width:99%">
|
||||||
<el-tree ref="treeRef"
|
<el-tree ref="treeRef"
|
||||||
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'"
|
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'"
|
||||||
|
@ -148,6 +148,10 @@ function getechartdata() {
|
|||||||
drawEchart()
|
drawEchart()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
function changeType(val: any) {
|
||||||
|
type.value = val
|
||||||
|
getechartdata()
|
||||||
|
}
|
||||||
//绘制折线图
|
//绘制折线图
|
||||||
function drawEchart() {
|
function drawEchart() {
|
||||||
let myChart = echarts.init(document.getElementById("deviceEachers") as HTMLDivElement);
|
let myChart = echarts.init(document.getElementById("deviceEachers") as HTMLDivElement);
|
||||||
@ -318,10 +322,10 @@ function exportDevice() {
|
|||||||
<el-radio-button label="分钟" :value="1" />
|
<el-radio-button label="分钟" :value="1" />
|
||||||
<el-radio-button label="小时" :value="2" />
|
<el-radio-button label="小时" :value="2" />
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
<!-- <div class="">
|
<div class="selectdata">
|
||||||
<div>分钟</div>
|
<div :class="type==1?'select':''" @click="changeType(1)">近一小时</div>
|
||||||
<div>小时</div>
|
<div :class="type==2?'select':''" @click="changeType(2)">近一天</div>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="deviceEachers" :style="{ width: '100%', height: '90%' }"></div>
|
<div id="deviceEachers" :style="{ width: '100%', height: '90%' }"></div>
|
||||||
@ -331,6 +335,24 @@ function exportDevice() {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.selectdata{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
div{
|
||||||
|
padding: 3px 5px;
|
||||||
|
border: 1px solid #0099ffa2;
|
||||||
|
margin-left: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
background-color: #004e978a;
|
||||||
|
color: #0099ff;
|
||||||
|
border: 1px solid #0099ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
.faulttemplate-box {
|
.faulttemplate-box {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -9,7 +9,7 @@ import { ref, onMounted, onBeforeUnmount, } from 'vue'
|
|||||||
import Page from '@/components/Pagination/page.vue'
|
import Page from '@/components/Pagination/page.vue'
|
||||||
import { useUserStore } from '@/store/modules/user';
|
import { useUserStore } from '@/store/modules/user';
|
||||||
import { getWeatherLogList, getDeviceWorkData } from "@/api/home";
|
import { getWeatherLogList, getDeviceWorkData } from "@/api/home";
|
||||||
import { getWeatherLogPage, getdeviceworkdata } from "@/api/environmentalMonitoring";
|
import { getdeviceworkdata } from "@/api/environmentalMonitoring";
|
||||||
import { getDeviceByType } from "@/api/device";
|
import { getDeviceByType } from "@/api/device";
|
||||||
import { getHistoricalCurve } from "@/api/datasurvey/index";
|
import { getHistoricalCurve } from "@/api/datasurvey/index";
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
@ -41,7 +41,7 @@ const environment_params: any = ref({
|
|||||||
startDate: '',
|
startDate: '',
|
||||||
endDate: '',
|
endDate: '',
|
||||||
patroldeviceName: '',
|
patroldeviceName: '',
|
||||||
stationId: userStore.stationId,
|
// stationId: userStore.stationId,
|
||||||
})
|
})
|
||||||
const hutotal: any = ref('')
|
const hutotal: any = ref('')
|
||||||
const environment_data = ref([])
|
const environment_data = ref([])
|
||||||
@ -182,7 +182,7 @@ function gettoday() {
|
|||||||
}
|
}
|
||||||
const echartdata: any = ref({})
|
const echartdata: any = ref({})
|
||||||
function getechartdata() {
|
function getechartdata() {
|
||||||
getHistoricalCurve({ signalId: signalId.value }).then((res: any) => {
|
getHistoricalCurve({ signalId: signalId.value,type:type.value }).then((res: any) => {
|
||||||
echartdata.value = res.data
|
echartdata.value = res.data
|
||||||
drawEchart()
|
drawEchart()
|
||||||
})
|
})
|
||||||
@ -215,6 +215,11 @@ function getechartdata() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const type = ref(1)
|
||||||
|
function changeType(val: any) {
|
||||||
|
type.value = val
|
||||||
|
getechartdata()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -266,6 +271,10 @@ function getechartdata() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="environment_table">
|
<div class="environment_table">
|
||||||
|
<div class="selectdata">
|
||||||
|
<div :class="type==1?'select':''" @click="changeType(1)">近一小时</div>
|
||||||
|
<div :class="type==2?'select':''" @click="changeType(2)">近一天</div>
|
||||||
|
</div>
|
||||||
<div id="deviceEachers" :style="{ width: '100%', height: '90%' }"></div>
|
<div id="deviceEachers" :style="{ width: '100%', height: '90%' }"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -273,6 +282,24 @@ function getechartdata() {
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.selectdata{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
div{
|
||||||
|
padding: 3px 5px;
|
||||||
|
border: 1px solid #0099ffa2;
|
||||||
|
margin-left: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
background-color: #004e978a;
|
||||||
|
color: #0099ff;
|
||||||
|
border: 1px solid #0099ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
.all_box {
|
.all_box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
|
@ -73,6 +73,7 @@ function handleNodeClick(data: any, node: any) {
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
voiceprint_one.value = data
|
voiceprint_one.value = data
|
||||||
|
// params.value.patroldeviceId = data.patroldeviceId
|
||||||
getdata()
|
getdata()
|
||||||
// loading.value = true
|
// loading.value = true
|
||||||
// Maindata.value = data
|
// Maindata.value = data
|
||||||
@ -95,7 +96,7 @@ const environment_data = ref([
|
|||||||
const total: any = ref()
|
const total: any = ref()
|
||||||
const params: any = ref({
|
const params: any = ref({
|
||||||
stationId: userStore.stationId,
|
stationId: userStore.stationId,
|
||||||
patroldeviceId: voiceprint_one.value.patroldeviceId,
|
patroldeviceId: '',
|
||||||
size: 10,
|
size: 10,
|
||||||
current: 1,
|
current: 1,
|
||||||
startDate: '',
|
startDate: '',
|
||||||
@ -111,6 +112,7 @@ function getdata() {
|
|||||||
params.value.endDate = ''
|
params.value.endDate = ''
|
||||||
}
|
}
|
||||||
treeloading.value = false
|
treeloading.value = false
|
||||||
|
params.value.patroldeviceId = voiceprint_one.value.patroldeviceId
|
||||||
getVoicePatrolPage(params.value).then((res: any) => {
|
getVoicePatrolPage(params.value).then((res: any) => {
|
||||||
environment_data.value = res.data.records
|
environment_data.value = res.data.records
|
||||||
params.value.size = res.data.size
|
params.value.size = res.data.size
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
top: 60px;
|
top: 60px;
|
||||||
">
|
">
|
||||||
<Modelset v-if="isModelset" :isautoRotate="isautoRotate" />
|
<!-- <Modelset v-if="isModelset" :isautoRotate="isautoRotate" /> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="three_button" @click="autoRotateClick">
|
<div class="three_button" @click="autoRotateClick">
|
||||||
<span v-if="isautoRotate == true">暂停</span>
|
<span v-if="isautoRotate == true">暂停</span>
|
||||||
|
@ -49,22 +49,12 @@ const currentNodeKey = ref("")
|
|||||||
//获取企业树形信息
|
//获取企业树形信息
|
||||||
const value = ref()
|
const value = ref()
|
||||||
const stationId = ref()
|
const stationId = ref()
|
||||||
const optionSelect = ref()
|
|
||||||
const stationCode = ref()
|
const stationCode = ref()
|
||||||
const areaId = ref()
|
const areaId = ref()
|
||||||
function getSelect() {
|
function getTree() {
|
||||||
getTreefirst().then((res: any) => {
|
|
||||||
optionSelect.value = res.data
|
|
||||||
value.value = res.data[0].stationId
|
|
||||||
// stationId.value = res.data[0].stationId
|
|
||||||
stationCode.value = res.data[0].stationCode
|
|
||||||
getTree(res.data[0].stationId)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function getTree(val: any) {
|
|
||||||
stationId.value = val
|
|
||||||
const params = {
|
const params = {
|
||||||
stationId: val
|
stationId: userStore.stationId
|
||||||
}
|
}
|
||||||
getTreeList(params).then((res: any) => {
|
getTreeList(params).then((res: any) => {
|
||||||
if (res.data.length == 0) {
|
if (res.data.length == 0) {
|
||||||
@ -113,7 +103,7 @@ const deviceName = ref('')
|
|||||||
const tableData: any = ref()
|
const tableData: any = ref()
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const flag = ref()
|
const flag = ref()
|
||||||
const paramstable:any = ref({
|
const paramstable: any = ref({
|
||||||
size: 10,
|
size: 10,
|
||||||
current: 1,
|
current: 1,
|
||||||
deviceName: '',
|
deviceName: '',
|
||||||
@ -123,7 +113,7 @@ const total = ref()
|
|||||||
function getData() {
|
function getData() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
const params = {
|
const params = {
|
||||||
stationId: stationId.value,
|
stationId: userStore.stationId,
|
||||||
areaId: orgId.value,
|
areaId: orgId.value,
|
||||||
size: paramstable.value.size,
|
size: paramstable.value.size,
|
||||||
current: paramstable.value.current,
|
current: paramstable.value.current,
|
||||||
@ -132,7 +122,7 @@ function getData() {
|
|||||||
deviceModel: deviceModel.value,
|
deviceModel: deviceModel.value,
|
||||||
manufacturer: manufacturer.value,
|
manufacturer: manufacturer.value,
|
||||||
flag: flag.value == true ? '1' : '0',
|
flag: flag.value == true ? '1' : '0',
|
||||||
online:paramstable.value.online,
|
online: paramstable.value.online,
|
||||||
}
|
}
|
||||||
getdata(params).then((res: any) => {
|
getdata(params).then((res: any) => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
@ -660,13 +650,8 @@ function typeall(val: any) {
|
|||||||
//获取变电站下的区域
|
//获取变电站下的区域
|
||||||
const areaList: any = ref([])
|
const areaList: any = ref([])
|
||||||
function GetArea() {
|
function GetArea() {
|
||||||
optionSelect.value.forEach((element: any) => {
|
|
||||||
if (element.stationId == info.value.stationId) {
|
|
||||||
info.value.stationCode = element.stationCode
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const parmas = {
|
const parmas = {
|
||||||
stationCode: info.value.stationCode
|
stationCode:userStore.stationCode
|
||||||
}
|
}
|
||||||
getArea(parmas).then((res: any) => {
|
getArea(parmas).then((res: any) => {
|
||||||
areaList.value = res.data
|
areaList.value = res.data
|
||||||
@ -734,7 +719,7 @@ function handleEdit(row: any) {
|
|||||||
dialogVisible.value = true;
|
dialogVisible.value = true;
|
||||||
infoall.value = JSON.parse(JSON.stringify(row))
|
infoall.value = JSON.parse(JSON.stringify(row))
|
||||||
info.value = infoall.value
|
info.value = infoall.value
|
||||||
getRobotListInit(info.value.stationId)
|
getRobotListInit(userStore.stationId)
|
||||||
GetArea()
|
GetArea()
|
||||||
if (row.slienceType != '') {
|
if (row.slienceType != '') {
|
||||||
checkedlist.value = row.slienceType.split(",")
|
checkedlist.value = row.slienceType.split(",")
|
||||||
@ -823,19 +808,11 @@ function GetSafety() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const infoRefAlls = ref()
|
|
||||||
const clothesRefInfoAlls = ref()
|
const clothesRefInfoAlls = ref()
|
||||||
const infoRefMations = ref()
|
const infoRefMations = ref()
|
||||||
const smokeRefInfos = ref()
|
|
||||||
const leakageRefInfos = ref()
|
|
||||||
//新增弹窗-基本信息-确定
|
//新增弹窗-基本信息-确定
|
||||||
function confirmClick(formEl: any) {
|
function confirmClick(formEl: any) {
|
||||||
infoRefAlls.value.validate((valid1: any) => {
|
|
||||||
if (valid1) {
|
|
||||||
smokeRefInfos.value.validate((valid4: any) => {
|
|
||||||
if (valid4) {
|
|
||||||
leakageRefInfos.value.validate((valid5: any) => {
|
|
||||||
if (valid5) {
|
|
||||||
formEl.validate((valid: any) => {
|
formEl.validate((valid: any) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (info.value.areaId != '') {
|
if (info.value.areaId != '') {
|
||||||
@ -849,16 +826,12 @@ function confirmClick(formEl: any) {
|
|||||||
info.value.areaName = allName.value.name
|
info.value.areaName = allName.value.name
|
||||||
}
|
}
|
||||||
if (info.value.stationId != '') {
|
if (info.value.stationId != '') {
|
||||||
optionSelect.value.forEach((element: any) => {
|
info.value.stationName = userStore.stationName
|
||||||
if (element.stationId == info.value.stationId) {
|
info.value.stationCode = userStore.stationCode
|
||||||
info.value.stationName = element.stationName
|
|
||||||
info.value.stationCode = element.stationCode
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
info.value.stationId = allName.value.stationId
|
info.value.stationId = userStore.stationId
|
||||||
info.value.stationName = allName.value.stationName
|
info.value.stationName = userStore.stationName
|
||||||
info.value.stationCode = allName.value.stationCode
|
info.value.stationCode = userStore.stationCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -949,19 +922,10 @@ function confirmClick(formEl: any) {
|
|||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const cameraId = ref()
|
const cameraId = ref()
|
||||||
//提交安全帽信息
|
//提交安全帽信息
|
||||||
const infoAll: any = ref({
|
const infoAll: any = ref({
|
||||||
@ -1032,7 +996,7 @@ onMounted(() => {
|
|||||||
manufacturerList.value = res.data
|
manufacturerList.value = res.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
getSelect();
|
getTree()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -1082,7 +1046,7 @@ const channelId = ref("") // 通道国标编号
|
|||||||
const controSpeed = ref(100) // 摄像头转动速度默认值 30
|
const controSpeed = ref(100) // 摄像头转动速度默认值 30
|
||||||
function ptzCamera(command: any) { // 监控视频控制方法
|
function ptzCamera(command: any) { // 监控视频控制方法
|
||||||
isGaoliang.value = command
|
isGaoliang.value = command
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/control/' + deviceId.value + '/' + channelId.value + '?command=' + command +
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/control/' + deviceId.value + '/' + channelId.value + '?command=' + command +
|
||||||
'&horizonSpeed=' + controSpeed.value + '&verticalSpeed=' + controSpeed.value + '&zoomSpeed=' + controSpeed.value, {}).then((res: any) => { })
|
'&horizonSpeed=' + controSpeed.value + '&verticalSpeed=' + controSpeed.value + '&zoomSpeed=' + controSpeed.value, {}).then((res: any) => { })
|
||||||
@ -1090,7 +1054,7 @@ function ptzCamera(command: any) { // 监控视频控制方法
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
function presetPosition(cmdCode: any, presetPos: any) { // 预置位操作 ---设置、删除、调用
|
function presetPosition(cmdCode: any, presetPos: any) { // 预置位操作 ---设置、删除、调用
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode + '¶meter1=0¶meter2=' + presetPos + '&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode + '¶meter1=0¶meter2=' + presetPos + '&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1099,7 +1063,7 @@ function presetPosition(cmdCode: any, presetPos: any) { // 预置位操作 ---
|
|||||||
}
|
}
|
||||||
const isLighting = ref("0")
|
const isLighting = ref("0")
|
||||||
function lightingClick(row: any) { // 灯光方法
|
function lightingClick(row: any) { // 灯光方法
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=10¶meter1=' + isLighting.value + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=10¶meter1=' + isLighting.value + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1108,7 +1072,7 @@ function lightingClick(row: any) { // 灯光方法
|
|||||||
}
|
}
|
||||||
const isInfrared = ref("0")
|
const isInfrared = ref("0")
|
||||||
function infraredClick(row: any) { // 红外方法
|
function infraredClick(row: any) { // 红外方法
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=13¶meter1=' + isInfrared.value + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=13¶meter1=' + isInfrared.value + '¶meter2=128&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1117,7 +1081,7 @@ function infraredClick(row: any) { // 红外方法
|
|||||||
}
|
}
|
||||||
const isWiper = ref("0")
|
const isWiper = ref("0")
|
||||||
function WiperClick(row: any) { // 雨刷方法
|
function WiperClick(row: any) { // 雨刷方法
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=1¶meter1=0¶meter2=0&combindCode2=' + isWiper.value, {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=1¶meter1=0¶meter2=0&combindCode2=' + isWiper.value, {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1144,7 +1108,7 @@ function condensationChang(command: any) { // 光聚方法
|
|||||||
isGaoliang.value = '66'
|
isGaoliang.value = '66'
|
||||||
cmdCode.value = 66
|
cmdCode.value = 66
|
||||||
}
|
}
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=80¶meter2=0&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=80¶meter2=0&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1162,7 +1126,7 @@ function apertureChang(command: any) { // 光圈方法
|
|||||||
isGaoliang.value = '72'
|
isGaoliang.value = '72'
|
||||||
}
|
}
|
||||||
|
|
||||||
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + info.value.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
axios.get(userStore.webApiBaseUrl + '/basedata/substation-patroldevice/isWorkingOfPatrolDevice?stationcode=' + userStore.stationCode + "&devicecode=" + deviceId.value, {}).then((res: any) => {
|
||||||
if (res.data.data == "0") {
|
if (res.data.data == "0") {
|
||||||
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=80&combindCode2=0', {}).then((res: any) => { })
|
axios.post(userStore.webApiMonitorUrl + '/api/ptz/front_end_command/' + deviceId.value + '/' + channelId.value + '?cmdCode=' + cmdCode.value + '¶meter1=0¶meter2=80&combindCode2=0', {}).then((res: any) => { })
|
||||||
}
|
}
|
||||||
@ -1241,7 +1205,7 @@ function exportDevice() {
|
|||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
type: 10,
|
type: 10,
|
||||||
stationId: value.value
|
stationId: userStore.stationId
|
||||||
}
|
}
|
||||||
loading.value = true
|
loading.value = true
|
||||||
exportPatrolDeviceList(params).then((response: any) => {
|
exportPatrolDeviceList(params).then((response: any) => {
|
||||||
@ -1354,12 +1318,12 @@ const handleClick1 = (tab: TabsPaneContext, event: Event) => {
|
|||||||
const isGaoliang: any = ref("")
|
const isGaoliang: any = ref("")
|
||||||
const statusList = ref([
|
const statusList = ref([
|
||||||
{
|
{
|
||||||
id:1,
|
id: 1,
|
||||||
name:'在线'
|
name: '在线'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id:0,
|
id: 0,
|
||||||
name:'离线'
|
name: '离线'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
</script>
|
</script>
|
||||||
@ -1383,14 +1347,7 @@ const statusList = ref([
|
|||||||
<el-input v-model="info.patroldeviceName" style="width: 90%;margin-left: 8px;"
|
<el-input v-model="info.patroldeviceName" style="width: 90%;margin-left: 8px;"
|
||||||
placeholder="请输入设备名称"></el-input>
|
placeholder="请输入设备名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="infoall.stationId == ''" label="变电站" style="width:50%"
|
|
||||||
prop="areaId">
|
|
||||||
<el-select v-model="info.stationId" placeholder="请选择变电站" style="width: 90%"
|
|
||||||
@change="typeall, GetArea()">
|
|
||||||
<el-option v-for="item in optionSelect" :key="item.stationId"
|
|
||||||
:label="item.stationName" :value="item.stationId" style="width:90%" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="areaId == undefined || infoall.areaId == ''" label="区域"
|
<el-form-item v-if="areaId == undefined || infoall.areaId == ''" label="区域"
|
||||||
style="width:50%" prop="areaId">
|
style="width:50%" prop="areaId">
|
||||||
<el-select v-model="info.areaId" placeholder="请选择区域" style="width: 90%"
|
<el-select v-model="info.areaId" placeholder="请选择区域" style="width: 90%"
|
||||||
@ -1499,7 +1456,6 @@ const statusList = ref([
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<el-tab-pane v-if="info.type == 10 || info.type == ''" label="通道设置" name="third">
|
<el-tab-pane v-if="info.type == 10 || info.type == ''" label="通道设置" name="third">
|
||||||
<div>
|
<div>
|
||||||
<div style="height: 562px;">
|
<div style="height: 562px;">
|
||||||
@ -1640,11 +1596,11 @@ const statusList = ref([
|
|||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="title" style="font-size: 14px;">数据列表</div>
|
<div class="title" style="font-size: 14px;">数据列表</div>
|
||||||
</div>
|
</div>
|
||||||
<el-select v-model="value" placeholder=""
|
<!-- <el-select v-model="value" placeholder=""
|
||||||
style="width: 98% !important; display: flex; justify-content: center" @change="getTree">
|
style="width: 98% !important; display: flex; justify-content: center" @change="getTree">
|
||||||
<el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName"
|
<el-option v-for="item in optionSelect" :key="item.stationId" :label="item.stationName"
|
||||||
:value="item.stationId" style="width:100%" />
|
:value="item.stationId" style="width:100%" />
|
||||||
</el-select>
|
</el-select> -->
|
||||||
<el-scrollbar height="calc(80vh)" style="width:99%;">
|
<el-scrollbar height="calc(80vh)" style="width:99%;">
|
||||||
<el-tree ref="treeRef"
|
<el-tree ref="treeRef"
|
||||||
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'"
|
:class="useAppStore().size === 'default' ? 'silderLeft-large' : 'silderLeft-default'"
|
||||||
@ -1677,8 +1633,7 @@ const statusList = ref([
|
|||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="paramstable.online" placeholder="实时状态" style="margin-right: 10px;width: 140px;"
|
<el-select v-model="paramstable.online" placeholder="实时状态" style="margin-right: 10px;width: 140px;"
|
||||||
@change="getData()" clearable>
|
@change="getData()" clearable>
|
||||||
<el-option v-for="item in statusList" :key="item.id" :label="item.name"
|
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
:value="item.id" />
|
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button class="searchButton" type="primary" @click="getData()">搜索</el-button>
|
<el-button class="searchButton" type="primary" @click="getData()">搜索</el-button>
|
||||||
<el-button class="searchButton" @click="resetting()">重置</el-button>
|
<el-button class="searchButton" @click="resetting()">重置</el-button>
|
||||||
@ -1713,7 +1668,7 @@ const statusList = ref([
|
|||||||
{{ currency(manufacturerList, scope.row.manufacturer) }}
|
{{ currency(manufacturerList, scope.row.manufacturer) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="安装位置" prop="place" width="80" align="center"></el-table-column>
|
<el-table-column label="安装位置" prop="place" width="120" align="center"></el-table-column>
|
||||||
<el-table-column label="实时状态" width="100" prop="datastatus" align="center">
|
<el-table-column label="实时状态" width="100" prop="datastatus" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color:#F24444" v-if="scope.row.online != 1">
|
<span style="color:#F24444" v-if="scope.row.online != 1">
|
||||||
|
@ -49,6 +49,7 @@ const stationName = ref()
|
|||||||
const stationCode = ref()
|
const stationCode = ref()
|
||||||
function getSelect() {
|
function getSelect() {
|
||||||
getTreeList({stationId:userStore.stationId}).then((res: any) => {
|
getTreeList({stationId:userStore.stationId}).then((res: any) => {
|
||||||
|
treeloading.value = false
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
if (res.data.length == 0) {
|
if (res.data.length == 0) {
|
||||||
tableData.value = []
|
tableData.value = []
|
||||||
|
@ -19,8 +19,9 @@ function getInit() {
|
|||||||
//异常事件统计
|
//异常事件统计
|
||||||
getAlarmLogById(params).then((res: any) => {
|
getAlarmLogById(params).then((res: any) => {
|
||||||
// res.data.checkResult = '1'
|
// res.data.checkResult = '1'
|
||||||
|
|
||||||
examinationInfo.value = res.data
|
examinationInfo.value = res.data
|
||||||
examinationInfo.value
|
console.log(examinationInfo.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -152,7 +153,9 @@ const num = ref(0)
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="examinationInfo.taskAlarmType != 4" style="width:290px;height: 200px;">
|
<div v-if="examinationInfo.taskAlarmType != 4" style="width:290px;height: 200px;">
|
||||||
<div style="width:100%;height:100%; position: relative;">
|
<div style="width:100%;height:100%; position: relative;">
|
||||||
<div v-if="examinationInfo.defectFilePath" title="查看图片" style="position: absolute;
|
<div
|
||||||
|
v-if="examinationInfo.defectFilePath && examinationInfo.fileType != 3 && examinationInfo.defectFilePath.indexOf('mp4') == -1"
|
||||||
|
title="查看图片" style="position: absolute;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
width: 26px;
|
width: 26px;
|
||||||
@ -171,26 +174,16 @@ const num = ref(0)
|
|||||||
:preview-src-list="[url + '/previewimage?type=alarm&filename=' + encodeURI(examinationInfo.defectFilePath)]"
|
:preview-src-list="[url + '/previewimage?type=alarm&filename=' + encodeURI(examinationInfo.defectFilePath)]"
|
||||||
:preview-teleported="true" fit="cover" />
|
:preview-teleported="true" fit="cover" />
|
||||||
</div>
|
</div>
|
||||||
<div title="查看视频" style="position: absolute;
|
<div title="查看视频" v-if="examinationInfo.defectFilePath &&examinationInfo.fileType != 3 " class="lookvideo" :style="examinationInfo.defectFilePath.indexOf('mp4') != -1? 'right:5px;':''" >
|
||||||
right: 40px;
|
|
||||||
top: 5px;
|
|
||||||
width: 26px;
|
|
||||||
height: 26px;
|
|
||||||
border-radius: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
cursor: pointer;
|
|
||||||
background: rgba(0,0,0,0.5);">
|
|
||||||
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
||||||
</div>
|
</div>
|
||||||
<span v-if="examinationInfo.defectFilePath">
|
<span v-if="examinationInfo.defectFilePath" >
|
||||||
<video v-if="examinationInfo.defectFilePath.indexOf('mp4') != -1" width="300" height="400"
|
<video v-if="examinationInfo.defectFilePath.indexOf('mp4') != -1" width="300" height="400" style=" margin-top: 40px;"
|
||||||
:src="url + '/alarm/' + decodeURIComponent(examinationInfo.filePath)" loop autoplay preload="auto"
|
:src="url + '/alarm/' + decodeURIComponent(examinationInfo.filePath)" loop autoplay preload="auto"
|
||||||
controls></video>
|
controls></video>
|
||||||
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
||||||
<audio style="width: 100%;margin-top:30px;"
|
<audio style="width: 100%;margin-top:30px;"
|
||||||
:src="url + '/video/' + decodeURIComponent(examinationInfo.filePath)" controls>
|
:src="url + '/alarm/' + decodeURIComponent(examinationInfo.filePath)" controls>
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
<img v-else-if="examinationInfo.defectFilePath" style="width:100%;height:100%;"
|
<img v-else-if="examinationInfo.defectFilePath" style="width:100%;height:100%;"
|
||||||
@ -556,5 +549,21 @@ const num = ref(0)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lookvideo {
|
||||||
|
position: absolute;
|
||||||
|
right: 40px;
|
||||||
|
top: 5px;
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 99;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.ylclass {}
|
.ylclass {}
|
||||||
</style>
|
</style>
|
||||||
|
@ -239,7 +239,8 @@ const handleChange = (value: any) => {
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="examinationInfo.taskAlarmType != 4" style="width:290px;height: 200px;">
|
<div v-if="examinationInfo.taskAlarmType != 4" style="width:290px;height: 200px;">
|
||||||
<div style="width:100%;height:100%; position: relative;">
|
<div style="width:100%;height:100%; position: relative;">
|
||||||
<div title="查看图片" style="position: absolute;
|
<div v-if="examinationInfo.defectFilePath && examinationInfo.fileType != 3 && examinationInfo.defectFilePath.indexOf('mp4') == -1"
|
||||||
|
title="查看图片" style="position: absolute;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
width: 26px;
|
width: 26px;
|
||||||
@ -255,17 +256,7 @@ const handleChange = (value: any) => {
|
|||||||
:src="examinationInfo.defectFilePath" :zoom-rate="1.2"
|
:src="examinationInfo.defectFilePath" :zoom-rate="1.2"
|
||||||
:preview-src-list="[examinationInfo.defectFilePath]" :preview-teleported="true" fit="cover" />
|
:preview-src-list="[examinationInfo.defectFilePath]" :preview-teleported="true" fit="cover" />
|
||||||
</div>
|
</div>
|
||||||
<div title="查看视频" style="position: absolute;
|
<div title="查看视频" v-if="examinationInfo.defectFilePath &&examinationInfo.fileType != 3 " class="lookvideo" :style="examinationInfo.defectFilePath.indexOf('mp4') != -1? 'right:5px;':''" >
|
||||||
right: 40px;
|
|
||||||
top: 5px;
|
|
||||||
width: 26px;
|
|
||||||
height: 26px;
|
|
||||||
border-radius: 4px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
cursor: pointer;
|
|
||||||
background: rgba(0,0,0,0.5);">
|
|
||||||
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
||||||
</div>
|
</div>
|
||||||
<span v-if="examinationInfo.defectFilePath">
|
<span v-if="examinationInfo.defectFilePath">
|
||||||
@ -274,7 +265,7 @@ const handleChange = (value: any) => {
|
|||||||
controls></video>
|
controls></video>
|
||||||
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
||||||
<audio style="width: 100%;margin-top:30px;"
|
<audio style="width: 100%;margin-top:30px;"
|
||||||
:src="url + '/video/' + decodeURIComponent(examinationInfo.filePath)" controls>
|
:src="url + '/alarm/' + decodeURIComponent(examinationInfo.filePath)" controls>
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
<img v-else-if="examinationInfo.defectFilePath" style="width:100%;height:100%;"
|
<img v-else-if="examinationInfo.defectFilePath" style="width:100%;height:100%;"
|
||||||
@ -664,7 +655,21 @@ const handleChange = (value: any) => {
|
|||||||
:deep(.el-input-number .el-icon:hover) {
|
:deep(.el-input-number .el-icon:hover) {
|
||||||
color: #409eff !important;
|
color: #409eff !important;
|
||||||
}
|
}
|
||||||
|
.lookvideo {
|
||||||
|
position: absolute;
|
||||||
|
right: 40px;
|
||||||
|
top: 5px;
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 99;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
|
||||||
|
}
|
||||||
:deep(.el-input__inner) {
|
:deep(.el-input__inner) {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}</style>
|
}</style>
|
||||||
|
@ -57,9 +57,10 @@ function init() {
|
|||||||
}
|
}
|
||||||
treeloading.value = true
|
treeloading.value = true
|
||||||
getAlgorithmClassTree(params).then((res: any) => {
|
getAlgorithmClassTree(params).then((res: any) => {
|
||||||
|
treeloading.value = false
|
||||||
if (res.data.length !== 0 && res.data !== null) {
|
if (res.data.length !== 0 && res.data !== null) {
|
||||||
treeData.value = res.data
|
treeData.value = res.data
|
||||||
treeloading.value = false
|
|
||||||
if (res.data.length !== 0 && res.data !== null) {
|
if (res.data.length !== 0 && res.data !== null) {
|
||||||
componentId.value = res.data[0].children[0].id
|
componentId.value = res.data[0].children[0].id
|
||||||
algorithmId.value = res.data[0].children[0].parentId
|
algorithmId.value = res.data[0].children[0].parentId
|
||||||
@ -104,7 +105,7 @@ function gatdata() {
|
|||||||
const eacherslist: any = ref([1, 2, 3, 4])
|
const eacherslist: any = ref([1, 2, 3, 4])
|
||||||
function getecharts() {
|
function getecharts() {
|
||||||
checloading.value = true
|
checloading.value = true
|
||||||
getAlgorithmDeviceCurve({ algorithmId: algorithmId.value, componentId: componentId.value }).then((res: any) => {
|
getAlgorithmDeviceCurve({ algorithmId: algorithmId.value, componentId: componentId.value,type:type.value }).then((res: any) => {
|
||||||
checloading.value = false
|
checloading.value = false
|
||||||
eacherslist.value = res.data
|
eacherslist.value = res.data
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -232,6 +233,11 @@ function getaction() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const type = ref(1)
|
||||||
|
function changeType(val: any) {
|
||||||
|
type.value = val
|
||||||
|
getecharts()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="faulttemplate-box">
|
<div class="faulttemplate-box">
|
||||||
@ -261,6 +267,10 @@ function getaction() {
|
|||||||
<div class="tree_title">
|
<div class="tree_title">
|
||||||
<img src="@/assets/navigation/ty_bq.png" alt="">
|
<img src="@/assets/navigation/ty_bq.png" alt="">
|
||||||
<div>信号/点位折线图</div>
|
<div>信号/点位折线图</div>
|
||||||
|
<div class="selectdata">
|
||||||
|
<div :class="type==1?'select':''" @click="changeType(1)">近一小时</div>
|
||||||
|
<div :class="type==2?'select':''" @click="changeType(2)">近一天</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-button style="margin-left: 10px;" @click="fenfault()" class="searchButton">故障分析</el-button>
|
<el-button style="margin-left: 10px;" @click="fenfault()" class="searchButton">故障分析</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -319,6 +329,24 @@ function getaction() {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.selectdata{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
div{
|
||||||
|
padding: 3px 5px;
|
||||||
|
border: 1px solid #0099ffa2;
|
||||||
|
margin-left: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.select{
|
||||||
|
background-color: #004e978a;
|
||||||
|
color: #0099ff;
|
||||||
|
border: 1px solid #0099ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
.silderLeft-default {
|
.silderLeft-default {
|
||||||
:deep(.el-tree-node__label) {
|
:deep(.el-tree-node__label) {
|
||||||
font-size: 16px !important;
|
font-size: 16px !important;
|
||||||
|
@ -9,7 +9,7 @@ import { ref, onMounted, watch } from "vue";
|
|||||||
import JessibucaPlayer from '@/components/jessibuca/index1.vue'
|
import JessibucaPlayer from '@/components/jessibuca/index1.vue'
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { getAlarmLogPage, setAlarmLogStatus, setBatchAlarmLogStatus } from "@/api/alarmInfo";
|
import { getAlarmLogPage, setAlarmLogStatus, setBatchAlarmLogStatus } from "@/api/alarmInfo";
|
||||||
import { getDeviceByType,getDictionaryItems } from "@/api/device";
|
import { getDeviceByType, getDictionaryItems } from "@/api/device";
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { getNotCheckAlarmCount } from '@/api/home';
|
import { getNotCheckAlarmCount } from '@/api/home';
|
||||||
@ -180,11 +180,11 @@ function queryRecordDetails(row: any) {
|
|||||||
}
|
}
|
||||||
function rowClick(row: any) {
|
function rowClick(row: any) {
|
||||||
console.log(row)
|
console.log(row)
|
||||||
if (row.id == alarmInfo.value.id ) {
|
if (row.id == alarmInfo.value.id) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (row.taskAlarmType == 4) {
|
if (row.taskAlarmType == 4) {
|
||||||
ElMessage({message:'辅控任务暂无图片和视频',type:'warning'})
|
ElMessage({ message: '辅控任务暂无图片和视频', type: 'warning' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
alarmInfo.value = row
|
alarmInfo.value = row
|
||||||
@ -315,6 +315,7 @@ const checkFlagList: any = ref([{
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
const AlarmTypeArr: any = ref([])
|
const AlarmTypeArr: any = ref([])
|
||||||
|
const deviceClassList: any = ref([])
|
||||||
function getArrType() { // 查询字典方法
|
function getArrType() { // 查询字典方法
|
||||||
const paramstype = {
|
const paramstype = {
|
||||||
dictcode: 'AlarmLevel'
|
dictcode: 'AlarmLevel'
|
||||||
@ -332,6 +333,10 @@ function getArrType() { // 查询字典方法
|
|||||||
getDictionaryItems({ dictCodes: 'AlarmType,fk_alarmType' }).then((res: any) => {
|
getDictionaryItems({ dictCodes: 'AlarmType,fk_alarmType' }).then((res: any) => {
|
||||||
AlarmTypeArr.value = res.data
|
AlarmTypeArr.value = res.data
|
||||||
})
|
})
|
||||||
|
getDeviceByType({ dictcode: 'DeviceClass' }).then((res: any) => {
|
||||||
|
deviceClassList.value = res.data
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
function currency(list: any, itemcode: any) {
|
function currency(list: any, itemcode: any) {
|
||||||
let dictname = ''
|
let dictname = ''
|
||||||
@ -583,11 +588,12 @@ const isVideo = ref(false)
|
|||||||
<el-table-column prop="componentName" label="部件名称" align="center" />
|
<el-table-column prop="componentName" label="部件名称" align="center" />
|
||||||
<el-table-column prop="deviceName" label="点位名称" align="center" />
|
<el-table-column prop="deviceName" label="点位名称" align="center" />
|
||||||
|
|
||||||
<el-table-column label="点位分类" prop="appearanceType" align="center">
|
<el-table-column label="点位分类" prop="deviceClass" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span v-if="scope.row.pointType == 1">Ⅰ类</span>
|
{{ currency(deviceClassList, scope.row.deviceClass) }}
|
||||||
<span v-if="scope.row.pointType == 2">Ⅱ类</span>
|
<!-- <span v-if="scope.row.deviceClass == 1">Ⅰ类</span>
|
||||||
<span v-if="scope.row.pointType == 3">Ⅲ类</span>
|
<span v-if="scope.row.deviceClass == 2">Ⅱ类</span>
|
||||||
|
<span v-if="scope.row.deviceClass == 3">Ⅲ类</span> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="taskAlarmType" label="告警来源" width="100px" align="center">
|
<el-table-column prop="taskAlarmType" label="告警来源" width="100px" align="center">
|
||||||
@ -597,8 +603,8 @@ const isVideo = ref(false)
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="alarmType" label="告警类型" width="80px" align="center">
|
<el-table-column prop="alarmType" label="告警类型" width="80px" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<span>{{ currency(AlarmTypeArr, scope.row.taskAlarmType == '4' ? scope.row.alarmType :
|
||||||
<span>{{ currency(AlarmTypeArr,scope.row.taskAlarmType == '4'? scope.row.alarmType : scope.row.fkAlarmType) }}</span>
|
scope.row.fkAlarmType) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="alarmLevel" label="告警等级" width="80px" align="center">
|
<el-table-column prop="alarmLevel" label="告警等级" width="80px" align="center">
|
||||||
@ -636,7 +642,7 @@ const isVideo = ref(false)
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="alarmInfo-right">
|
<div class="alarmInfo-right">
|
||||||
<div class="alarmInfo-visitation" >
|
<div class="alarmInfo-visitation">
|
||||||
<div style="display:flex;align-items: center;margin: 5px 0px ;">
|
<div style="display:flex;align-items: center;margin: 5px 0px ;">
|
||||||
<div class="alarmInfo-line"></div>
|
<div class="alarmInfo-line"></div>
|
||||||
<div class="alarmInfo-title"> <span class="fontFamily">实时视频 </span> </div>
|
<div class="alarmInfo-title"> <span class="fontFamily">实时视频 </span> </div>
|
||||||
@ -664,7 +670,7 @@ const isVideo = ref(false)
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="alarmInfo-visitation" >
|
<div class="alarmInfo-visitation">
|
||||||
<div style="display:flex;align-items: center;height: 40px;padding-left: 10px;">
|
<div style="display:flex;align-items: center;height: 40px;padding-left: 10px;">
|
||||||
<div class="alarmInfo-line"></div>
|
<div class="alarmInfo-line"></div>
|
||||||
<div class="alarmInfo-title" style="color: #0099ff;"> <span class="fontFamily">告警图片</span> </div>
|
<div class="alarmInfo-title" style="color: #0099ff;"> <span class="fontFamily">告警图片</span> </div>
|
||||||
@ -717,7 +723,8 @@ const isVideo = ref(false)
|
|||||||
<div style="width: 96%;height: 98%;display: flex;align-items: end;"
|
<div style="width: 96%;height: 98%;display: flex;align-items: end;"
|
||||||
v-if="alarmInfo.filePath != null && alarmInfo.filePath != '' && alarmInfo.fileType == 3">
|
v-if="alarmInfo.filePath != null && alarmInfo.filePath != '' && alarmInfo.fileType == 3">
|
||||||
<audio style="width: 100%;"
|
<audio style="width: 100%;"
|
||||||
:src="url + '/playAudioFile?filename=' + encodeURI(alarmInfo.defectFilePath)" controls>
|
:src="url + '/playAudioFile?type=alarm&&filename=' + encodeURI(alarmInfo.defectFilePath)"
|
||||||
|
controls>
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -757,9 +764,11 @@ const isVideo = ref(false)
|
|||||||
<div>{{ currency(AlarmLevelList, examinationInfo.alarmLevel) }}</div>
|
<div>{{ currency(AlarmLevelList, examinationInfo.alarmLevel) }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width:290px;height: 180px;margin: 0px 0px 10px 0px ;" v-if="examinationInfo.taskAlarmType == 4">
|
<div style="width:290px;height: 180px;margin: 0px 0px 10px 0px ;"
|
||||||
|
v-if="examinationInfo.taskAlarmType == 4">
|
||||||
<div style="width:100%;height:100%; position: relative;">
|
<div style="width:100%;height:100%; position: relative;">
|
||||||
<div title="查看图片" style="position: absolute;right: 5px;top: 5px;width: 26px;height: 26px;border-radius: 4px;
|
<div title="查看图片"
|
||||||
|
style="position: absolute;right: 5px;top: 5px;width: 26px;height: 26px;border-radius: 4px;
|
||||||
display: flex;align-items: center;justify-content: center;cursor: pointer;background: rgba(0,0,0,0.5);">
|
display: flex;align-items: center;justify-content: center;cursor: pointer;background: rgba(0,0,0,0.5);">
|
||||||
<img src="@/assets/monitorsystem/region/img.png" alt="">
|
<img src="@/assets/monitorsystem/region/img.png" alt="">
|
||||||
<el-image v-if="examinationInfo.defectFilePath1"
|
<el-image v-if="examinationInfo.defectFilePath1"
|
||||||
@ -768,7 +777,8 @@ const isVideo = ref(false)
|
|||||||
:preview-src-list="examinationInfo.defectFilePath1" :preview-teleported="true"
|
:preview-src-list="examinationInfo.defectFilePath1" :preview-teleported="true"
|
||||||
fit="cover" />
|
fit="cover" />
|
||||||
</div>
|
</div>
|
||||||
<div title="查看视频" style="position: absolute;right: 40px;top: 5px;width: 26px;height: 26px;border-radius: 4px;display: flex;
|
<div title="查看视频"
|
||||||
|
style="position: absolute;right: 40px;top: 5px;width: 26px;height: 26px;border-radius: 4px;display: flex;
|
||||||
align-items: center;justify-content: center;cursor: pointer; background: rgba(0,0,0,0.5);">
|
align-items: center;justify-content: center;cursor: pointer; background: rgba(0,0,0,0.5);">
|
||||||
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
<img src="@/assets/monitorsystem/region/video.png" alt="" @click="isVideo = true">
|
||||||
</div>
|
</div>
|
||||||
@ -779,7 +789,7 @@ const isVideo = ref(false)
|
|||||||
autoplay preload="auto" controls></video>
|
autoplay preload="auto" controls></video>
|
||||||
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
<div v-else-if="examinationInfo.fileType == 3" style="padding-top:20px;">
|
||||||
<audio style="width: 100%;margin-top:30px;"
|
<audio style="width: 100%;margin-top:30px;"
|
||||||
:src="url + '/video/' + decodeURIComponent(examinationInfo.filePath)"
|
:src="url + '/alarm/' + decodeURIComponent(examinationInfo.filePath)"
|
||||||
controls>
|
controls>
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
@ -816,7 +826,9 @@ const isVideo = ref(false)
|
|||||||
resize="none" type="textarea" placeholder="" />
|
resize="none" type="textarea" placeholder="" />
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;justify-content:center;margin-top:40px">
|
<div style="display:flex;justify-content:center;margin-top:40px">
|
||||||
<div class="details-button" v-if="examinationInfo.checkFlag == 0 || examinationInfo.checkFlag == undefined" @click="Explicit = false">取消</div>
|
<div class="details-button"
|
||||||
|
v-if="examinationInfo.checkFlag == 0 || examinationInfo.checkFlag == undefined"
|
||||||
|
@click="Explicit = false">取消</div>
|
||||||
<div class="details-button"
|
<div class="details-button"
|
||||||
v-if="examinationInfo.checkFlag == 0 || examinationInfo.checkFlag == undefined"
|
v-if="examinationInfo.checkFlag == 0 || examinationInfo.checkFlag == undefined"
|
||||||
@click="confirmClick">确定</div>
|
@click="confirmClick">确定</div>
|
||||||
|
@ -519,7 +519,7 @@ function removePercentSign(str:any) {
|
|||||||
<el-table-column prop="description" label="巡视结果" width="140px" align="center">
|
<el-table-column prop="description" label="巡视结果" width="140px" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>成功:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum }};</span><span>失败:{{ scope.row.deviceFailureNum }}</span><br />
|
<span>成功:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum }};</span><span>失败:{{ scope.row.deviceFailureNum }}</span><br />
|
||||||
<span>正常:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum }};</span><span style="color: #FF3300;">异常:{{scope.row.deviceUnusualnum }}</span>
|
<span>正常:{{ (scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum)<0?0:(scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum) }};</span><span style="color: #FF3300;">异常:{{scope.row.deviceUnusualnum }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -317,7 +317,7 @@ const tableRowClassName = ({
|
|||||||
<el-table-column prop="description" label="巡视结果" width="140px" align="center">
|
<el-table-column prop="description" label="巡视结果" width="140px" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>成功:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum }};</span><span>失败:{{ scope.row.deviceFailureNum }}</span><br />
|
<span>成功:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum }};</span><span>失败:{{ scope.row.deviceFailureNum }}</span><br />
|
||||||
<span>正常:{{ scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum }};</span><span style="color: #FF3300;">异常:{{scope.row.deviceUnusualnum }}</span>
|
<span>正常:{{ (scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum)<0?0:(scope.row.deviceDeforeNum - scope.row.deviceFailureNum - scope.row.deviceUnusualnum) }};</span><span style="color: #FF3300;">异常:{{scope.row.deviceUnusualnum }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -106,8 +106,13 @@
|
|||||||
@click.stop="historicalRecords(i), listClick(i, index)">
|
@click.stop="historicalRecords(i), listClick(i, index)">
|
||||||
</div>
|
</div>
|
||||||
<div v-show="selType == '05'" class="THREE-right-list-main-icon">
|
<div v-show="selType == '05'" class="THREE-right-list-main-icon">
|
||||||
|
<div style="display:flex;width:28px;height:28px;align-items: center;">
|
||||||
<img src="@/assets/3d/xq.png" @click.stop="informationClick(i), listClick(i, index)" title="部件信息"
|
<img src="@/assets/3d/xq.png" @click.stop="informationClick(i), listClick(i, index)" title="部件信息"
|
||||||
alt="部件信息">
|
alt="部件信息">
|
||||||
|
<img src="@/assets/3d/xq1.png" @click.stop="getdevsignal(i), listClick(i, index)" title="点位和信号"
|
||||||
|
alt="点位和信号">
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -452,6 +457,98 @@
|
|||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
</Eldialog>
|
</Eldialog>
|
||||||
|
<!-- 点位和信号 -->
|
||||||
|
<Eldialog v-if="selectble" :title="'点位和信号'" :zIndex="2000" :width="'80%'" @before-close="selectbleClose">
|
||||||
|
<template v-slot:PopFrameContent>
|
||||||
|
<div class="device_box">
|
||||||
|
<div class="box_tabs">
|
||||||
|
<div :class="sourceType == 1 ? 'bianhua' : ''" @click="typeChange(1)">关联点位</div>
|
||||||
|
<div :class="sourceType == 2 ? 'bianhua' : ''" @click="typeChange(2)">关联信号</div>
|
||||||
|
</div>
|
||||||
|
<div class="faulttemplate-box1">
|
||||||
|
<div class="silderRight1">
|
||||||
|
<div
|
||||||
|
style="display: flex;display: -webkit-flex; justify-content: space-between; -webkit-justify-content: space-between; margin:15px 0px">
|
||||||
|
<div style="display: flex;display: -webkit-flex; align-items: center;">
|
||||||
|
|
||||||
|
<el-input v-if="sourceType == 1" v-model="paramstable.deviceName"
|
||||||
|
placeholder="请输入巡视点位名称" @clear="getdevicedata1()" @change="getdevicedata1()"
|
||||||
|
style="margin-right:15px ;width: 185px;" clearable />
|
||||||
|
<el-input v-if="sourceType == 2" v-model="paramstable.signalName"
|
||||||
|
placeholder="请输入信号名称" @clear="getdevicedata1()" @change="getdevicedata1()"
|
||||||
|
style="margin-right:15px ;width: 185px;" clearable />
|
||||||
|
<el-button class="searchButton" type="primary"
|
||||||
|
@click="getdevicedata1()">搜索</el-button>
|
||||||
|
<el-button class="searchButton" @click="resetting()">重置</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<el-table v-loading="devicedataloading" :data="devicedata" ref="tableref"
|
||||||
|
style="width: 100%;height: calc(50vh); overflow: auto;margin-bottom: 15px;"
|
||||||
|
row-key="deviceId" class="PatrolMonitoring" highlight-current-row default-expand-all
|
||||||
|
:row-class-name="tableRowClassName"
|
||||||
|
:header-cell-style="{ background: '#002b6a', color: '#B5D7FF', height: '50px' }">
|
||||||
|
<el-table-column type="index" label="序号" width="50px" align="center" />
|
||||||
|
<el-table-column v-if="sourceType == 1" label="巡视点位编号" prop="deviceCode" align="center"
|
||||||
|
width="140"></el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="巡视点位名称" align="center"
|
||||||
|
prop="deviceName"></el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="所属主设备" prop="mainDeviceName"
|
||||||
|
align="center" width="120"></el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="主设备类型" prop="deviceType" align="center"
|
||||||
|
width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ currency(EquipmentType, scope.row.deviceType) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="所属部件" align="center" prop="componentName"
|
||||||
|
width="160"></el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="表计类型" align="center" prop="meterType"
|
||||||
|
width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ currency(Metertype, scope.row.meterType) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 1" label="点位分类" align="center" width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ currency(DeviceClass, scope.row.deviceClass) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column v-if="sourceType == 2" label="信号编号" align="center" prop="signalCode"
|
||||||
|
width="100" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="信号名称" align="center" prop="signalName"
|
||||||
|
min-width="140" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="信号单位" align="center" prop="signalUnit"
|
||||||
|
width="80" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="遥控遥调类型" align="center" prop="ykytType"
|
||||||
|
width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ isykyttype(scope.row.ykytType) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-if="sourceType == 2" label="是否告警信号" align="center" prop="signalType"
|
||||||
|
width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.signalType === '1'">是</span>
|
||||||
|
<span v-else>否</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column v-if="sourceType == 2" label="遥信地址(yx)" align="center" prop="yxAddr" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="遥测地址(yc)" align="center" prop="ycAddr" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="遥控地址(yk)" align="center" prop="ykAddr" />
|
||||||
|
<el-table-column v-if="sourceType == 2" label="遥调地址(yt)" align="center" prop="ytAddr" />
|
||||||
|
|
||||||
|
</el-table>
|
||||||
|
<Page :total="devicetaotal" v-model:size="paramstable.size"
|
||||||
|
v-model:current="paramstable.current" @pagination="getdevicedata1()"></Page>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</Eldialog>
|
||||||
<div id="contextimg">
|
<div id="contextimg">
|
||||||
<img src="@/assets/3d/luminescence.svg" alt="">
|
<img src="@/assets/3d/luminescence.svg" alt="">
|
||||||
</div>
|
</div>
|
||||||
@ -500,7 +597,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getdata, getArea } from '@/api/monitordevice'
|
import { getdata, getArea } from '@/api/monitordevice'
|
||||||
import { getDeviceByType } from "@/api/device";
|
import { getDeviceByType,getdevicedata,getMainEquipment,getBayType } from "@/api/device";
|
||||||
|
import {
|
||||||
|
queryDeviceSignal
|
||||||
|
} from '@/api/equipmentsignal';
|
||||||
|
import dayjs from 'dayjs'
|
||||||
import JessibucaPlayer from '@/components/jessibuca/index1.vue' // 视频
|
import JessibucaPlayer from '@/components/jessibuca/index1.vue' // 视频
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
@ -602,6 +703,7 @@ const srangingMouse = new THREE.Vector2()
|
|||||||
|
|
||||||
// 初始化
|
// 初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
gettoday()
|
||||||
getTypeTwo()
|
getTypeTwo()
|
||||||
setupWebSocket()
|
setupWebSocket()
|
||||||
initRenderer()
|
initRenderer()
|
||||||
@ -2505,6 +2607,134 @@ function informationClick(row) {
|
|||||||
})
|
})
|
||||||
clearDiv()
|
clearDiv()
|
||||||
}
|
}
|
||||||
|
//
|
||||||
|
//间隔下所属部件
|
||||||
|
const getacaTypeBayId = ref()
|
||||||
|
// 主设备类型
|
||||||
|
const EquipmentType = ref()
|
||||||
|
//点位分类
|
||||||
|
const DeviceClass = ref([])
|
||||||
|
const Metertype = ref([])
|
||||||
|
const mainEquipment = ref([])
|
||||||
|
// 获取弹窗所需数据
|
||||||
|
function notification() {
|
||||||
|
// 所属主设备
|
||||||
|
const params = {
|
||||||
|
bayId: bayId.value
|
||||||
|
}
|
||||||
|
getMainEquipment(params).then((res) => {
|
||||||
|
mainEquipment.value = res.data
|
||||||
|
});
|
||||||
|
//间隔下所属部件
|
||||||
|
const paramsbayId = {
|
||||||
|
bayId: bayId.value
|
||||||
|
}
|
||||||
|
getBayType(paramsbayId).then((res) => {
|
||||||
|
getacaTypeBayId.value = res.data
|
||||||
|
})
|
||||||
|
// 表计类型
|
||||||
|
getDeviceByType({ dictcode: 'MeterType' }).then((res) => {
|
||||||
|
Metertype.value = res.data
|
||||||
|
})
|
||||||
|
//点位分类
|
||||||
|
getDeviceByType({ dictcode: 'DeviceClass' }).then((res) => {
|
||||||
|
DeviceClass.value = res.data
|
||||||
|
})
|
||||||
|
//主设备类型
|
||||||
|
getDeviceByType({ dictcode: 'EquipmentType' }).then((res) => {
|
||||||
|
EquipmentType.value = res.data
|
||||||
|
})
|
||||||
|
getDeviceByType({ dictcode: 'ykytType' }).then((ress) => {
|
||||||
|
typeoptions.value = ress.data
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
const selectble = ref(false)
|
||||||
|
function selectbleClose() {
|
||||||
|
selectble.value = false
|
||||||
|
sourceType.value = 0
|
||||||
|
devicedata.value.length = 0
|
||||||
|
}
|
||||||
|
const mainDeviceId= ref('')
|
||||||
|
function getdevsignal(row){
|
||||||
|
console.log(row)
|
||||||
|
if(row.objinfo.componentId){
|
||||||
|
componentId.value = row.objinfo.componentId
|
||||||
|
}else{
|
||||||
|
componentId.value = ''
|
||||||
|
mainDeviceId.value = row.objinfo.mainDeviceId
|
||||||
|
}
|
||||||
|
notification()
|
||||||
|
typeChange(1)
|
||||||
|
selectble.value = true
|
||||||
|
|
||||||
|
}
|
||||||
|
const sourceType = ref(1)
|
||||||
|
function typeChange(val) {
|
||||||
|
sourceType.value = val
|
||||||
|
getdevicedata1()
|
||||||
|
}
|
||||||
|
const componentId= ref('')
|
||||||
|
const bayId = ref('')
|
||||||
|
const devicedataloading = ref(false)
|
||||||
|
const devicetaotal = ref()
|
||||||
|
const devicedata = ref([])
|
||||||
|
const paramstable = ref({
|
||||||
|
size: 10,
|
||||||
|
current: 1,
|
||||||
|
deviceName: '',
|
||||||
|
componentId: ''
|
||||||
|
})
|
||||||
|
function getdevicedata1() {
|
||||||
|
if (sourceType.value == 1) {
|
||||||
|
paramstable.value.bayId = bayId.value
|
||||||
|
if(componentId.value){
|
||||||
|
paramstable.value.componentId = componentId.value
|
||||||
|
paramstable.value.mainComponentId = ''
|
||||||
|
}else{
|
||||||
|
paramstable.value.mainDeviceId = mainDeviceId.value
|
||||||
|
}
|
||||||
|
|
||||||
|
getdevicedata(paramstable.value).then((res) => {
|
||||||
|
devicedata.value = res.data.records
|
||||||
|
devicetaotal.value = res.data.total
|
||||||
|
paramstable.value.size = res.data.size
|
||||||
|
paramstable.value.current = res.data.current
|
||||||
|
devicedataloading.value = false
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
} else if (sourceType.value == 2) {
|
||||||
|
if(componentId.value){
|
||||||
|
paramstable.value.componentId = ''
|
||||||
|
paramstable.value.mainComponentId = componentId.value
|
||||||
|
}else{
|
||||||
|
paramstable.value.mainDeviceId = mainDeviceId.value
|
||||||
|
}
|
||||||
|
|
||||||
|
queryDeviceSignal(paramstable.value).then((res) => {
|
||||||
|
devicedata.value = res.data.records
|
||||||
|
devicetaotal.value = res.data.total
|
||||||
|
paramstable.value.size = res.data.size
|
||||||
|
paramstable.value.current = res.data.current
|
||||||
|
devicedataloading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
devicedataloading.value = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
function resetting() {
|
||||||
|
paramstable.value = {
|
||||||
|
size: 10,
|
||||||
|
current: 1,
|
||||||
|
deviceName: '',
|
||||||
|
mainDeviceId: '',
|
||||||
|
componentId: ''
|
||||||
|
}
|
||||||
|
getdevicedata1()
|
||||||
|
}
|
||||||
//点位历史记录
|
//点位历史记录
|
||||||
const history = ref(false)
|
const history = ref(false)
|
||||||
const histotal = ref(0)
|
const histotal = ref(0)
|
||||||
@ -2515,11 +2745,20 @@ const historParams = ref({
|
|||||||
startDate: '',
|
startDate: '',
|
||||||
endDate: ''
|
endDate: ''
|
||||||
})
|
})
|
||||||
|
function gettoday() {
|
||||||
|
// 获取今天0点
|
||||||
|
let startTime = dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
// 获取当前时间
|
||||||
|
let endTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
timeSlot.value[0] = startTime
|
||||||
|
timeSlot.value[1] = endTime
|
||||||
|
}
|
||||||
const historydata = ref([])
|
const historydata = ref([])
|
||||||
const hisloading = ref(false)
|
const hisloading = ref(false)
|
||||||
const timeSlot = ref([])
|
const timeSlot = ref([])
|
||||||
const deviceIdone = ref('')
|
const deviceIdone = ref('')
|
||||||
function historicalRecords(row) {
|
function historicalRecords(row) {
|
||||||
|
// gettoday()
|
||||||
getType()
|
getType()
|
||||||
deviceIdone.value = row
|
deviceIdone.value = row
|
||||||
historParams.value.deviceId = row.objinfo.deviceId
|
historParams.value.deviceId = row.objinfo.deviceId
|
||||||
@ -2534,6 +2773,7 @@ function historicalRecords(row) {
|
|||||||
hisloading.value = true
|
hisloading.value = true
|
||||||
history.value = true
|
history.value = true
|
||||||
getHistoryDevice(historParams.value).then(res => {
|
getHistoryDevice(historParams.value).then(res => {
|
||||||
|
// debugger
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
historydata.value = res.data.records
|
historydata.value = res.data.records
|
||||||
historParams.value.size = res.data.size
|
historParams.value.size = res.data.size
|
||||||
@ -2546,6 +2786,7 @@ function historicalRecords(row) {
|
|||||||
}
|
}
|
||||||
function hisreset() {
|
function hisreset() {
|
||||||
timeSlot.value.length = 0
|
timeSlot.value.length = 0
|
||||||
|
gettoday()
|
||||||
historicalRecords(deviceIdone.value)
|
historicalRecords(deviceIdone.value)
|
||||||
}
|
}
|
||||||
const tableRowClassName = ({
|
const tableRowClassName = ({
|
||||||
@ -2568,6 +2809,17 @@ function currency(list, itemcode) {
|
|||||||
})
|
})
|
||||||
return dictname
|
return dictname
|
||||||
}
|
}
|
||||||
|
const typeoptions = ref([])
|
||||||
|
function isykyttype(val) {
|
||||||
|
let name = ''
|
||||||
|
for (let i = 0; i < typeoptions.value.length; i++) {
|
||||||
|
if (typeoptions.value[i].itemcode === val) {
|
||||||
|
name = typeoptions.value[i].dictname
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return name
|
||||||
|
}
|
||||||
const MeterTypeList = ref([])
|
const MeterTypeList = ref([])
|
||||||
function getType() {
|
function getType() {
|
||||||
const paramstypes = {
|
const paramstypes = {
|
||||||
@ -3165,7 +3417,7 @@ function nextPage() {
|
|||||||
img {
|
img {
|
||||||
width: 14px;
|
width: 14px;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
margin: 0 5px;
|
// margin: 0 5px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3546,4 +3798,84 @@ function nextPage() {
|
|||||||
:deep(.el-radio__input.is-checked + .el-radio__label) {
|
:deep(.el-radio__input.is-checked + .el-radio__label) {
|
||||||
color: #009bff !important;
|
color: #009bff !important;
|
||||||
}
|
}
|
||||||
|
.device_box {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.box_tabs {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1px solid #0099ff;
|
||||||
|
border-radius: 5px 0px 0px 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
padding: 10px 20px 10px 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bianhua {
|
||||||
|
padding: 10px 20px 10px 20px !important;
|
||||||
|
border-bottom: 4px solid #0099ff;
|
||||||
|
color: #0099ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.faulttemplate-box1 {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
background-color: #f2f4f900;
|
||||||
|
padding: 15px;
|
||||||
|
|
||||||
|
.silderLeft1 {
|
||||||
|
width: 300px;
|
||||||
|
height: calc(65vh);
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: url(@/assets/navigation/ty_260x988.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
.displayflex {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.line {
|
||||||
|
width: 5px;
|
||||||
|
height: 14px;
|
||||||
|
background: #0099ff;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-decoration: none !important;
|
||||||
|
font-family: "阿里妈妈数黑体 Bold";
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 16px !important;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
line-height: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.silderRight1 {
|
||||||
|
flex: 1;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(65vh);
|
||||||
|
overflow: auto;
|
||||||
|
padding: 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-left: 15px;
|
||||||
|
background: url(@/assets/navigation/ty_1614x988.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user