MrShi
2025-03-12 69a1b3bf45738f048361ee4ccb6bdc64fce35720
h5/packagesMine/notice/notice.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,196 @@
<template>
  <view class="notice">
    <view
      class="notice_item"
      v-for="(item, index) in list"
      :key="index"
      @click="jump(item)"
    >
      <view class="left">
        <view class="left_dian" v-if="item.status === 0"></view>
        <image
          src="@/static/meeting/icon/xiaoxi_ic_gonggao@2x.png"
          v-if="item.type === 1"
          mode="widthFix"
        ></image>
        <image
          src="@/static/meeting/icon/xiaoxi_ic_gonggao@2x(1).png"
          v-else
          mode="widthFix"
        ></image>
      </view>
      <view class="right">
        <view class="right_a">{{ item.title }}</view>
        <view class="right_b" v-if="item.type === 1">
          <view class="right_b_label">会议主题:</view>
          <view class="right_b_val">{{
            item.meetingDetailResponse.meetingName
          }}</view>
        </view>
        <view class="right_b" v-if="item.type === 1">
          <view class="right_b_label">会议时间:</view>
          <view class="right_b_val"
            >{{ item.meetingDetailResponse.meetingDate }}
            {{ item.meetingDetailResponse.meetingTime }}</view
          >
        </view>
        <view class="right_b" v-if="item.type === 1">
          <view class="right_b_label">会议室:</view>
          <view class="right_b_val">{{
            item.meetingDetailResponse.roomName
          }}</view>
        </view>
        <view class="right_b" v-if="item.type === 1">
          <view class="right_b_label">预约人:</view>
          <view class="right_b_val">{{
            item.meetingDetailResponse.bookingUserName
          }}</view>
        </view>
        <view class="right_c" v-if="item.type !== 1">{{
          item.createDate
        }}</view>
      </view>
    </view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      page: 0,
      next: false,
      list: []
    }
  },
  onLoad() {
    this.getList()
  },
  onReachBottom() {
    this.getList()
  },
  methods: {
    getList() {
      if (!this.next) {
        this.page = this.page + 1
        this.$u.api.findNoticePage({
          capacity: 20,
          model: {
          },
          page: this.page
        }).then(res => {
          if (res.data.records.length > 0) {
            this.list = [...this.list, ...res.data.records]
          }
          if (res.data.records.length < 20) {
            this.next = false
          }
        })
      }
    },
    jump(item) {
      var that = this
      if (item.type === 0) {
        uni.navigateTo({
          url: `/packagesMine/notificationDetails/notificationDetails?content=${item.id}`
        })
      } else {
        that.$u.api.getMemberDTO({ id: item.id })
          .then(res => {
            that.list.forEach(element => {
              if (element.id === item.id) {
                element.status = 1
              }
            })
            uni.navigateTo({
              url: `/packagesMine/meetingDetails/meetingDetails?id=${item.meetingDetailResponse.id}`
            })
          })
      }
    }
  }
}
</script>
<style lang="scss">
.notice {
  width: 100%;
  padding: 26rpx 30rpx;
  box-sizing: border-box;
  .notice_item {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    background-color: #fff;
    padding: 30rpx;
    box-sizing: border-box;
    margin-bottom: 20rpx;
    &:last-child {
      margin-bottom: 0 !important;
    }
    .left {
      flex-shrink: 0;
      width: 72rpx;
      height: 72rpx;
      position: relative;
      margin-right: 24rpx;
      .left_dian {
        position: absolute;
        right: 0;
        top: 0;
        width: 18rpx;
        height: 18rpx;
        background: #f62710;
        border: 2rpx solid #ffffff;
        border-radius: 50%;
      }
      image {
        width: 100%;
        height: 100%;
      }
    }
    .right {
      flex: 1;
      display: flex;
      flex-direction: column;
      .right_a {
        font-size: 32rpx;
        font-family: PingFangSC-Medium, PingFang SC;
        font-weight: 600;
        color: #222222;
        margin-bottom: 24rpx;
      }
      .right_c {
        font-size: 26rpx;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 400;
        color: #999999;
      }
      .right_b {
        display: flex;
        align-items: flex-start;
        margin-bottom: 24rpx;
        &:last-child {
          margin-bottom: 0 !important;
        }
        .right_b_label {
          flex-shrink: 0;
          font-size: 26rpx;
          font-family: PingFangSC-Regular, PingFang SC;
          font-weight: 400;
          color: #666666;
        }
        .right_b_val {
          flex: 1;
          font-size: 26rpx;
          font-family: PingFangSC-Regular, PingFang SC;
          font-weight: 400;
          color: #333333;
        }
      }
    }
  }
}
</style>