menu1.0
fanluyan 5 months ago
parent 0cbf443c26
commit 29910d5ba6

@ -255,6 +255,11 @@
<el-form-item> <el-form-item>
<el-button type="primary" @click="onSubmit"></el-button> <el-button type="primary" @click="onSubmit"></el-button>
</el-form-item> </el-form-item>
<el-form-item>
<el-button type="primary" @click="exportExcl"
>导出数据</el-button
>
</el-form-item>
</el-form> </el-form>
<el-button <el-button
@ -591,7 +596,22 @@ export default {
console.log(err); // console.log(err); //
}); });
}, },
exportExcl() {
const sTime = Math.floor(this.formdata.starttime / 1000);
const eTime = Math.floor(this.formdata.endtime / 1000);
window.location.href =
"/api/xymanager/weather/export?+" +
"lineId=" +
this.paramsData.lineid +
"&termId=" +
this.paramsData.id +
"&towerId=" +
this.paramsData.towerid +
"&start=" +
sTime +
"&end=" +
eTime;
},
// //
handleCurrentChange(val) { handleCurrentChange(val) {
this.page = val; this.page = val;

@ -171,6 +171,16 @@
placeholder="请输入通道昵称" placeholder="请输入通道昵称"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否云台:">
<el-select v-model="val.type">
<el-option
v-for="item in ytTypeOption"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<div class="btngrop"> <div class="btngrop">
<el-button <el-button
v-if="index !== 0" v-if="index !== 0"
@ -308,6 +318,16 @@ export default {
name: "是", name: "是",
}, },
], ],
ytTypeOption: [
{
id: 0,
name: "默认",
},
{
id: 1,
name: "云台",
},
],
//线 //线
isfavorOptions: [ isfavorOptions: [
{ {
@ -368,6 +388,7 @@ export default {
{ {
id: "", id: "",
alias: "", alias: "",
type: 0,
}, },
], ],
}); });
@ -378,6 +399,7 @@ export default {
val.list.push({ val.list.push({
id: "", id: "",
alias: "", alias: "",
type: 0,
}); });
} }
@ -403,6 +425,7 @@ export default {
this.formInfo.list.push({ this.formInfo.list.push({
id: "", id: "",
alias: "", alias: "",
type: 0,
}); });
this.filterOption = this.channelOptions.filter( this.filterOption = this.channelOptions.filter(
(val) => !this.formInfo.list.some((item) => item.id === val.id) (val) => !this.formInfo.list.some((item) => item.id === val.id)
@ -603,7 +626,10 @@ export default {
//justify-content: space-between; //justify-content: space-between;
padding-right: 6px; padding-right: 6px;
.el-form-item { .el-form-item {
width: 310px; width: 202px;
// .el-form-item__content {
// width: 100px;
// }
} }
.btngrop { .btngrop {
margin-bottom: 16px; margin-bottom: 16px;

@ -813,11 +813,21 @@
disabled disabled
> >
</el-date-picker> </el-date-picker>
<!-- <el-input <!-- <el-input
v-model="deviceTimeForm.zztime" v-model="deviceTimeForm.zztime"
disabled="disabled" disabled="disabled"
></el-input> --> ></el-input> -->
</el-form-item> </el-form-item>
<el-form-item>
<el-button
type="primary"
@click="searchTime"
:loading="timeLoading"
>查询</el-button
></el-form-item
>
<el-form-item label="新装置时间"> <el-form-item label="新装置时间">
<!-- <el-input v-model="deviceTimeForm.newzztime"></el-input> --> <!-- <el-input v-model="deviceTimeForm.newzztime"></el-input> -->
<el-date-picker <el-date-picker
@ -828,21 +838,22 @@
@focus="handleFocus" @focus="handleFocus"
> >
</el-date-picker> </el-date-picker>
<el-button <el-tooltip
type="primary" class="item"
@click="setnowTime" effect="dark"
style="margin-left: 12px" content="使用当前时间校时"
:loading="nowTimesetLoading" placement="top"
>校时</el-button
> >
<el-button
type="primary"
@click="setnowTime"
style="margin-left: 12px"
:loading="nowTimesetLoading"
>校时</el-button
>
</el-tooltip>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button
type="primary"
@click="searchTime"
:loading="timeLoading"
>查询</el-button
>
<el-button <el-button
type="primary" type="primary"
@click="setTime" @click="setTime"

@ -128,24 +128,24 @@
<span>{{ $moment(item.photoTime).format("HH:mm:ss") }}</span> <span>{{ $moment(item.photoTime).format("HH:mm:ss") }}</span>
</el-tooltip> </el-tooltip>
(
<el-tooltip <el-tooltip
class="item" class="item"
effect="dark" effect="dark"
content="图片上传时间" content="图片上传时间"
placement="top-start" placement="top-start"
> >
<span> {{ $moment(item.recvTime).format("HH:mm:ss") }}</span> <span>({{ $moment(item.recvTime).format("HH:mm:ss") }})</span>
</el-tooltip> </el-tooltip>
)
<span <span>
>--{{ -
{{
item.alias !== null && item.alias !== "" item.alias !== null && item.alias !== ""
? item.alias ? item.alias
: item.channelName : item.channelName
}}</span }}</span
> >
<span v-if="item.presetId !== ''"> -- {{ item.presetId }}</span> <span v-if="item.presetId !== ''"> - {{ item.presetId }}</span>
<span class="alarmSpan" v-if="item.isAlarm == 1">()</span> <span class="alarmSpan" v-if="item.isAlarm == 1">()</span>
</p> </p>
</div> </div>
@ -163,16 +163,14 @@
<span>{{ $moment(item.photoTime).format("HH:mm:ss") }}</span> <span>{{ $moment(item.photoTime).format("HH:mm:ss") }}</span>
</el-tooltip> </el-tooltip>
(
<el-tooltip <el-tooltip
class="item" class="item"
effect="dark" effect="dark"
content="图片上传时间" content="图片上传时间"
placement="top-start" placement="top-start"
> >
<span> {{ $moment(item.recvTime).format("HH:mm:ss") }}</span> <span>({{ $moment(item.recvTime).format("HH:mm:ss") }})</span>
</el-tooltip> </el-tooltip>
)
<span <span
>--{{ >--{{
item.alias !== null && item.alias !== "" item.alias !== null && item.alias !== ""
@ -951,6 +949,7 @@ export default {
padding: 6px 0; padding: 6px 0;
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
color: #333; color: #333;
.el-icon-video-camera { .el-icon-video-camera {
font-size: 20px; font-size: 20px;
@ -959,6 +958,13 @@ export default {
vertical-align: sub; vertical-align: sub;
color: #169e8c; color: #169e8c;
} }
span {
font-size: 15px;
zoom: 0.8;
&:last-child {
zoom: 0.7;
}
}
} }
.alarmSpan { .alarmSpan {
color: #f00; color: #f00;

@ -9,6 +9,29 @@
<div class="head"> <div class="head">
<h3>通道</h3> <h3>通道</h3>
<el-select <el-select
v-model="channelVal"
placeholder="请选择通道"
ref="multiSelect"
class="channelDiv"
>
<el-option
v-for="item in channelListOption"
: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>
<!-- <el-select
v-model="channelVal" v-model="channelVal"
placeholder="请选择" placeholder="请选择"
class="channelDiv" class="channelDiv"
@ -20,7 +43,7 @@
:value="item.value" :value="item.value"
> >
</el-option> </el-option>
</el-select> </el-select> -->
<h3>预置位</h3> <h3>预置位</h3>
<el-select <el-select
v-model="presetVal" v-model="presetVal"
@ -90,6 +113,7 @@
</template> </template>
<script> <script>
import { import {
getChannelByTermidJoggle,
getTermStatus, getTermStatus,
setTermCamera, setTermCamera,
getTermCameraRequest, getTermCameraRequest,
@ -103,16 +127,17 @@ export default {
timeNum: 30, // timeNum: 30, //
timeList: [], // timeList: [], //
channelVal: 1, channelVal: 1,
channelOptions: [ channelListOption: [], //
{ // channelOptions: [
value: 1, // {
label: "通道1", // value: 1,
}, // label: "1",
{ // },
value: 2, // {
label: "通道2", // value: 2,
}, // label: "2",
], // },
// ],
selectedValues: [], // selectedValues: [], //
presetVal: 1, // presetVal: 1, //
timeparams: [], // timeparams: [], //
@ -140,6 +165,19 @@ export default {
this.dialogVisible = true; this.dialogVisible = true;
this.deviceData = val; this.deviceData = val;
console.log(this.deviceData); console.log(this.deviceData);
this.getChannelList();
},
//
getChannelList() {
console.log(this.deviceData);
getChannelByTermidJoggle({ termid: this.deviceData.id })
.then((res) => {
console.log(res);
this.channelListOption = res.data.list;
})
.catch((err) => {
console.log(err); //
});
}, },
showTimeList() { showTimeList() {
// //

@ -6,6 +6,31 @@
direction="rtl" direction="rtl"
> >
<div class="ytDraw"> <div class="ytDraw">
<div class="channelBox">
<span>云台通道</span>
<el-select
v-model="ytChannel"
placeholder="请选择通道"
ref="multiSelect"
>
<el-option
v-for="item in channelListOption"
: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>
<div class="openClass"> <div class="openClass">
<el-button type="primary" @click="openPowerFun()"></el-button> <el-button type="primary" @click="openPowerFun()"></el-button>
<el-button type="warning" @click="closePowerFun()"></el-button> <el-button type="warning" @click="closePowerFun()"></el-button>
@ -300,6 +325,7 @@ export default {
}, },
deviceTimer: null, // deviceTimer: null, //
deviceNum: 1, // deviceNum: 1, //
ytChannel: "",
}; };
}, },
computed: { computed: {
@ -313,6 +339,7 @@ export default {
this.termId = this.areaData.id; this.termId = this.areaData.id;
this.ptzdrawer = true; this.ptzdrawer = true;
this.getPresetList(); this.getPresetList();
this.getChannelList();
}, },
getPresetList() { getPresetList() {
getPresetApi({ getPresetApi({
@ -629,7 +656,7 @@ export default {
}, },
{ {
name: "channel", name: "channel",
value: 1, value: this.ytChannel,
}, },
{ {
name: "preset", name: "preset",
@ -688,7 +715,12 @@ export default {
getChannelByTermidJoggle({ termid: this.areaData.id }) getChannelByTermidJoggle({ termid: this.areaData.id })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
this.channelListOption = res.data.list; const filteredChannelList = res.data.list.filter(
(channel) => channel.type === 1
);
this.channelListOption = filteredChannelList;
this.ytChannel = filteredChannelList[0].channelid;
//this.channelListOption = res.data.list;
}) })
.catch((err) => { .catch((err) => {
console.log(err); // console.log(err); //
@ -822,6 +854,12 @@ export default {
//display: flex; //display: flex;
padding: 12px; padding: 12px;
height: 100%; height: 100%;
.channelBox {
display: flex;
align-items: center;
color: #333;
margin-bottom: 12px;
}
.openClass { .openClass {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;

@ -19,6 +19,8 @@
<el-select v-model="form.channel" placeholder="选择通道"> <el-select v-model="form.channel" placeholder="选择通道">
<el-option label="通道一" :value="1"></el-option> <el-option label="通道一" :value="1"></el-option>
<el-option label="通道二" :value="2"></el-option> <el-option label="通道二" :value="2"></el-option>
<el-option label="通道三" :value="3"></el-option>
<el-option label="通道四" :value="4"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="选择时间"> <el-form-item label="选择时间">

@ -81,7 +81,18 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="云台通道" class="dybox">
<el-select v-model="formdata.panChannel" placeholder="请选择">
<el-option
v-for="item in panChannelOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</div> </div>
<el-form-item label="装置编号(一行一个)" class="termClass"> <el-form-item label="装置编号(一行一个)" class="termClass">
<el-input <el-input
type="textarea" type="textarea"
@ -130,6 +141,36 @@ export default {
name: "是", name: "是",
}, },
], // ], //
panChannelOptions: [
{
id: 1,
name: "通道1",
},
{
id: 2,
name: "通道2",
},
{
id: 3,
name: "通道3",
},
{
id: 4,
name: "通道4",
},
{
id: 5,
name: "通道5",
},
{
id: 6,
name: "通道6",
},
{
id: 7,
name: "通道7",
},
], //
dyOptions: [], // dyOptions: [], //
xlOptions: [], //线 xlOptions: [], //线
protocolOptions: [], // protocolOptions: [], //
@ -150,6 +191,18 @@ export default {
id: 4, id: 4,
name: "四目", name: "四目",
}, },
{
id: 5,
name: "五目",
},
{
id: 6,
name: "六目",
},
{
id: 7,
name: "七目",
},
], ],
}; };
}, },
@ -330,6 +383,7 @@ export default {
lineId: this.formdata.lineId, lineId: this.formdata.lineId,
protocol: this.formdata.protocol, protocol: this.formdata.protocol,
hasPan: this.formdata.hasPan, hasPan: this.formdata.hasPan,
panChannel: this.formdata.panChannel,
}; };
console.log(params); console.log(params);
importTermsApi(params) importTermsApi(params)

@ -0,0 +1,173 @@
<template>
<div class="termsBox">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>批量下发重置</span>
</div>
<div class="deviceList">
<div class="searchBox">
<el-form
:inline="true"
:model="formdata"
label-position="right"
label-width="62px"
class="demo-form-inline"
>
<el-form-item label="装置编号(一行一个)" class="termClass">
<el-input
type="textarea"
:rows="20"
placeholder="请输入装置列表"
v-model="formdata.cmdidArr"
>
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm()"></el-button>
</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import { resetTerminalApi } from "@/utils/api/index";
export default {
name: "globalTools",
components: {},
data() {
return {
formdata: {
cmdidArr: "",
},
};
},
computed: {
// cmdidArr
cmdidArrList() {
// 使 split
return this.formdata.cmdidArr.split(/\r\n|\n|\r/).filter(Boolean);
},
},
created() {},
watch: {},
methods: {
submitForm() {
if (this.formdata.cmdidArr.length == 0) {
this.$message({
duration: 1500,
showClose: true,
message: "请输入装置编号",
type: "error",
});
return;
}
console.log(this.cmdidArrList);
this.resetAllTerminals();
// 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) => {});
},
resetAllTerminals() {
const requests = this.cmdidArrList.map((cmId) =>
this.resetTerminalApi(cmId)
);
Promise.all(requests)
.then((results) => {
//
this.$message({
message: "所有装置已复位",
type: "success",
});
})
.catch((error) => {
//
this.$message({
message: "部分装置复位失败:" + error.message,
type: "error",
});
});
},
resetTerminalApi(cmId) {
// API
// Promise
return resetTerminalApi({ cmId: cmId })
.then((response) => {
if (response.code === 200) {
return Promise.resolve(response.data); // Promise
} else {
return Promise.reject(new Error(response.msg)); // Promise
}
})
.catch((error) => {
return Promise.reject(error); // Promise
});
},
},
};
</script>
<style lang="less">
.termsBox {
width: 500px;
margin-right: 24px;
height: 100%;
.el-card {
height: 100%;
.el-card__body {
padding: 12px 8px;
.deviceList {
.searchBox {
.dyxl {
display: flex;
.dybox,
.xlbox {
.el-select {
width: 160px;
}
}
}
.gytd {
display: flex;
.gyClass,
.tdClass {
.el-select {
width: 160px;
}
}
}
.termClass {
display: flex;
flex-direction: column;
.el-form-item__label {
width: 140px !important;
}
}
}
.dialog-footer {
display: flex;
margin-left: auto;
justify-content: end;
}
}
}
}
}
</style>

@ -2,6 +2,7 @@
<div class="globalBox"> <div class="globalBox">
<div class="setBox"> <div class="setBox">
<termsAdd></termsAdd> <termsAdd></termsAdd>
<termsReset></termsReset>
<el-card class="box-card globalDrawLine"> <el-card class="box-card globalDrawLine">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>线缆开启关闭</span> <span>线缆开启关闭</span>
@ -64,9 +65,10 @@ import {
updateAlarmChannel, updateAlarmChannel,
} from "@/utils/api/index"; } from "@/utils/api/index";
import termsAdd from "./components/termsAdd"; import termsAdd from "./components/termsAdd";
import termsReset from "./components/termsReset";
export default { export default {
name: "globalTools", name: "globalTools",
components: { termsAdd }, components: { termsAdd, termsReset },
data() { data() {
return { return {
lineValue: false, lineValue: false,

Loading…
Cancel
Save