From 707fe99b35c8e090f839d247bea1ad3db06334e8 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期三, 27 三月 2024 15:06:15 +0800 Subject: [PATCH] 更改地址 --- pages/tabBar/current/current.vue | 205 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 140 insertions(+), 65 deletions(-) diff --git a/pages/tabBar/current/current.vue b/pages/tabBar/current/current.vue index 9ad74a3..b5f4e8f 100644 --- a/pages/tabBar/current/current.vue +++ b/pages/tabBar/current/current.vue @@ -6,9 +6,16 @@ <view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view> <!-- 真正的导航栏内容 --> <view class="navBar"> + <u-icon style=" margin-left: 13px;" name="arrow-left" color="black" size="17" @click="goBack" v-if="role!='工作人员'" /> <view class="barText">信息查看</view> + <view > + <u-button type="text" @click="loginOut" style="color: #1890ff;margin-right: 5px;width: 65px;">退出</u-button> + </view> </view> </view> + <div v-if="loading" style='display: flex;justify-content: center;position: absolute;width:100%;top: 40%;left: 0'> + <u-loading-icon></u-loading-icon> + </div> <!-- 页面内容 --> <view class="controlBar"> <view class="buttonGroup"> @@ -38,31 +45,25 @@ </view> <view style="display: flex;flex-direction: column;margin-bottom: 55px;"> <view class="examineList"> - <view class="listContent" v-if="InfoList.length > 0"> - <view v-for="(item, index) in InfoList" :key="index" class="itemContent"> + <scroll-view :scroll-top="scrollTop" scroll-y="true" class="listContent" @scrolltoupper="upper" v-if="InfoList.length > 0" + @scrolltolower="lower" @scroll="scroll" lower-threshold="50"> + <view v-for="(item, index) in InfoList" :key="index" class="itemContent" @click="toDetail(item)"> <view class="content"> - <text>[{{item.colorContent}}]</text> - <text>{{item.title}},{{item.content}}</text> - <view class="btnGroup" style="float: right;"> + <text class="tit">[{{item.colorContent}}]{{item.title}}</text><br> + <text class="cont">{{item.content}}</text> + <view class="btnGroup"> + <text style="font-size: 14px;">发送 {{item.responseSum}} 人,叫应 {{item.responseNum}} 人</text> <u-button - size="mini" - style="background-color:rgb(255, 223, 37);color: white;width: 100px;margin: 3px 8px;" - @click="toDetail(item)" + size="medium" + style="background-color:rgb(17, 204, 33);color: white;width: 100px;margin: 0;font-size: 13px;height: 30px;" + @click.native.stop="toResponsivity(item)" > - 信息详情 + 叫应率 {{item.responsesRate}} </u-button> - <u-button - size="mini" - style="background-color:rgb(17, 204, 33);color: white;width: 100px;" - @click="toResponsivity(item)" - > - 查看叫应率 - </u-button> - </view> </view> </view> - </view> + </scroll-view> <view v-else> <u-empty margin-top="40%" text="数据为空" mode="data"></u-empty> </view> @@ -74,7 +75,7 @@ <script> import tabBar from '../tabBarIndex.vue' - import { getPublished } from '../../../api/notice.js' + import { getPublished, getResponseDetail } from '../../../api/notice.js' import tebBar from '../tabBarIndex.vue' export default { components:{ @@ -84,12 +85,15 @@ return { data: { pageIndex: 1, - pageSize: 10000000, + pageSize: 10, searchParams: { emergType: null,//1-紧急;2-常规 warningLevel: null,//1-红色预警;2-橙色预警;3-黄色预警;4-蓝色预警 } }, + total: 0, + scrollTop: 0, + loading: false, page: 'pages/tabBar/current/current', checked: false, isReadOnly: false, @@ -114,68 +118,98 @@ ], selectedSaleAnalysis: 'all', InfoList: [], - unitType: '', + unitType: null, + role:'', } }, onLoad() { - this.unitType = uni.getStorageSync('unittype'); + this.unitType = uni.getStorageSync('unittype') + 1; console.log("11",this.unitType) //获取手机状态栏高度 this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight']; uni.hideTabBar(); }, onShow() { + this.role = uni.getStorageSync('roleName'); + this.data.pageIndex = 1 this.getInfoList(); }, methods: { + loginOut() { + uni.clearStorageSync(); + uni.clearStorage(); + uni.navigateTo({ + url: '/pages/index/index' + }) + }, goBack() { - console.log("1111") uni.switchTab({ url:'/pages/tabBar/firstPage/firstPage' }); }, getInfoList() { + this.loading = true this.data.searchParams.emergType = this.checked ? 1 : null; this.data.searchParams.warningLevel = this.selectedSaleAnalysis == 'all' ? null : this.selectedSaleAnalysis =='red' ? 1 : this.selectedSaleAnalysis =='orange' ? 2: this.selectedSaleAnalysis =='yellow'? 3 : 4; getPublished(this.data).then(res => { if(res.code == 100) { - this.InfoList = res.data + let list = res.data?res.data: []; + if (res.pageIndex != 1) { + this.InfoList = this.InfoList.concat(list) + } else { + this.InfoList = list; + } + this.total = res.total if(this.InfoList && this.InfoList.length > 0) { this.InfoList.forEach((item, index) => { this.InfoList[index].colorContent = item.warningLevel == 1 ? '红色预警': item.warningLevel == 2 ? '橙色预警': item.warningLevel == 3 ? '黄色预警':'蓝色预警'; this.InfoList[index].warningLevel = item.warningLevel; }); } - } + }else{ + uni.$u.toast(res.msg) + } + this.loading = false }) }, handleButtonClick(button) { + this.data.pageIndex = 1 this.selectedSaleAnalysis = button.label; this.getInfoList(); }, toDetail(item) { - console.log("item",item) + item.responsesRate = item.responsesRate.replace(/%/g, '%25'); + uni.setStorageSync('fdetailData', item); + uni.setStorageSync('backFlag','current'); uni.navigateTo({ url: `/pages/tabBar/notice/detail?data=` + encodeURIComponent(JSON.stringify(item)) }) }, toResponsivity(item) { - console.log("item",item) - - // if(this.unitType == 2 || this.unitType == 1 ){ - // uni.navigateTo({ - // url: `/pages/tabBar/responsivity/countyResponsivity?data=` + encodeURIComponent(JSON.stringify(item)) - // }) - // }else if(this.unitType == 3){ - // uni.navigateTo({ - // url: `/pages/tabBar/responsivity/cityResponsivity?data=` + encodeURIComponent(JSON.stringify(item)) - // }) - // }else if(this.unitType == 4){ - // uni.navigateTo({ - // url: `/pages/tabBar/responsivity/villageResponsivity?data=` + encodeURIComponent(JSON.stringify(item)) - // }) - // } - + const param = { + pageIndex: 1, + pageSize: 100, + searchParams: { + warnInfoId: item.id + } + } + getResponseDetail(param).then(res => { + if(res.code == 100){ + console.log("res",res) + let data = res.data.appPageResponseByIdRespDTOS; + res.data.appPageResponseByIdRespDTOS.forEach((item,index) => { + if(item.forwardRate){ + data[index].forwardRate = item.forwardRate.replace(/%/g, '%25'); + } + + }) + uni.navigateTo({ + url: `/pages/tabBar/responsivity/countyResponsivity?data=` + encodeURIComponent(JSON.stringify(res.data)) + }) + }else{ + uni.$u.toast(res.msg) + } + }) }, //下拉刷新 onPullDownRefresh() { @@ -183,11 +217,34 @@ setTimeout(() => { uni.stopPullDownRefresh(); this.getInfoList(); - }, 1000); + }, 2000); }, clickSwitch(e) { + this.data.pageIndex = 1 this.getInfoList(); + }, + + upper: function(e) { + // console.log(e) + }, + lower: function(e) { + if (this.data.pageIndex * this.data.pageSize >= this.total){ + // uni.$u.toast('已加载全部数据') + return } + //并且让页码+1,调用获取数据的方法获取第二页数据 + this.data.pageIndex++ + //此处调用自己获取数据列表的方法 + this.getInfoList() + }, + scroll: function(e) { + // console.log(e) + }, + goBack() { + uni.switchTab({ + url:'/pages/tabBar/firstPage/firstPage' + }); + }, } } @@ -218,6 +275,7 @@ box-shadow: 0 3px 12px rgba(0,0,0,0.05); } .barText{ + margin-left: 55px; text-align: center; width: 85%; font-size: 16px; @@ -327,40 +385,57 @@ display: flex; align-items: center; } +.examineList{ + margin-top: 12px; + height: calc(100vh - 246px); + overflow: hidden; + overflow-y: scroll; +} .listContent{ - display: flex; - flex-direction: column; - margin: 0 12px; - background: #fff; - border-radius: 5px; - box-shadow: 0 3px 12px rgba(0,0,0,0.05); + display: flex; + flex-direction: column; + width: calc(100% - 24px); + margin: 0 12px; + // margin-bottom: 30px; + background: #fff; + border-radius: 5px; + box-shadow: 0 3px 12px rgba(0,0,0,0.05); + height: 100%; } .itemContent{ - font-size: 16px; color: #333; + font-size: 16px; margin-top: 15px; padding: 0 12px 10px; border-bottom: 1px solid #ebebeb; - } .content{ - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; + .tit{ + width: 100%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } + .cont{ + width: 100%; + font-size: 14px; + color: #666; + display: block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + margin-bottom: 6px; + } + .btnGroup{ + width: 100%; + display: flex; + justify-content: space-between; + } } .buttonCo{ margin-top: 5px; margin-bottom: 10px; } -.examineList{ - margin-top: 12px; - height: calc(100vh - 266px); - overflow: hidden; - overflow-y: scroll; -} -.btnGroup{ - display: flex; - align-items: center; - justify-content: flex-end; -} + + </style> \ No newline at end of file -- Gitblit v1.9.2