zengh
2022-09-14 8ea19a6bb34daab1410f6186992a4c1e90299c92
pages/groupChat/groupChat.vue
@@ -1,17 +1,49 @@
<!-- 工作台 -->
<template>
   <view class="work">
      <view class="main">
         <div>
            <div class="m-main">
               <!-- <view class="inTitle">{{Task}}</view> -->
               <view class="inTmain">
                  <contacts v-for="(item,index) in dataListP" :key="index" :Pdata="item" :fromW="fromW"
                     @refreshTask="refreshTask"></contacts>
               </view>
            </div>
         </div>
      <!-- 自定义顶部导航栏 -->
      <!-- <navBarTop :title="'聊天室'"></navBarTop> -->
      <view class="tab">
         <u-tabs :list="list" :is-scroll="false" :current="current" active-color="#103289" inactive-color="#595959"
            height="100" @change="change"></u-tabs>
      </view>
      <swiper id="swiperBox" :style="{ height: swiperHeight + 'px' }" :current="current" @change="tabsChange">
         <swiper-item class="swiper-item" v-for="(item, indexs) in list" :key="indexs">
            <view v-if="indexs == 0" class="main">
               <div>
                  <div class="m-main">
                     <!-- <view class="inTitle">{{Task}}</view> -->
                     <view class="inTmain">
                        <contacts v-for="(item,index) in dataListP" :key="index" :Pdata="item" :fromW="indexs"
                           @refreshTask="refreshTask"></contacts>
                     </view>
                  </div>
               </div>
            </view>
            <view v-if="indexs == 1" class="main">
               <div>
                  <div class="m-main">
                     <!-- <view class="inTitle">{{Task}}</view> -->
                     <view class="inTmain">
                        <contacts v-for="(item,index) in dataListQZ" :key="index" :Pdata="item" :fromW="indexs"
                           @refreshTask="refreshTask"></contacts>
                     </view>
                  </div>
               </div>
            </view>
            <view v-if="indexs == 2" class="main">
               <div>
                  <div class="m-main">
                     <!-- <view class="inTitle">{{Task}}</view> -->
                     <view class="inTmain">
                        <contacts v-for="(item,index) in dataListTXL" :key="index" :Pdata="item" :fromW="indexs"
                           @refreshTask="refreshTask"></contacts>
                     </view>
                  </div>
               </div>
            </view>
         </swiper-item>
      </swiper>
      
   </view>
