master
秦子超 2024-06-05 16:41:15 +08:00
parent e429af331b
commit afe9472752
34 changed files with 40281 additions and 14169 deletions

4
node_modules/.package-lock.json generated vendored
View File

@ -1,6 +1,6 @@
{
"name": "xffxkh-app",
"lockfileVersion": 2,
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/@escook/request-miniprogram": {
@ -10,7 +10,7 @@
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"

4
package-lock.json generated
View File

@ -16,7 +16,7 @@
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"
@ -31,7 +31,7 @@
},
"moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
}
}

View File

@ -22,6 +22,34 @@
"style": {
"navigationBarTitleText": ""
}
},
{
"path" : "pages/forewarning/forewarning",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/forewarning/sh",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/forewarning/shInformation/shInformation",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/addressBook/addressBook",
"style" :
{
"navigationBarTitleText" : ""
}
}
],
@ -40,7 +68,13 @@
"iconPath": "/static/tabs/首页@2x.png",
"selectedIconPath": "static/tabs/首页2@2x.png",
"text": "首页"
}
},
{
"pagePath": "pages/addressBook/addressBook",
"iconPath": "/static/tabs/首页@2x.png",
"selectedIconPath": "static/tabs/首页2@2x.png",
"text": "通讯录"
}
]
},
"globalStyle": {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,80 @@
<template>
<view :style="{height:'100vh',overflow:'hidden'}">
<u-status-bar></u-status-bar>
<u-navbar
title="预警"
:autoBack="true"
:titleStyle="{
fontSize:'18px'
}"
:height='44'
:safeAreaInsetTop=true
leftIconSize='20'
leftIconColor='rgb(153, 153, 153)'
>
</u-navbar>
<u-tabs
:list="tabsOptions"
@click="tabsChange"
:scrollable=false
class="tabsClass"
:activeStyle="{color: 'rgb(37, 157, 255)',fontSize: '16px'}"
:inactiveStyle="{color: '#606266',fontSize: '16px'}"
lineColor="transparent"
itemStyle="height: 44px"
>
</u-tabs>
<component :is="tabsVal"></component>
</view>
</template>
<script>
import moment from 'moment'
import uniSh from './sh.vue';
import uniSk from './sk.vue';
import uniHd from './hd.vue';
export default {
components: { uniSh, uniSk, uniHd },
data() {
return {
tabsOptions:[
{
name:'水库预警',
components:uniSk
},
{
name:'河道预警',
components:uniHd
},
{
name:'山洪预警',
components:uniSh
},
],
tabsVal:uniSk
};
},
methods: {
tabsChange(item) {
this.tabsVal = item.components
console.log(this.tabsVal);
}
}
}
</script>
<style lang="scss" scoped>
.myTitleStyle{
font-size: 30px;
background-color: red;
height: 200px;
}
.tabsClass{
margin-top: 44px;
height: 44px;
padding: 0 40px;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
</style>

258
pages/forewarning/hd.vue Normal file
View File

@ -0,0 +1,258 @@
<template>
<view class="tabBody">
<div class="searchBox">
<div class="searchBox_left">
<u-search
shape="square"
:clearabled="true"
:showAction=false
v-model="searchVal"
placeholder='请输入站名'
height=40
>
</u-search>
</div>
<div class="searchBox_right">
<view
hover-class="is-hover"
class="searchBox_right_btn"
hover-stay-time=100
@click="myShow"
>
<u--image :src="'../../static/images/filter.png'" width="22px" height="22px"></u--image>
</view>
</div>
</div>
<div class="tableHead">
<div class="td t1">站名</div>
<div class="td t2">水位(m)</div>
<div class="td t3">类型</div>
<div class="td t4">预警类型</div>
</div>
<div class="tableBody">
<div v-for="(item,index) in getSearchVal" class="tableRow">
<div class="td t1" @click="toSh(item)">{{item.adnm}}</div>
<div class="td t2">{{Number(item.z).toFixed(2)}}({{Number(item.gstate===1?(item.grz-item.z):(item.wrz-item.z)).toFixed(2)}})</div>
<div class="td t3">{{sttp[item.sttp]}}</div>
<div class="td t4">{{item.gstate===1?'超危险水位':item.wstate===1?'超警戒水位':'-'}}</div>
</div>
<div :style="{height:'80px'}">
</div>
</div>
<u-popup
:show="show"
mode="right"
:safeAreaInsetTop='true'
:closeOnClickOverlay='false'
@close="close"
@open="myShow">
<view :style="{padding:'10px',width:'250px'}">
<u-toast ref="uToast"></u-toast>
<text class="title">按类型</text>
<u-checkbox-group
placement="row"
v-model="check1"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="SH" label="山洪" class="checkItem"></u-checkbox>
<u-checkbox name="SW" label="水文" class="checkItem"></u-checkbox>
</u-checkbox-group>
<text class="title">按预警类型</text>
<u-checkbox-group
placement="row"
v-model="check2"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="1" label="超危险水位" class="checkItem"></u-checkbox>
<u-checkbox name="2" label="超警戒水位" class="checkItem"></u-checkbox>
</u-checkbox-group>
<div :style="{position:'absolute',bottom:'20px',right:'20px',display:'flex'}">
<u-button
:style="{width:'80px',marginRight:'10px'}"
text="重置"
@click="reSet"
></u-button>
<u-button
:style="{width:'80px'}"
color="rgba(217, 0, 27, 1)"
type="primary"
text="确定"
@click="submit"
></u-button>
</div>
</view>
</u-popup>
</view>
</template>
<script>
import moment from 'moment'
const sttp = {
RR:'水库水文站',
ZQ:'河道水文站',
ZP:'河道水文站',
}
export default {
data() {
return {
sttp:sttp,
show:false,
searchVal:'',
check1:['SH','SW'],
check2:['1','2'],
list:[]
}
},
computed: {
getSearchVal() {
if(this.searchVal){
return this.list.filter(o => o.adnm && o.adnm?.indexOf(this.searchVal)>-1)
}else{
return this.list
}
},
},
methods: {
myShow() {
this.show = true
},
close() {
this.show = false
},
reSet() {
this.check1 = ['SH','SW']
this.check2 = ['1','2']
},
async submit() {
try{
const params = {
sources:this.check1,
types:this.check2
}
const res = await uni.$http.post('/gunshiApp/xfflood/current/situation/app/rv/warn',params)
this.list = res.data.data
this.close()
}catch(e){
//TODO handle the exception
this.$refs.uToast.show({
type: 'error',
title: '失败主题',
message: "请求失败",
})
setTimeout(()=>{
this.close()
},1000)
}
},
toSh(record) {
// uni.navigateTo({
// url: '/pages/forewarning/shInformation/shInformation?obj='+JSON.stringify(record) //
// });
},
},
created() {
this.submit()
}
}
</script>
<style lang="scss" scoped>
.tabBody{
background-color: rgba(247, 247, 247, 1);
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.searchBox{
height: 62px;
width: 100%;
background-color: #ffffff;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
}
.tableHead{
width: 97%;
margin-top: 5px;
height: 50px;
background-color: #e4f2fe;
display: flex;
color: #208FEE;
}
.tableBody{
width: 97%;
height: calc( 100vh - 214px );
background-color: #f7f7f7;//#ffffff;
overflow-y: scroll;
}
.tableRow{
width: 100%;
height: 46px;
display: flex;
border-bottom: 1px solid #eee;
background-color: #ffffff;
}
.td{
text-align: center;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
}
.t1{
width: 25%;
color: #208FEE;
}
.t2{
width: 25%;
}
.t3{
width: 25%;
}
.t4{
width: 25%;
}
.searchBox_left{
width: 82%;
padding-left: 15px;
}
.searchBox_right{
width: 18%;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right_btn{
width: 40px;
height: 40px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
}
.is-hover{
background-color: #eee;
}
.title{
display: inline-block;
font-size: 16px;
}
.checkItem{
margin-right: 10px;
}
.tmPicker{
width: 100%;
height: 30px;
border: 1px solid rgba(240, 240, 240, 1);
border-radius: 4px;
margin-right: 10px;
font-size: 14px;
display: flex;
justify-content: space-around;
align-items: center;
// padding-left: 10px;
}
</style>

328
pages/forewarning/sh.vue Normal file
View File

@ -0,0 +1,328 @@
<template>
<view class="tabBody">
<div class="searchBox">
<div class="searchBox_left">
<u-search
shape="square"
:clearabled="true"
:showAction=false
v-model="searchVal"
placeholder='请输入乡镇'
height=40
>
</u-search>
</div>
<div class="searchBox_right">
<view
hover-class="is-hover"
class="searchBox_right_btn"
hover-stay-time=100
@click="myShow"
>
<u--image :src="'../../static/images/filter.png'" width="22px" height="22px"></u--image>
</view>
</div>
</div>
<div class="tableHead">
<div class="td t1">乡镇</div>
<div class="td t2">预警时间</div>
<div class="td t3">预警状态</div>
<div class="td t4">危险等级</div>
</div>
<div class="tableBody">
<div v-for="(item,index) in getSearchVal" class="tableRow">
<div class="td t1" @click="toSh(item)">{{item.adnm}}</div>
<div class="td t2">{{item.warnstm}}</div>
<div class="td t3">{{warnstatus[item.warnstatusid]}}</div>
<div class="td t4">{{warngrade[item.warngradeid]}}</div>
</div>
<div :style="{height:'80px'}">
</div>
</div>
<u-popup
:show="show"
mode="right"
:safeAreaInsetTop='true'
:closeOnClickOverlay='false'
@close="close"
@open="myShow">
<view :style="{padding:'10px',width:'250px'}">
<u-toast ref="uToast"></u-toast>
<text class="title">按预警状态</text>
<u-checkbox-group
placement="row"
v-model="check1"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="0" label="新产生" class="checkItem"></u-checkbox>
<u-checkbox name="30" label="已关闭" class="checkItem"></u-checkbox>
</u-checkbox-group>
<text class="title">按危险等级</text>
<u-checkbox-group
placement="row"
v-model="check2"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="6" label="立即转移" class="checkItem"></u-checkbox>
<u-checkbox name="5" label="准备转移" class="checkItem"></u-checkbox>
</u-checkbox-group>
<text class="title">按预警时间</text>
<div :style="{display:'flex',marginTop:'10px'}">
<view
class="tmPicker"
@click="showStmPicker = true"
hover-class="is-hover"
hover-stay-time=100
>{{getStmStr}}<u-icon name="calendar" size="18" color="#909399"></u-icon>
</view>
<text :style="{width:'20%',lineHeight:'32px',textAlign:'center'}"></text>
</div>
<div :style="{display:'flex',marginTop:'10px'}">
<view
class="tmPicker"
@click="showEtmPicker = true"
hover-class="is-hover"
hover-stay-time=100
>{{getEtmStr}}<u-icon name="calendar" size="18" color="#909399"></u-icon>
</view>
<text :style="{width:'20%'}"></text>
</div>
<div :style="{position:'absolute',bottom:'20px',right:'20px',display:'flex'}">
<u-button
:style="{width:'80px',marginRight:'10px'}"
text="重置"
@click="reSet"
></u-button>
<u-button
:style="{width:'80px'}"
color="rgba(217, 0, 27, 1)"
type="primary"
text="确定"
@click="submit"
></u-button>
</div>
</view>
<u-datetime-picker
:show="showStmPicker"
v-model="stm"
mode="datetime"
closeOnClickOverlay
@confirm="showStmPicker = false"
@cancel="showStmPicker = false"
@close="showStmPicker = false"
>
</u-datetime-picker>
<u-datetime-picker
:show="showEtmPicker"
v-model="etm"
mode="datetime"
closeOnClickOverlay
@confirm="showEtmPicker = false"
@cancel="showEtmPicker = false"
@close="showEtmPicker = false"
>
</u-datetime-picker>
</u-popup>
</view>
</template>
<script>
import moment from 'moment'
const warnstatus = {
'0':'新产生',
'10':'已内部告警',
'20':'已外部告警',
'30':'关闭预警',
'70':'灾情上报',
}
const warngrade = {
'5':'准备转移',
'6':'立即转移'
}
export default {
data() {
return {
warnstatus:warnstatus,
warngrade:warngrade,
show:false,
showStmPicker:false,
showEtmPicker:false,
searchVal:'',
stm:Number(moment(new Date()).add(-7,'days')),
etm:Number(new Date()),
check1:['0','30'],
check2:['6','5'],
list:[]
}
},
computed: {
getStmStr() {
return moment(this.stm).format('YYYY-MM-DD HH:mm:ss')
},
getEtmStr() {
return moment(this.etm).format('YYYY-MM-DD HH:mm:ss')
},
getSearchVal() {
if(this.searchVal){
return this.list.filter(o => o.adnm && o.adnm?.indexOf(this.searchVal)>-1)
}else{
return this.list
}
},
},
methods: {
myShow() {
this.show = true
},
close() {
this.show = false
},
reSet() {
this.stm = Number(moment(new Date()).add(-7,'days'))
this.etm = Number(new Date())
this.check1 = ['0','30']
this.check2 = ['6','5']
},
async submit() {
if(!moment(this.stm).isBefore(this.etm)){
this.$refs.uToast.show({
type: 'error',
title: '失败主题',
message: "开始时间需小于结束时间",
})
return
}
try{
const params = {
stm:moment(this.stm).format('YYYY-MM-DD HH:mm:ss'),
etm:moment(this.etm).format('YYYY-MM-DD HH:mm:ss'),
warnstatusids:this.check1,
warngradeids:this.check2
}
const res = await uni.$http.post('/gunshiApp/xfflood/current/situation/app/flood/warn',params)
this.list = res.data.data
this.close()
}catch(e){
//TODO handle the exception
this.$refs.uToast.show({
type: 'error',
title: '失败主题',
message: "请求失败",
})
setTimeout(()=>{
this.close()
},1000)
}
},
toSh(record) {
uni.navigateTo({
url: '/pages/forewarning/shInformation/shInformation?obj='+JSON.stringify(record) //
});
},
},
created() {
this.submit()
}
}
</script>
<style lang="scss" scoped>
.tabBody{
background-color: rgba(247, 247, 247, 1);
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.searchBox{
height: 62px;
width: 100%;
background-color: #ffffff;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
}
.tableHead{
width: 97%;
margin-top: 5px;
height: 50px;
background-color: #e4f2fe;
display: flex;
color: #208FEE;
}
.tableBody{
width: 97%;
height: calc( 100vh - 214px );
background-color: #f7f7f7;//#ffffff;
overflow-y: scroll;
}
.tableRow{
width: 100%;
height: 46px;
display: flex;
border-bottom: 1px solid #eee;
background-color: #ffffff;
}
.td{
text-align: center;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
}
.t1{
width: 25%;
color: #208FEE;
}
.t2{
width: 37%;
}
.t3{
width: 18%;
}
.t4{
width: 20%;
}
.searchBox_left{
width: 82%;
padding-left: 15px;
}
.searchBox_right{
width: 18%;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right_btn{
width: 40px;
height: 40px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
}
.is-hover{
background-color: #eee;
}
.title{
display: inline-block;
font-size: 16px;
}
.checkItem{
margin-right: 10px;
}
.tmPicker{
width: 100%;
height: 30px;
border: 1px solid rgba(240, 240, 240, 1);
border-radius: 4px;
margin-right: 10px;
font-size: 14px;
display: flex;
justify-content: space-around;
align-items: center;
// padding-left: 10px;
}
</style>

View File

@ -0,0 +1,119 @@
<template>
<view>
<u-status-bar></u-status-bar>
<u-navbar
title="山洪预警详情"
:autoBack="true"
:titleStyle="{
fontSize:'18px'
}"
:height='44'
:safeAreaInsetTop=true
leftIconSize='20'
leftIconColor='rgb(153, 153, 153)'
>
</u-navbar>
<div class="bodyBg">
<div class="mybody">
<div class="row">
<text class="lf">乡镇:</text>
<div class="rf">
<u--input
border="surround"
v-model="xz"
:disabled='true'
></u--input>
</div>
</div>
<div class="row">
<text class="lf">危险等级:</text>
<div class="rf">
<u--input
border="surround"
v-model="wxdj"
:disabled='true'
></u--input>
</div>
</div>
<div class="row">
<text class="lf">预警依据:</text>
<div class="rf">
<u--textarea
v-model="yjyj"
:disabled='true'
height=300
></u--textarea>
</div>
</div>
<div class="row">
<text class="lf">预警时间:</text>
<div class="rf">
<u--input
border="surround"
v-model="yjsj"
:disabled='true'
></u--input>
</div>
</div>
</div>
</div>
</view>
</template>
<script>
export default {
data() {
return {
xz:'',
wxdj:'',
yjyj:'',
yjsj:'',
}
},
methods: {
},
onLoad(props){
const record = JSON.parse(props.obj)
this.xz = record.adnm
this.wxdj = {'5':'准备转移','6':'立即转移'}[record.warngradeid]
this.yjyj = record.warndesc
this.yjsj = record.warnstm
}
}
</script>
<style lang="scss" scoped>
.bodyBg{
background-color: rgba(247, 247, 247, 1);
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
}
.mybody{
margin-top: 50px;
padding-top: 10px;
width: 97%;
height: 92%;
background-color: #ffffff;
}
.row{
display: flex;
margin-top: 5px;
}
.lf{
width: 25%;
min-height: 40px;
text-align: right;
line-height: 38px;
padding-right: 10px;
}
.rf{
width: 75%;
min-height: 40px;
padding-right: 20px;
padding-top: 1px;
}
</style>

260
pages/forewarning/sk.vue Normal file
View File

@ -0,0 +1,260 @@
<template>
<view class="tabBody">
<div class="searchBox">
<div class="searchBox_left">
<u-search
shape="square"
:clearabled="true"
:showAction=false
v-model="searchVal"
placeholder='请输入站名'
height=40
>
</u-search>
</div>
<div class="searchBox_right">
<view
hover-class="is-hover"
class="searchBox_right_btn"
hover-stay-time=100
@click="myShow"
>
<u--image :src="'../../static/images/filter.png'" width="22px" height="22px"></u--image>
</view>
</div>
</div>
<div class="tableHead">
<div class="td t1">站名</div>
<div class="td t2">水位(m)</div>
<div class="td t3">类型</div>
<div class="td t4">预警类型</div>
</div>
<div class="tableBody">
<div v-for="(item,index) in getSearchVal" class="tableRow">
<div class="td t1" @click="toSh(item)">{{item.adnm}}</div>
<div class="td t2">{{Number(item.rz).toFixed(2)}}({{Number(item.calState===1?(item.rz-item.calFloodLev):item.desState===1?(item.rz-item.desFloodLev):(item.afsltdz)).toFixed(2)}})</div>
<div class="td t3">{{sttp[item.sttp]}}</div>
<div class="td t4">{{item.calState===1?'超校核水位':item.desState===1?'超设计水位':item.flState===1?'超汛限水位':'-'}}</div>
</div>
<div :style="{height:'80px'}">
</div>
</div>
<u-popup
:show="show"
mode="right"
:safeAreaInsetTop='true'
:closeOnClickOverlay='false'
@close="close"
@open="myShow">
<view :style="{padding:'10px',width:'250px'}">
<u-toast ref="uToast"></u-toast>
<text class="title">按类型</text>
<u-checkbox-group
placement="row"
v-model="check1"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="SK" label="水库" class="checkItem"></u-checkbox>
<u-checkbox name="SW" label="水文" class="checkItem"></u-checkbox>
</u-checkbox-group>
<text class="title">按预警类型</text>
<u-checkbox-group
placement="col"
v-model="check2"
:style="{padding:'10px 0px 20px 0px'}"
>
<u-checkbox name="1" label="超校核洪水位" :style="{marginTop:'5px'}" class="checkItem"></u-checkbox>
<u-checkbox name="2" label="超设计洪水位" :style="{marginTop:'5px'}" class="checkItem"></u-checkbox>
<u-checkbox name="3" label="超汛限水位" :style="{marginTop:'5px'}" class="checkItem"></u-checkbox>
</u-checkbox-group>
<div :style="{position:'absolute',bottom:'20px',right:'20px',display:'flex'}">
<u-button
:style="{width:'80px',marginRight:'10px'}"
text="重置"
@click="reSet"
></u-button>
<u-button
:style="{width:'80px'}"
color="rgba(217, 0, 27, 1)"
type="primary"
text="确定"
@click="submit"
></u-button>
</div>
</view>
</u-popup>
</view>
</template>
<script>
import moment from 'moment'
const sttp = {
RR:'水库水文站',
ZQ:'河道水文站',
ZP:'河道水文站',
}
export default {
data() {
return {
sttp:sttp,
show:false,
searchVal:'',
check1:['SK','SW'],
check2:['1','2','3'],
list:[]
}
},
computed: {
getSearchVal() {
if(this.searchVal){
return this.list.filter(o => o.adnm && o.adnm?.indexOf(this.searchVal)>-1)
}else{
return this.list
}
},
},
methods: {
myShow() {
this.show = true
},
close() {
this.show = false
},
reSet() {
this.check1 = ['SK','SW']
this.check2 = ['1','2','3']
},
async submit() {
try{
const params = {
sources:this.check1,
types:this.check2
}
const res = await uni.$http.post('/gunshiApp/xfflood/current/situation/app/res/warn',params)
this.list = res.data.data
this.close()
}catch(e){
//TODO handle the exception
this.$refs.uToast.show({
type: 'error',
title: '失败主题',
message: "请求失败",
})
setTimeout(()=>{
this.close()
},1000)
}
},
toSh(record) {
// uni.navigateTo({
// url: '/pages/forewarning/shInformation/shInformation?obj='+JSON.stringify(record) //
// });
},
},
created() {
this.submit()
}
}
</script>
<style lang="scss" scoped>
.tabBody{
background-color: rgba(247, 247, 247, 1);
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.searchBox{
height: 62px;
width: 100%;
background-color: #ffffff;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
}
.tableHead{
width: 97%;
margin-top: 5px;
height: 50px;
background-color: #e4f2fe;
display: flex;
color: #208FEE;
}
.tableBody{
width: 97%;
height: calc( 100vh - 214px );
background-color: #f7f7f7;//#ffffff;
overflow-y: scroll;
}
.tableRow{
width: 100%;
height: 46px;
display: flex;
border-bottom: 1px solid #eee;
background-color: #ffffff;
}
.td{
text-align: center;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
}
.t1{
width: 25%;
color: #208FEE;
}
.t2{
width: 25%;
}
.t3{
width: 25%;
}
.t4{
width: 25%;
}
.searchBox_left{
width: 82%;
padding-left: 15px;
}
.searchBox_right{
width: 18%;
display: flex;
align-items: center;
justify-content: center;
}
.searchBox_right_btn{
width: 40px;
height: 40px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
}
.is-hover{
background-color: #eee;
}
.title{
display: inline-block;
font-size: 16px;
}
.checkItem{
margin-right: 10px;
}
.tmPicker{
width: 100%;
height: 30px;
border: 1px solid rgba(240, 240, 240, 1);
border-radius: 4px;
margin-right: 10px;
font-size: 14px;
display: flex;
justify-content: space-around;
align-items: center;
// padding-left: 10px;
}
</style>

View File

@ -24,15 +24,17 @@
</view>
<!-- nav -->
<view class="navBar">
<div class="navList" v-for="(item, index) in navList" :key="index">
<div class="navIcon">
<image
style="width: 100%; height: 100%"
:src="item.icon"
mode="aspectFit"
></image>
</div>
<div class="navTxt">{{ item.value }}</div>
<div class="navList" v-for="(item, index) in navList" :key="index">
<div @click="myNavigateTo(item.url)">
<div class="navIcon">
<image
style="width: 100%; height: 100%"
:src="item.icon"
mode="aspectFit"
></image>
</div>
<div class="navTxt">{{ item.value }}</div>
</div>
</div>
</view>
<view class="warn">
@ -216,27 +218,32 @@ const navList = [
{
value: '雨情',
key: 1,
icon: '../../static/tabs/形状 1@2x.png'
icon: '../../static/tabs/形状 1@2x.png',
url:''
},
{
value: '水情',
key: 2,
icon: '../../static/tabs/water (1) 拷贝@2x.png'
icon: '../../static/tabs/water (1) 拷贝@2x.png',
url:''
},
{
value: '工情灾情',
key: 3,
icon: '../../static/tabs/工情——icon@2x.png'
icon: '../../static/tabs/工情——icon@2x.png',
url:''
},
{
value: '信息上报',
key: 4,
icon: '../../static/tabs/xinxi_icon@2x.png'
icon: '../../static/tabs/xinxi_icon@2x.png',
url:''
},
{
value: '预警',
key: 5,
icon: '../../static/tabs/yujing_icon@2x.png'
icon: '../../static/tabs/yujing_icon@2x.png',
url:'/pages/forewarning/forewarning'
}
]
@ -340,7 +347,13 @@ export default {
let h1 = moment().format('HH') >= 20 ? '20' : '08'
this.tm = d1 + h1
}
},
myNavigateTo (url) {
uni.navigateTo({
url: url //
});
}
},
onLoad () {
this.getSwiperList()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

View File

@ -1,8 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/rain/rain","pages/index/index"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","backgroundColorTop":"transparent","navigationStyle":"custom","background":"#efeff4"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"xffxkh-app","compilerVersion":"3.6.18","entryPagePath":"pages/rain/rain","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/rain/rain","meta":{"isQuit":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/index/index","meta":{},"window":{"navigationBarTitleText":""}}];
var __uniConfig = {"pages":["pages/index/index","pages/homeIndex/index","pages/forewarning/forewarning","pages/forewarning/sh","pages/forewarning/shInformation/shInformation","pages/addressBook/addressBook"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","backgroundColorTop":"transparent","navigationStyle":"custom","background":"#efeff4"},"tabBar":{"color":"#333333","selectedColor":"#eb4450","list":[{"pagePath":"pages/index/index","iconPath":"/static/tabs/my2_icon@2x.png","selectedIconPath":"static/tabs/my2_icon@2x.png","text":"pages"},{"pagePath":"pages/homeIndex/index","iconPath":"/static/tabs/首页@2x.png","selectedIconPath":"static/tabs/首页2@2x.png","text":"首页"},{"pagePath":"pages/addressBook/addressBook","iconPath":"/static/tabs/首页@2x.png","selectedIconPath":"static/tabs/首页2@2x.png","text":"通讯录"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"xffxkh-app","compilerVersion":"4.15","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":""}},{"path":"/pages/homeIndex/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":""}},{"path":"/pages/forewarning/forewarning","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/forewarning/sh","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/forewarning/shInformation/shInformation","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/addressBook/addressBook","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":""}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__CB311EF","name":"xffxkh-app","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","distribute":{"splashscreen":{"androidStyle":"common"},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"allowsInlineMediaPlayback":true,"uni-app":{"compilerVersion":"3.6.18","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"launch_path":"__uniappview.html"}}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__CB311EF","name":"xffxkh-app","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","distribute":{"splashscreen":{"androidStyle":"common"},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.15","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333333","selectedColor":"#eb4450","list":[{"pagePath":"pages/index/index","iconPath":"/static/tabs/my2_icon@2x.png","selectedIconPath":"static/tabs/my2_icon@2x.png","text":"pages"},{"pagePath":"pages/homeIndex/index","iconPath":"/static/tabs/首页@2x.png","selectedIconPath":"static/tabs/首页2@2x.png","text":"首页"},{"pagePath":"pages/addressBook/addressBook","iconPath":"/static/tabs/首页@2x.png","selectedIconPath":"static/tabs/首页2@2x.png","text":"通讯录"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long