<template>
|
<default-header-page-layout ref="page" :title="title" >
|
<view class="page-frame with-action-user-row" :style="{height:pageBodyHeight+'px'}" v-if="pageBodyHeight">
|
<action-user-row />
|
<view class="with-action-user-row-page-content" style="background: #eee;">
|
<u-list>
|
<u-list-item v-for="(item,index) in warningList" :key="item.id">
|
<warn-item :index="index + 1" :item="item" :alertType="type" @getList="getWarnList"></warn-item>
|
</u-list-item>
|
</u-list>
|
</view>
|
</view>
|
</default-header-page-layout>
|
</template>
|
|
<script>
|
import DefaultHeaderPageLayout from '@/components/DefaultHeaderPageLayout.vue'
|
import ActionUserRow from '@/components/ActionUserRow.vue'
|
import warnItem from './modules/warnItem.vue'
|
import { parseDic, $alert, $successInfo } from '@/static/js/utils/index.js'
|
import {getEquipmentWarnList} from '@/api/home/index.js'
|
export default {
|
name:'baseInPage',
|
components:{DefaultHeaderPageLayout,ActionUserRow, warnItem},
|
data(){
|
return {
|
pageBodyHeight: 0,
|
initInterVal: null,
|
warningList: [],
|
type: 0,
|
title: ''
|
}
|
},
|
onLoad(option){
|
if(option.type) {
|
this.type = option.type
|
}
|
if(option.title) {
|
this.title = option.title
|
}
|
this.getWarnList();
|
},
|
methods:{
|
//获取列表数据
|
getWarnList() {
|
const param = {AlertType: this.type}
|
getEquipmentWarnList(param).then(res => {
|
this.warningList = res.data;
|
})
|
},
|
/* 页面初始化获取页面body高度的定时器 */
|
startInitInterval(callback){
|
this.initInterVal = setInterval(()=>{
|
if (this.pageBodyHeight) {
|
this.clearInitInterval()
|
callback && callback()
|
} else {
|
this.pageBodyHeight = this.$refs.page.getBodyHeight()
|
}
|
},200)
|
},
|
/* 清除定时器 */
|
clearInitInterval(){
|
try{
|
clearInterval(this.initInterVal)
|
this.initInterVal = null
|
}catch(e){
|
//TODO handle the exception
|
}
|
}
|
},
|
onReady(){
|
this.startInitInterval(()=>{
|
/* 页面初始化后需要执行的代码在这边调用 */
|
})
|
},
|
onUnload(){
|
this.clearInitInterval()
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.bottom-btns-row{
|
display: flex;
|
padding: 10rpx 0;
|
background-color: #fff;
|
.btn-frame{
|
box-sizing: border-box;
|
}
|
.left-btn-frame{
|
width: 30%;
|
padding-left: 20rpx;
|
padding-right: 8rpx;
|
}
|
.right-btn-frame{
|
flex: 1;
|
padding-right: 20rpx;
|
padding-left: 8rpx;
|
}
|
.u-button {
|
border: 2px solid #F08202;
|
}
|
}
|
.forma-item{
|
margin-bottom: 24rpx;
|
}
|
.material-item-group{
|
background-color: $uni-bg-color;
|
padding-top: 10rpx;
|
.material-list-item{
|
border-bottom: 2rpx solid $uni-border-color;
|
padding-bottom: 10rpx;
|
padding-left: 60rpx;
|
margin-bottom: 10rpx;
|
position: relative;
|
&:last-child{
|
border-bottom: 0;
|
}
|
.item-row{
|
display: flex;
|
&>.label{
|
flex-shrink: 0;
|
color: $u-tips-color;
|
width: 144rpx;
|
}
|
&>.content{
|
flex-grow: 1;
|
color: $u-content-color;
|
uni-input{
|
font: inherit;
|
color: $u-primary;
|
text-decoration: underline;
|
}
|
}
|
}
|
.badge-box{
|
position: absolute;
|
top:8rpx;
|
left: 8rpx;
|
z-index: 1;
|
}
|
.close-btn{
|
$closeBtnSize:70rpx;
|
width: $closeBtnSize;
|
height: $closeBtnSize;
|
z-index: 1;
|
position: absolute;
|
top:0rpx;
|
right: 8rpx;
|
background-color: $u-error;
|
opacity: 0.6;
|
border-radius: 25rpx;
|
.icon-layer{
|
position: absolute;
|
width: 100%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
z-index: 2;
|
}
|
}
|
}
|
}
|
</style>
|