From fc38d1c92f01a224e8373c4425481bb1d85e2bf3 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 21 七月 2023 15:36:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
pages/tabBar/notice/measures.vue | 199 +++++++++++++++++++
pages/tabBar/count/count.vue | 55 ++++-
pages/tabBar/notice/detail.vue | 18 +
pages/tabBar/notice/notice.vue | 35 ++
pages/tabBar/weather/weather.vue | 89 ++++++++
App.vue | 132 ++++++------
pages/index/index.vue | 12
pages/tabBar/examine/examine.vue | 19 +
pages/tabBar/utils/tabBar.js | 30 ++
9 files changed, 491 insertions(+), 98 deletions(-)
diff --git a/App.vue b/App.vue
index 290aca9..5855e03 100644
--- a/App.vue
+++ b/App.vue
@@ -3,72 +3,72 @@
var jpushModule = uni.requireNativePlugin("JG-JPush")
export default {
onLaunch: function() {
- console.log('App Launch',jpushModule)
- jpushModule.initJPushService();
- jpushModule.setLoggerEnable(true);
- jpushModule.addConnectEventListener(result=>{
- let connectEnable = result.connectEnable
- uni.$emit('connectStatusChange',connectEnable)
- });
- //消息回调——点击通知栏消息 跳转指定页面
- jpushModule.addNotificationListener(result=>{
- if (result.notificationEventType == "notificationOpened") {
- //判断是否登录
- if (uni.getStorageSync('tk')) {
- //工作通知——工作人员工作通知页
- if (result.title.includes('工作通知')){
- uni.switchTab({
- url: '/pages/tabBar/notice/notice',
- })
- //信息审核——领导审核页
- }else if(result.title == '您有新的信息需要审批'){
- uni.switchTab({
- url: '/pages/tabBar/examine/examine',
- })
- //审核结果——首页(后续加pc端信息发布页)
- }else if(result.title.includes('信息审核')){
- uni.switchTab({
- url: '/pages/tabBar/information/information',
- })
- }
- }else {
- console.log("未登录")
- //未登录跳转首页
- uni.navigateTo({
- url: '/pages/index/index',
- complete(res) {
- console.log(res);
- }
- })
- uni.showToast({
- icon: 'none',
- title: '请先登录',
- duration: 3000
- })
- }
- }
- });
- jpushModule.addCustomMessageListener(result=>{
- let type = result.type
- let messageType = result.messageType
- let content = result.content
- uni.showToast({
- icon: 'none',
- title: JSON.stringify(result),
- duration: 3000
- })
- });
- jpushModule.addLocalNotificationListener(result=>{
- let messageID = result.messageID
- let title = result.title
- let content = result.content
- let extras = result.extras
- uni.showToast({
- icon: 'none',
- title: JSON.stringify(result),
- duration: 3000
- })
- })
+ // console.log('App Launch',jpushModule)
+ // jpushModule.initJPushService();
+ // jpushModule.setLoggerEnable(true);
+ // jpushModule.addConnectEventListener(result=>{
+ // let connectEnable = result.connectEnable
+ // uni.$emit('connectStatusChange',connectEnable)
+ // });
+ // //消息回调——点击通知栏消息 跳转指定页面
+ // jpushModule.addNotificationListener(result=>{
+ // if (result.notificationEventType == "notificationOpened") {
+ // //判断是否登录
+ // if (uni.getStorageSync('tk')) {
+ // //工作通知——工作人员工作通知页
+ // if (result.title.includes('工作通知')){
+ // uni.switchTab({
+ // url: '/pages/tabBar/notice/notice',
+ // })
+ // //信息审核——领导审核页
+ // }else if(result.title == '您有新的信息需要审批'){
+ // uni.switchTab({
+ // url: '/pages/tabBar/examine/examine',
+ // })
+ // //审核结果——首页(后续加pc端信息发布页)
+ // }else if(result.title.includes('信息审核')){
+ // uni.switchTab({
+ // url: '/pages/tabBar/information/information',
+ // })
+ // }
+ // }else {
+ // console.log("未登录")
+ // //未登录跳转首页
+ // uni.navigateTo({
+ // url: '/pages/index/index',
+ // complete(res) {
+ // console.log(res);
+ // }
+ // })
+ // uni.showToast({
+ // icon: 'none',
+ // title: '请先登录',
+ // duration: 3000
+ // })
+ // }
+ // }
+ // });
+ // jpushModule.addCustomMessageListener(result=>{
+ // let type = result.type
+ // let messageType = result.messageType
+ // let content = result.content
+ // uni.showToast({
+ // icon: 'none',
+ // title: JSON.stringify(result),
+ // duration: 3000
+ // })
+ // });
+ // jpushModule.addLocalNotificationListener(result=>{
+ // let messageID = result.messageID
+ // let title = result.title
+ // let content = result.content
+ // let extras = result.extras
+ // uni.showToast({
+ // icon: 'none',
+ // title: JSON.stringify(result),
+ // duration: 3000
+ // })
+ // })
diff --git a/pages/index/index.vue b/pages/index/index.vue
index e05bcab..700fec8 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -47,7 +47,7 @@
uni.clearStorage();
},
onLoad() {
- this.connect()
+ // this.connect()
},
methods: {
Login(){
@@ -58,10 +58,10 @@
this.isLogining = false;
//登录成功后
//设置别名
- jpushModule.setAlias({
- 'alias': this.phone,
- 'sequence': 1
- })
+ // jpushModule.setAlias({
+ // 'alias': this.phone,
+ // 'sequence': 1
+ // })
uni.setStorageSync("tk", res.data.tk);
uni.setStorageSync("uid",res.data.uid);
uni.setStorageSync('user', res.data);
@@ -81,7 +81,7 @@
}else{
this.$store.commit('setRoleId', 'user_leader');
uni.switchTab({
- url: '/pages/tabBar/examine/examine'
+ url: '/pages/tabBar/firstPage/firstPage'
});
}
}
diff --git a/pages/tabBar/count/count.vue b/pages/tabBar/count/count.vue
index acad9d0..430f114 100644
--- a/pages/tabBar/count/count.vue
+++ b/pages/tabBar/count/count.vue
@@ -1,15 +1,24 @@
<template>
- <view>
+ <view class="box">
<!-- 自定义导航栏 -->
<view class="navBarBox fix">
<!-- 状态栏占位 -->
<view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
<!-- 真正的导航栏内容 -->
- <view class="navBar">
- <view class="barText"></view>
+ <view style="display: flex; flex-direction: column;">
+ <view class="navBar">
+ <u-icon style=" margin-left: -25px;" name="arrow-left" color="black" size="17" @click="goBack" />
+ <view class="barText">统计</view>
+ </view>
</view>
</view>
- <text>信息统计模块待呈现</text>
+ <view class="content">
+ <u-empty
+ text="数据累积中,统计分析模块待呈现……"
+ icon="http://cdn.uviewui.com/uview/empty/data.png"
+ >
+ </u-empty>
+ </view>
<tabBar :currentPagePath="page"></tabBar>
</view>
</template>
@@ -31,19 +40,25 @@
//获取手机状态栏高度
this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
uni.hideTabBar();
+ },
+ methods: {
+ goBack() {
+ console.log("1111")
+ uni.switchTab({
+ url:'/pages/tabBar/firstPage/firstPage'
+ });
+ },
}
}
</script>
<style>
-.navBarBox .navBar {
- background-color:lightgrey;
- height: 15px;
- display: flex;
- flex-direction: row;
- justify-content: center;
- align-items: center;
+.box {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
}
.fix{
position: sticky;
@@ -53,7 +68,25 @@
width: 100%;
z-index: 1;
}
+.navBarBox .navBar {
+ background-color:lightgrey;
+ height: 45px;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+}
+.barText{
+ text-align: center;
+ width: 85%;
+ font-size: 16px;
+ /* text-align: center; */
+ font-weight: 600;
+}
.statusBar{
background-color:lightgrey;
}
+.content{
+ margin-top: 50%;
+}
</style>
\ No newline at end of file
diff --git a/pages/tabBar/examine/examine.vue b/pages/tabBar/examine/examine.vue
index bf4a83c..ee1d7d4 100644
--- a/pages/tabBar/examine/examine.vue
+++ b/pages/tabBar/examine/examine.vue
@@ -5,8 +5,11 @@
<!-- 状态栏占位 -->
<view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
<!-- 真正的导航栏内容 -->
- <view class="navBar" >
- <view class="barText">工作通知审核</view>
+ <view style="display: flex; flex-direction: column;" >
+ <view class="navBar">
+ <u-icon style=" margin-left: -25px;" name="arrow-left" color="black" size="17" @click="goBack" />
+ <view class="barText">工作通知审核</view>
+ </view>
</view>
</view>
<!-- 页面内容 -->
@@ -69,7 +72,7 @@
</view>
</view>
</view>
- <tabBar :currentPagePath="page"></tabBar>
+ <!-- <tabBar :currentPagePath="page"></tabBar> -->
</view>
</template>
@@ -78,7 +81,7 @@
import {getExamine} from '../../../api/examine.js'
export default {
components:{
- tabBar
+ // tabBar
},
data() {
return {
@@ -126,6 +129,12 @@
this.getExanineList();
},
methods: {
+ goBack() {
+ console.log("1111")
+ uni.switchTab({
+ url:'/pages/tabBar/firstPage/firstPage'
+ });
+ },
getExanineList() {
this.data.searchParams.reviewStatus = this.isReadOnly ? 1 : null;
this.data.searchParams.emergType = this.checked ? 1 : null;
@@ -194,7 +203,7 @@
}
.navBarBox .navBar {
background-color:lightgrey;
- height: 25px;
+ height: 45px;
display: flex;
flex-direction: row;
justify-content: center;
diff --git a/pages/tabBar/notice/detail.vue b/pages/tabBar/notice/detail.vue
index 2cda4c5..5736c67 100644
--- a/pages/tabBar/notice/detail.vue
+++ b/pages/tabBar/notice/detail.vue
@@ -41,6 +41,7 @@
</view>
</view>
</view>
+
<view class="attache_img" v-else>
<view v-for="(item, index) in detailData.attachments" :key="index" >
<view style="display: flex;margin-top: 10px;" v-if="item.suffix == 'jpg'|| item.suffix =='jpeg' || item.suffix =='png'">
@@ -51,6 +52,11 @@
</view>
</view>
</view>
+
+<!-- <view style="width: 100%; height: 100px;">
+ <web-view src="http://192.168.0.38:8086/uploadtest/2023/naturalDisaster/Warninginfo/0619/79e33942cb9548788f1f3196a2058c37.doc"></web-view>
+ </view> -->
+
</view>
<text class="textTop" v-if="detailData.role == 'leader'"><b>信息提交人:</b>{{detailData.infoSubmitterRealName}}</text>
<view class="textTop" v-if="detailData.role == 'leader'">
@@ -95,6 +101,10 @@
style="background-color:rgb(6, 202, 23);color: white;width: 180px;"
@click="infoSend"
>确认发布</u-button>
+ </view>
+ <!-- //村级显示 -->
+ <view class="measures">
+ <u-button type="primary" @click="goMeasures">响应措施反馈</u-button>
</view>
</view>
</view>
@@ -167,6 +177,11 @@
uni.navigateBack({
url:'./notice/notice'
});
+ },
+ goMeasures() {
+ uni.navigateTo({
+ url: `/pages/tabBar/notice/measures?data=` + encodeURIComponent("2")
+ })
},
//审核通过
approved() {
@@ -315,5 +330,8 @@
justify-content: space-around;
width: 100%;
}
+.measures{
+ margin-top: 50px;
+}
</style>
diff --git a/pages/tabBar/notice/measures.vue b/pages/tabBar/notice/measures.vue
new file mode 100644
index 0000000..4723e25
--- /dev/null
+++ b/pages/tabBar/notice/measures.vue
@@ -0,0 +1,199 @@
+<template>
+ <view>
+ <!-- 自定义导航栏 -->
+ <view class="navBarBox fix">
+ <!-- 状态栏占位 -->
+ <view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
+ <!-- 真正的导航栏内容 -->
+ <view class="navBar">
+ <view class="barText">响应措施反馈</view>
+ </view>
+ </view>
+ <view style="display: flex;flex-direction: column; padding: 10px 15px;">
+ <view class="first">
+ <text style="font-size: 16px;margin-bottom: 20px;">基础措施</text>
+ <u-checkbox-group
+ v-model="checkboxValue1"
+ placement="column"
+ @change="checkboxChange"
+ >
+ <u-checkbox
+ :customStyle="{marginBottom: '8px'}"
+ v-for="(item, index) in list"
+ :key="index"
+ :label="item.name"
+ :name="item.name"
+ >
+ </u-checkbox>
+ </u-checkbox-group>
+ </view>
+ <view class="second">
+ <text style="font-size: 16px;margin-bottom: 20px;">响应反馈</text>
+ <u--textarea style="margin-top: -5px;" v-model="measures" placeholder="请输入内容" ></u--textarea>
+ </view>
+ <view class="third">
+ <text style="font-size: 16px;margin-bottom: 20px;">图片上传</text>
+ <u-upload
+ :fileList="fileList1"
+ @afterRead="afterRead"
+ @delete="deletePic"
+ name="1"
+ multiple
+ :maxCount="10"
+ style="margin-top: -10px;"
+ ></u-upload>
+ <view class="pic" v-for="item in nameList" :key="index">
+ {{item.name}}
+ </view>
+ </view>
+ <u-button class="btn" type="success">提交</u-button>
+ </view>
+ </view>
+</template>
+
+<script>
+ export default {
+ components:{
+
+ },
+ data() {
+ return {
+ statusBarHeight: [],
+ fileList1: [],
+ nameList: [],
+ checkboxValue1: '',
+ measures: "",
+ type: 'textarea',
+ border: true,
+ height: 100,
+ autoHeight: true,
+ list: [
+ {
+ name: '苹果',
+ disabled: false
+ },
+ {
+ name: '香蕉',
+ disabled: false
+ },
+ {
+ name: '橙子',
+ disabled: false
+ }
+ ]
+ }
+ },
+ onLoad() {
+ //获取手机状态栏高度
+ this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
+ uni.hideTabBar();
+ },
+ methods: {
+ checkboxChange(n) {
+ console.log('change', n);
+ },
+ // 删除图片
+ deletePic(event) {
+ this[`fileList${event.name}`].splice(event.index, 1)
+ this.nameList.splice(event.index,1)
+ console.log("name",this.nameList)
+ },
+ // 新增图片
+ async afterRead(event) {
+ // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+ let lists = [].concat(event.file)
+ let fileListLen = this[`fileList${event.name}`].length
+ console.log("list",lists)
+ lists.map((item) => {
+ this.nameList.push({name: item.name});
+ this[`fileList${event.name}`].push({
+ ...item,
+ status: 'uploading',
+ message: '上传中'
+ })
+ })
+ console.log("nameList",this.nameList)
+ for (let i = 0; i < lists.length; i++) {
+ const result = await this.uploadFilePromise(lists[i].url)
+ let item = this[`fileList${event.name}`][fileListLen]
+ this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+ status: 'success',
+ message: '',
+ url: result
+ }))
+ fileListLen++
+ }
+ },
+ uploadFilePromise(url) {
+ return new Promise((resolve, reject) => {
+ let a = uni.uploadFile({
+ url: 'http://www.example.com', // 仅为示例,非真实的接口地址
+ filePath: url,
+ name: 'file',
+ formData: {
+ user: 'test'
+ },
+ success: (res) => {
+ setTimeout(() => {
+ resolve(res.data.data)
+ }, 1000)
+ }
+ });
+ })
+ },
+ }
+ }
+
+</script>
+
+<style lang='scss' scoped>
+.navBarBox .navBar {
+ background-color:lightgrey;
+ height: 25px;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+}
+.fix{
+ position: sticky;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ z-index: 1;
+}
+.statusBar{
+ background-color:lightgrey;
+}
+.first{
+ display: flex;
+ flex-direction: column;
+}
+.second{
+ display: flex;
+ flex-direction: column;
+ margin-top: 50px;
+}
+.third{
+ display: flex;
+ flex-direction: column;
+ margin-top: 30px;
+ margin-bottom: 50px;
+}
+/deep/ .u-upload__button{
+ background-color: white;
+}
+.pic{
+ display: flex;
+ flex-direction: column;
+ background-color: rgb(242,242,242);
+ margin-top: 5px;
+ font-size: 14px;
+}
+/* .btn{
+ position: fixed;
+ bottom: var(--window-bottom, 1);
+ z-index: 99;
+} */
+</style>
\ No newline at end of file
diff --git a/pages/tabBar/notice/notice.vue b/pages/tabBar/notice/notice.vue
index 4bcb792..8c41842 100644
--- a/pages/tabBar/notice/notice.vue
+++ b/pages/tabBar/notice/notice.vue
@@ -12,7 +12,8 @@
</view>
</view>
<!-- 页面内容 -->
- <view style="display: flex;flex-direction: column;">
+ <scroll-view scroll-y :style="{height: 900 + 'px'}">
+ <view style="display: flex;flex-direction: column;margin-bottom: 10px;">
<view class="buttonGroup">
<view style="display: flex;">
<view class="buttonAll all"
@@ -44,11 +45,11 @@
<view class="listContent" v-if="noticeList.length > 0" >
<view v-for="(item, index) in noticeList" :key="index" class="itemContent" >
<view class="content" v-if="item.isRead" >
- <text style="color:rgb(17, 204, 33);" @click="toDetail(item)">[已读]</text>
+ <text style="color:rgb(17, 204, 33);" @click="toDetail(item)">[已叫应]</text>
<text @click="toDetail(item)">[{{item.colorContent}}]</text>
<text @click="toDetail(item)">{{item.title}},{{item.content}}</text>
<view v-if="item.isRead" style="float: right; width: 80px;margin-top: 3px;">
- <u-button @click="toDetail(item)"v-if="item.buttonContent == '已叫应'" size="mini" style="margin-bottom: 10px;background-color:rgb(17, 204, 33);color: white;">
+ <!-- <u-button @click="toDetail(item)"v-if="item.buttonContent == '已叫应'" size="mini" style="margin-bottom: 10px;background-color:rgb(17, 204, 33);color: white;">
{{item.buttonContent}}
</u-button>
<u-button v-else-if="item.buttonContent == '待叫应'" type="error" size="mini" style="margin-bottom: 10px;" @click="openDialog(item)">
@@ -56,16 +57,16 @@
</u-button>
<u-button @click="toDetail(item)" v-else type="error" size="mini" style="margin-bottom: 10px;">
{{item.buttonContent}}
- </u-button>
+ </u-button> -->
</view>
</view>
<view class="contentNoRead" v-else>
<u-badge :is-dot="true" type="error" style="position: absolute;"></u-badge>
- <text style="color: red;margin-left:10px;" @click="toDetail(item)">[未读]</text>
+ <text style="color: red;margin-left:10px;" @click="toDetail(item)">[未叫应]</text>
<text @click="toDetail(item)">[{{item.colorContent}}]</text>
<text @click="toDetail(item)">{{item.title}},{{item.content}}</text>
<view style="float: right; width: 80px;margin-top: 3px;">
- <u-button @click="toDetail(item)" v-if="item.buttonContent == '已叫应'" size="mini" style="margin-bottom: 10px;background-color:rgb(17, 204, 33);color: white;">
+ <!-- <u-button @click="toDetail(item)" v-if="item.buttonContent == '已叫应'" size="mini" style="margin-bottom: 10px;background-color:rgb(17, 204, 33);color: white;">
{{item.buttonContent}}
</u-button>
<u-button v-else-if="item.buttonContent == '未叫应'" type="error" size="mini" style="margin-bottom: 10px;" @click="openDialog(item)">
@@ -73,7 +74,7 @@
</u-button>
<u-button @click="toDetail(item)" v-else type="error" size="mini" style="margin-bottom: 10px;">
{{item.buttonContent}}
- </u-button>
+ </u-button> -->
</view>
</view>
</view>
@@ -87,6 +88,8 @@
</view>
</view>
</view>
+ </scroll-view>
+ <view class="lastbottom">共<span style="font-weight: 600;"> {{noticeList.length}} </span>条 未叫应<span style="font-weight: 600;">{{noSpeak}}</span> 条</view>
<dia ref="showDialog" @close="close"></dia>
<tabBar :currentPagePath="page" :tabBarList="tabBarLists"></tabBar>
</view>
@@ -103,6 +106,7 @@
},
data() {
return {
+ noSpeak: 0,
tabBarLists: [],
// 状态栏高度
statusBarHeight: 0,
@@ -171,6 +175,9 @@
this.noticeListCopy = this.noticeList;
if (this.noticeList.length > 0) {
this.noticeList.forEach((item, index) => {
+ if(item.readStatus == 0){
+ this.noSpeak++;
+ }
this.noticeList[index].isRead = item.readStatus == 1 ? true : false;
this.noticeList[index].colorContent = item.warningLevel == 1 ? '红色预警': item.warningLevel == 2 ? '橙色预警': item.warningLevel == 3 ? '黄色预警':'蓝色预警';
this.noticeList[index].buttonContent = item.responseStatus == 1 ? '待叫应': item.responseStatus == 2 ? '已叫应' : '超时未叫应';
@@ -194,6 +201,7 @@
},
toDetail(item) {
console.log("item",item)
+ //改为修改叫应状态
if (item.readStatus === 0) {
this.updateReadStatus(item);
}
@@ -350,8 +358,21 @@
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
+ margin-bottom: 10px;
}
.contentNoRead{
font-size: 14px;
+ margin-bottom: 10px;
+}
+.lastbottom{
+ width: 100%;
+ height: 100px;
+ background-color: white;
+ text-align: center;
+ line-height: 50px;
+ position: fixed;
+ bottom: var(--window-bottom, 0);
+ z-index: 99;
+ font-size: 16px;
}
</style>
diff --git a/pages/tabBar/utils/tabBar.js b/pages/tabBar/utils/tabBar.js
index feb6513..4902507 100644
--- a/pages/tabBar/utils/tabBar.js
+++ b/pages/tabBar/utils/tabBar.js
@@ -1,16 +1,34 @@
const user_leader = [
{
- "pagePath": "pages/tabBar/examine/examine",
+ "pagePath": "pages/tabBar/firstPage/firstPage",
"iconPath": "/static/notice1.png",
"selectedIconPath": "/static/notice1-selected.png",
- "text": "通知审核"
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/tabBar/current/current",
+ "iconPath": "/static/send.png",
+ "selectedIconPath": "/static/send_selected.png",
+ "text": "信息"
+ },
+ // {
+ // "pagePath": "pages/tabBar/examine/examine",
+ // "iconPath": "/static/notice1.png",
+ // "selectedIconPath": "/static/notice1-selected.png",
+ // "text": "通知审核"
+ // },
+ {
+ "pagePath": "pages/tabBar/weather/weather",
+ "iconPath": "/static/notice1.png",
+ "selectedIconPath": "/static/notice1-selected.png",
+ "text": "气象"
},
{
"pagePath": "pages/tabBar/count/count",
"iconPath": "/static/notice1.png",
"selectedIconPath": "/static/notice1-selected.png",
"text": "信息统计"
- }
+ },
]
const user_other = [
@@ -27,6 +45,12 @@
"text": "我的叫应"
},
{
+ "pagePath": "pages/tabBar/current/current",
+ "iconPath": "/static/send.png",
+ "selectedIconPath": "/static/send_selected.png",
+ "text": "信息"
+ },
+ {
"pagePath": "pages/tabBar/information/information",
"iconPath": "/static/send.png",
"selectedIconPath": "/static/send_selected.png",
diff --git a/pages/tabBar/weather/weather.vue b/pages/tabBar/weather/weather.vue
new file mode 100644
index 0000000..6eb220b
--- /dev/null
+++ b/pages/tabBar/weather/weather.vue
@@ -0,0 +1,89 @@
+<template>
+ <view>
+ <!-- 自定义导航栏 -->
+ <view class="navBarBox fix">
+ <!-- 状态栏占位 -->
+ <view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
+ <!-- 真正的导航栏内容 -->
+ <view style="display: flex; flex-direction: column;" >
+ <view class="navBar">
+ <u-icon style=" margin-left: -25px;" name="arrow-left" color="black" size="17" @click="goBack" />
+ <view class="barText">实时气象</view>
+ </view>
+ </view>
+ </view>
+ <view style="margin-bottom: 50px;">
+ <web-view :src="webViewUrl"></web-view>
+ </view>
+ <tabBar :currentPagePath="page"></tabBar>
+ </view>
+</template>
+
+<script>
+ import tabBar from '../tabBarIndex.vue'
+ export default {
+ components:{
+ tabBar
+ },
+ data() {
+ return {
+ page: 'pages/tabBar/weather/weather',
+ statusBarHeight: '',
+ webViewUrl: 'https://embed.windy.com/embed2.html?lat=43.419&lon=87.613&detailLat=43.598&detailLon=87.613&width=320&height=600&zoom=9&level=surface&overlay=wind&product=ecmwf&menu=&message=&marker=&calendar=now&pressure=true&type=map&location=coordinates&detail=true&metricWind=default&metricTemp=default&radarRange=-1'
+ }
+
+ },
+ onLoad() {
+ //获取手机状态栏高度
+ this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
+ uni.hideTabBar();
+ },
+ methods: {
+ goBack() {
+ console.log("1111")
+ uni.switchTab({
+ url:'/pages/tabBar/firstPage/firstPage'
+ });
+ },
+ }
+ }
+
+</script>
+
+<style lang='scss' scoped>
+.box {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 8%;
+}
+.fix{
+ position: sticky;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ z-index: 1;
+}
+.navBarBox .navBar {
+ background-color:lightgrey;
+ height: 45px;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+}
+.barText{
+ text-align: center;
+ width: 85%;
+ font-size: 16px;
+ font-weight: 600;
+}
+.statusBar{
+ background-color:lightgrey;
+}
+/deep/ .embed-map #detail .table-wrapper {
+ background-color: #f8f8f8;
+ margin-bottom: 50px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.2