123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <template>
- <layout-page>
- <view class="box defaultBgc">
- <scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore">
- <view>
- <view class="panel">
- <view>
- <uni-icons color="#f30" type="icon-renminbi1688" size="16" custom-prefix="iconfont"></uni-icons>
- <text class="text">{{ balance.point }}</text>
- </view>
- <view>
- <button class="btn" @tap="handleUse">使用积分</button>
- </view>
- </view>
- <view class="list">
- <uni-list>
- <uni-list-item
- v-for="item in items"
- :key="item.id"
- :title="item.description"
- :rightText="item._createTime"
- />
- </uni-list>
- <uni-load-more :status="more" />
- </view>
- </view>
- </scroll-view>
- </view>
- </layout-page>
- </template>
- <!-- balance 余额 -->
- <script setup>
- import { ref } from 'vue'
- import {
- getUserAccount,
- getEnterpriseAccountRecordPage
- } from '@/api/sign'
- import { timesTampChange } from '@/utils/date'
- const balance = ref({})
- const items = ref([])
- const pageInfo = ref({
- pageNo: 1,
- pageSize: 20
- })
- const total = ref(0)
- const more = ref('more')
- getBalance()
- getList()
- // 获取积分余额
- async function getBalance() {
- const { data } = await getUserAccount()
- if (!data) {
- return
- }
- balance.value = data
- }
- async function getList () {
- try {
- const { data } = await getEnterpriseAccountRecordPage({ ...pageInfo.value, type: 0 })
- if (!data || !data.list) {
- if (pageInfo.value.pageNo === 1) {
- return
- }
- pageInfo.value.pageNo--
- more.value = 'more'
- return
- }
- const _data = data.list.map(e => {
- return {
- ...e,
- _createTime: timesTampChange(e.createTime)
- }
- })
- items.value.push(..._data)
- total.value = +data.total
- more.value = total.value <= items.value.length ? 'noMore' : 'more'
- } catch (error) {
- if (pageInfo.value.pageNo === 1) {
- return
- }
- pageInfo.value.pageNo--
- more.value = 'more'
- }
- }
- function loadingMore () {
- if (more.value === 'noMore') {
- return
- }
- more.value = 'loading'
- pageInfo.value.pageNo++
- getList()
- }
- function handleUse () {
- wx.navigateToMiniProgram({
- appId: 'wx6decdf12f9e7a061', // 目标小程序的 appId
- envVersion: 'develop',
- success(res) {
- // 打开成功
- console.log('成功跳转至小程序:', res);
- },
- fail(err) {
- // 打开失败
- uni.showToast({
- title: '打开商城失败',
- icon: 'none'
- })
- }
- })
- }
- </script>
- <style lang="scss" scoped>
- .box {
- height: 100vh;
- }
- .scrollBox {
- width: 100vw;
- // padding: 20rpx;
- box-sizing: border-box;
- .panel {
- position: sticky;
- z-index: 2;
- top: 0;
- width: 100%;
- padding: 20rpx;
- margin-bottom: 20rpx;
- box-sizing: border-box;
- background: #FFF;
- display: flex;
- justify-content: space-between;
- align-items: flex-end;
- box-shadow: 0px 0px 10px 0px rgb(0, 0, 0, 0.25);
- .text {
- color: #F30;
- font-size: 54rpx;
- }
- .btn {
- width: 180rpx;
- height: 60rpx;
- line-height: 60rpx;
- font-size: 28rpx;
- text-align: center;
- background: #00897B;
- color: #FFF;
- border-radius: 30rpx;
- }
- }
- .list {
- // padding: 20rpx;
- }
- }
- </style>
|