uni-app 188修复弹框问题

简介: uni-app 188修复弹框问题

弹框问题

/components/free-ui/free-nav-bar.vue

<template>
  <view>
    <view :class="getClass">
      <!-- 状态栏 -->
      <view :style="'height:'+statusBarHeight+'px'"></view>
      <!-- 导航 -->
      <view class="w-100 flex align-center justify-between" style="height: 90rpx;">
        <!-- 左边 -->
        <view class="flex align-center">
          <!-- 返回按钮 -->
          <!-- #ifndef MP -->
          <free-icon-button v-if="showBack" @click="back"><text class="iconfont font-md">&#xe60d;</text></free-icon-button>
          <!-- #endif -->
          <!-- 标题 -->
          <slot>
            <text v-if="title" class="font-md ml-3">{{getTitle}}</text>
          </slot>
        </view>
        <!-- 右边 -->
        <view class="flex align-center" v-if="showRight">
          <slot name="right">
            <free-icon-button @click="search"><text class="iconfont font-md">&#xe6e3;</text></free-icon-button>
            <free-icon-button @click="openExtend"><text class="iconfont font-md">&#xe682;</text></free-icon-button>
          </slot>
        </view>
      </view>
    </view>
    <!-- 占位 -->
    <view v-if="fixed" :style="fixedStyle"></view>
    
    <!-- 扩展菜单 -->
    <free-popup v-if="showRight" ref="extend" :bodyWidth="320" :bodyHeight="525"
    bodyBgColor="bg-dark" transformOrigin="right top">
      <view class="flex flex-column" 
      style="width: 320rpx;height: 525rpx;">
        <view class="flex-1 flex align-center" 
        hover-class="bg-hover-dark"
        v-for="(item,index) in menus"
        :key="index"
        @click="clickEvent(item)">
          <text class="iconfont pl-3 pr-2 font-md text-white">{{item.icon}}</text>
          <text class="font-md text-white">{{item.name}}</text>
        </view>
      </view>
    </free-popup>
    
    
  </view>
</template>
<script>
  import freeIconButton from "./free-icon-button.vue"
  import freePopup from "./free-popup.vue"
  export default {
    props: {
      showBack:{
        type:Boolean,
        default:false
      },
      backEvent:{
        type:Boolean,
        default:true
      },
      title: {
        type: [String,Boolean],
        default:false 
      },
      fixed:{
        type:Boolean,
        default:true
      },
      noreadnum:{
        type:[Number,String],
        default:0
      },
      bgColor:{
        type:String,
        default:"bg-light"
      },
      showRight:{
        type:Boolean,
        default:true
      }
    },
    components:{
      freeIconButton,
      freePopup
    },
    data() {
      return {
        statusBarHeight:0,
        navBarHeight:0,
        menus:[
          {
            name:"发起群聊",
            event:"navigateTo",
            path:"/pages/mail/mail/mail?type=createGroup",
            icon:"\ue633"
          },
          {
            name:"添加好友",
            event:"navigateTo",
            path:"/pages/common/search/search",
            icon:"\ue65d"
          },
          // #ifndef H5
          {
            name:"扫一扫",
            event:"",
            icon:"\ue614"
          },
          // #endif
          {
            name:"收付款",
            event:"",
            icon:"\ue66c"
          },
          {
            name:"帮助与反馈",
            event:"",
            icon:"\ue66c"
          }
        ],
      }
    },
    mounted() {
      // #ifdef APP-PLUS-NVUE
      this.statusBarHeight = plus.navigator.getStatusbarHeight()
      // #endif
      this.navBarHeight = this.statusBarHeight + uni.upx2px(90)
    },
    computed: {
      fixedStyle() {
        return `height:${this.navBarHeight}px`
      },
      getTitle(){
        let noreadnum = this.noreadnum > 0 ? '('+this.noreadnum+')' : ''
        return this.title + noreadnum
      },
      getClass(){
        let fixed = this.fixed?'fixed-top':''
        return `${fixed} ${this.bgColor}` 
      }
    },
    methods: {
      openExtend() {
        this.$refs.extend.show(uni.upx2px(415),uni.upx2px(150))
      },
      // 返回
      back(){
        if(this.backEvent){
          return uni.navigateBack({
            delta: 1
          });
        }
        this.$emit('back')
      },
      search(){
        uni.navigateTo({
          url: '/pages/common/search/search'
        });
      },
      clickEvent(item){
        this.$refs.extend.hide()
        switch (item.event){
          case 'navigateTo':
          uni.navigateTo({
            url: item.path,
          });
            break;
          default:
          uni.showToast({
            title: '靓仔,自己发挥',
            icon: 'none'
          });
            break;
        }
      }
    },
  }
</script>
<style>
</style>

感谢大家观看,我们下次见

目录
相关文章
|
2月前
|
运维 Kubernetes 容器
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
|
5月前
uni-app 151修复删除好友朋友圈记录问题
uni-app 151修复删除好友朋友圈记录问题
30 1
App逆向百例|18|某A系防护SO跳转修复
App逆向百例|18|某A系防护SO跳转修复
439 0
|
XML 缓存 API
Android 天气APP(十四)修复UI显示异常、优化业务代码逻辑、增加详情天气显示
Android 天气APP(十四)修复UI显示异常、优化业务代码逻辑、增加详情天气显示
219 0
Android 天气APP(十四)修复UI显示异常、优化业务代码逻辑、增加详情天气显示
|
机器学习/深度学习 索引
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(二)
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(二)
244 0
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(二)
|
机器学习/深度学习 自然语言处理 算法
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(一)
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(一)
255 0
2021抖音和快手APP图像修复背后的核心技术,毫无ps痕迹(一)
|
XML 测试技术 数据格式
干货 | 解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)
![](https://ceshiren.com/uploads/default/original/3X/5/7/5726c71907621480cc5c7bd17d1e215c9ebafa6f.jpeg) App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题:
|
JavaScript 开发者
APICloud App开发教程之云修复功能
使用APICloud开发平台的云修复功能可以实现快速版本迭代,快速修复bug。不用发布新的apk或者ipa版本既可对你的app进行更新,即增量更新。在项目迭代过程中,如果修改了其中某几个文件,那么只需要更新这几个文件即可。
196 0
APICloud App开发教程之云修复功能
|
XML 测试技术 数据格式
干货 | 解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)
干货 | 解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)
|
SQL 安全 算法
渗透测试公司如何对APP进行漏洞检测与修复
#APP渗透测试#目前越来越多的APP遭受到黑客攻击,包括数据库被篡改,APP里的用户数据被泄露,手机号以及姓名,密码,资料都被盗取,很多平台的APP的银行卡,充值通道,聚合支付接口也都被黑客修改过,导致APP运营者经济损失太大,很多通过老客户的介绍找到我们SINE安全公司,寻求安全防护,防止攻击,根据我们SINESAFE近十年的网络安全从业来分析,大部分网站以及APP被攻击的原因都是网站代码存在漏洞以及服务器系统漏洞,包括安装的服务器软件都存在漏洞。关于APP渗透测试内容,以及如何防止APP被攻击的方法,我们总结一篇文章分享给大家,希望能帮到更多需要帮助的人。
367 0
渗透测试公司如何对APP进行漏洞检测与修复