You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xy-frontend/src/views/photographicDevice/components/parameterSetDialog.vue

1838 lines
55 KiB
Vue

2 years ago
<template>
<el-dialog
class="parameterSetDialog"
title="参数设置"
:visible.sync="isShow"
:close-on-click-modal="false"
2 years ago
width="1200px"
2 years ago
@close="handleclose"
>
<div class="zzinfo">
装置编号{{ rowData.cmdId || rowData.cmdid }}
<span v-if="roleUser == 0">
<span v-if="rowData.protocol == '65280'"> I1 </span>
<span v-if="rowData.protocol == '65296'"> 西 </span>
<span v-if="rowData.protocol == '65281'"> </span>
<span v-if="rowData.protocol == '65282'"> </span>
<span v-if="rowData.protocol == '65283'"> </span>
<span v-if="rowData.protocol == '65284'"> </span>
<span v-if="rowData.protocol == '65285'"> </span>
<span v-if="rowData.protocol == '65286'"> </span>
</span>
</div>
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
<el-tab-pane label="装置时间" name="1">
2 years ago
<div class="deviceTime">
<el-form
:model="deviceTimeForm"
label-position="right"
label-width="84px"
>
<el-form-item label="装置时间">
<el-date-picker
v-model="deviceTimeForm.zztime"
type="datetime"
placeholder="查询日期时间"
value-format="timestamp"
disabled
>
</el-date-picker>
<!-- <el-input
2 years ago
v-model="deviceTimeForm.zztime"
disabled="disabled"
></el-input> -->
2 years ago
</el-form-item>
<el-form-item label="新装置时间">
<!-- <el-input v-model="deviceTimeForm.newzztime"></el-input> -->
<el-date-picker
v-model="deviceTimeForm.newzztime"
type="datetime"
placeholder="选择日期时间"
value-format="timestamp"
@focus="handleFocus"
>
</el-date-picker>
2 years ago
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="searchTime"
:loading="timeLoading"
>查询</el-button
>
<el-button
type="primary"
@click="setTime"
:loading="timesetLoading"
>设置</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
2 years ago
<el-tab-pane label="采样参数" name="2">
<div class="tabsBox">
<el-tabs
v-model="tabsActive"
type="card"
@tab-click="samphandleClick"
>
<el-tab-pane label="查询实际参数" name="first">
<div class="queryParam">
<el-form
:model="samplingForm"
label-position="right"
label-width="152px"
>
<el-form-item label="采集时间周期(分钟)">
<el-input
v-model="samplingForm.mainTime"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="高速采样点数">
<el-input
v-model="samplingForm.sampleCount"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="高速采样频率">
<el-input
v-model="samplingForm.sampleFrequency"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="心跳上送周期(分钟)">
<el-input
v-model="samplingForm.heartbeatTime"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="samplingSearch"
:loading="sampLoading"
>查询</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="设置参数" name="second">
<div class="queryParam">
<el-form
:model="samplingForm"
label-position="right"
label-width="164px"
ref="samplingFormref"
:rules="samplingrules"
>
<el-form-item label="采集时间周期(分钟)">
<el-input v-model="samplingForm.mainTime"></el-input>
</el-form-item>
<el-form-item label="高速采样点数">
<el-input v-model="samplingForm.sampleCount"></el-input>
</el-form-item>
<el-form-item label="高速采样频率">
<el-input v-model="samplingForm.sampleFrequency"></el-input>
</el-form-item>
<el-form-item
label="心跳上送周期(分钟)"
prop="heartbeatTime"
>
<el-input v-model="samplingForm.heartbeatTime"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="samplingSet"
:loading="sampSetLoading"
>设置</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
<el-tab-pane label="上位机信息" name="3">
<div class="tabsBox">
<el-tabs v-model="tabsActive" type="card" @tab-click="uphandleClick">
<el-tab-pane label="查询实际参数" name="first">
<div class="queryParam">
<el-form
:model="upperComputer"
label-position="right"
label-width="124px"
>
<el-form-item label="IP地址">
<el-input
v-model="upperComputer.ip"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="端口号">
<el-input
v-model="upperComputer.port"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="域名">
<el-input
v-model="upperComputer.domain"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="upperSearch"
:loading="upperLoading"
>查询</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="设置参数" name="second">
<div class="queryParam">
<el-form
:model="upperComputer"
label-position="right"
label-width="124px"
ref="upperFormref"
:rules="upperrulse"
>
<el-form-item label="IP地址" prop="ip">
<el-input v-model="upperComputer.ip"></el-input>
</el-form-item>
<el-form-item label="端口号" prop="port">
<el-input v-model="upperComputer.port"></el-input>
</el-form-item>
<el-form-item label="域名">
<el-input v-model="upperComputer.domain"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="upperSet"
:loading="upperSetLoading"
>设置</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
<el-tab-pane label="ID参数" name="4">
<div class="tabsBox">
<el-tabs v-model="tabsActive" type="card" @tab-click="idhandleClick">
<el-tab-pane label="查询实际参数" name="first">
<div class="queryParam">
<el-form
:model="idParameter"
label-position="right"
label-width="124px"
>
<el-form-item label="CMD_ID">
<el-input
v-model="idParameter.newCmdId"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="杆塔ID">
<el-input
v-model="idParameter.componentId"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item label="原始ID">
<el-input
v-model="idParameter.originalId"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="idSearch"
:loading="idLoading"
>查询</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="设置参数" name="second">
<div class="queryParam">
<el-form
:model="idParameter"
label-position="right"
label-width="124px"
ref="idParameterref"
:rules="idrules"
>
<el-form-item label="CMD_ID" prop="newCmdId">
<el-input v-model="idParameter.newCmdId"></el-input>
</el-form-item>
<el-form-item label="杆塔ID" prop="componentId">
<el-input v-model="idParameter.componentId"></el-input>
</el-form-item>
<el-form-item label="原始ID">
<el-input
v-model="idParameter.originalId"
disabled="disabled"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="idSet"
:loading="idSetLoading"
>设置</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
<el-tab-pane label="图像采集参数" name="5">
<div class="tabsBox">
<imageCapture ref="imageCaptureref" :rowdata="rowData"></imageCapture>
</div>
</el-tab-pane>
<el-tab-pane label="视频采集参数" name="6">
<div class="tabsBox">
<videoCapture ref="videoCaptureref" :rowdata="rowData"></videoCapture>
</div>
</el-tab-pane>
<el-tab-pane
label="水印(安徽)"
name="7"
v-if="rowData.protocol == '65281'"
>
<div class="tabsBox">
<el-tabs
v-model="tabsActive"
type="card"
@tab-click="waterhandleClick"
>
<el-tab-pane label="查询水印" name="first">
2 years ago
<div class="queryParam waterParams">
2 years ago
<div class="channelBox">
<span class="title">通道</span>
<el-select
v-model="channelId"
placeholder="请选择"
class="mr20"
2 years ago
@change="waterChange"
2 years ago
>
<el-option
v-for="item in accesslist"
:key="item.channelid"
:label="
item.alias !== null && item.alias !== ''
? item.alias
: item.channelname
"
:value="item.channelid"
>
{{
item.alias !== null && item.alias !== ""
? item.alias
: item.channelname
}}
</el-option>
</el-select>
</div>
<el-form :model="waterForm" label-width="150px">
<el-form-item label="左下角水印">
<el-input
v-model="waterForm.leftBottom"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="右下角水印">
<el-input
v-model="waterForm.rightBottom"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item class="runformbtn">
<el-button
type="primary"
@click="waterSearch"
:loading="waterLoading"
>查询</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="设置水印" name="second">
2 years ago
<div class="queryParam waterParams">
2 years ago
<div class="channelBox">
<span class="title">通道</span>
<el-select
v-model="channelId"
placeholder="请选择"
class="mr20"
>
<el-option
v-for="item in accesslist"
:key="item.channelid"
:label="
item.alias !== null && item.alias !== ''
? item.alias
: item.channelname
"
:value="item.channelid"
>
{{
item.alias !== null && item.alias !== ""
? item.alias
: item.channelname
}}
</el-option>
</el-select>
</div>
<el-form :model="waterForm" label-width="150px">
<el-form-item label="左下角水印">
<el-input v-model="waterForm.leftBottom"></el-input>
</el-form-item>
<el-form-item label="右下角水印">
<el-input v-model="waterForm.rightBottom"></el-input>
</el-form-item>
<el-form-item class="runformbtn">
<el-button
type="primary"
@click="waterSet"
:loading="waterSetLoading"
>设置</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
2 years ago
<el-tab-pane label="OSD参数" name="11">
<div class="tabsBox">
2 years ago
<el-tabs v-model="tabsActive" type="card" @tab-click="osdhandleClick">
2 years ago
<el-tab-pane label="查询实际参数" name="first">
<div class="queryParam osdParam">
<div class="channelBox">
<span class="title">通道</span>
<el-select
v-model="channelId"
placeholder="请选择"
class="mr20"
>
<el-option
v-for="item in accesslist"
:key="item.channelid"
:label="
item.alias !== null && item.alias !== ''
? item.alias
: item.channelname
"
:value="item.channelid"
>
{{
item.alias !== null && item.alias !== ""
? item.alias
: item.channelname
}}
</el-option>
</el-select>
</div>
<el-form
:model="osdParams"
label-position="right"
label-width="124px"
>
2 years ago
<el-form-item label="时间标识" prop="showTime">
2 years ago
<el-select
2 years ago
v-model="osdParams.showTime"
2 years ago
class="mr20"
:disabled="true"
>
<el-option
v-for="item in timelist"
:key="item.id"
2 years ago
:label="item.name"
2 years ago
:value="item.id"
></el-option>
</el-select>
</el-form-item>
2 years ago
<el-form-item label="文本标识" prop="showText">
2 years ago
<el-select
2 years ago
v-model="osdParams.showText"
2 years ago
class="mr20"
:disabled="true"
>
<el-option
2 years ago
v-for="item in timelist"
2 years ago
:key="item.id"
2 years ago
:label="item.name"
2 years ago
:value="item.id"
></el-option>
</el-select>
</el-form-item>
2 years ago
<el-form-item label="文本内容" prop="textContent">
2 years ago
<el-input
type="textarea"
:rows="3"
2 years ago
v-model="osdParams.textContent"
2 years ago
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="osdSearch"
:loading="osdLoading"
>查询</el-button
>
<p class="looktime" v-if="lookTime && showLookTime">
{{ $moment(lookTime).format("YYYY-MM-DD HH:mm:ss") }}
</p>
2 years ago
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="设置参数" name="second">
<div class="queryParam osdParam">
<div class="channelBox">
<span class="title">通道</span>
<el-select
v-model="channelId"
placeholder="请选择"
class="mr20"
>
<el-option
v-for="item in accesslist"
:key="item.channelid"
:label="
item.alias !== null && item.alias !== ''
? item.alias
: item.channelname
"
:value="item.channelid"
>
{{
item.alias !== null && item.alias !== ""
? item.alias
: item.channelname
}}
</el-option>
</el-select>
</div>
<el-form
:model="osdParams"
label-position="right"
label-width="124px"
2 years ago
:rules="osdRules"
ref="osdFormref"
2 years ago
>
2 years ago
<el-form-item label="时间标识" prop="showTime">
<el-select v-model="osdParams.showTime" class="mr20">
2 years ago
<el-option
v-for="item in timelist"
:key="item.id"
2 years ago
:label="item.name"
2 years ago
:value="item.id"
></el-option>
</el-select>
</el-form-item>
2 years ago
<el-form-item label="文本标识" prop="showText">
<el-select v-model="osdParams.showText" class="mr20">
2 years ago
<el-option
2 years ago
v-for="item in timelist"
2 years ago
:key="item.id"
2 years ago
:label="item.name"
2 years ago
:value="item.id"
></el-option>
</el-select>
</el-form-item>
2 years ago
<el-form-item label="文本内容" prop="textContent">
2 years ago
<el-input
type="textarea"
:rows="3"
placeholder="请输入内容"
2 years ago
v-model="osdParams.textContent"
2 years ago
>
</el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="osdSet"
:loading="osdSetLoading"
>设置</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
2 years ago
<el-tab-pane label="装置运行状态报" name="8">
<div class="runform">
<el-form :model="runStatusForm" :inline="true" label-width="150px">
<el-form-item label="4G信号强度">
<el-input
v-model="runStatusForm.zztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="2G信号强度">
<el-input
v-model="runStatusForm.newzztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="剩余运行内存">
<el-input
v-model="runStatusForm.newzztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="剩余存储内存">
<el-input
v-model="runStatusForm.newzztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="上次启动时间">
<el-input
v-model="runStatusForm.newzztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="查询最新时间">
<el-input
v-model="runStatusForm.newzztime"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item class="runformbtn">
<el-button
type="primary"
@click="runstatusSearch"
:loading="statusLoading"
>查询</el-button
>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="GPS位置" name="9">
<div class="runform">
<el-form :model="gpsForm" :inline="true" label-width="150px">
<!-- <el-form-item label="坐标类型">
<el-input v-model="gpsForm.zztime" :disabled="true"></el-input>
</el-form-item> -->
<el-form-item label="经度">
<el-input v-model="gpsForm.longitude" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="纬度">
<el-input v-model="gpsForm.latitude" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="半径">
<el-input v-model="gpsForm.radius" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="查询最新时间">
<!-- <el-input
v-model="gpsForm.updatetime"
:disabled="true"
></el-input> -->
<el-date-picker
:disabled="true"
v-model="gpsForm.updatetime"
type="datetime"
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
<el-form-item class="runformbtn">
<el-button type="primary" @click="gpsSearch"></el-button>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="基本操作" name="10">
<div class="resetDevice">
<h3>装置复位</h3>
<el-button type="primary" @click.native.stop="handleDeviceReset"
>复位</el-button
>
</div>
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button @click="isShow = false"> </el-button>
</div>
</el-dialog>
</template>
<script>
import {
resetTerminalApi,
getTermLastGPSPosition,
setTermCamera,
getTermCameraRequest,
getChannelListJoggle,
} from "@/utils/api/index";
import imageCapture from "./imageCapture.vue";
import videoCapture from "./videoCapture.vue";
export default {
props: {
photoDialog: {
type: Boolean,
},
},
components: {
imageCapture,
videoCapture,
},
data() {
let validCmid = (rule, value, callback) => {
let reg = /^[0-9A-Za-z_/\\/-]{17}$/;
if (!reg.test(value)) {
callback(new Error("装置id为17位编码"));
} else {
callback();
}
};
let validateIPAddress = (rule, value, callback) => {
let regexp =
/^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/;
let valdata = value.split(",");
let isCorrect = true;
if (valdata.length) {
for (let i = 0; i < valdata.length; i++) {
if (regexp.test(valdata[i]) == false) {
isCorrect = false;
}
}
}
if (value == "") {
return callback(new Error("请输入iP地址"));
} else if (!isCorrect) {
callback(new Error("请输入正确对ip地址"));
} else {
callback();
}
};
return {
showLookTime: false,
lookTime: "", //查询时间
2 years ago
isShow: false,
activeName: "1",
timeLoading: false,
timesetLoading: false,
2 years ago
deviceTimeForm: {
zztime: "", //装置时间
newzztime: "", //新装置时间
},
//采样参数
samplingForm: {
mainTime: "",
sampleCount: "",
sampleFrequency: "",
heartbeatTime: "",
},
sampLoading: false,
sampSetLoading: false,
samplingrules: {
heartbeatTime: [
{ required: true, message: "请输入心跳周期", trigger: "blur" },
],
},
//上位机信息
upperComputer: {
ip: "",
port: "",
domain: "",
},
upperrulse: {
ip: [{ required: true, validator: validateIPAddress, trigger: "blur" }],
port: [{ required: true, message: "请输入端口号", trigger: "blur" }],
},
upperLoading: false,
upperSetLoading: false,
//id参数
idParameter: {
newCmdId: "",
componentId: "",
originalId: "",
},
idrules: {
newCmdId: [
{ required: true, message: "请输入CMD_ID", trigger: "blur" },
{ validator: validCmid, trigger: "blur" },
],
componentId: [
{ required: true, message: "请输入杆塔ID", trigger: "blur" },
{ validator: validCmid, trigger: "blur" },
],
},
idLoading: false,
idSetLoading: false,
//水印(安徽)
waterForm: {},
2 years ago
//osd参数
2 years ago
osdParams: {
textContent: "",
},
2 years ago
textlist: [
{
name: "显示",
id: 1,
},
{
name: "不显示",
id: 0,
},
],
timelist: [
{
name: "显示",
id: 1,
},
{
name: "不显示",
id: 0,
},
],
2 years ago
osdLoading: false,
osdSetLoading: false,
2 years ago
osdRules: {
showText: [
{ required: true, message: "请选择文本标识", trigger: "change" },
],
},
2 years ago
accesslist: [], //通道选择器
channelId: 1,
waterLoading: false,
waterSetLoading: false,
runStatusForm: {},
statusLoading: false,
gpsForm: {}, //gps位置
tabsActive: "first",
rowData: {},
requestid: "",
timer: null,
i: 0,
tabName: "装置时间",
2 years ago
roleUser: "",
};
},
mounted() {},
created() {
this.roleUser = localStorage.getItem("role");
console.log(this.roleUser);
},
watch: {},
methods: {
//tab被触发
handleClick(tab, event) {
this.lookTime = "";
this.showLookTime = false;
2 years ago
window.clearInterval(this.timer);
this.timer = null;
this.i = 0;
console.log(tab, event);
this.$refs.imageCaptureref.clearData();
this.$refs.videoCaptureref.clearData();
//每次切换重置选项卡
this.tabsActive = "first";
if (tab.label == "图像采集参数") {
console.log("图像采集参数");
this.$refs.imageCaptureref.getSingleAccess(this.rowData);
this.$refs.imageCaptureref.getRatio(this.rowData);
} else if (tab.label == "视频采集参数") {
console.log("视频采集参数");
this.$refs.videoCaptureref.getSingleAccess(this.rowData);
this.$refs.videoCaptureref.getRatio(this.rowData);
}
this.tabName = tab.label;
},
//获取设备通道
getSingleAccess() {
console.log(this.rowData);
getChannelListJoggle({ termid: this.rowData.id })
.then((res) => {
this.accesslist = res.data.list;
// this.waterForm.channelId = res.data.list[0].channelid;
})
.catch((err) => {});
},
handleFocus() {
this.deviceTimeForm.newzztime = new Date();
},
2 years ago
//装置时间查询
searchTime() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.timeLoading = true;
// --act=time --cmdid=XY-SIMULATOR-0015 --flag=1 --time=20230101122322
let params = [
{
name: "act",
value: "time",
},
{
name: "flag",
value: 0,
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
2 years ago
//装置时间设置
//设置装置时间: .\bin\xympadmn.exe --server=127.0.0.1 --port=6891 --act=time --cmdid=XY-SIMULATOR-0015 --flag=1 --time=20230101122322
setTime() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
console.log(this.deviceTimeForm.newzztime);
if (this.deviceTimeForm.newzztime !== "") {
this.timesetLoading = true;
let params = [
{
name: "act",
value: "time",
},
{
name: "flag",
value: 1,
},
{
name: "time",
value: this.deviceTimeForm.newzztime,
},
];
this.setTermFn(params);
} else {
console.log("error submit!!");
this.$message({
duration: 1500,
showClose: true,
message: "请填写新装置时间",
type: "error",
});
return false;
}
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
2 years ago
//采样参数重置数据
samphandleClick() {
this.samplingForm = {};
this.lookTime = "";
2 years ago
clearInterval(this.timer);
2 years ago
this.i = 0;
this.timer = null;
},
//上位机重置数据
uphandleClick() {
this.upperComputer = {};
this.lookTime = "";
2 years ago
clearInterval(this.timer);
2 years ago
this.i = 0;
this.timer = null;
},
//id重置数据
idhandleClick() {
this.idParameter = {};
this.lookTime = "";
2 years ago
clearInterval(this.timer);
2 years ago
this.i = 0;
this.timer = null;
2 years ago
},
//osd重置
2 years ago
osdhandleClick(tab) {
console.log(tab);
this.lookTime = "";
2 years ago
if (tab.label == "设置参数") {
this.osdParams = {};
this.$set(this.osdParams, "showTime", this.timelist[0].id);
} else {
this.osdParams = {};
}
2 years ago
clearInterval(this.timer);
2 years ago
this.i = 0;
this.timer = null;
2 years ago
},
//采样参数查询
// -act=sampling [0xA4 ] --flag=[Request Set Flag, default is set=1, 0: request] --rf=[Request Flag] --reqtype=[Request Type] --maintime=[Main Time] --samplecount=[Sample Count] --samplingfreq=[Sample Frequency] --heartbeat=[Heartbeat Time]
samplingSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.sampLoading = true;
let params = [
{
name: "act",
value: "sampling",
},
{
name: "flag",
value: 0,
},
{
name: "rf",
value: 255,
},
2 years ago
// {
// name: "reqtype",
// value: "0xA4",
// },
{
name: "maintime",
value: "",
},
{
name: "samplecount",
value: "",
},
{
name: "samplingfreq",
value: "",
},
{
name: "heartbeat",
value: "",
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//设置采样查询
samplingSet() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.$refs.samplingFormref.validate((valid) => {
if (valid) {
this.sampSetLoading = true;
let params = [
{
name: "act",
value: "sampling",
},
{
name: "flag",
value: 1,
},
{
name: "rf",
value: 255,
},
2 years ago
// {
// name: "reqtype",
// value: "0xA4",
// },
{
name: "maintime",
value: this.samplingForm.mainTime,
},
{
name: "samplecount",
value: this.samplingForm.sampleCount,
},
{
name: "samplingfreq",
value: this.samplingForm.sampleFrequency,
},
{
name: "heartbeat",
value: this.samplingForm.heartbeatTime,
},
];
this.setTermFn(params);
} else {
console.log("error submit!!");
return false;
}
});
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//上位机查询
//--act=cma [0xA7] --flag=[Request Set Flag, default is set=1, 0: request] --ip=[IP Address] --cmaport=[CMA Port] --domain=[Domain]
upperSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.upperLoading = true;
let params = [
{
name: "act",
value: "cma",
},
{
name: "flag",
value: 0,
},
{
name: "ip",
value: "",
},
{
name: "cmaport",
value: "",
},
{
name: "domain",
value: "",
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//上位机设置
upperSet() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.$refs.upperFormref.validate((valid) => {
console.log(valid);
if (valid) {
this.upperSetLoading = true;
let params = [
{
name: "act",
value: "cma",
},
{
name: "flag",
value: 1,
},
{
name: "ip",
value: this.upperComputer.ip,
},
{
name: "cmaport",
value: this.upperComputer.port,
},
{
name: "domain",
value: this.upperComputer.domain,
},
];
this.setTermFn(params);
} else {
console.log("error submit!!");
return false;
}
});
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//id参数查询
// --act=termid [0xAC] --flag=[Request Set Flag, default is set=1, 0: request] --newcmdid=[New CMD ID] --compid=[Component Id] --orgid=[Original Id]
idSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.idLoading = true;
console.log(this.rowData);
if (this.rowData.protocol == 65284) {
let params = [
{
name: "act",
value: "termid",
},
{
name: "flag",
value: 0,
},
{
name: "rf",
value: 2,
},
{
name: "newcmdid",
value: "",
},
{
name: "compid",
value: "",
},
{
name: "orgid",
value: "",
},
];
this.setTermFn(params);
} else {
let params = [
{
name: "act",
value: "termid",
},
{
name: "flag",
value: 0,
},
{
name: "rf",
value: 255,
},
{
name: "newcmdid",
value: "",
},
{
name: "compid",
value: "",
},
{
name: "orgid",
value: "",
},
];
this.setTermFn(params);
}
2 years ago
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//id参数设置
idSet() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.$refs.idParameterref.validate((valid) => {
if (valid) {
this.idSetLoading = true;
let params = [
{
name: "act",
value: "termid",
},
{
name: "flag",
value: 1,
},
{
name: "rf",
value: 255,
},
2 years ago
{
name: "newcmdid",
value: this.idParameter.newCmdId,
},
{
name: "compid",
value: this.idParameter.componentId,
},
{
name: "orgid",
value: this.idParameter.originalId,
},
];
this.setTermFn(params);
} else {
console.log("error submit!!");
return false;
}
});
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
//查询水印
waterSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.waterLoading = true;
let params = [
{
name: "act",
value: "osd",
},
{
name: "flag",
value: 0,
},
{
name: "channel",
value: this.channelId,
},
{
name: "leftBottom",
value: "",
},
{
name: "rightBottom",
value: "",
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
waterSet() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.waterSetLoading = true;
let params = [
{
name: "act",
value: "osd",
},
{
name: "flag",
2 years ago
value: 1,
2 years ago
},
{
name: "channel",
value: this.channelId,
},
{
name: "leftBottom",
value: this.waterForm.leftBottom,
},
{
name: "rightBottom",
value: this.waterForm.rightBottom,
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
2 years ago
waterChange() {
console.log("点击了切换");
2 years ago
this.waterForm = {};
2 years ago
},
waterhandleClick() {
//this.waterForm = {};
2 years ago
this.channelId = 1;
2 years ago
clearInterval(this.timer);
2 years ago
this.i = 0;
this.timer = null;
},
clearform() {
console.log("清除其他数据");
this.waterForm = {};
this.waterLoading = false;
this.waterSetLoading = false;
},
2 years ago
//查询设置osd
2 years ago
osdSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.osdLoading = true;
let params = [
{
name: "act",
value: "osd",
},
{
name: "flag",
value: 0,
},
{
name: "channel",
value: this.channelId,
},
{
name: "showTime",
value: "",
},
{
name: "showText",
value: "",
},
{
name: "text",
value: "",
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
osdSet() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
2 years ago
this.$refs.osdFormref.validate((valid) => {
if (valid) {
this.osdSetLoading = true;
2 years ago
console.log("我是文本");
console.log("我是文本", this.osdParams.textContent);
2 years ago
let params = [
{
name: "act",
value: "osd",
},
{
name: "flag",
value: 1,
},
2 years ago
2 years ago
{
name: "channel",
value: this.channelId,
},
{
name: "showTime",
value: this.osdParams.showTime,
},
{
name: "showText",
value: this.osdParams.showText,
},
{
name: "text",
value: this.osdParams.textContent,
},
];
this.setTermFn(params);
} else {
console.log("error submit!!");
return false;
}
});
2 years ago
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
2 years ago
//装置状态报
//--act=runningstatus [0xEA] --cmdid=[CMD_ID]
runstatusSearch() {
if (this.rowData.isonline || this.rowData.onlinestatus === 1) {
this.statusLoading = true;
let params = [
{
name: "act",
value: "runningstatus",
},
];
this.setTermFn(params);
} else {
this.$message({
duration: 1500,
showClose: true,
message: "装置下线,发送指令失败",
type: "error",
});
}
},
setTermFn(dataParams) {
console.log("点击了统一的接口", "runningstatus");
setTermCamera({
termId: this.rowData.id,
list: dataParams,
})
.then((res) => {
console.log(res);
this.requestid = res.data.requestId;
//this.getinfo1();
this.lookTime = res.data.date;
2 years ago
clearInterval(this.timer);
this.timer = window.setInterval(() => {
this.getinfo();
this.i++;
}, 1000);
// this.timer = setInterval(() => {
// this.getinfo();
// this.i++;
// }, 1000);
})
.catch((err) => {});
},
getinfo() {
getTermCameraRequest({ requestid: this.requestid })
.then((res) => {
if (res.data.success == 1) {
window.clearInterval(this.timer);
this.timer = null;
this.i = 0;
this.timeLoading = false;
this.timesetLoading = false;
2 years ago
this.sampLoading = false;
this.sampSetLoading = false;
this.upperLoading = false;
this.upperSetLoading = false;
this.idLoading = false;
this.idSetLoading = false;
this.statusLoading = false;
this.waterLoading = false;
this.waterSetLoading = false;
2 years ago
this.osdLoading = false;
this.osdSetLoading = false;
2 years ago
console.log("终止轮询");
// && res.data.result == 255
console.log(JSON.parse(res.data.data));
//时间
console.log(this.tabName);
this.deviceTimeForm = JSON.parse(res.data.data);
if (this.tabName == "装置时间") {
this.showLookTime = true;
this.deviceTimeForm.zztime = this.deviceTimeForm.timestamp * 1000;
console.log(this.deviceTimeForm.zztime);
return;
}
//采集参数
2 years ago
this.samplingForm = JSON.parse(res.data.data);
//ip地址解析开始
this.upperComputer = JSON.parse(res.data.data);
//修改cmdid
this.idParameter = JSON.parse(res.data.data);
this.waterForm = JSON.parse(res.data.data);
2 years ago
this.osdParams = JSON.parse(res.data.data);
2 years ago
if (this.osdParams.textContent == "null ") {
console.log("我是空");
this.osdParams.textContent = "";
}
2 years ago
if (this.tabName == "上位机信息") {
let hexArray = this.upperComputer.ip
.toString(16)
.match(/.{1,2}/g)
.reverse();
console.log(hexArray);
for (let j = 0; j < hexArray.length; j++) {
console.log(hexArray[j]);
console.log(parseInt(hexArray[j], 16));
hexArray[j] = parseInt(hexArray[j], 16);
}
console.log(hexArray);
this.upperComputer.ip = hexArray.join(".");
//ip地址解析结束
console.log(this.idParameter);
}
this.$message({
duration: 1500,
showClose: true,
message: "信息已更新",
type: "success",
});
this.showLookTime = true;
2 years ago
} else if (this.i > 9) {
window.clearInterval(this.timer);
this.timer = null;
this.i = 0;
this.$message({
duration: 1500,
showClose: true,
message: "暂未获取到信息,请稍后再试!!",
type: "warning",
});
this.timeLoading = false;
this.timesetLoading = false;
2 years ago
this.sampLoading = false;
this.sampSetLoading = false;
this.upperLoading = false;
this.upperSetLoading = false;
this.idLoading = false;
this.idSetLoading = false;
this.statusLoading = false;
this.waterLoading = false;
this.waterSetLoading = false;
2 years ago
this.osdLoading = false;
this.osdSetLoading = false;
2 years ago
}
})
.catch((err) => {});
},
//gps位置查询
gpsSearch() {
console.log(this.rowData);
getTermLastGPSPosition({
termId: this.rowData.id,
})
.then((res) => {
this.gpsForm = res.data;
console.log(this.gpsForm);
$moment().format("YYYY-MM-DD HH:mm:ss");
// this.$message({
// duration: 1500,
// showClose: true,
// message: "gps信息已更新",
// type: "success",
// });
})
.catch((err) => {});
},
//装置复位
handleDeviceReset() {
console.log(this.rowData);
this.$confirm("此操作将复位装置, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
resetTerminalApi({ cmId: this.rowData.cmdId || this.rowData.cmdid })
.then((res) => {
if (res.code == 200) {
this.$message({
duration: 1500,
showClose: true,
message: "装置已复位",
type: "success",
});
} else {
this.$message({
duration: 1500,
showClose: true,
message: res.msg,
type: "error",
});
}
})
.catch((err) => {});
})
.catch(() => {
// this.$message({
// duration: 1500,
// showClose: true,
// type: "info",
// message: "已取消删除",
// });
});
},
display(val) {
this.isShow = true;
this.rowData = val;
console.log(this.rowData);
this.getSingleAccess();
},
hide() {
this.isShow = false;
},
handleclose() {
this.lookTime = "";
2 years ago
this.showLookTime = false;
2 years ago
this.isShow = false;
this.activeName = "1";
2 years ago
this.tabsActive = "first";
this.deviceTimeForm = {};
2 years ago
this.samplingForm = {};
this.upperComputer = {};
this.idParameter = {};
this.gpsForm = {};
this.waterForm = {};
2 years ago
this.osdParams = {};
2 years ago
this.channelId = 1;
this.i = 0;
clearInterval(this.timer);
this.timer = null;
2 years ago
this.osdLoading = false;
this.osdSetLoading = false;
2 years ago
this.sampLoading = false;
this.sampSetLoading = false;
this.upperLoading = false;
this.upperSetLoading = false;
this.idLoading = false;
this.idSetLoading = false;
this.statusLoading = false;
this.waterLoading = false;
this.waterSetLoading = false;
},
},
destroyed() {
if (this.timer) {
console.log(this.timer);
clearInterval(this.timer);
this.timer = null;
this.i = 0;
} //利用vue的生命周期函数
},
};
</script>
<style lang="less">
.parameterSetDialog {
.looktime {
font-size: 12px;
}
2 years ago
.zzinfo {
position: absolute;
top: 22px;
left: 126px;
}
.el-tabs__content {
height: 436px;
.deviceTime {
width: 400px;
margin: 0 auto;
margin-top: 24px;
.el-input {
width: 200px;
}
}
.runform {
width: 730px;
margin: 0 auto;
margin-top: 24px;
.runformbtn {
margin-top: 10px;
width: 100%;
display: flex;
.el-form-item__content {
margin: auto;
}
}
.el-input {
width: 200px;
}
}
.queryParam {
width: 400px;
margin: 0 auto;
margin-top: 24px;
.el-input {
width: 200px;
}
}
.resetDevice {
h3 {
margin-bottom: 8px;
font-size: 16px;
font-weight: normal;
}
}
.tabsBox {
.el-tabs__item.is-active {
color: #fff;
background-color: #169e8c;
}
}
.el-input.is-disabled .el-input__inner {
color: #666;
}
.channelBox {
margin: 0 auto;
margin-bottom: 18px;
text-align: center;
.title {
width: 86px;
display: inline-block;
padding: 0 12px 0 0;
text-align: right;
}
}
2 years ago
.waterParams {
width: 600px;
.el-input {
width: 400px;
}
}
2 years ago
.osdParam {
.channelBox {
.title {
width: 38px;
display: inline-block;
padding: 0 12px 0 0;
}
}
2 years ago
.el-textarea .el-textarea__inner {
font-family: none;
}
2 years ago
.el-textarea.is-disabled .el-textarea__inner {
color: #666;
}
2 years ago
}
2 years ago
}
}
</style>