uni-app 61完善几个小问题

简介: uni-app 61完善几个小问题


apply-list.vue

<template> 
  <view class="page">
    <!-- 导航栏 -->
    <free-nav-bar title="好友申请列表" showBack :showRight="false">
    </free-nav-bar>
    
    <free-list-item v-for="(item,index) in applyList" :key="index" :title="item.user.nickname ? item.user.nickname : item.user.username" :cover="item.user.avatar ? item.user.avatar : '/static/images/userpic.png'" :showRight="true" :showRightIcon="false">
      <free-main-button slot="right" v-if="item.status==='pending'" name="同意" @click='handle(item)'></free-main-button>
      <text slot="right" v-else class="text-muted font-sm">{{item|formatTitle}}</text>
    </free-list-item>
    <!-- 上拉加载 -->
    <view class="flex align-center justify-center py-4 bg-light" v-if="applyList.length >= 10">
      <text class="text-muted font">{{loadmore}}</text>
    </view>
  </view>
</template>
<script>
  import freeMainButton from '@/components/free-ui/free-main-button.vue';
  import freeNavBar from '@/components/free-ui/free-nav-bar.vue';
  import freeListItem from '@/components/free-ui/free-list-item.vue';
  import freeDivider from '@/components/free-ui/free-divider.vue';
  import $H from '@/common/free-lib/request.js';
  import auth from '@/common/mixin/auth.js';
  import { mapState } from 'vuex';
  export default {
    mixins:[auth],
    components: {
      freeNavBar,
      freeMainButton,
      freeListItem,
      freeDivider
    },
    filters:{
      formatTitle(value){
        let obj = {
          agree:'已通过',
          refuse:'已拒绝',
          ignore:'已忽略'
        }
        return obj[value.status];
      }
    },
    computed:{
      ...mapState({
        applyList:state=>state.user.apply.rows
      })
    },
    data() {
      return {
        form:{
          friend_id:0,
          nickname:"",
          lookme:1,
          lookhim:1
        },
        id:0,
        page:1,
        loadmore:'上拉加载更多',// 没有更多了,加载中...
      }
    },
    // 监听下拉刷新
    onPullDownRefresh() {
      this.page = 1;
      this.$store.dispatch('getApply',this.page).then(res=>{
        uni.showToast({
          title:'刷新成功',
          icon:'none'
        })
        uni.stopPullDownRefresh()
      })
    },
    onLoad(e) {
      
    },
    // 监听触底事件
    onReachBottom() {
      if(this.loadmore !== '上拉加载更多'){
        return;
      }
      this.loadmore = '加载中...';
      this.page = this.page+1;
      this.$store.dispatch('getApply',this.page).then(res=>{
        console.log(res)
        
        this.loadmore = this.applyList.length == this.page*10 ? '上拉加载更多' : '没有更多了';
      }).catch(err=>{
        this.page = this.page-1;
        this.loadmore = '上拉加载更多';
      })
    },
    onShow() {
      if(this.loadmore !== '上拉加载更多'){
        return;
      }
      this.loadmore = '加载中...';
      this.page = this.page+1;
      this.$store.dispatch('getApply',this.page).then(res=>{
        console.log(res)
        
        this.loadmore = this.applyList.length == this.page*10 ? '上拉加载更多' : '没有更多了';
      }).catch(err=>{
        this.page = this.page-1;
        this.loadmore = '上拉加载更多';
      })
    },
    methods: {
      handle(item){
        uni.navigateTo({
          url:'../add-friend/add-friend?id='+item.id,
        })
      }
    }
  }
</script>
<style>
</style>

add-friend.vue

