Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/data/photo/index.vue
master
4670101279 2 years ago
parent
commit
62e385a355
  1. 239
      src/views/data/photo/index.vue
  2. 172
      src/views/web/camera/index.vue

239
src/views/data/photo/index.vue

@ -2,14 +2,9 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="站点" prop="stnm"> <el-form-item label="站点" prop="stnm">
<el-input <el-input v-model="queryParams.stnm" placeholder="请输入站点名称" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.stnm"
placeholder="请输入站点名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<!-- <el-form-item label="水位计" prop="ip"> <!-- <el-form-item label="水位计" prop="ip">
<el-input <el-input
v-model="queryParams.stcd" v-model="queryParams.stcd"
placeholder="请输入水位计名称" placeholder="请输入水位计名称"
@ -17,59 +12,47 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item label="开始时间"> <!-- <el-form-item label="开始时间">
<el-date-picker <el-date-picker v-model="queryParams.startTime" type="datetime" placeholder="选择开始时间" class="w200">
v-model="queryParams.startTime"
type="datetime"
placeholder="选择开始时间"
class="w200"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="结束时间"> <el-form-item label="结束时间">
<el-date-picker <el-date-picker v-model="queryParams.endTime" type="datetime" placeholder="选择结束时间" class="w200">
v-model="queryParams.endTime"
type="datetime"
placeholder="选择结束时间"
class="w200"
>
</el-date-picker> </el-date-picker>
</el-form-item> -->
<el-form-item>
<el-date-picker v-model="timeStage" type="datetimerange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期" @change="chooseTimeRange" :picker-options="setDateRange">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div v-show="showSearch" class="showSearch">
{{searchInfo}}
</div>
<div class="monitor"> <div class="monitor">
<div class="card" v-for="item in currdataList" :key="item.stnmId"> <div class="card" v-for="item in currdataList" :key="item.stnmId">
<!-- <img src="../../../assets/images/water.jpg" @click="show('http://localhost:81/control/static/img/water.8d19122d.jpg')"> --> <!-- <img src="../../../assets/images/water.jpg" @click="show('http://localhost:81/control/static/img/water.8d19122d.jpg')"> -->
<el-image style="width: 300px;height: 168.75px;" <el-image style="width: 300px;height: 168.75px;" :src="item.imgName" :preview-src-list="srcList"
:src="item.imgName" @click="show(item.imgName)"></el-image>
:preview-src-list="srcList"
@click="show(item.imgName)"
></el-image>
<div class="info"> <div class="info">
<div class="station"> <div class="station">
<div class="nm">{{item.stnm}}</div> <div class="nm">{{ item.stnm }}</div>
<!-- <div class="ip">{{item.ip}}</div> --> <!-- <div class="ip">{{item.ip}}</div> -->
</div> </div>
<div class="data"> <div class="data">
<div class="value">{{item.value}}</div> <div class="value">{{ item.value }}</div>
<div class="tm">{{item.tm}}</div> <div class="tm">{{ item.tm }}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.limit"
v-show="total>0" @pagination="getList" />
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.limit"
@pagination="getList"
/>
<el-dialog title="预览" :visible.sync="open" width="800px" append-to-body> <el-dialog title="预览" :visible.sync="open" width="800px" append-to-body>
@ -83,7 +66,7 @@
<script> <script>
import errorImg from "@/assets/404_images/404test.jpg" import errorImg from "@/assets/404_images/404test.jpg"
import {queryPhotoList} from "@/api/data/photo" import { queryPhotoList } from "@/api/data/photo"
import { formatDate } from "../../../utils/common"; import { formatDate } from "../../../utils/common";
@ -95,7 +78,7 @@ export default {
total: 100, total: 100,
// //
currdataList: [], currdataList: [],
imgUrl:'', imgUrl: '',
// //
queryParams: { queryParams: {
@ -115,8 +98,38 @@ export default {
}, },
open: false, open: false,
showImg : '', showImg: '',
srcList:[], srcList: [],
//
timeStage: [],
// *** data ***
setDateRange: {
//
onPick: ({
maxDate,
minDate
}) => {
if (minDate) { //
this.choiceDate0 = minDate.getTime();
} else { //
this.choiceDate0 = new Date();
}
if (maxDate) {
this.choiceDate0 = '';
}
},
disabledDate: (time) => {
let choiceDateTime = new Date(this.choiceDate0).getTime(); //
if (this.choiceDate0) {
//1514---
//1414*24*3600*1000=1209600000
return (time.getTime() > (choiceDateTime + 7*24*3600*1000)) || (time.getTime() < (choiceDateTime - 7*24*3600*1000));
}
},
},
} }
}, },
@ -131,27 +144,32 @@ export default {
/** 查询实时数据列表 */ /** 查询实时数据列表 */
getList() { getList() {
if(this.timeStage == null || this.timeStage.length == 0 ){
this.$modal.msg("请选择时间");
return;
}
this.loading = true; this.loading = true;
if(this.queryParams.endTime!=null) queryPhotoList(this.queryParams).then(response => {
this.queryParams.endTime=formatDate(this.queryParams.endTime,'yyyy-MM-dd hh:mm:ss') this.currdataList = response.data;
if(this.queryParams.startTime!=null) this.total = response.count;
this.queryParams.startTime=formatDate(this.queryParams.startTime,'yyyy-MM-dd hh:mm:ss') if(this.total==0){
queryPhotoList(this.queryParams).then(response=>{ this.showSearch=true
this.currdataList=response.data; this.searchInfo='暂无数据'
this.total=response.count; }else
this.currdataList.forEach(function(e,index){ this.showSearch=false
if(e.imgName=='' ||e.imgName==null){ this.currdataList.forEach(function (e, index) {
if (e.imgName == '' || e.imgName == null) {
e.imgName=errorImg
}else{
e.imgName='https://www.huastech.com.cn'+e.imgName
}
})
this.loading = false;
}) e.imgName = errorImg
} else {
e.imgName = 'https://www.huastech.com.cn' + e.imgName
}
})
this.loading = false;
})
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
@ -161,61 +179,78 @@ export default {
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams={}; this.queryParams = {};
this.handleQuery(); this.handleQuery();
}, },
show(url){ show(url) {
// this.open = true; // this.open = true;
// this.showImg = url; // this.showImg = url;
this.srcList =[] this.srcList = []
this.srcList.push(url) this.srcList.push(url)
}, },
/** 设置初始时间*/ /** 设置初始时间*/
getTime(){ getTime() {
var timestamp = new Date(); var timestamp = new Date();
this.queryParams.endTime=formatDate(timestamp,'yyyy-MM-dd hh:mm:ss') this.queryParams.endTime = formatDate(timestamp, 'yyyy-MM-dd hh:mm:ss')
this.queryParams.startTime=formatDate(new Date(timestamp.getTime()-86400*2000),('yyyy-MM-dd hh:mm:ss')); this.queryParams.startTime = formatDate(new Date(timestamp.getTime() - 86400 * 2000), ('yyyy-MM-dd hh:mm:ss'));
this.timeStage[0]=this.queryParams.startTime
this.timeStage[1]=this.queryParams.endTime
},
chooseTimeRange() {
if (this.timeStage != null && this.timeStage.length > 0) {
this.queryParams.startTime = formatDate(this.timeStage[0], 'yyyy-MM-dd hh:mm:ss');
this.queryParams.endTime = formatDate(this.timeStage[1], 'yyyy-MM-dd hh:mm:ss');
}
} },
} }
}; };
</script> </script>
<style scoped> <style scoped>
.monitor { .monitor {
display: -webkit-box; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-around; justify-content: space-around;
} }
.card {
margin-bottom: 20px;
margin-right: 10px;
box-shadow: 2px 2px 8px #ccc;
}
img {
width: 300px;
}
.show-img{
width: 100%;
margin: 0 auto;
}
.info {
padding: 16px;
display: flex;
justify-content: space-between;
line-height: 24px;
color: #999;
}
.station {
} .card {
.nm { margin-bottom: 20px;
color: #333; box-shadow: 2px 2px 8px #ccc;
margin-top: 10px; }
font-size: 20px;
} img {
.value{ width: 300px;
text-align: center; }
}
</style> .show-img {
width: 100%;
margin: 0 auto;
}
.info {
padding: 16px;
display: flex;
justify-content: space-between;
line-height: 24px;
color: #999;
}
.station {}
.nm {
color: #333;
margin-top: 10px;
font-size: 20px;
}
.value {
text-align: center;
}
.showSearch{
text-align: center;
line-height: 200px;
font-size: 25px;
}
</style>

