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 @@ @@ -2,14 +2,9 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="站点" prop="stnm">
<el-input
v-model="queryParams.stnm"
placeholder="请输入站点名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.stnm" placeholder="请输入站点名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="水位计" prop="ip">
<!-- <el-form-item label="水位计" prop="ip">
<el-input
v-model="queryParams.stcd"
placeholder="请输入水位计名称"
@ -17,59 +12,47 @@ @@ -17,59 +12,47 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="开始时间">
<el-date-picker
v-model="queryParams.startTime"
type="datetime"
placeholder="选择开始时间"
class="w200"
>
<!-- <el-form-item label="开始时间">
<el-date-picker v-model="queryParams.startTime" type="datetime" placeholder="选择开始时间" class="w200">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间">
<el-date-picker
v-model="queryParams.endTime"
type="datetime"
placeholder="选择结束时间"
class="w200"
>
<el-date-picker v-model="queryParams.endTime" type="datetime" placeholder="选择结束时间" class="w200">
</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-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-form-item>
</el-form>
<div v-show="showSearch" class="showSearch">
{{searchInfo}}
</div>
<div class="monitor">
<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')"> -->
<el-image style="width: 300px;height: 168.75px;"
:src="item.imgName"
:preview-src-list="srcList"
@click="show(item.imgName)"
></el-image>
<el-image style="width: 300px;height: 168.75px;" :src="item.imgName" :preview-src-list="srcList"
@click="show(item.imgName)"></el-image>
<div class="info">
<div class="station">
<div class="nm">{{item.stnm}}</div>
<div class="nm">{{ item.stnm }}</div>
<!-- <div class="ip">{{item.ip}}</div> -->
</div>
<div class="data">
<div class="value">{{item.value}}</div>
<div class="tm">{{item.tm}}</div>
<div class="value">{{ item.value }}</div>
<div class="tm">{{ item.tm }}</div>
</div>
</div>
</div>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.limit"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.limit"
@pagination="getList" />
<el-dialog title="预览" :visible.sync="open" width="800px" append-to-body>
@ -83,7 +66,7 @@ @@ -83,7 +66,7 @@
<script>
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";
@ -95,7 +78,7 @@ export default { @@ -95,7 +78,7 @@ export default {
total: 100,
//
currdataList: [],
imgUrl:'',
imgUrl: '',
//
queryParams: {
@ -115,8 +98,38 @@ export default { @@ -115,8 +98,38 @@ export default {
},
open: false,
showImg : '',
srcList:[],
showImg: '',
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 { @@ -131,27 +144,32 @@ export default {
/** 查询实时数据列表 */
getList() {
if(this.timeStage == null || this.timeStage.length == 0 ){
this.$modal.msg("请选择时间");
return;
}
this.loading = true;
if(this.queryParams.endTime!=null)
this.queryParams.endTime=formatDate(this.queryParams.endTime,'yyyy-MM-dd hh:mm:ss')
if(this.queryParams.startTime!=null)
this.queryParams.startTime=formatDate(this.queryParams.startTime,'yyyy-MM-dd hh:mm:ss')
queryPhotoList(this.queryParams).then(response=>{
this.currdataList=response.data;
this.total=response.count;
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;
queryPhotoList(this.queryParams).then(response => {
this.currdataList = response.data;
this.total = response.count;
if(this.total==0){
this.showSearch=true
this.searchInfo='暂无数据'
}else
this.showSearch=false
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;
})
},
/** 搜索按钮操作 */
handleQuery() {
@ -161,61 +179,78 @@ export default { @@ -161,61 +179,78 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams={};
this.queryParams = {};
this.handleQuery();
},
show(url){
show(url) {
// this.open = true;
// this.showImg = url;
this.srcList =[]
this.srcList = []
this.srcList.push(url)
},
/** 设置初始时间*/
getTime(){
getTime() {
var timestamp = new Date();
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.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.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>
<style scoped>
.monitor {
display: -webkit-box;
flex-wrap: wrap;
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 {
.monitor {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
}
.nm {
color: #333;
margin-top: 10px;
font-size: 20px;
}
.value{
text-align: center;
}
</style>
.card {
margin-bottom: 20px;
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 {}
.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 @@ @@ -95,6 +95,8 @@
</el-dropdown-item>
<el-dropdown-item command="showLog" icon="el-icon-view" v-hasPermi="['web:camera:remove']">查看日志
</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>
<el-dropdown-item command="autocfg" icon="el-icon-refresh" v-hasPermi="['web:camera:remove']">自动重启配置
@ -220,7 +222,7 @@ @@ -220,7 +222,7 @@
end-placeholder="结束日期" @change="chooseTimeRange" :picker-options="setDateRange">
</el-date-picker>
<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-table :data="logInfoList" stripe style="width: 100%">
@ -239,11 +241,85 @@ @@ -239,11 +241,85 @@
</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>
</template>
<script>
import { formatDate } from "../../../utils/common";
import { Message } from 'element-ui'
export default {
name: "Camera",
data() {
@ -301,6 +377,20 @@ export default { @@ -301,6 +377,20 @@ export default {
width: '100px'
},
modelList:[
{
value: '0', label: '强制关闭'
},
{
value: '1', label: '强制开启'
},
{
value: '2', label: '自动'
},
{
value: '3', label: '自动时间'
}
],
//
restartcfg: {
open: false,
@ -323,6 +413,19 @@ export default { @@ -323,6 +413,19 @@ export default {
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: [],
options: [{
value: '0',
@ -424,6 +527,19 @@ export default { @@ -424,6 +527,19 @@ export default {
};
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() {
this.queryParams.pageNum = 1;
@ -461,6 +577,9 @@ export default { @@ -461,6 +577,9 @@ export default {
case "showLog":
this.showLog(row);
break;
case "showDate":
this.showDate(row);
break;
case "reboot":
this.reboot(row);
break;
@ -548,7 +667,7 @@ export default { @@ -548,7 +667,7 @@ export default {
//
async restartcfgConfirm() {
console.log(this.restartcfg.form)
this.restartcfg.form.bEnable = this.restartcfg.run ? 1 : 0;
this.restartcfg.form.uHour = this.restartcfg.form.uHour.substring(0, 2)
let res = await this.$axiosPost('/web/camera/setautocfg', this.restartcfg.form);
@ -557,6 +676,48 @@ export default { @@ -557,6 +676,48 @@ export default {
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) {
const id = row.id;
const status = row.status;
@ -615,11 +776,16 @@ export default { @@ -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);
if (res.code === 0) {
this.logInfoList = res.data;
this.$modal.msgSuccess("查询成功");
}
},
async register() {

Loading…
Cancel
Save