uni-app APP端适用的消息通知组件(参考:https://element-plus.gitee.io/zh-CN/component/notification.html)

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app APP端适用的消息通知组件(参考:https://element-plus.gitee.io/zh-CN/component/notification.html)

使用js调用,在任何地方都可以使用。而不依赖于页面元素。

参考:https://element-plus.gitee.io/zh-CN/component/notification.html

img

6 回复

手机屏幕空间有限呀,要实现什么样子的


使用场景是宽屏的收银机(类似于电脑显示器)。https:https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/answer/20220713/209f8dc858a66eee5db9482264fb7ff0.png

使用场景是宽屏的收银机(类似于电脑显示器)

大概的效果,具体可以看附件视频

您好,请问下这个组件是在哪里啊,能否给个链接。谢谢

针对uni-app在APP端实现消息通知组件的需求,可以参考Element Plus的Notification组件设计思路,但需要注意的是,uni-app有其自身的跨平台特性和API。以下是一个简化的实现示例,使用uni-app提供的API来实现消息通知功能。

首先,我们需要在项目中创建一个Notification组件,并在全局或局部注册它。以下是一个基本的实现示例:

1. 创建Notification组件(components/Notification.vue

<template>
  <view v-if="visible" class="notification" :style="styleObject">
    <view class="notification-content">{{ message }}</view>
    <view class="notification-close" @click="close">×</view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      visible: false,
      message: '',
      duration: 3000, // 默认显示时间
      styleObject: {} // 样式对象,用于控制位置等
    };
  },
  methods: {
    show(options) {
      this.message = options.message || '默认消息';
      this.duration = options.duration || this.duration;
      this.styleObject = options.style || {};
      this.visible = true;
      
      setTimeout(() => {
        this.close();
      }, this.duration);
    },
    close() {
      this.visible = false;
    }
  }
};
</script>

<style scoped>
.notification {
  position: fixed;
  /* 根据需要添加样式 */
  top: 20px;
  right: 20px;
  padding: 15px;
  background-color: #fff;
  border: 1px solid #ddd;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.notification-content {
  flex: 1;
}
.notification-close {
  cursor: pointer;
}
</style>

2. 在全局或局部注册并使用

main.js中全局注册:

import Vue from 'vue';
import Notification from './components/Notification.vue';

Vue.component('Notification', Notification);

在页面中局部使用(例如在pages/index/index.vue):

<template>
  <view>
    <button @click="showNotification">显示通知</button>
    <Notification ref="notification" />
  </view>
</template>

<script>
export default {
  methods: {
    showNotification() {
      this.$refs.notification.show({
        message: '这是一条通知消息',
        duration: 5000,
        style: { top: '50px' }
      });
    }
  }
};
</script>

以上代码展示了如何在uni-app中实现一个简单的消息通知组件。这个组件支持显示消息、自定义显示时间和位置,并可以在点击关闭按钮或超时后自动隐藏。根据实际需求,你可以进一步扩展和优化这个组件,比如添加多种通知类型、动画效果等。

回到顶部