172
src/views/web/camera/index.vue

@ -95,6 +95,8 @@
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="showLog" icon="el-icon-view" v-hasPermi="['web:camera:remove']">查看日志 <el-dropdown-item command="showLog" icon="el-icon-view" v-hasPermi="['web:camera:remove']">查看日志
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="showDate" icon="el-icon-view" v-hasPermi="['web:camera:remove']">查看时间
</el-dropdown-item>
<el-dropdown-item command="reboot" icon="el-icon-refresh" v-hasPermi="['web:camera:remove']">重启 <el-dropdown-item command="reboot" icon="el-icon-refresh" v-hasPermi="['web:camera:remove']">重启
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="autocfg" icon="el-icon-refresh" v-hasPermi="['web:camera:remove']">自动重启配置 <el-dropdown-item command="autocfg" icon="el-icon-refresh" v-hasPermi="['web:camera:remove']">自动重启配置
@ -220,7 +222,7 @@
end-placeholder="结束日期" @change="chooseTimeRange" :picker-options="setDateRange"> end-placeholder="结束日期" @change="chooseTimeRange" :picker-options="setDateRange">
</el-date-picker> </el-date-picker>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleAutoQuery">查询</el-button>
</el-form-item> </el-form-item>
<el-table :data="logInfoList" stripe style="width: 100%"> <el-table :data="logInfoList" stripe style="width: 100%">
@ -239,11 +241,85 @@
</el-dialog> </el-dialog>
<el-dialog title="查看时间" :visible.sync="updateDate.open">
<div>
<el-form :model="updateDate.queryForm" label-width="80px">
<el-form-item label="模式">
<el-select v-model="updateDate.queryForm.emMode" placeholder="请选择模式" style="width: 200px;">
<el-option
v-for="item in modelList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="预设亮度">
<el-input-number v-model="updateDate.queryForm.nPreValue" controls-position="right" :min="1" :max="100"></el-input-number>
</el-form-item>
<el-form-item label="亮度">
<el-input-number v-model="updateDate.queryForm.nBrightness" controls-position="right" :min="1" :max="100"></el-input-number>
</el-form-item>
<el-form-item v-if="updateDate.queryForm.emMode=='3'" label="时间段1">
<el-time-picker
size="small"
align="center"
format="HH:mm:ss"
style="width: 150px;margin-right: 5px;"
v-model="updateDate.queryForm.startTime1"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
size="small"
align="center"
style="width: 150px"
arrow-control
v-model="updateDate.queryForm.endTime1"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="任意时间点">
</el-time-picker>
</el-form-item>
<el-form-item v-if="updateDate.queryForm.emMode=='3'" label="时间段2">
<el-time-picker
size="small"
align="center"
style="width: 150px;margin-right: 5px;"
v-model="updateDate.queryForm.startTime2"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
size="small"
align="center"
style="width: 150px"
arrow-control
v-model="updateDate.queryForm.endTime2"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="任意时间点">
</el-time-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="updateDate.open = false"> </el-button>
<el-button type="primary" @click="setLightCfg()"> </el-button>
</div>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { formatDate } from "../../../utils/common"; import { formatDate } from "../../../utils/common";
import { Message } from 'element-ui'
export default { export default {
name: "Camera", name: "Camera",
data() { data() {
@ -301,6 +377,20 @@ export default {
width: '100px' width: '100px'
}, },
modelList:[
{
value: '0', label: '强制关闭'
},
{
value: '1', label: '强制开启'
},
{
value: '2', label: '自动'
},
{
value: '3', label: '自动时间'
}
],
// //
restartcfg: { restartcfg: {
open: false, open: false,
@ -323,6 +413,19 @@ export default {
run: false, run: false,
}, },
updateDate:{
open: false,
queryForm: {
id: '',
emMode: '',
nPreValue: '1',
nBrightness: '1',
startTime1: new Date(2022, 9, 10, 18, 40),
endTime1: new Date(2022, 9, 10, 18, 40),
startTime2: new Date(2022, 9, 10, 18, 40),
endTime2: new Date(2022, 9, 10, 18, 40),
},
},
logInfoList: [], logInfoList: [],
options: [{ options: [{
value: '0', value: '0',
@ -424,6 +527,19 @@ export default {
}; };
this.resetForm("form"); this.resetForm("form");
}, },
updateDateReset(){
this.updateDate.queryForm= {
id: '',
emMode: '2',
nPreValue: '1',
nBrightness: '1',
startTime1: new Date(2022, 9, 10, 18, 40),
endTime1: new Date(2022, 9, 10, 18, 40),
startTime2: new Date(2022, 9, 10, 18, 40),
endTime2: new Date(2022, 9, 10, 18, 40),
}
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
@ -461,6 +577,9 @@ export default {
case "showLog": case "showLog":
this.showLog(row); this.showLog(row);
break; break;
case "showDate":
this.showDate(row);
break;
case "reboot": case "reboot":
this.reboot(row); this.reboot(row);
break; break;
@ -548,7 +667,7 @@ export default {
// //
async restartcfgConfirm() { async restartcfgConfirm() {
console.log(this.restartcfg.form)
this.restartcfg.form.bEnable = this.restartcfg.run ? 1 : 0; this.restartcfg.form.bEnable = this.restartcfg.run ? 1 : 0;
this.restartcfg.form.uHour = this.restartcfg.form.uHour.substring(0, 2) this.restartcfg.form.uHour = this.restartcfg.form.uHour.substring(0, 2)
let res = await this.$axiosPost('/web/camera/setautocfg', this.restartcfg.form); let res = await this.$axiosPost('/web/camera/setautocfg', this.restartcfg.form);
@ -557,6 +676,48 @@ export default {
this.restartcfg.open = false; this.restartcfg.open = false;
} }
}, },
//
showDate(row){
//
this.updateDateReset()
this.updateDate.queryForm.id = row.id;
this.getLigntCfg(row.id);
},
//
async getLigntCfg(id){
let res = await this.$axiosGet('/web/camera/getLigntCfg/' + id);
if(res.code === 0){
let objDate = res.data
this.updateDate.queryForm.emMode = objDate.emMode + '';
this.updateDate.queryForm.nPreValue = objDate.nPreValue;
this.updateDate.queryForm.nBrightness = objDate.nBrightness;
this.updateDate.queryForm.startTime1 = new Date(2022,12,12,objDate.startHour,objDate.startMinute,objDate.startSecond)
this.updateDate.queryForm.endTime1 = new Date(2022,12,12,objDate.endHour,objDate.endMinute,objDate.endSecond)
this.updateDate.queryForm.startTime2 = new Date(2022,12,12,objDate.startHour2,objDate.startMinute2,objDate.startSecond2)
this.updateDate.queryForm.endTime2 = new Date(2022,12,12,objDate.endHour2,objDate.endMinute2,objDate.endSecond2)
this.updateDate.open = true;
}
},
//
async setLightCfg(){
let queryData = {
id: this.updateDate.queryForm.id,
emMode: this.updateDate.queryForm.emMode,
nPreValue: this.updateDate.queryForm.nPreValue,
nBrightness: this.updateDate.queryForm.nBrightness,
startTime1:formatDate(this.updateDate.queryForm.startTime1).split(' ')[1],
endTime1: formatDate(this.updateDate.queryForm.endTime1).split(' ')[1],
startTime2: formatDate(this.updateDate.queryForm.startTime2).split(' ')[1],
endTime2: formatDate(this.updateDate.queryForm.endTime2).split(' ')[1],
};
let res = await this.$axiosPost('/web/camera/setLightCfg',queryData);
if (res.code === 0){
Message.success(res.msg)
this.updateDate.open = false;
}else{
Message.error(res.msg)
}
},
reboot(row) { reboot(row) {
const id = row.id; const id = row.id;
const status = row.status; const status = row.status;
@ -615,11 +776,16 @@ export default {
}, },
async handleQuery() { async handleAutoQuery() {
if(this.timeStage == null || this.timeStage.length == 0 ){
this.$modal.msg("请选择时间");
return;
}
let res = await this.$axiosGet('/web/camera/getloginfo', this.logform.queryForm); let res = await this.$axiosGet('/web/camera/getloginfo', this.logform.queryForm);
if (res.code === 0) { if (res.code === 0) {
this.logInfoList = res.data; this.logInfoList = res.data;
this.$modal.msgSuccess("查询成功");
} }
}, },
async register() { async register() {

Loading…
Cancel
Save