|
|
@@ -1,694 +1,669 @@
|
|
|
<template>
|
|
|
- <view class="mine-page">
|
|
|
- <!-- <u-navbar title="我的" bgColor="transparent" titleBold></u-navbar> -->
|
|
|
- <!-- 顶部用户信息 -->
|
|
|
- <view class="user-info">
|
|
|
- <view class="user-header" @tap="handleUpdateUserInfo">
|
|
|
- <view class="user-avatar">
|
|
|
- <image
|
|
|
- class="avatar"
|
|
|
- :src="userInfo.imgPath"
|
|
|
- mode="aspectFill"
|
|
|
- v-if="userInfo.imgPath"
|
|
|
- style="width: 100%; height: 100%; display: block"
|
|
|
- ></image>
|
|
|
- <image
|
|
|
- class="avatar"
|
|
|
- src="https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/logo3.png"
|
|
|
- mode="heightFix"
|
|
|
- v-else
|
|
|
- style="
|
|
|
- width: 100%;
|
|
|
- height: 116rpx;
|
|
|
- display: block;
|
|
|
- border-radius: 10%;
|
|
|
- "
|
|
|
- ></image>
|
|
|
- </view>
|
|
|
- <view class="user-detail">
|
|
|
- <view class="nickname">{{ userInfo.nickName }}</view>
|
|
|
- <view
|
|
|
- class="user-tag"
|
|
|
- v-for="(tag, index) in userInfo.tags"
|
|
|
- :key="index"
|
|
|
- >{{ tag }}</view
|
|
|
- >
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 用户数据 -->
|
|
|
- <view class="user-data">
|
|
|
- <view
|
|
|
- class="data-item"
|
|
|
- @click="navigateToTool('/pages-mine/pages/wallet')"
|
|
|
- >
|
|
|
- <view class="amount">{{ userInfo.accountMoney || 0 }}</view>
|
|
|
- <view class="label">我的钱包</view>
|
|
|
- </view>
|
|
|
- <view class="data-item">
|
|
|
- <view class="amount">{{ userInfo.couponNum || 0 }}</view>
|
|
|
- <view class="label">优惠券</view>
|
|
|
- <view class="badge" v-if="userInfo.couponNum"
|
|
|
- >{{ userInfo.couponNum }}张可领</view
|
|
|
- >
|
|
|
- </view>
|
|
|
- <view class="data-item">
|
|
|
- <view class="amount">{{ userInfo.point || 0 }}</view>
|
|
|
- <view class="label">我的积分</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 卖书订单 -->
|
|
|
- <view class="order-section">
|
|
|
- <view class="section-header">
|
|
|
- <text>卖书订单</text>
|
|
|
- <view class="view-all" @click="viewAllOrders">
|
|
|
- <text>查看全部</text>
|
|
|
- <u-icon name="arrow-right" size="24" color="#999"></u-icon>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="order-types" style="padding: 0 20rpx">
|
|
|
- <view
|
|
|
- class="type-item flex-d flex-a-c"
|
|
|
- v-for="(item, index) in orderTypes"
|
|
|
- :key="index"
|
|
|
- @click="navigateToOrder(item.path)"
|
|
|
- >
|
|
|
- <image class="type-icon" :src="item.icon" mode="aspectFit"></image>
|
|
|
- <text>{{ item.name }}</text>
|
|
|
- <view class="badge" v-if="item.badge">{{ item.badge }}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 实用工具 -->
|
|
|
- <view class="tools-section">
|
|
|
- <view class="section-title">实用工具</view>
|
|
|
- <view class="tools-grid">
|
|
|
- <view
|
|
|
- class="tool-item flex-d flex-a-c"
|
|
|
- v-for="(tool, index) in tools"
|
|
|
- :key="index"
|
|
|
- @click="navigateToTool(tool.path)"
|
|
|
- >
|
|
|
- <button
|
|
|
- class="link-service flex-d flex-a-c"
|
|
|
- open-type="contact"
|
|
|
- v-if="tool.path == 'link-service'"
|
|
|
- >
|
|
|
- <image class="tool-icon" :src="tool.icon" mode="aspectFit"></image>
|
|
|
- <text>联系客服</text>
|
|
|
- </button>
|
|
|
- <block v-else>
|
|
|
- <image class="tool-icon" :src="tool.icon" mode="aspectFit"></image>
|
|
|
- <text>{{ tool.name }}</text>
|
|
|
- </block>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 悬浮提现确认按钮 -->
|
|
|
- <withdrawal-confirm
|
|
|
- :visible="withdrawalOrder && withdrawalOrder.length > 0"
|
|
|
- :initialPosition="buttonPosition"
|
|
|
- @click="navigateToWithdrawal"
|
|
|
- @position-change="onPositionChange"
|
|
|
- />
|
|
|
-
|
|
|
- <!-- 活动悬浮按钮 -->
|
|
|
- <floating-activity
|
|
|
- :img="activityInfo.img"
|
|
|
- :visible="activityInfo.frequency && activityInfo.frequency == 3"
|
|
|
- :initialPosition="activityPosition"
|
|
|
- @click="contactCustomerService"
|
|
|
- @position-change="onActivityButtonPositionChange"
|
|
|
- />
|
|
|
-
|
|
|
- <!-- 提现进度弹窗 -->
|
|
|
- <withdrawal-progress
|
|
|
- :orderInfo="currentWithdrawalOrder"
|
|
|
- @confirm="confirmWithdrawal"
|
|
|
- ref="withdrawalRef"
|
|
|
- />
|
|
|
- </view>
|
|
|
+ <view class="mine-page">
|
|
|
+ <!-- <u-navbar title="我的" bgColor="transparent" titleBold></u-navbar> -->
|
|
|
+ <!-- 顶部用户信息 -->
|
|
|
+ <view class="user-info">
|
|
|
+ <view class="user-header" @tap="handleUpdateUserInfo">
|
|
|
+ <view class="user-avatar">
|
|
|
+ <image class="avatar" :src="userInfo.imgPath" mode="aspectFill" v-if="userInfo.imgPath" style="width: 100%; height: 100%; display: block"></image>
|
|
|
+ <image
|
|
|
+ class="avatar"
|
|
|
+ src="https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/logo3.png"
|
|
|
+ mode="heightFix"
|
|
|
+ v-else
|
|
|
+ style="width: 100%; height: 116rpx; display: block; border-radius: 10%"
|
|
|
+ ></image>
|
|
|
+ </view>
|
|
|
+ <view class="user-detail">
|
|
|
+ <view class="nickname">{{ userInfo.nickName }}</view>
|
|
|
+ <view class="user-tag" v-for="(tag, index) in userInfo.tags" :key="index">{{ tag }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 用户数据 -->
|
|
|
+ <view class="user-data">
|
|
|
+ <view class="data-item" @click="navigateToTool('/pages-mine/pages/wallet')">
|
|
|
+ <view class="amount">{{ userInfo.accountMoney || 0 }}</view>
|
|
|
+ <view class="label">我的钱包</view>
|
|
|
+ </view>
|
|
|
+ <view class="data-item">
|
|
|
+ <view class="amount">{{ userInfo.couponNum || 0 }}</view>
|
|
|
+ <view class="label">优惠券</view>
|
|
|
+ <view class="badge" v-if="userInfo.couponNum">{{ userInfo.couponNum }}张可领</view>
|
|
|
+ </view>
|
|
|
+ <view class="data-item">
|
|
|
+ <view class="amount">{{ userInfo.point || 0 }}</view>
|
|
|
+ <view class="label">我的积分</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 卖书订单 -->
|
|
|
+ <view class="order-section">
|
|
|
+ <view class="section-header">
|
|
|
+ <text>卖书订单</text>
|
|
|
+ <view class="view-all" @click="viewAllOrders">
|
|
|
+ <text>查看全部</text>
|
|
|
+ <u-icon name="arrow-right" size="24" color="#999"></u-icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="order-types" style="padding: 0 20rpx">
|
|
|
+ <view class="type-item flex-d flex-a-c" v-for="(item, index) in orderTypes" :key="index" @click="navigateToOrder(item.path)">
|
|
|
+ <image class="type-icon" :src="item.icon" mode="aspectFit"></image>
|
|
|
+ <text>{{ item.name }}</text>
|
|
|
+ <view class="badge" v-if="item.badge">{{ item.badge }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 实用工具 -->
|
|
|
+ <view class="tools-section">
|
|
|
+ <view class="section-title">实用工具</view>
|
|
|
+ <view class="tools-grid">
|
|
|
+ <view class="tool-item flex-d flex-a-c" v-for="(tool, index) in tools" :key="index" @click="navigateToTool(tool.path)">
|
|
|
+ <!-- #ifdef MP-ALIPAY -->
|
|
|
+ <button class="link-service flex-d flex-a-c" v-if="tool.path == 'link-service'" @click="navigateToCustomerService">
|
|
|
+ <image class="tool-icon" :src="tool.icon" mode="aspectFit"></image>
|
|
|
+ <text>联系客服</text>
|
|
|
+ </button>
|
|
|
+ <!-- #endif -->
|
|
|
+ <!-- #ifndef MP-ALIPAY -->
|
|
|
+ <button class="link-service flex-d flex-a-c" open-type="contact" v-if="tool.path == 'link-service'">
|
|
|
+ <image class="tool-icon" :src="tool.icon" mode="aspectFit"></image>
|
|
|
+ <text>联系客服</text>
|
|
|
+ </button>
|
|
|
+ <!-- #endif -->
|
|
|
+
|
|
|
+ <block v-else>
|
|
|
+ <image class="tool-icon" :src="tool.icon" mode="aspectFit"></image>
|
|
|
+ <text>{{ tool.name }}</text>
|
|
|
+ </block>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 悬浮提现确认按钮 -->
|
|
|
+ <withdrawal-confirm
|
|
|
+ :visible="withdrawalOrder && withdrawalOrder.length > 0"
|
|
|
+ :initialPosition="buttonPosition"
|
|
|
+ @click="navigateToWithdrawal"
|
|
|
+ @position-change="onPositionChange"
|
|
|
+ />
|
|
|
+
|
|
|
+ <!-- 活动悬浮按钮 -->
|
|
|
+ <floating-activity
|
|
|
+ :img="activityInfo.img"
|
|
|
+ :visible="activityInfo.frequency && activityInfo.frequency == 3"
|
|
|
+ :initialPosition="activityPosition"
|
|
|
+ @click="contactCustomerService"
|
|
|
+ @position-change="onActivityButtonPositionChange"
|
|
|
+ />
|
|
|
+
|
|
|
+ <!-- 提现进度弹窗 -->
|
|
|
+ <withdrawal-progress :orderInfo="currentWithdrawalOrder" @confirm="confirmWithdrawal" ref="withdrawalRef" />
|
|
|
+ </view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import WithdrawalProgress from "./components/withdrawal-progress.vue";
|
|
|
-import WithdrawalConfirm from "../../components/withdrawal-confirm.vue";
|
|
|
-import floatingActivity from "../../components/floating-activity.vue";
|
|
|
+import WithdrawalProgress from './components/withdrawal-progress.vue';
|
|
|
+import WithdrawalConfirm from '../../components/withdrawal-confirm.vue';
|
|
|
+import floatingActivity from '../../components/floating-activity.vue';
|
|
|
|
|
|
export default {
|
|
|
- components: {
|
|
|
- WithdrawalProgress,
|
|
|
- WithdrawalConfirm,
|
|
|
- floatingActivity,
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- userInfo: {
|
|
|
- userId: 0,
|
|
|
- openid: "",
|
|
|
- imgPath: "",
|
|
|
- nickName: "这里是微信昵称.",
|
|
|
- mobile: "",
|
|
|
- tags: [],
|
|
|
- accountMoney: 0,
|
|
|
- couponNum: 0,
|
|
|
- point: 0,
|
|
|
- firstAuditNum: 0,
|
|
|
- pickUpNum: 0,
|
|
|
- auditNum: 0,
|
|
|
- payNum: 0,
|
|
|
- refundNum: 0,
|
|
|
- },
|
|
|
- orderTypes: [
|
|
|
- {
|
|
|
- name: "待初审",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/1.png",
|
|
|
- badge: 0,
|
|
|
- key: "firstAuditNum",
|
|
|
- path: "/pages-mine/pages/order-page?status=2",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "待取件",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/2.png",
|
|
|
- badge: 0,
|
|
|
- key: "pickUpNum",
|
|
|
- path: "/pages-mine/pages/order-page?status=3",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "待审核",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/3.png",
|
|
|
- badge: 0,
|
|
|
- key: "auditNum",
|
|
|
- path: "/pages-mine/pages/order-page?status=8",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "待到款",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/4.png",
|
|
|
- badge: 0,
|
|
|
- key: "payNum",
|
|
|
- path: "/pages-mine/pages/order-page?status=10",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "申请退回",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/5.png",
|
|
|
- badge: 0,
|
|
|
- key: "refundNum",
|
|
|
- path: "/pages-mine/pages/apply-return",
|
|
|
- },
|
|
|
- ],
|
|
|
- tools: [
|
|
|
- {
|
|
|
- name: "消息通知",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t1.png",
|
|
|
- path: "/pages-mine/pages/notice",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "我的收藏",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t2.png",
|
|
|
- path: "",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "我的足迹",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t3.png",
|
|
|
- path: "",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "我的地址",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t4.png",
|
|
|
- path: "/pages-mine/pages/address/list",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "我的优惠券",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t5.png",
|
|
|
- path: "",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "联系客服",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t6.png",
|
|
|
- path: "link-service",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "意见反馈",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t7.png",
|
|
|
- path: "/pages-mine/pages/feedback",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "到货提醒",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t8.png",
|
|
|
- path: "/pages/tools/arrival-notice",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "合伙人计划",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t9.png",
|
|
|
- path: "/pages-mine/pages/partner/partner-rule",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "买卖答疑",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t10.png",
|
|
|
- path: "/pages-mine/pages/rules-for-sellbooks",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "关于书嗨",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t11.png",
|
|
|
- path: "/pages-home/pages/about-us",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "我的余额",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t12.png",
|
|
|
- path: "/pages-mine/pages/wallet",
|
|
|
- },
|
|
|
- {
|
|
|
- name: "用户设置",
|
|
|
- icon: "https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t13.png",
|
|
|
- path: "/pages-mine/pages/setting",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 悬浮按钮位置
|
|
|
- buttonPosition: {
|
|
|
- left: "auto",
|
|
|
- right: 0,
|
|
|
- bottom: "10%",
|
|
|
- },
|
|
|
- // 客服按钮位置
|
|
|
- activityPosition: {
|
|
|
- left: "auto",
|
|
|
- right: 0,
|
|
|
- bottom: "25%",
|
|
|
- },
|
|
|
- withdrawalOrder: [],
|
|
|
- // 提现进度弹窗相关
|
|
|
- showWithdrawalModal: false,
|
|
|
- currentWithdrawalOrder: {},
|
|
|
-
|
|
|
- //活动弹窗信息
|
|
|
- activityInfo: {},
|
|
|
- };
|
|
|
- },
|
|
|
- methods: {
|
|
|
- //获取是否显示活动弹窗
|
|
|
- getActivityStatus() {
|
|
|
- uni.$u.http.post("/token/home/activity/dialog").then((res) => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.activityInfo = res.data;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- //获取是否存在待确认提现的订单
|
|
|
- getWithdrawalOrder() {
|
|
|
- uni.$u.http.get("/token/user/withdrawWindows").then((res) => {
|
|
|
- console.log(res);
|
|
|
- if (res.code == 200) {
|
|
|
- this.withdrawalOrder = res.data;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- //用户信息
|
|
|
- handleUpdateUserInfo() {
|
|
|
- uni.navigateTo({
|
|
|
- url: "/pages-mine/pages/setting",
|
|
|
- });
|
|
|
- },
|
|
|
- //查看全部订单
|
|
|
- viewAllOrders() {
|
|
|
- uni.navigateTo({
|
|
|
- url: "/pages-mine/pages/order-page?status=-1",
|
|
|
- });
|
|
|
- },
|
|
|
- //跳转订单
|
|
|
- navigateToOrder(path) {
|
|
|
- uni.navigateTo({
|
|
|
- url: path,
|
|
|
- });
|
|
|
- },
|
|
|
- //跳转工具
|
|
|
- navigateToTool(path) {
|
|
|
- if (!path)
|
|
|
- return uni.showToast({
|
|
|
- title: "开发中...",
|
|
|
- icon: "none",
|
|
|
- });
|
|
|
-
|
|
|
- if (path == "/pages-mine/pages/partner/partner-rule") {
|
|
|
- this.getPartnerStatus();
|
|
|
- } else {
|
|
|
- uni.navigateTo({
|
|
|
- url: path,
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- // 导航到提现确认页面
|
|
|
- navigateToWithdrawal() {
|
|
|
- if (this.withdrawalOrder && this.withdrawalOrder.length > 0) {
|
|
|
- // 显示提现进度弹窗,使用第一个提现订单
|
|
|
- this.currentWithdrawalOrder = this.withdrawalOrder[0];
|
|
|
- this.$refs.withdrawalRef.openModal();
|
|
|
- } else {
|
|
|
- // 如果没有待确认的提现订单,直接跳转到钱包页面
|
|
|
- uni.navigateTo({
|
|
|
- url: "/pages-mine/pages/wallet",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- //获取用户信息
|
|
|
- getUserInfo() {
|
|
|
- uni.$u.http.get("/token/user/detail").then((res) => {
|
|
|
- console.log(res);
|
|
|
- if (res.code == 200) {
|
|
|
- this.userInfo = res.data;
|
|
|
- uni.setStorageSync("userInfo", this.userInfo);
|
|
|
-
|
|
|
- this.orderTypes.forEach((item) => {
|
|
|
- item.badge = this.userInfo[item.key];
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //获取合伙人状态
|
|
|
- getPartnerStatus() {
|
|
|
- let item = this.tools.find((item) => item.name == "合伙人计划");
|
|
|
- uni.$u.get("/token/getUserPartnerInfo").then((res) => {
|
|
|
- if (res.code == 200) {
|
|
|
- let { status } = res.data;
|
|
|
- if (status == -1 || status == 4) {
|
|
|
- item.path = "/pages-mine/pages/partner/partner-rule";
|
|
|
- } else if (status == 1) {
|
|
|
- item.path = "/pages-mine/pages/partner/partner-home";
|
|
|
- } else {
|
|
|
- item.path = "/pages-mine/pages/partner/partner-status";
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.path = "/pages-mine/pages/partner/partner-status";
|
|
|
- }
|
|
|
-
|
|
|
- uni.navigateTo({
|
|
|
- url: item.path,
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 更新悬浮按钮位置
|
|
|
- onPositionChange(position) {
|
|
|
- this.buttonPosition = position;
|
|
|
- },
|
|
|
-
|
|
|
- // 更新活动按钮位置
|
|
|
- onActivityButtonPositionChange(position) {
|
|
|
- this.activityPosition = position;
|
|
|
- },
|
|
|
-
|
|
|
- // 联系客服
|
|
|
- contactCustomerService() {
|
|
|
- uni.navigateTo({
|
|
|
- url: this.activityInfo.jumpPage,
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 关闭提现进度弹窗
|
|
|
- closeWithdrawalModal() {
|
|
|
- this.$refs.withdrawalRef.handleClose();
|
|
|
- },
|
|
|
-
|
|
|
- confirmWithdrawal(item) {
|
|
|
- uni.$u.http
|
|
|
- .post("/token/user/withdrawConfirm", {
|
|
|
- orderNo: item.orderNo,
|
|
|
- })
|
|
|
- .then((res) => {
|
|
|
- if (res.code === 200) {
|
|
|
- this.handleConfirmReceipt(res.data);
|
|
|
- }
|
|
|
- })
|
|
|
- .catch((err) => {
|
|
|
- uni.showToast({
|
|
|
- title: err.message || "确认失败",
|
|
|
- icon: "none",
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
- //执行微信确认收款操作
|
|
|
- handleConfirmReceipt(data) {
|
|
|
- if (wx.canIUse("requestMerchantTransfer")) {
|
|
|
- wx.requestMerchantTransfer({
|
|
|
- mchId: data.mchId,
|
|
|
- appId: data.appId,
|
|
|
- package: data.packageStr,
|
|
|
- success: (res) => {
|
|
|
- // res.err_msg将在页面展示成功后返回应用时返回ok,并不代表付款成功
|
|
|
- uni.showToast({
|
|
|
- title: "确认收款成功",
|
|
|
- icon: "none",
|
|
|
- });
|
|
|
- this.closeWithdrawalModal();
|
|
|
- // 刷新列表
|
|
|
- this.getWithdrawalOrder();
|
|
|
- },
|
|
|
- fail: (res) => {
|
|
|
- console.log("fail:", res);
|
|
|
- },
|
|
|
- });
|
|
|
- } else {
|
|
|
- wx.showModal({
|
|
|
- content: "你的微信版本过低,请更新至最新版本。",
|
|
|
- showCancel: false,
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- onReady() {
|
|
|
- // 获取屏幕宽度和高度
|
|
|
- uni.getSystemInfo({
|
|
|
- success: (res) => {
|
|
|
- this.screenWidth = res.windowWidth;
|
|
|
- this.screenHeight = res.windowHeight;
|
|
|
- },
|
|
|
- });
|
|
|
-
|
|
|
- this.getActivityStatus();
|
|
|
- },
|
|
|
- onShow() {
|
|
|
- let token = uni.getStorageSync("token");
|
|
|
- if (token) {
|
|
|
- this.getUserInfo();
|
|
|
- this.getWithdrawalOrder();
|
|
|
- }
|
|
|
- },
|
|
|
+ components: {
|
|
|
+ WithdrawalProgress,
|
|
|
+ WithdrawalConfirm,
|
|
|
+ floatingActivity
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ userInfo: {
|
|
|
+ userId: 0,
|
|
|
+ openid: '',
|
|
|
+ imgPath: '',
|
|
|
+ nickName: '这里是微信昵称.',
|
|
|
+ mobile: '',
|
|
|
+ tags: [],
|
|
|
+ accountMoney: 0,
|
|
|
+ couponNum: 0,
|
|
|
+ point: 0,
|
|
|
+ firstAuditNum: 0,
|
|
|
+ pickUpNum: 0,
|
|
|
+ auditNum: 0,
|
|
|
+ payNum: 0,
|
|
|
+ refundNum: 0
|
|
|
+ },
|
|
|
+ orderTypes: [
|
|
|
+ {
|
|
|
+ name: '待初审',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/1.png',
|
|
|
+ badge: 0,
|
|
|
+ key: 'firstAuditNum',
|
|
|
+ path: '/pages-mine/pages/order-page?status=2'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '待取件',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/2.png',
|
|
|
+ badge: 0,
|
|
|
+ key: 'pickUpNum',
|
|
|
+ path: '/pages-mine/pages/order-page?status=3'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '待审核',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/3.png',
|
|
|
+ badge: 0,
|
|
|
+ key: 'auditNum',
|
|
|
+ path: '/pages-mine/pages/order-page?status=8'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '待到款',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/4.png',
|
|
|
+ badge: 0,
|
|
|
+ key: 'payNum',
|
|
|
+ path: '/pages-mine/pages/order-page?status=10'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '申请退回',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/5.png',
|
|
|
+ badge: 0,
|
|
|
+ key: 'refundNum',
|
|
|
+ path: '/pages-mine/pages/apply-return'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ tools: [
|
|
|
+ {
|
|
|
+ name: '消息通知',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t1.png',
|
|
|
+ path: '/pages-mine/pages/notice'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '我的收藏',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t2.png',
|
|
|
+ path: ''
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '我的足迹',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t3.png',
|
|
|
+ path: ''
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '我的地址',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t4.png',
|
|
|
+ path: '/pages-mine/pages/address/list'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '我的优惠券',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t5.png',
|
|
|
+ path: ''
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '联系客服',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t6.png',
|
|
|
+ path: 'link-service'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '意见反馈',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t7.png',
|
|
|
+ path: '/pages-mine/pages/feedback'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '到货提醒',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t8.png',
|
|
|
+ path: '/pages/tools/arrival-notice'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合伙人计划',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t9.png',
|
|
|
+ path: '/pages-mine/pages/partner/partner-rule'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '买卖答疑',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t10.png',
|
|
|
+ path: '/pages-mine/pages/rules-for-sellbooks'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '关于书嗨',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t11.png',
|
|
|
+ path: '/pages-home/pages/about-us'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '我的余额',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t12.png',
|
|
|
+ path: '/pages-mine/pages/wallet'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '用户设置',
|
|
|
+ icon: 'https://shuhi.oss-cn-qingdao.aliyuncs.com/mini/t13.png',
|
|
|
+ path: '/pages-mine/pages/setting'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // 悬浮按钮位置
|
|
|
+ buttonPosition: {
|
|
|
+ left: 'auto',
|
|
|
+ right: 0,
|
|
|
+ bottom: '10%'
|
|
|
+ },
|
|
|
+ // 客服按钮位置
|
|
|
+ activityPosition: {
|
|
|
+ left: 'auto',
|
|
|
+ right: 0,
|
|
|
+ bottom: '25%'
|
|
|
+ },
|
|
|
+ withdrawalOrder: [],
|
|
|
+ // 提现进度弹窗相关
|
|
|
+ showWithdrawalModal: false,
|
|
|
+ currentWithdrawalOrder: {},
|
|
|
+
|
|
|
+ //活动弹窗信息
|
|
|
+ activityInfo: {}
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //获取是否显示活动弹窗
|
|
|
+ getActivityStatus() {
|
|
|
+ uni.$u.http.post('/token/home/activity/dialog').then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.activityInfo = res.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取是否存在待确认提现的订单
|
|
|
+ getWithdrawalOrder() {
|
|
|
+ uni.$u.http.get('/token/user/withdrawWindows').then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.withdrawalOrder = res.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //用户信息
|
|
|
+ handleUpdateUserInfo() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages-mine/pages/setting'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //查看全部订单
|
|
|
+ viewAllOrders() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages-mine/pages/order-page?status=-1'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //跳转订单
|
|
|
+ navigateToOrder(path) {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: path
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //跳转工具
|
|
|
+ navigateToTool(path) {
|
|
|
+ if (!path)
|
|
|
+ return uni.showToast({
|
|
|
+ title: '开发中...',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+
|
|
|
+ if (path == '/pages-mine/pages/partner/partner-rule') {
|
|
|
+ this.getPartnerStatus();
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: path
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 导航到提现确认页面
|
|
|
+ navigateToWithdrawal() {
|
|
|
+ if (this.withdrawalOrder && this.withdrawalOrder.length > 0) {
|
|
|
+ // 显示提现进度弹窗,使用第一个提现订单
|
|
|
+ this.currentWithdrawalOrder = this.withdrawalOrder[0];
|
|
|
+ this.$refs.withdrawalRef.openModal();
|
|
|
+ } else {
|
|
|
+ // 如果没有待确认的提现订单,直接跳转到钱包页面
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages-mine/pages/wallet'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //获取用户信息
|
|
|
+ getUserInfo() {
|
|
|
+ uni.$u.http.get('/token/user/detail').then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.userInfo = res.data;
|
|
|
+ uni.setStorageSync('userInfo', this.userInfo);
|
|
|
+
|
|
|
+ this.orderTypes.forEach((item) => {
|
|
|
+ item.badge = this.userInfo[item.key];
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取合伙人状态
|
|
|
+ getPartnerStatus() {
|
|
|
+ let item = this.tools.find((item) => item.name == '合伙人计划');
|
|
|
+ uni.$u.get('/token/getUserPartnerInfo').then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ let { status } = res.data;
|
|
|
+ if (status == -1 || status == 4) {
|
|
|
+ item.path = '/pages-mine/pages/partner/partner-rule';
|
|
|
+ } else if (status == 1) {
|
|
|
+ item.path = '/pages-mine/pages/partner/partner-home';
|
|
|
+ } else {
|
|
|
+ item.path = '/pages-mine/pages/partner/partner-status';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ item.path = '/pages-mine/pages/partner/partner-status';
|
|
|
+ }
|
|
|
+
|
|
|
+ uni.navigateTo({
|
|
|
+ url: item.path
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 更新悬浮按钮位置
|
|
|
+ onPositionChange(position) {
|
|
|
+ this.buttonPosition = position;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 更新活动按钮位置
|
|
|
+ onActivityButtonPositionChange(position) {
|
|
|
+ this.activityPosition = position;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 联系客服
|
|
|
+ contactCustomerService() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: this.activityInfo.jumpPage
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 关闭提现进度弹窗
|
|
|
+ closeWithdrawalModal() {
|
|
|
+ this.$refs.withdrawalRef.handleClose();
|
|
|
+ },
|
|
|
+
|
|
|
+ confirmWithdrawal(item) {
|
|
|
+ uni.$u.http
|
|
|
+ .post('/token/user/withdrawConfirm', {
|
|
|
+ orderNo: item.orderNo
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.handleConfirmReceipt(res.data);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ uni.showToast({
|
|
|
+ title: err.message || '确认失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //执行微信确认收款操作
|
|
|
+ handleConfirmReceipt(data) {
|
|
|
+ if (wx.canIUse('requestMerchantTransfer')) {
|
|
|
+ wx.requestMerchantTransfer({
|
|
|
+ mchId: data.mchId,
|
|
|
+ appId: data.appId,
|
|
|
+ package: data.packageStr,
|
|
|
+ success: (res) => {
|
|
|
+ // res.err_msg将在页面展示成功后返回应用时返回ok,并不代表付款成功
|
|
|
+ uni.showToast({
|
|
|
+ title: '确认收款成功',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ this.closeWithdrawalModal();
|
|
|
+ // 刷新列表
|
|
|
+ this.getWithdrawalOrder();
|
|
|
+ },
|
|
|
+ fail: (res) => {
|
|
|
+ console.log('fail:', res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ wx.showModal({
|
|
|
+ content: '你的微信版本过低,请更新至最新版本。',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ navigateToCustomerService() {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages-mine/pages/customer-service'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onReady() {
|
|
|
+ // 获取屏幕宽度和高度
|
|
|
+ uni.getSystemInfo({
|
|
|
+ success: (res) => {
|
|
|
+ this.screenWidth = res.windowWidth;
|
|
|
+ this.screenHeight = res.windowHeight;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ this.getActivityStatus();
|
|
|
+ },
|
|
|
+ onShow() {
|
|
|
+ let token = uni.getStorageSync('token');
|
|
|
+ if (token) {
|
|
|
+ this.getUserInfo();
|
|
|
+ this.getWithdrawalOrder();
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.mine-page {
|
|
|
- min-height: 100vh;
|
|
|
- background-color: #f5f5f5;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .link-service {
|
|
|
- background: transparent;
|
|
|
- border: none;
|
|
|
- padding: 0;
|
|
|
- margin: 0;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- line-height: 36rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .user-info {
|
|
|
- background: url("/static/img/bg.png") no-repeat center center;
|
|
|
- background-size: 100% 100%;
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- padding: 20rpx 50rpx 120rpx;
|
|
|
- color: #fff;
|
|
|
- position: relative;
|
|
|
- padding-top: 160rpx;
|
|
|
-
|
|
|
- &::after {
|
|
|
- width: 140%;
|
|
|
- position: absolute;
|
|
|
- left: -20%;
|
|
|
- top: 0;
|
|
|
- z-index: -1;
|
|
|
- content: "";
|
|
|
- border-radius: 0 0 50% 50%;
|
|
|
- background: #fd6954;
|
|
|
- }
|
|
|
-
|
|
|
- .user-header {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 40rpx;
|
|
|
-
|
|
|
- .user-avatar {
|
|
|
- border-radius: 50%;
|
|
|
- margin-right: 20rpx;
|
|
|
- border: 4rpx solid #fff;
|
|
|
- width: 128rpx;
|
|
|
- height: 128rpx;
|
|
|
- overflow: hidden;
|
|
|
- flex-shrink: 0;
|
|
|
- background: #fff;
|
|
|
-
|
|
|
- .avatar {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- border-radius: 50%;
|
|
|
- object-fit: cover;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .user-detail {
|
|
|
- .nickname {
|
|
|
- font-size: 32rpx;
|
|
|
- font-weight: 500;
|
|
|
- margin-bottom: 8rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .user-tag {
|
|
|
- display: inline-block;
|
|
|
- font-size: 22rpx;
|
|
|
- padding: 4rpx 12rpx;
|
|
|
- background: linear-gradient(-90deg, #272321, #4b4542);
|
|
|
- border-radius: 4rpx;
|
|
|
- margin-top: 8rpx;
|
|
|
- margin-right: 10rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .user-data {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- position: relative;
|
|
|
- z-index: 1;
|
|
|
- padding: 0 40rpx;
|
|
|
-
|
|
|
- .data-item {
|
|
|
- position: relative;
|
|
|
- text-align: center;
|
|
|
-
|
|
|
- .amount {
|
|
|
- font-size: 38rpx;
|
|
|
- font-weight: 500;
|
|
|
- margin-bottom: 8rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .label {
|
|
|
- font-size: 24rpx;
|
|
|
- font-weight: 400;
|
|
|
- opacity: 0.9;
|
|
|
- }
|
|
|
-
|
|
|
- .badge {
|
|
|
- position: absolute;
|
|
|
- top: -15rpx;
|
|
|
- right: -120%;
|
|
|
- padding: 0 10rpx;
|
|
|
- font-size: 20rpx;
|
|
|
- line-height: 30rpx;
|
|
|
- height: 30rpx;
|
|
|
- background: #ff8400;
|
|
|
- border-radius: 15rpx 15rpx 15rpx 0rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .order-section {
|
|
|
- margin: -90rpx 30rpx 20rpx;
|
|
|
- background: #fff;
|
|
|
- border-radius: 12rpx;
|
|
|
- padding: 30rpx;
|
|
|
- position: relative;
|
|
|
- z-index: 2;
|
|
|
-
|
|
|
- .section-header {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 30rpx;
|
|
|
-
|
|
|
- .view-all {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- color: #999;
|
|
|
- font-size: 26rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .order-types {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .type-item {
|
|
|
- text-align: center;
|
|
|
- position: relative;
|
|
|
- .badge {
|
|
|
- position: absolute;
|
|
|
- top: -15rpx;
|
|
|
- right: -6px;
|
|
|
- padding: 0 10rpx;
|
|
|
- font-size: 20rpx;
|
|
|
- line-height: 30rpx;
|
|
|
- height: 30rpx;
|
|
|
- background: #f56c6c;
|
|
|
- color: #fff;
|
|
|
- border-radius: 15rpx 15rpx 15rpx 0rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .type-icon {
|
|
|
- width: 60rpx;
|
|
|
- height: 60rpx;
|
|
|
- margin-bottom: 12rpx;
|
|
|
- }
|
|
|
-
|
|
|
- text {
|
|
|
- font-size: 26rpx;
|
|
|
- color: #333;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .tools-section {
|
|
|
- margin: 30rpx;
|
|
|
- background: #fff;
|
|
|
- border-radius: 12rpx;
|
|
|
- padding: 30rpx;
|
|
|
- position: relative;
|
|
|
- z-index: 2;
|
|
|
-
|
|
|
- .section-title {
|
|
|
- font-size: 30rpx;
|
|
|
- font-weight: 500;
|
|
|
- margin-bottom: 30rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .tools-grid {
|
|
|
- display: grid;
|
|
|
- grid-template-columns: repeat(4, 1fr);
|
|
|
- gap: 30rpx;
|
|
|
-
|
|
|
- .tool-item {
|
|
|
- text-align: center;
|
|
|
-
|
|
|
- .tool-icon {
|
|
|
- width: 60rpx;
|
|
|
- height: 60rpx;
|
|
|
- margin-bottom: 12rpx;
|
|
|
- }
|
|
|
-
|
|
|
- text {
|
|
|
- font-size: 24rpx;
|
|
|
- color: #333;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ min-height: 100vh;
|
|
|
+ background-color: #f5f5f5;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .link-service {
|
|
|
+ background: transparent;
|
|
|
+ border: none;
|
|
|
+ padding: 0;
|
|
|
+ margin: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ line-height: 36rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .user-info {
|
|
|
+ background: url('/static/img/bg.png') no-repeat center center;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ padding: 20rpx 50rpx 120rpx;
|
|
|
+ color: #fff;
|
|
|
+ position: relative;
|
|
|
+ padding-top: 160rpx;
|
|
|
+
|
|
|
+ &::after {
|
|
|
+ width: 140%;
|
|
|
+ position: absolute;
|
|
|
+ left: -20%;
|
|
|
+ top: 0;
|
|
|
+ z-index: -1;
|
|
|
+ content: '';
|
|
|
+ border-radius: 0 0 50% 50%;
|
|
|
+ background: #fd6954;
|
|
|
+ }
|
|
|
+
|
|
|
+ .user-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 40rpx;
|
|
|
+
|
|
|
+ .user-avatar {
|
|
|
+ border-radius: 50%;
|
|
|
+ margin-right: 20rpx;
|
|
|
+ border: 4rpx solid #fff;
|
|
|
+ width: 128rpx;
|
|
|
+ height: 128rpx;
|
|
|
+ overflow: hidden;
|
|
|
+ flex-shrink: 0;
|
|
|
+ background: #fff;
|
|
|
+
|
|
|
+ .avatar {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ border-radius: 50%;
|
|
|
+ object-fit: cover;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .user-detail {
|
|
|
+ .nickname {
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-bottom: 8rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .user-tag {
|
|
|
+ display: inline-block;
|
|
|
+ font-size: 22rpx;
|
|
|
+ padding: 4rpx 12rpx;
|
|
|
+ background: linear-gradient(-90deg, #272321, #4b4542);
|
|
|
+ border-radius: 4rpx;
|
|
|
+ margin-top: 8rpx;
|
|
|
+ margin-right: 10rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .user-data {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ position: relative;
|
|
|
+ z-index: 1;
|
|
|
+ padding: 0 40rpx;
|
|
|
+
|
|
|
+ .data-item {
|
|
|
+ position: relative;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .amount {
|
|
|
+ font-size: 38rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-bottom: 8rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .label {
|
|
|
+ font-size: 24rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+
|
|
|
+ .badge {
|
|
|
+ position: absolute;
|
|
|
+ top: -15rpx;
|
|
|
+ right: -120%;
|
|
|
+ padding: 0 10rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ line-height: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+ background: #ff8400;
|
|
|
+ border-radius: 15rpx 15rpx 15rpx 0rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-section {
|
|
|
+ margin: -90rpx 30rpx 20rpx;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 12rpx;
|
|
|
+ padding: 30rpx;
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+
|
|
|
+ .section-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 30rpx;
|
|
|
+
|
|
|
+ .view-all {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ color: #999;
|
|
|
+ font-size: 26rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-types {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ .type-item {
|
|
|
+ text-align: center;
|
|
|
+ position: relative;
|
|
|
+ .badge {
|
|
|
+ position: absolute;
|
|
|
+ top: -15rpx;
|
|
|
+ right: -6px;
|
|
|
+ padding: 0 10rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ line-height: 30rpx;
|
|
|
+ height: 30rpx;
|
|
|
+ background: #f56c6c;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 15rpx 15rpx 15rpx 0rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .type-icon {
|
|
|
+ width: 60rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ margin-bottom: 12rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ text {
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .tools-section {
|
|
|
+ margin: 30rpx;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 12rpx;
|
|
|
+ padding: 30rpx;
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+
|
|
|
+ .section-title {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-bottom: 30rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tools-grid {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(4, 1fr);
|
|
|
+ gap: 30rpx;
|
|
|
+
|
|
|
+ .tool-item {
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .tool-icon {
|
|
|
+ width: 60rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ margin-bottom: 12rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ text {
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|