</template>
@@ -20,18 +52,30 @@
   import WxStorage from "../../static/lib/wxStorage.js"
   import axios from '../../static/lib/axios.js'
   import contacts from '../../components/contacts/contacts.vue'
   export default {
   import navBarTop from '../../components/nav-bar-top/nav-bar-top.vue';
   export default{
      components: {
         contacts
         navBarTop,contacts
      },
      data() {
         return {
            list: [{
                  name: '正在聊天'
               },
               {
                  name: '群组'
               },
               // {
               //    name: '通讯录'
               // }
            ],
            swiperHeight: 0,
            zhanwei: '', //因为小程序中底部和顶部栏占位置,uniapp中不占位置
            ingsDB: '#00d1ff 2px solid',
            candoDB: '#fff 2px solid',
            Task: '当前已接任务',
            current: 0,
            show: true,
            dataListP: [],
            dataListQZ: [],
            dataListTXL:[],
            fromW: '',
            onTop: false, //是否吸顶
            rect: '', //页面滚动距离
@@ -41,7 +85,38 @@
            userName: '',
         }
      },
      activated(){
            this.beginObj();
            this.getdataList(0);
          },
         onReady() {
            let that = this;
            uni.getSystemInfo({
               success(e) {
                  console.log(e);
                  let {
                     windowWidth,
                     windowHeight,
                     safeArea
                  } = e;
                  const query = uni.createSelectorQuery().in(that);
                  query
                     .select('#swiperBox')
                     .boundingClientRect(data => {
                        that.swiperHeight = safeArea.bottom - data.top;
                     })
                     .exec();
               }
            });
         },
      methods: {
         change(index) {
            this.current = index;
         },
         tabsChange(e) {
            this.current = e.detail.current;
            this.getdataList();
         },
         beginObj() {
            this.titleTop = '2.6rem';
            this.zhanwei = '3rem';
@@ -54,39 +129,64 @@
         onClick(e) {
            console.log(e, 777878)
         },
         ingss() {
            this.ingsDB = '#00d1ff 2px solid';
            this.candoDB = '#fff 2px solid';
            this.Task = '当前已接任务';
            this.getdataList(0);
         },
         candos() {
            this.candoDB = '#00d1ff 2px solid';
            this.ingsDB = '#fff 2px solid';
            this.Task = '当前可接任务';
            this.getdataList(1);
         },
         getdataList(need) {
            this.fromW = need;
         getdataList() {
            var that = this;
            uni.request({
               url:"http://s16s652780.51mypc.cn/api/blade-jfpts/chat-records/getChatListPage",
               method:"get",
               data:{
                  senderId: WxStorage.get("ids")
               },
               success:(res)=> {
                  var resdata = res.data.data.records;
                  for (var i = 0; i < resdata.length; i++) {
                     if(resdata[i].avatar == null || resdata[i].avatar == ""){
                        resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
            if(this.current == 0){
               uni.request({
                  url:that.$store.state.piAPI + "/chat-records/getChatListPage",
                  method:"get",
                  data:{
                     senderId: WxStorage.get("ids")
                  },
                  success:(res)=> {
                     var resdata = res.data.data;
                     for (var i = 0; i < resdata.length; i++) {
                        if(resdata[i].avatar == null || resdata[i].avatar == ""){
                           resdata[i].avatar = "http://106.225.193.35:83/img/bg/img-logo.png";
                        }
                     }
                     that.dataListP = resdata;
                     that.swiperHeight = resdata.length * 85;
                  }
                  that.dataListP = resdata;
               }
            })
               });
            }else if(this.current == 1){
               uni.request({
                  url:that.$store.state.piAPI + "/chatgroup/selectList",
                  method:"POST",
                  data:{
                     senderId: WxStorage.get("ids")
                  },
                  success:(res)=> {
                     var resdata = res.data.data;
                     for (var i = 0; i < resdata.length; i++) {
                        if(resdata[i].avatar == null || resdata[i].avatar == ""){
                           resdata[i].avatar = "http://106.225.193.35:83/img/bg/qunz.png";
                        }
                     }
                     that.dataListQZ = resdata;
                     that.swiperHeight = resdata.length * 85;
                  }
               })
            }else if(this.current == 2){
               uni.request({
                  url:that.$store.state.piAPI + "//blade-user/pagetxl?current=1&size=9999",
                  method:"get",
                  data:{
                     senderId: WxStorage.get("ids")
                  },
                  success:(res)=> {
                     var resdata = res.data.data.records;
                     for (var i = 0; i < resdata.length; i++) {
                        if(resdata[i].avatar == null || resdata[i].avatar == ""){
                           resdata[i].avatar = "http://106.225.193.35:83/img/bg/img-logo.png";
                        }
                     }
                     that.dataListTXL = resdata;
                     that.swiperHeight = resdata.length * 85;
                  }
               })
            }
         },
         refreshTask() {
            this.getdataList(1);
@@ -95,7 +195,8 @@
      },
      mounted() {
         this.beginObj();
         this.ingss();
         this.getdataList(0);
      },
      onPageScroll(e) {
         // console.log(e.scrollTop, 'pingmu')
@@ -111,7 +212,10 @@
         }
      },
      onLoad: function(options) {
         this.userName = options.login
         this.userName = options.login;
         if(options.txlType == 2){
            this.current = 2;
         }
         
      }
   }
@@ -121,7 +225,7 @@
   .work {
      width: 100%;
      height: 100%;
      padding: 0.625rem 2.5% 3rem 2.5%;
      padding: 0rem 2.5% 3rem 2.5%;
      box-sizing: border-box;
      .hello {
@@ -159,6 +263,8 @@
      }
      .main {
         margin-top: 0.625rem;
         .m-title {
            width: 100%;
            height: 2rem;