|
@@ -45,14 +45,15 @@
|
|
|
|
|
|
<div class="control-panel">
|
|
|
<!-- 预置位 -->
|
|
|
- <el-tabs tab-position="left" style="height: 200px;">
|
|
|
+ <el-tabs tab-position="left" style="height: 210px;width:100%">
|
|
|
<el-tab-pane label="预置位">
|
|
|
<!-- 预置位查询 -->
|
|
|
<el-table
|
|
|
v-loading="presetLoading"
|
|
|
:data="presetList"
|
|
|
- height="100%"
|
|
|
- :row-style="{height: 30}"
|
|
|
+ height="260px"
|
|
|
+ width="100%"
|
|
|
+ :row-style="{height: '20px',fontSize: '12px'}"
|
|
|
style="width: 100%;font-size: 16px">
|
|
|
<el-table-column
|
|
|
prop="ind"
|
|
@@ -65,10 +66,33 @@
|
|
|
width="100">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="operation">
|
|
|
-
|
|
|
+ prop="operation"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button class="ml-2" type="primary" size="mini" @click="presetPosition(129, scope.row.ind)">设置</el-button>
|
|
|
+ <el-button v-if="scope.row.load" class="ml-2" type="primary" size="mini" @click="presetPosition(130, scope.row.ind)">调用</el-button>
|
|
|
+ <el-button v-if="scope.row.load" class="ml-2" type="danger" size="mini" @click="presetPosition(131, scope.row.ind)">删除</el-button>
|
|
|
+ </template>
|
|
|
<template slot="header" slot-scope="scope">
|
|
|
- <el-button type="primary" size="mini" icon="el-icon-refresh" @click="queryPresetPos"></el-button>
|
|
|
+ <div class="w-full flex">
|
|
|
+<!-- input number -->
|
|
|
+
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ title="快速预置位"
|
|
|
+ width="400"
|
|
|
+ trigger="click">
|
|
|
+ <div class="w-full flex justify-center items-center">
|
|
|
+ <el-input-number size="mini" :min="1" :max="255" v-model="presetPos"></el-input-number>
|
|
|
+
|
|
|
+ <el-button class="ml-2" type="primary" size="mini" @click="presetPosition(129, presetPos)">设置</el-button>
|
|
|
+ <el-button class="ml-2" type="primary" size="mini" @click="presetPosition(130, presetPos)">调用</el-button>
|
|
|
+ <el-button class="ml-2" type="danger" size="mini" @click="presetPosition(131, presetPos)">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <el-button slot="reference">快速预置位</el-button>
|
|
|
+ </el-popover>
|
|
|
+ <el-button class="ml-2" type="primary" size="mini" icon="el-icon-refresh" @click="queryPresetPos"></el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -167,6 +191,7 @@ export default {
|
|
|
httpHook: "",
|
|
|
presetList: [],
|
|
|
presetLoading: false,
|
|
|
+ presetInd: 1,// 选择的预置位id
|
|
|
}
|
|
|
},
|
|
|
beforeMount() {
|
|
@@ -183,6 +208,11 @@ export default {
|
|
|
console.log('短按自动跟发stop');
|
|
|
this.ptzCamera('stop');
|
|
|
},
|
|
|
+ testHandle(key, item){
|
|
|
+ console.log('testHandle')
|
|
|
+ console.log(key)
|
|
|
+ console.log(item)
|
|
|
+ },
|
|
|
async ptzCamera(command){
|
|
|
console.log('云台控制:' + command);
|
|
|
let isSendFocus = false;
|
|
@@ -402,7 +432,7 @@ export default {
|
|
|
this.httpHook = response.data["httpHook"];
|
|
|
this.pushKey = response.data["pushKey"];
|
|
|
}else{
|
|
|
- this.$message.warning(res.msg)
|
|
|
+ this.$message.warning(response.msg)
|
|
|
}
|
|
|
|
|
|
},
|
|
@@ -411,7 +441,15 @@ export default {
|
|
|
console.log('请求预置位');
|
|
|
this.presetLoading = true;
|
|
|
let n_presetLength = 255;
|
|
|
- let presetList = new Array(n_presetLength);
|
|
|
+ let presetList = new Array(n_presetLength).fill({}).map((item,i)=>{
|
|
|
+ return {
|
|
|
+ ind: i+1,
|
|
|
+ remark: `预置位${i+1}`,
|
|
|
+ load: false
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ console.log( presetList);
|
|
|
let queryUrl = `/api/ptz/preset/query/${this.deviceId}/${this.channelId}`
|
|
|
// 加载预置位
|
|
|
let [err,res] = await handle(this.$axios.axios({
|
|
@@ -419,13 +457,6 @@ export default {
|
|
|
url: queryUrl
|
|
|
}));
|
|
|
this.presetLoading = false;
|
|
|
- presetList = presetList.map((item,i)=>{
|
|
|
- return {
|
|
|
- ind: i+1,
|
|
|
- remark: `预置位${i+1}`,
|
|
|
- load: false,
|
|
|
- }
|
|
|
- })
|
|
|
if (err){
|
|
|
if(err){
|
|
|
console.error(err)
|
|
@@ -434,12 +465,34 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
console.log(res);
|
|
|
+ /**
|
|
|
+ * res = {
|
|
|
+ * "code": 0,
|
|
|
+ * "msg": "success",
|
|
|
+ * "data": [
|
|
|
+ * {
|
|
|
+ * "presetId": 1,
|
|
|
+ * "presetName": "预置位1",
|
|
|
+ * }
|
|
|
+ * ]
|
|
|
+ */
|
|
|
let response = res.data;
|
|
|
if (response.code === 0){
|
|
|
|
|
|
+ response.data.forEach(item=>{
|
|
|
+ console.log(item.presetId)
|
|
|
+ console.log(presetList[item.presetId-1])
|
|
|
+ presetList[item.presetId-1] = {
|
|
|
+ ind: item.presetId,
|
|
|
+ remark: item.presetName,
|
|
|
+ load: true,
|
|
|
+ }
|
|
|
+ });
|
|
|
}else{
|
|
|
- this.$message.warning(res.msg)
|
|
|
+ this.$message.warning(response.msg)
|
|
|
}
|
|
|
+ console.log(presetList);
|
|
|
+ this.presetList = presetList;
|
|
|
|
|
|
}
|
|
|
},
|
|
@@ -464,11 +517,13 @@ export default {
|
|
|
border-radius: 100%;
|
|
|
margin-top: 1.5rem;
|
|
|
margin-left: 0.5rem;
|
|
|
+ flex-shrink: 0;
|
|
|
float: left;
|
|
|
}
|
|
|
|
|
|
.control-panel {
|
|
|
position: relative;
|
|
|
+ width: 100%;
|
|
|
top: 0;
|
|
|
left: 5rem;
|
|
|
height: 11rem;
|
|
@@ -640,4 +695,5 @@ export default {
|
|
|
width: 80%;
|
|
|
padding: 0 10%;
|
|
|
}
|
|
|
+
|
|
|
</style>
|