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>

View File

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

View File

@ -105,6 +105,16 @@
"style" :
{
"navigationBarTitleText": "友情链接",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/device/warning",
"style" :
{
"navigationBarTitleText": "警报明细",
"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:[
{
label:'气象监测',
url:"/pages/index/meteorological"
},
{
label:'智能监控',
url:'/pages/index/monitor'
},
{
label:'土壤监控',
url:'/pages/index/soil-monitoring'
},
{
label:'水质监控',
url:'/pages/index/water-quality'
},
],
},
@ -88,7 +92,8 @@
label:'设备管理',
},
{
label:'警报明显',
label:'警报明细',
url:'/pages/device/warning'
}
],
},
@ -102,23 +107,9 @@
methods: {
linknavFn(item){
console.log(item)
if(item.label=='气象监测'){
uni.navigateTo({
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'
})
}
uni.navigateTo({
url:`${item.url}`
})
}
}
}

View File

@ -1,14 +1,47 @@
<template>
<view class="bg-page">
<u-sticky>
<view class="page-top-title-box">
<u-navbar title="友情链接" :background="background" :custom-back="goback"
: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="handle-option">
<u-button class="btn" size="medium"
@click="addBtn()" type="primary">新增</u-button>
</view>
</view>
</u-sticky>
</view> -->
<view class="content-box">
<u-swipe-action class="tb_swipe_list"
v-for="(item, index) in list"
@ -42,6 +75,7 @@
</view>
</u-swipe-action>
<u-loadmore :status="loading" margin-top="60"/>
</view>
<!-- 编辑 -->
<u-popup v-model="editShow" border-radius="28" width="92%" height="70%"
@ -108,7 +142,7 @@
</view>
</view>
</u-form-item>
<u-form-item label="地址" label-width="140">
<u-form-item label="地址" label-width="140" :required='true'>
<view class="input_box">
<u-input v-model="setInfo.content" type="text"/>
</view>
@ -174,14 +208,20 @@
</u-popup>
<u-select v-model="select2" :list="typelist" :default-value="select2Value" mode="single-column"
@confirm="uselectConfirm"></u-select>
<u-calendar v-model="calendarShow" :mode="'range'"
@change="calendarChange"></u-calendar>
</view>
</template>
<script>
import {formatDate} from '@/com/utils.js'
import {formatDate,navigateBack} from '@/com/utils.js'
export default {
data() {
return {
background: {
backgroundColor:'#2a7dc9',
},
titleColor:"#ffffff",
per_page:10,
page:1,
list:[],
@ -243,7 +283,13 @@
trigger: ['blur', 'change']
}
]
}
},
start_date_c:'',
end_date_c:'',
calendarShow:false,
q_start_time:'',
q_end_time:'',
q_type:'',
};
},
filters:{
@ -255,6 +301,32 @@
this.queryDataList();
},
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(){
// this.select2 = true;
},
@ -303,6 +375,13 @@
page: this.page ++,
_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.$http.get('/api/friend-links',{params:params}).then(({data})=>{
console.log(data)
@ -432,6 +511,9 @@
})
},
goback(){
navigateBack()
}
},
//
onReachBottom() {

View File

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