tplink接口优化

This commit is contained in:
曹磊 2026-03-09 15:26:12 +08:00
parent 1bd7d52883
commit 282ff91539
3 changed files with 129 additions and 95 deletions

View File

@ -26,7 +26,6 @@
<TableAction :actions="getTableAction(record)"/>
</template>
</BasicTable>
<ApiLogModal ref="apiLogModal"></ApiLogModal>
<DrawerModal ref="registerDrawer" @success="handleSuccess" />
<a-modal v-model:visible="tipVisible" width="300px">
<template #title>
@ -51,8 +50,6 @@
import {list, save, deleteMeter, eleReset, eleCutOff, eleConnected, eleRead} from './electricity.api';
import { columns, searchFormSchema } from './electricity.data';
import {useModal} from "@/components/Modal";
import ApiLogModal from "/@/views/iot/tq/electricity/apilog/ApiLogModal.vue";
import DrawerModal from "./components/DrawerModal.vue";
import { defHttp } from '/@/utils/http/axios';

View File

@ -38,16 +38,16 @@
<a-col :span="20">
<a-divider orientation="left">处理方式</a-divider>
</a-col>
<a-col :span="20">
<a-row style="margin-bottom: 14px">
<a-col :span="5" class="labelText">
<!-- <a-col :span="20">-->
<!-- <a-row style="margin-bottom: 14px">-->
<!-- <a-col :span="5" class="labelText">-->
</a-col>
<a-col :span="16">
<a-checkbox v-model:checked="formData.msgPushEnabled" :disabled="!formData.enabled">消息提醒触发事件后设备会上传云端信息</a-checkbox>
</a-col>
</a-row>
</a-col>
<!-- </a-col>-->
<!-- <a-col :span="16">-->
<!-- <a-checkbox v-model:checked="formData.msgPushEnabled" :disabled="!formData.enabled">消息提醒触发事件后设备会上传云端信息</a-checkbox>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-col>-->
<a-col :span="20">
<a-row style="margin-bottom: 14px">
<a-col :span="5" class="labelText">
@ -68,29 +68,29 @@
</a-col>
</a-row>
</a-col>
<a-col :span="20">
<a-row style="margin-bottom: 14px">
<a-col :span="7" class="labelText">
报警声音
</a-col>
<a-col :span="5">
<a-select v-model:value="formData.soundAlarmType" :options="formData.soundAlarmTypeArr" :disabled="!formData.enabled"/>
</a-col>
<a-col :span="5" style="padding-left: 10px">
<a-button preIcon="ant-design:customer-service-outlined" @click="soundAlarm" :disabled="!formData.enabled">试听</a-button>
</a-col>
</a-row>
</a-col>
<a-col :span="20">
<a-row style="margin-bottom: 10px">
<a-col :span="7" class="labelText">
播放次数
</a-col>
<a-col :span="5">
<a-select v-model:value="formData.soundAlarmTimes" :options="formData.soundAlarmTimesArr" :disabled="!formData.enabled"/>
</a-col>
</a-row>
</a-col>
<!-- <a-col :span="20">-->
<!-- <a-row style="margin-bottom: 14px">-->
<!-- <a-col :span="7" class="labelText">-->
<!-- 报警声音-->
<!-- </a-col>-->
<!-- <a-col :span="5">-->
<!-- <a-select v-model:value="formData.soundAlarmType" :options="formData.soundAlarmTypeArr" :disabled="!formData.enabled"/>-->
<!-- </a-col>-->
<!-- <a-col :span="5" style="padding-left: 10px">-->
<!-- <a-button preIcon="ant-design:customer-service-outlined" @click="soundAlarm" :disabled="!formData.enabled">试听</a-button>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-col>-->
<!-- <a-col :span="20">-->
<!-- <a-row style="margin-bottom: 10px">-->
<!-- <a-col :span="7" class="labelText">-->
<!-- 播放次数-->
<!-- </a-col>-->
<!-- <a-col :span="5">-->
<!-- <a-select v-model:value="formData.soundAlarmTimes" :options="formData.soundAlarmTimesArr" :disabled="!formData.enabled"/>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-col>-->
</a-row>
</a-col>
<a-col :span="24">
@ -141,26 +141,35 @@
deviceIndex: '', //
enabled: false, //
digitalSensitivity: '50', //
msgPushEnabled: true, //
// msgPushEnabled: true, //
lightAlarmEnabled: false, //
soundAlarmEnabled: false, //
soundAlarmType: '', //
soundAlarmTypeArr: [
{value:'0',label:'报警音'},
{value:'1',label:'提示音'},
{value:'2',label:'警戒区域,尽快离开'},
{value:'3',label:'危险区域,请勿靠近'},
{value:'4',label:'此区域禁止停车'},
{value:'5',label:'你已进入实时监控区域'},
{value:'6',label:'您好,欢迎光临'},
{value:'7',label:'贵重物品,请勿触摸'},
{value:'8',label:'私人领域, 禁止入内'},
{value:'9',label:'水深危险,注意安全'},
{value:'10',label:'高处危险,请勿攀爬'},
{value:'11',label:'垃圾请分类投放'},
], //
soundAlarmTimes: '', //
soundAlarmTimesArr:[{value:'1',label:'1次'},{value:'2',label:'2次'},{value:'3',label:'3次'},{value:'4',label:'4次'},{value:'5',label:'5次'}],
// soundAlarmType: '', //
// soundAlarmTypeArr: [
// {value:'0',label:''},
// {value:'1',label:''},
// {value:'2',label:''},
// {value:'3',label:''},
// {value:'4',label:''},
// {value:'5',label:''},
// {value:'6',label:''},
// {value:'7',label:''},
// {value:'8',label:', '},
// {value:'9',label:''},
// {value:'10',label:''},
// {value:'11',label:''},
// ], //
// soundAlarmTimes: '', //
// soundAlarmTimesArr:[{value:'1',label:'1'},{value:'2',label:'2'},{value:'3',label:'3'},{value:'4',label:'4'},{value:'5',label:'5'}],
sensitivity: '',
screenwarnEnabled: '',
screenshotEnabled: '',
buzzerEnabled: '',
unionEnabled: '',
recordUnion: '',
popupwinEnabled: '',
customizeEnabled: '',
spkAlarmEnabled: '',
});
const confirmLoading = ref<boolean>(false);
@ -183,30 +192,49 @@
formData.enabled = false;
}
formData.digitalSensitivity = res.digital_sensitivity;
formData.sensitivity = res.sensitivity;
});
//
getTamperNotif({
"deviceIndex": deviceIndex
}).then(res=>{
let tamper_notif_list = res.tamper_notif_list;
let sound_alarm_info = res.sound_alarm_info;
if(tamper_notif_list.msg_push_enabled == "on"){
formData.msgPushEnabled = true;
}else{
formData.msgPushEnabled = false;
}
if(tamper_notif_list.light_alarm_enabled == "on"){
// let tamper_notif_list = res.tamper_notif_list;
// let sound_alarm_info = res.sound_alarm_info;
// if(tamper_notif_list.msg_push_enabled == "on"){
// formData.msgPushEnabled = true;
// }else{
// formData.msgPushEnabled = false;
// }
// if(tamper_notif_list.light_alarm_enabled == "on"){
// formData.lightAlarmEnabled = true;
// }else{
// formData.lightAlarmEnabled = false;
// }
// if(tamper_notif_list.sound_alarm_enabled == "on"){
// formData.soundAlarmEnabled = true;
// }else{
// formData.soundAlarmEnabled = false;
// }
// formData.soundAlarmType = sound_alarm_info.sound_alarm_type;
// formData.soundAlarmTimes = sound_alarm_info.sound_alarm_times;
if(res.light_alarm_enabled == "on"){
formData.lightAlarmEnabled = true;
}else{
formData.lightAlarmEnabled = false;
}
if(tamper_notif_list.sound_alarm_enabled == "on"){
if(res.sound_alarm_enabled == "on"){
formData.soundAlarmEnabled = true;
}else{
formData.soundAlarmEnabled = false;
}
formData.soundAlarmType = sound_alarm_info.sound_alarm_type;
formData.soundAlarmTimes = sound_alarm_info.sound_alarm_times;
formData.screenwarnEnabled = res.screenwarn_enabled;
formData.screenshotEnabled = res.screenshot_enabled;
formData.buzzerEnabled = res.buzzer_enabled;
formData.unionEnabled = res.union_enabled;
formData.recordUnion = res.record_union;
formData.popupwinEnabled = res.popupwin_enabled;
formData.customizeEnabled = res.customize_enabled;
formData.spkAlarmEnabled = res.spk_alarm_enabled;
});
}
@ -226,15 +254,16 @@
if(formData.enabled){
params["digitalSensitivity"] = formData.digitalSensitivity;
}
params["sensitivity"] = formData.sensitivity;
setTamperDet(params).then(res=>{
confirmLoading.value = false;
});
if(formData.enabled){
if(formData.msgPushEnabled){
params["msgPushEnabled"] = "on";
}else{
params["msgPushEnabled"] = "off";
}
// if(formData.msgPushEnabled){
// params["msgPushEnabled"] = "on";
// }else{
// params["msgPushEnabled"] = "off";
// }
if(formData.lightAlarmEnabled){
params["lightAlarmEnabled"] = "on";
}else{
@ -245,8 +274,16 @@
}else{
params["soundAlarmEnabled"] = "off";
}
params["soundAlarmType"] = formData.soundAlarmType;
params["soundAlarmTimes"] = formData.soundAlarmTimes;
params["screenwarnEnabled"] = formData.screenwarnEnabled;
params["screenshotEnabled"] = formData.screenshotEnabled;
params["buzzerEnabled"] = formData.buzzerEnabled;
params["unionEnabled"] = formData.unionEnabled;
params["recordUnion"] = formData.recordUnion;
params["popupwinEnabled"] = formData.popupwinEnabled;
params["customizeEnabled"] = formData.customizeEnabled;
params["spkAlarmEnabled"] = formData.spkAlarmEnabled;
// params["soundAlarmType"] = formData.soundAlarmType;
// params["soundAlarmTimes"] = formData.soundAlarmTimes;
setTamperNotif(params).then(res=>{
confirmLoading.value = false;
});

View File

@ -64,25 +64,25 @@
<!-- </a-tab-pane>-->
</a-tabs>
</a-tab-pane>
<a-tab-pane key="C" tab="报警设备">
<a-tabs
v-model:activeKey="threeChildActiveKey"
tab-position="top"
:style="{ height: '100%' }"
type="card"
>
<a-tab-pane key="C1" tab="白光报警">
<div class="scrollable" v-if="threeChildActiveKey=='C1'">
<CameraLightAlarmForm :data="cameraData"></CameraLightAlarmForm>
</div>
</a-tab-pane>
<a-tab-pane key="C2" tab="声音报警">
<div class="scrollable" v-if="threeChildActiveKey=='C2'">
<CameraSoundAlarmForm :data="cameraData"></CameraSoundAlarmForm>
</div>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
<!-- <a-tab-pane key="C" tab="报警设置">-->
<!-- <a-tabs-->
<!-- v-model:activeKey="threeChildActiveKey"-->
<!-- tab-position="top"-->
<!-- :style="{ height: '100%' }"-->
<!-- type="card"-->
<!-- >-->
<!-- <a-tab-pane key="C1" tab="白光报警">-->
<!-- <div class="scrollable" v-if="threeChildActiveKey=='C1'">-->
<!-- <CameraLightAlarmForm :data="cameraData"></CameraLightAlarmForm>-->
<!-- </div>-->
<!-- </a-tab-pane>-->
<!-- <a-tab-pane key="C2" tab="声音报警">-->
<!-- <div class="scrollable" v-if="threeChildActiveKey=='C2'">-->
<!-- <CameraSoundAlarmForm :data="cameraData"></CameraSoundAlarmForm>-->
<!-- </div>-->
<!-- </a-tab-pane>-->
<!-- </a-tabs>-->
<!-- </a-tab-pane>-->
<a-tab-pane key="D" tab="录像管理">
<a-tabs
v-model:activeKey="fourChildActiveKey"
@ -109,9 +109,9 @@
</a-tab-pane>-->
</a-tabs>
</a-tab-pane>
<a-tab-pane key="E" tab="录像设置" forceRender="true">
<PlanAddForm ref="addForm" :initData="formData" :data="cameraData" @success="submitCallback" />
</a-tab-pane>
<!-- <a-tab-pane key="E" tab="录像设置" forceRender="true">-->
<!-- <PlanAddForm ref="addForm" :initData="formData" :data="cameraData" @success="submitCallback" />-->
<!-- </a-tab-pane>-->
</a-tabs>
</div>
</template>
@ -127,8 +127,8 @@
import CameraOsdForm from './CameraOsdForm.vue';//OSD
import CameraBitrateForm from './CameraBitrateForm.vue';//
import CameraBlockForm from './CameraBlockForm.vue';//
import CameraLightAlarmForm from './CameraLightAlarmForm.vue';//
import CameraSoundAlarmForm from './CameraSoundAlarmForm.vue';//
// import CameraLightAlarmForm from './CameraLightAlarmForm.vue';//
// import CameraSoundAlarmForm from './CameraSoundAlarmForm.vue';//
import CameraRecordList from './CameraRecordList.vue';//
import CameraUploadForm from './CameraUploadForm.vue';//FTP
import PlanAddForm from '/@/views/iot/tplink/plan/components/PlanAddForm.vue';//