Retired/pages/mine/mine.vue

250 lines
5.3 KiB
Vue

<template>
<!-- 我的 -->
<view class="my">
<!-- 状态栏 -->
<view class="status-bar bg-white pt-30"></view>
<!-- 头像栏 -->
<view class="flex items-center wrap-card" hover-class="bg-gray-100" @click="$u.route('/pages/mine/edit-info')">
<image class="header-img" src="/static/img/demo/avatar.jpeg" mode=""
@click.stop="$u.route('/pages/mine/edit-info')">
</image>
<view class="flex flex-col flex-1 px-20">
<text class="text-32 font-bold">{{userInfo.name}}</text>
<text class="text-28 text-gray-500 mt-10">{{userInfo.contact_mobile}}</text>
</view>
</view>
<!-- 统计栏 -->
<!-- <view class="wrap-card flex items-center">
<view v-for="(item,index) in countList" :key="index"
class="flex-1 flex flex-col items-center justify-center">
<view class="text-32 font-bold">
{{item.num}}
</view>
<view class="text-28 text-gray-500 mt-10">
{{item.name}}
</view>
</view>
</view> -->
<!-- 广告位 -->
<view v-if="swiperList.length>0" class="wrap-cards">
<u-swiper :list="swiperList" keyName="src" interval='10000' circular height="180rpx"
bgColor="#ffffff"></u-swiper>
</view>
<!-- 设置 -->
<u-cell-group :border='false'>
<u-cell v-for="(item,index) in setList" :key="index" :title="item.name" isLink size="large" :border='false'
@click="goPage(item.url)">
<text slot="icon" class="iconfont" :class="item.icon"></text>
</u-cell>
</u-cell-group>
</view>
</template>
<script>
import {
userInfo,
fileGet,
} from '@/api/login.js'
import {
bannerList
} from '@/api/train.js'
export default {
data() {
return {
// 统计列表
// countList: [{
// num: 12,
// name: '帖子'
// },
// {
// num: 278,
// name: '动态'
// },
// {
// num: 369,
// name: '评论'
// },
// {
// num: 750,
// name: '粉丝'
// }
// ],
// 设置列表
setList: [
// {
// icon: 'iconhuiyuan',
// name: '个人空间',
// url: 'user-space'
// },
{
icon: 'iconliulan',
name: '浏览历史',
url: 'history',
},
{
icon: 'iconshezhi1',
name: '修改资料',
url: 'set'
},
{
icon: 'iconrenzheng',
name: '用户协议',
url: 'user'
},
{
icon: 'iconrenzheng',
name: '隐私政策',
url: 'privacy'
}
],
userInfo: {},
flieList: {},
swiperList: [],
}
},
onLoad() {
this.getBannerList()
},
onShow() {
this.getUserInfo()
},
// 监听导航栏按钮点击
onNavigationBarButtonTap() {
this.goSet()
},
methods: {
getBannerList() {
bannerList({
position: 'mine',
org_id: getApp().globalData.org_id
}).then(res => {
this.swiperList = res.data
})
},
getUserInfo() {
userInfo().then(res => {
this.userInfo = res.data
uni.setStorageSync('userInfo', res.data)
})
},
goSet() {
this.$u.route('/pages/mine/edit-info')
},
goPage(type) {
switch (type) {
case 'history':
this.$u.route('/pages/mine/' + type)
break;
case 'set':
this.$u.route('/pages/mine/edit-info')
break;
case 'user':
this.$u.route('/pages/mine/protocol?type=user')
break;
case 'privacy':
this.$u.route('pages/mine/protocol?type=privacy')
break;
default:
break;
}
},
downloadFile(url) {
uni.showLoading({
title: '正在下载...',
});
uni.downloadFile({
url: url, // 文件的 URL
success: (res) => {
if (res.statusCode === 200) {
// 下载成功
const tempFilePath = res.tempFilePath;
// 保存文件到本地
uni.saveFile({
tempFilePath: tempFilePath,
success: (saveRes) => {
// 文件保存成功,获取保存后的文件路径
const savedFilePath = saveRes.savedFilePath;
// 提示用户文件已保存,并显示保存路径
uni.showToast({
title: '文件已保存',
icon: 'success'
});
// 打开文件
uni.openDocument({
showMenu: true,
filePath: savedFilePath,
fileType: 'xlsx', // 根据文件类型设置
success: () => {
console.log('文件打开成功');
},
fail: (err) => {
uni.showToast({
title: '打开文件失败',
icon: 'none'
});
console.error('打开文件失败:', err);
}
});
},
fail: (err) => {
uni.showToast({
title: '保存失败',
icon: 'none'
});
console.error('保存文件失败:', err);
}
});
} else {
uni.showToast({
title: '下载失败',
icon: 'none'
});
}
},
fail: (err) => {
uni.showToast({
title: '下载失败',
icon: 'none'
});
console.error('下载文件失败:', err);
},
complete: () => {
uni.hideLoading();
}
});
}
}
}
</script>
<style lang="scss" scoped>
.my {
.header-img {
width: 100rpx;
height: 100rpx;
border-radius: 100%;
box-shadow: inset 0rpx -1rpx 0rpx 0rpx #EEEEEE;
}
.wrap-cards {
width: 92%;
margin: 0 auto;
}
.adv-img {
height: 200rpx;
width: 100%;
}
}
</style>