| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | <!-- 分销明细  --><template>  <view class="distribution-log-wrap">    <view class="header-box">      <image class="header-bg" :src="sheep.$url.static('/static/img/shop/commission/title2.png')" />      <view class="ss-flex header-title">        <view class="title">实时动态</view>        <text class="cicon-forward"></text>      </view>    </view>    <scroll-view      scroll-y="true"      @scrolltolower="loadmore"      class="scroll-box log-scroll"      scroll-with-animation="true"    >      <view v-if="state.pagination.data">        <view          class="log-item-box ss-flex ss-row-between"          v-for="item in state.pagination.data"          :key="item.id"        >          <view class="log-item-wrap">            <view class="log-item ss-flex ss-ellipsis-1 ss-col-center">              <view class="ss-flex ss-col-center">                <image                  v-if="item.oper_type === 'user'"                  class="log-img"                  :src="sheep.$url.cdn(item.oper?.avatar)"                  mode="aspectFill"                ></image>                <image                  v-else-if="item.oper_type === 'admin'"                  class="log-img"                  :src="sheep.$url.static('/static/img/shop/avatar/default_user.png')"                  mode="aspectFill"                ></image>                <image                  v-else                  class="log-img"                  :src="sheep.$url.static('/static/img/shop/avatar/notice.png')"                  mode="aspectFill"                ></image>              </view>              <view class="log-text ss-ellipsis-1">{{ item.remark }}</view>            </view>          </view>          <text class="log-time">{{ dayjs(item.create_time).fromNow() }}</text>        </view>      </view>      <!-- 加载更多 -->      <uni-load-more        v-if="state.pagination.total > 0"        :status="state.loadStatus"        color="#333333"        @tap="loadmore"      />    </scroll-view>  </view></template><script setup>  import sheep from '@/sheep';  import { computed, reactive } from 'vue';  import _ from 'lodash';  import dayjs from 'dayjs';  const state = reactive({    loadStatus: '',    pagination: {      data: [],      current_page: 1,      total: 1,      last_page: 1,    },  });  async function getLog(page = 1) {    const res = await sheep.$api.commission.log({      page,    });    if (res.error === 0) {      let list = _.concat(state.pagination.data, res.data.data);      state.pagination = {        ...res.data,        data: list,      };      if (state.pagination.current_page < state.pagination.last_page) {        state.loadStatus = 'more';      } else {        state.loadStatus = 'noMore';      }    }  }  getLog();  // 加载更多  function loadmore() {    if (state.loadStatus !== 'noMore') {      getLog(state.pagination.current_page + 1);    }  }</script><style lang="scss" scoped>  .distribution-log-wrap {    width: 690rpx;    margin: 0 auto;    margin-bottom: 20rpx;    border-radius: 12rpx;    z-index: 3;    position: relative;    .header-box {      width: 690rpx;      height: 76rpx;      position: relative;      .header-bg {        width: 690rpx;        height: 76rpx;      }      .header-title {        position: absolute;        left: 20rpx;        top: 24rpx;      }      .title {        font-size: 28rpx;        font-weight: 500;        color: #ffffff;        line-height: 30rpx;      }      .cicon-forward {        font-size: 30rpx;        font-weight: 400;        color: #ffffff;        line-height: 30rpx;      }    }    .log-scroll {      height: 600rpx;      background: #fdfae9;      padding: 10rpx 20rpx 0;      box-sizing: border-box;      border-radius: 0 0 12rpx 12rpx;      .log-item-box {        margin-bottom: 20rpx;        .log-time {          // margin-left: 30rpx;          text-align: right;          font-size: 24rpx;          font-family: OPPOSANS;          font-weight: 400;          color: #c4c4c4;        }      }      .loadmore-wrap {        // line-height: 80rpx;      }      .log-item {        // background: rgba(#ffffff, 0.2);        border-radius: 24rpx;        padding: 6rpx 20rpx 6rpx 12rpx;        .log-img {          width: 40rpx;          height: 40rpx;          border-radius: 50%;          margin-right: 10rpx;        }        .log-text {          max-width: 480rpx;          font-size: 24rpx;          font-weight: 500;          color: #333333;        }      }    }  }</style>
 |