wechat
lgyg 2023-09-05 23:15:31 +08:00
parent 3b1bc2ba86
commit f92cf4f051
7 changed files with 351 additions and 42 deletions

View File

@ -521,5 +521,13 @@
} }
} }
} }
.nav_slot_right_box{
padding-right: 20rpx;
.custom_btn{
color: #fff;
font-size: 32rpx;
padding: 20rpx;
}
}
</style> </style>

View File

@ -228,23 +228,16 @@ export function hideTabBarRedDot(index) {
* @param * @param
*/ */
export function navigateBack() { export function navigateBack() {
uni.navigateBack({ let pages = getCurrentPages();
delta: 1, let page = pages[pages.length - 2];
success() {}, console.log(pages,page)
fail() { if(page){
var pages = getCurrentPages(); uni.navigateBack();
var page = pages[pages.length - 2]; }else{
if(page){ uni.switchTab({
uni.switchTab({ url: '/pages/index/index'
url: page.route });
}); }
}else{
uni.switchTab({
url: '/pages/index/index'
});
}
}
});
} }
export function formatDate(time, fmt) { export function formatDate(time, fmt) {

View File

@ -105,6 +105,16 @@
"style" : "style" :
{ {
"navigationBarTitleText": "友情链接", "navigationBarTitleText": "友情链接",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/device/warning",
"style" :
{
"navigationBarTitleText": "警报明细",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }

View File

@ -0,0 +1,222 @@
<template>
<view class="bg-page">
<u-sticky>
<view class="secreen-section" style="background-color: #fff;">
<u-dropdown class="dropdown-box" ref="uDropdown">
<u-dropdown-item v-model="lvvalue" title="预警等级"
:options="lvList" @change="change1"></u-dropdown-item>
<u-dropdown-item v-model="typevalue" title="设备类型"
:options="typeList" @change="change2"></u-dropdown-item>
<u-dropdown-item v-model="statusvalue" title="状态"
:options="statusList" @change="change3"></u-dropdown-item>
</u-dropdown>
</view>
</u-sticky>
<view class="content-box" style="padding-bottom: 60rpx;">
<view class="tb_swipe_list"
v-for="(item, index) in loglist"
:show="item.show" :index="index":key="item.id"
>
<view class="tb_body" @click="showInfo(index)">
<view class="row_box">
<view class="text">基地{{ item.base_name }}</view>
</view>
<view class="row_box">
<view class="text">监控点{{ item.point_name }}</view>
</view>
<!-- <view class="row_box">
<view class="text">设备类型{{ item.device_type }}</view>
</view> -->
<view class="row_box">
<view class="text">等级{{ item.lv }}</view>
</view>
<view class="row_box">
<view class="text">状态{{ item.status }}</view>
</view>
<view class="row_box">
<view class="text">时间{{ item.created_at|timeFormat}}</view>
</view>
</view>
</view>
<u-loadmore :status="loading" margin-top="60"/>
</view>
</view>
</template>
<script>
import {showLoading,toast,formatDate} from '@/com/utils.js'
export default {
data() {
return {
per_page:15,
page:1,
loglist:[],
loading:'loadmore',
lvList:[
{
label: '全部',
value: 0,
},
{
label: 'Ⅰ级预警',
value: 1,
},
{
label: 'Ⅱ级预警',
value: 2,
},
{
label: 'Ⅲ级预警',
value: 3,
},
{
label: 'Ⅳ级预警',
value: 4,
},
],
lvvalue:'',
typeList:[
{
label: '全部',
value: '',
},
{
label: '监控设备',
value: 1,
},
{
label: '土壤设备',
value: 2,
},
{
label: '水质设备',
value: 3,
},
{
label: '气象设备',
value: 4,
}
],
typevalue:'',
statusList:[
{
label: '全部',
value: -1,
},
{
label: '未处理',
value: 0,
},
{
label: '已处理',
value: 1,
},
{
label: '已忽略',
value: 2,
},
],
statusvalue:-1,
};
},
filters:{
timeFormat(val){
return formatDate(val*1000, 'yyyy-MM-dd hh:mm');
},
typename(val){
let keys = {
delete:'删除',
create:'创建',
update:'修改'
}
let name = keys[val]?keys[val]:'其它'
return name;
},
},
onLoad() {
this.queryloglist();
},
methods: {
showInfo(){
},
change1(val){
console.log(val);
this.queryloglist(true);
},
change2(val){
console.log(val);
this.queryloglist(true);
},
change3(val){
console.log(val);
this.queryloglist(true);
},
queryloglist(refresh){
if(refresh){
this.loading = 'loadmore';
this.loglist = [];
this.page = 1;
}
if(this.loading=='nomore'){//
return false;
}
let params = {
per_page:this.per_page,
page: this.page ++,
_t: new Date().getTime()
}
if(this.lvvalue){
params['lv'] = this.lvvalue;
}
if(this.typevalue){
params['device'] = this.typevalue;
}
if(this.statusvalue>-1){
params['status'] = this.statusvalue;
}
this.loading = 'loading';
this.$http.get('/api/device-warning-logs',{params:params}).then(({data})=>{
console.log(data)
this.loading = 'loadmore';
if(data.code==200){
let _list = data.data|| [];
let {current_page,per_page,last_page} = data.meta;
this.loglist = this.loglist.concat(_list);
console.log(this.loglist);
if(current_page >= last_page){
this.loading ='nomore';
}
}
}).catch(()=>{
this.loading = 'loadmore';
})
},
},
//
onReachBottom() {
if(this.loading=='loadmore'){
this.queryloglist();
}
},
}
</script>
<style lang="scss" scoped>
.content-box{
padding: 30rpx 30rpx 60rpx 30rpx;
}
.row_box{
.text{
word-break: break-all;
}
}
</style>

View File

@ -31,15 +31,19 @@
children:[ children:[
{ {
label:'气象监测', label:'气象监测',
url:"/pages/index/meteorological"
}, },
{ {
label:'智能监控', label:'智能监控',
url:'/pages/index/monitor'
}, },
{ {
label:'土壤监控', label:'土壤监控',
url:'/pages/index/soil-monitoring'
}, },
{ {
label:'水质监控', label:'水质监控',
url:'/pages/index/water-quality'
}, },
], ],
}, },
@ -88,7 +92,8 @@
label:'设备管理', label:'设备管理',
}, },
{ {
label:'警报明显', label:'警报明细',
url:'/pages/device/warning'
} }
], ],
}, },
@ -102,23 +107,9 @@
methods: { methods: {
linknavFn(item){ linknavFn(item){
console.log(item) console.log(item)
if(item.label=='气象监测'){ uni.navigateTo({
uni.navigateTo({ url:`${item.url}`
url:'/pages/index/meteorological' })
})
}else if(item.label=='智能监控'){
uni.navigateTo({
url:'/pages/index/monitor'
})
}else if(item.label=='土壤监控'){
uni.navigateTo({
url:'/pages/index/soil-monitoring'
})
}else if(item.label=='水质监控'){
uni.navigateTo({
url:'/pages/index/water-quality'
})
}
} }
} }
} }

