<template>
|
<ContentScrollView :paddingH="false">
|
<nut-form :model-value="form" ref="formRef">
|
<nut-form-item label="身高:" class="bole-form-item" prop="height">
|
<NumberInput v-model="form.height" placeholder="请输入">
|
<template #right>cm</template>
|
</NumberInput>
|
</nut-form-item>
|
<nut-form-item label="体重:" class="bole-form-item" prop="weight">
|
<NumberInput v-model="form.weight" placeholder="请输入">
|
<template #right>kg</template>
|
</NumberInput>
|
</nut-form-item>
|
<nut-form-item
|
label="个人生活照(单张照片不超过5m,最多不超过6张):"
|
class="bole-form-item person-photo"
|
prop="photo"
|
label-position="top"
|
>
|
<Uploader v-model:file-list="form.lifeCircleImgUrlList" :maximum="6" class="bole-uploader">
|
</Uploader>
|
</nut-form-item>
|
</nut-form>
|
</ContentScrollView>
|
<PageFooter>
|
<PageFooterBtn type="primary" @click="handleConfirm">保存</PageFooterBtn>
|
</PageFooter>
|
</template>
|
|
<script setup lang="ts">
|
import { goBack } from '@/utils';
|
import { NumberInput } from '@12333/components';
|
import * as userResumeServices from '@12333/services/api/userResume';
|
import { convertApiPath2Url, Message } from '@12333/utils';
|
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
|
import { useQuery } from '@tanstack/vue-query';
|
|
defineOptions({
|
name: 'InnerPage',
|
});
|
|
const {
|
isLoading,
|
isError,
|
data: detail,
|
refetch,
|
} = useQuery({
|
queryKey: ['userResumeServices/getUserResumeDetailInfo'],
|
queryFn: async () => {
|
return await userResumeServices.getUserResumeDetailInfo({
|
showLoading: false,
|
});
|
},
|
placeholderData: () => ({} as API.UserResumeDetailInfoOutput),
|
onSuccess(data) {
|
form.height = data.height;
|
form.weight = data.weight;
|
form.lifeCircleImgUrlList = data.lifeCircleImgUrlList?.length
|
? data.lifeCircleImgUrlList.map((x) => convertApiPath2Url(x))
|
: [];
|
},
|
});
|
|
const form = reactive({
|
height: '',
|
weight: '',
|
lifeCircleImgUrlList: [] as FileItem[],
|
});
|
|
async function handleConfirm() {
|
try {
|
let params: API.SaveUserResumeDetailInfoInput = {
|
weight: form.weight,
|
height: form.weight,
|
lifeCircleImgUrlList: form.lifeCircleImgUrlList?.length
|
? form.lifeCircleImgUrlList.map((x) => x.url)
|
: [],
|
};
|
let res = await userResumeServices.saveUserResumeDetailInfo(params);
|
if (res) {
|
Message.success('保存成功', {
|
onClosed() {
|
goBack();
|
},
|
});
|
}
|
} catch (error) {}
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.mineDetailedInfo-page-wrapper {
|
.person-photo {
|
.nut-form-item__label {
|
padding-right: 0;
|
}
|
}
|
|
.nut-form .nut-cell.bole-form-item:not(.alignTop),
|
page .nut-form .nut-cell.bole-form-item:not(.alignTop) {
|
align-items: flex-start !important;
|
}
|
}
|
</style>
|