<template>
  <view class="page">
    <!-- 导航栏 -->
    <free-nav-bar title="添加好友" showBack :showRight="false">
    </free-nav-bar>
    <view class="flex flex-column">
      <text class="font-sm text-secondary px-3 py-2">备注名</text>
      <input type="text" class="font-md border bg-white px-3" placeholder="请填写备注名" style="height: 100rpx;" v-model="form.nickname"/>
    </view>
    <free-divider></free-divider>
    <free-list-item title="不让他看我" :showLeftIcon="false"
    showRight :showRightIcon="false">
      <switch slot="right" :checked="!!form.lookme" color="#08C060" @change="form.lookme = form.lookme ? 0 : 1"/>
    </free-list-item>
    <free-list-item title="不看他" :showLeftIcon="false"
    showRight :showRightIcon="false">
      <switch slot="right" :checked="!!form.lookhim" color="#08C060" @change="form.lookhim = form.lookhim ? 0 : 1"/>
    </free-list-item>
    <free-divider></free-divider>
    <view class="py-3 flex align-center justify-center bg-white"
    hover-class="bg-light" @click="submit">
      <text class="font-md text-primary">{{ id > 0 ? '同意' : '点击添加' }}</text>
    </view>
  </view>
</template>
<script>
  import freeNavBar from '@/components/free-ui/free-nav-bar.vue';
  import freeListItem from '@/components/free-ui/free-list-item.vue';
  import freeDivider from '@/components/free-ui/free-divider.vue';
  import $H from '@/common/free-lib/request.js';
  import auth from '@/common/mixin/auth.js';
  export default {
    mixins:[auth],
    components: {
      freeNavBar,
      freeListItem,
      freeDivider
    },
    data() {
      return {
        form:{
          friend_id:0,
          nickname:"",
          lookme:1,
          lookhim:1
        },
        id:0
      }
    },
    onLoad(e) {
      if(e.params){
        this.form = JSON.parse(e.params)
      }
      if(e.id){
        this.id = e.id
      }
    },
    methods: {
      submit(){
        // 添加好友
        if(this.id == 0){
          return $H.post('/apply/addfriend',this.form).then(res=>{
            uni.showToast({
              title: '申请成功',
              icon: 'none'
            });
            uni.navigateBack({
              delta: 1
            });
          })
        }
        // 处理好友申请
        $H.post('/apply/handle/'+this.id,{
          ...this.form,
          status:"agree"
        }).then(res=>{
          uni.showToast({ title: '处理成功', icon: 'none' });
          uni.navigateBack({ delta: 1 });
          this.$store.dispatch('getMailList')
        })
      }
    }
  }
</script>
<style>
</style>

感谢观看,我们下次见

目录
相关文章
|
2月前
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
122 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
26天前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
49 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript 数据库
uni-app头像上传(完善个人信息功能),后端NodeJs+MySQL
uni-app头像上传(完善个人信息功能),后端采用的是NodeJs(express.js),数据库采用的是MySQL
|
2月前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
97 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
7月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
110 0
|
9月前
|
编解码
uni-app 61完善几个小问题
在uni-app 61版本中进行小问题完善时,可能涉及多个方面,包括但不限于界面布局、数据绑定、组件属性设置等。以下是根据您提供的代码片段分析的一些建议: 1. **界面布局优化**:
|
10月前
|
移动开发 前端开发
uni-app 180查看好友朋友圈完善(一)
uni-app 180查看好友朋友圈完善(一)
60 3
|
10月前
uni-app 182查看好友朋友圈完善(三)
uni-app 182查看好友朋友圈完善(三)
42 3
|
10月前
uni-app 72聊天类封装(七)-完善发送消息状态
uni-app 72聊天类封装(七)-完善发送消息状态
70 3
|
10月前
|
移动开发 前端开发
uni-app 184查看好友朋友圈完善(五)
uni-app 184查看好友朋友圈完善(五)
39 2

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 2
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 3
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 6
    1688APP 原数据 API 接口的开发、应用与收益
  • 7
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
  • 8
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 9
    语音app系统软件源码开发搭建新手启蒙篇
  • 10
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 1
    【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
    12
  • 2
    【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
    18
  • 3
    【Azure App Service】App Service 是否支持HostName SNI 证书?
    18
  • 4
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
    14
  • 5
    2025同城线下陪玩APP开发/电竞游戏平台搭建游戏陪玩APP源码/语音APP开发
    24
  • 6
    flutter3-wetrip跨平台自研仿携程app预约酒店系统模板
    28
  • 7
    通过外部链接启动 Flutter App(详细介绍及示例)
    24
  • 8
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40