View File

@ -1,14 +1,47 @@
<template> <template>
<view class="bg-page"> <view class="bg-page">
<u-sticky> <u-navbar title="友情链接" :background="background" :custom-back="goback"
<view class="page-top-title-box"> :title-color="titleColor" :back-icon-color="titleColor">
<view class="nav_slot_right_box" slot="right">
<view class="custom_btn add_btn" @click="addBtn()"></view>
</view>
</u-navbar>
<view class="secreen-section" style="background-color: #fff;">
<u-dropdown class="dropdown-box" ref="uDropdown" @open="openDropDown">
<u-dropdown-item title="类型" v-model="q_type"
:options="typelist" @change="change1"></u-dropdown-item>
<u-dropdown-item title="时间范围">
<view class="slot-content" style="background-color: #FFFFFF;">
<view class="select-date u-border-bottom" >
<view class="name" @click="calendarShow = true">
<u-icon name="calendar" color="#333" size="32"></u-icon>
<text style="margin-left: 6rpx;">时间范围</text>
</view>
<view class="time_box" @click="calendarShow = true">
<view class="tip_txt" v-if="!start_date_c"
>开始日期-结束日期</view>
<view class="tile_val" v-else
>{{start_date_c}} ~ {{end_date_c}}</view>
<view class="delete_btn" v-if="start_date_c" @click.stop="deleteDateFn()">
<u-icon name="close-circle" color="#333" size="34"></u-icon>
</view>
</view>
</view>
<u-button type="primary" @click="selectedDateConform()"></u-button>
</view>
</u-dropdown-item>
</u-dropdown>
</view>
<!-- <view class="page-top-title-box">
<view class="title">链接列表</view> <view class="title">链接列表</view>
<view class="handle-option"> <view class="handle-option">
<u-button class="btn" size="medium" <u-button class="btn" size="medium"
@click="addBtn()" type="primary">新增</u-button> @click="addBtn()" type="primary">新增</u-button>
</view> </view>
</view> </view> -->
</u-sticky>
<view class="content-box"> <view class="content-box">
<u-swipe-action class="tb_swipe_list" <u-swipe-action class="tb_swipe_list"
v-for="(item, index) in list" v-for="(item, index) in list"
@ -42,6 +75,7 @@
</view> </view>
</u-swipe-action> </u-swipe-action>
<u-loadmore :status="loading" margin-top="60"/>
</view> </view>
<!-- 编辑 --> <!-- 编辑 -->
<u-popup v-model="editShow" border-radius="28" width="92%" height="70%" <u-popup v-model="editShow" border-radius="28" width="92%" height="70%"
@ -108,7 +142,7 @@
</view> </view>
</view> </view>
</u-form-item> </u-form-item>
<u-form-item label="地址" label-width="140"> <u-form-item label="地址" label-width="140" :required='true'>
<view class="input_box"> <view class="input_box">
<u-input v-model="setInfo.content" type="text"/> <u-input v-model="setInfo.content" type="text"/>
</view> </view>
@ -174,14 +208,20 @@
</u-popup> </u-popup>
<u-select v-model="select2" :list="typelist" :default-value="select2Value" mode="single-column" <u-select v-model="select2" :list="typelist" :default-value="select2Value" mode="single-column"
@confirm="uselectConfirm"></u-select> @confirm="uselectConfirm"></u-select>
<u-calendar v-model="calendarShow" :mode="'range'"
@change="calendarChange"></u-calendar>
</view> </view>
</template> </template>
<script> <script>
import {formatDate} from '@/com/utils.js' import {formatDate,navigateBack} from '@/com/utils.js'
export default { export default {
data() { data() {
return { return {
background: {
backgroundColor:'#2a7dc9',
},
titleColor:"#ffffff",
per_page:10, per_page:10,
page:1, page:1,
list:[], list:[],
@ -243,7 +283,13 @@
trigger: ['blur', 'change'] trigger: ['blur', 'change']
} }
] ]
} },
start_date_c:'',
end_date_c:'',
calendarShow:false,
q_start_time:'',
q_end_time:'',
q_type:'',
}; };
}, },
filters:{ filters:{
@ -255,6 +301,32 @@
this.queryDataList(); this.queryDataList();
}, },
methods: { methods: {
change1(){
this.queryDataList(true);
},
selectedDateConform(){
this.q_start_time = this.start_date_c;
this.q_end_time = this.end_date_c;
this.queryDataList(true);
this.$refs.uDropdown.close();
},
//
calendarChange(e){
console.log(e,'日期范围')
this.start_date_c = e.startDate;
this.end_date_c = e.endDate;
},
deleteDateFn(){
this.start_date_c = '';
this.end_date_c = '';
},
openDropDown(index){
if(index==1){//
this.start_date_c = this.q_start_time;
this.end_date_c = this.q_end_time;
}
},
typePopupShow(){ typePopupShow(){
// this.select2 = true; // this.select2 = true;
}, },
@ -303,6 +375,13 @@
page: this.page ++, page: this.page ++,
_t: new Date().getTime() _t: new Date().getTime()
} }
if(this.q_start_time){
params['start_time'] = this.q_start_time +' 00:01';
params['end_time'] = this.q_end_time+' 23:59';
}
if(this.q_type){
params['type'] = this.q_type
}
this.loading = 'loading'; this.loading = 'loading';
this.$http.get('/api/friend-links',{params:params}).then(({data})=>{ this.$http.get('/api/friend-links',{params:params}).then(({data})=>{
console.log(data) console.log(data)
@ -432,6 +511,9 @@
}) })
}, },
goback(){
navigateBack()
}
}, },
// //
onReachBottom() { onReachBottom() {

View File

@ -132,6 +132,9 @@
}, },
methods: { methods: {
showInfo(){
},
change(val){ change(val){
console.log(val); console.log(val);
this.queryloglist(true); this.queryloglist(true);