244 lines
5.3 KiB
Vue
244 lines
5.3 KiB
Vue
![]() |
<!--
|
|||
|
@name: index
|
|||
|
@author: kahu4
|
|||
|
@date: 2024-01-17 11:12
|
|||
|
@description:我的资料
|
|||
|
@update: 2024-01-17 11:12
|
|||
|
-->
|
|||
|
<script setup>
|
|||
|
import Header from '@/components/Header/index.vue'
|
|||
|
import { useScroll } from "@/hooks/useScroll";
|
|||
|
import { onPageScroll } from "@dcloudio/uni-app";
|
|||
|
import { useMainStore } from "@/store/store";
|
|||
|
import { storeToRefs } from "pinia";
|
|||
|
import { checkIsDistribution } from "@/api/distribution";
|
|||
|
import { ref } from "vue";
|
|||
|
import { useJump } from "@/hooks/useJump";
|
|||
|
|
|||
|
const {goDistributionApplyFor} = useJump();
|
|||
|
|
|||
|
const {scrollTop} = useScroll()
|
|||
|
onPageScroll(() => {
|
|||
|
})
|
|||
|
const mainStore = useMainStore();
|
|||
|
const {user, areaList} = storeToRefs(mainStore);
|
|||
|
|
|||
|
const distributionDetailsInfo = ref({})
|
|||
|
|
|||
|
async function doGetDistributionDetails() {
|
|||
|
distributionDetailsInfo.value = await checkIsDistribution();
|
|||
|
}
|
|||
|
|
|||
|
function doUpdate() {
|
|||
|
goDistributionApplyFor({update: true})
|
|||
|
}
|
|||
|
|
|||
|
doGetDistributionDetails()
|
|||
|
</script>
|
|||
|
|
|||
|
<template>
|
|||
|
<view
|
|||
|
class="apply-for"
|
|||
|
v-if="user">
|
|||
|
<Header
|
|||
|
:scroll-top="scrollTop"
|
|||
|
system-bar-area-bg="#fff"
|
|||
|
header-area-bg="#fff">我的资料
|
|||
|
</Header>
|
|||
|
<view
|
|||
|
class="inner"
|
|||
|
v-if="distributionDetailsInfo.realName">
|
|||
|
<view class="bg"></view>
|
|||
|
<!-- userinfo -->
|
|||
|
<view class="userinfo flex flex-column flex-ai__center flex-jc__center">
|
|||
|
<image :src="user.avatar" />
|
|||
|
<text class="username">{{ user.nickname }}</text>
|
|||
|
</view>
|
|||
|
<!-- card -->
|
|||
|
<view class="apply-card">
|
|||
|
<!-- form -->
|
|||
|
<view class="form">
|
|||
|
<view class="row">
|
|||
|
<text class="label">
|
|||
|
真实姓名
|
|||
|
</text>
|
|||
|
<div class="right">
|
|||
|
<input
|
|||
|
type="text"
|
|||
|
disabled
|
|||
|
v-model="distributionDetailsInfo.realName"
|
|||
|
placeholder="请输入真实姓名" />
|
|||
|
</div>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<text class="label">
|
|||
|
现居城市
|
|||
|
</text>
|
|||
|
<div
|
|||
|
class="right flex flex-jc__sb flex-ai__center">
|
|||
|
<text class="placeholder">{{ distributionDetailsInfo.address || '-' }}</text>
|
|||
|
</div>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<text class="label">
|
|||
|
申请原因
|
|||
|
</text>
|
|||
|
<div class="right">
|
|||
|
<input
|
|||
|
disabled
|
|||
|
v-model="distributionDetailsInfo.reason"
|
|||
|
type="text"
|
|||
|
placeholder="请输入申请原因" />
|
|||
|
</div>
|
|||
|
</view>
|
|||
|
<view class="submit">
|
|||
|
<view
|
|||
|
class="button animation-button"
|
|||
|
@click="doUpdate">修改信息
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<style
|
|||
|
scoped
|
|||
|
lang="scss">
|
|||
|
.apply-for {
|
|||
|
width: 100%;
|
|||
|
position: relative;
|
|||
|
|
|||
|
.header {
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
|
|||
|
.inner {
|
|||
|
position: relative;
|
|||
|
|
|||
|
.bg {
|
|||
|
position: absolute;
|
|||
|
top: 0;
|
|||
|
left: 0;
|
|||
|
width: 0;
|
|||
|
aspect-ratio: 750/460;
|
|||
|
background: #333333;
|
|||
|
z-index: 0;
|
|||
|
}
|
|||
|
|
|||
|
.userinfo {
|
|||
|
position: relative;
|
|||
|
z-index: 1;
|
|||
|
width: 100%;
|
|||
|
@include usePadding(0, 72);
|
|||
|
|
|||
|
image {
|
|||
|
width: 120rpx;
|
|||
|
height: 120rpx;
|
|||
|
border-radius: 50%;
|
|||
|
border: 4rpx solid #fff;
|
|||
|
}
|
|||
|
|
|||
|
.username {
|
|||
|
font-size: 34rpx;
|
|||
|
margin-top: 30rpx;
|
|||
|
font-weight: bold;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
.apply-card {
|
|||
|
position: relative;
|
|||
|
z-index: 1;
|
|||
|
background: #f6f6f6;
|
|||
|
border-radius: 30rpx;
|
|||
|
@include usePadding(34, 34);
|
|||
|
|
|||
|
.form {
|
|||
|
width: 100%;
|
|||
|
background: #fff;
|
|||
|
@include usePadding(32, 0);
|
|||
|
border-radius: 30rpx;
|
|||
|
|
|||
|
.row {
|
|||
|
@include useFlex(flex-start, center);
|
|||
|
|
|||
|
|
|||
|
.label {
|
|||
|
font-size: 28rpx;
|
|||
|
margin-right: 24rpx;
|
|||
|
}
|
|||
|
|
|||
|
.right {
|
|||
|
@include usePadding(0, 32);
|
|||
|
border-bottom: 1rpx solid #f6f6f6;
|
|||
|
flex-grow: 1;
|
|||
|
|
|||
|
.placeholder {
|
|||
|
color: #808080;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.submit {
|
|||
|
width: 80%;
|
|||
|
position: fixed;
|
|||
|
bottom: 50rpx;
|
|||
|
@include useFlex(center, center, column);
|
|||
|
|
|||
|
|
|||
|
.tips {
|
|||
|
color: $tips-color;
|
|||
|
font-size: 24rpx;
|
|||
|
}
|
|||
|
|
|||
|
.button {
|
|||
|
width: 100%;
|
|||
|
margin-top: 30rpx;
|
|||
|
height: 80rpx;
|
|||
|
@include useFlex(center, center);
|
|||
|
border-radius: 15rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.state {
|
|||
|
width: 100%;
|
|||
|
@include useFlex(center, center, column);
|
|||
|
@include usePadding(0, 50);
|
|||
|
|
|||
|
image {
|
|||
|
width: 170rpx;
|
|||
|
height: 170rpx;
|
|||
|
}
|
|||
|
|
|||
|
.title {
|
|||
|
font-size: 28rpx;
|
|||
|
margin-bottom: 32rpx;
|
|||
|
}
|
|||
|
|
|||
|
.btn {
|
|||
|
width: 230rpx;
|
|||
|
height: 80rpx;
|
|||
|
background: #333333;
|
|||
|
color: #fff;
|
|||
|
@include useFlex(center, center, column);
|
|||
|
border-radius: 15rpx;
|
|||
|
margin: 0 15rpx;
|
|||
|
}
|
|||
|
|
|||
|
.line-btn {
|
|||
|
background: #fff;
|
|||
|
border: 1rpx solid #333333;
|
|||
|
color: #333;
|
|||
|
box-sizing: border-box;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
</style>
|