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>
|