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