zhouwenxuan
2023-09-06 0b2357a173a2bc52f3532bfcf93ff31daf226231
pages/tabBar/current/current.vue
@@ -6,7 +6,11 @@
         <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: blue;margin-right: 5px;">退出</u-button>
            </view>
         </view>
      </view>
    <div v-if="loading" style='display: flex;justify-content: center;position: absolute;width:100%;top: 40%;left: 0'>
@@ -41,34 +45,25 @@
      </view>
      <view style="display: flex;flex-direction: column;margin-bottom: 55px;">
         <view class="examineList">
<!--            <view class="listContent" v-if="InfoList.length > 0">-->
        <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">
               <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>
        </scroll-view>
<!--            </view>-->
            </scroll-view>
            <view v-else>
               <u-empty margin-top="40%" text="数据为空" mode="data"></u-empty>
            </view>
@@ -80,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:{
@@ -123,39 +118,48 @@
            ],
            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.data.pageIndex = 1
         this.role = uni.getStorageSync('roleName');
         this.data.pageIndex = 1
         this.getInfoList();
      },
      methods: {
         loginOut() {
            uni.clearStorageSync();
            uni.clearStorage();
            uni.navigateTo({
               url: '/pages/index/index'
            })
         },
         goBack() {
            uni.switchTab({
                url:'/pages/tabBar/firstPage/firstPage'
            });
         },
         getInfoList() {
        this.loading = true
            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) {
            let list = res.data?res.data: [];
            if (res.pageIndex != 1) {
              this.InfoList = this.InfoList.concat(list)
            } else {
              this.InfoList = list;
            }
            this.total = res.total
               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 ? '黄色预警':'蓝色预警'; 
@@ -163,39 +167,47 @@
                     });
                  }
               }else{
            uni.$u.toast(res.msg)
          }
          this.loading = false
                  uni.$u.toast(res.msg)
              }
              this.loading = false
            })
         },
         handleButtonClick(button) {
        this.data.pageIndex = 1
            this.data.pageIndex = 1
            this.selectedSaleAnalysis = button.label;
            this.getInfoList();
         },
         toDetail(item) {
            console.log("item",item)
            item.responsesRate = item.responsesRate.replace(/%/g, '%25');
            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() {
@@ -206,26 +218,31 @@
            }, 1000);
         },
         clickSwitch(e) {
        this.data.pageIndex = 1
            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)
      },
        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'
           });
        },
      }
   }
@@ -365,42 +382,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;
  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>