feat: bug fix
@@ -25,13 +25,13 @@
|
||||
"path": "pages/index/custom",
|
||||
"aliasPath": "/",
|
||||
"style": {
|
||||
"navigationBarTitleText": "自定义首页",
|
||||
"navigationBarTitleText": "美学诊断",
|
||||
"enablePullDownRefresh": true
|
||||
},
|
||||
"meta": {
|
||||
"auth": false,
|
||||
"sync": true,
|
||||
"title": "自定义首页",
|
||||
"title": "美学诊断",
|
||||
"group": "商城"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,87 +1,89 @@
|
||||
<template>
|
||||
<view class="questions">
|
||||
<view class="question-item" v-for="(item, index) in options" :key="index">
|
||||
<view class="title">{{ item.tip }}</view>
|
||||
|
||||
<view class="options">
|
||||
<view
|
||||
class="option-item"
|
||||
@tap="onTap(v, item.key, item.multiply)"
|
||||
v-for="v in item.options"
|
||||
:key="v.image"
|
||||
>
|
||||
<image
|
||||
:src="v.female"
|
||||
mode="widthFix"
|
||||
class="image"
|
||||
:class="{
|
||||
selected: item.multiply
|
||||
? form[item.key].includes(v.label)
|
||||
: form[item.key] === v.label,
|
||||
}"
|
||||
/>
|
||||
|
||||
<view class="tip">{{ v.label }}</view>
|
||||
<s-layout :bgStyle="{ color: '#FFF' }" title="">
|
||||
<view class="questions">
|
||||
<view class="question-item" v-for="(item, index) in options" :key="index">
|
||||
<view class="title">{{ item.tip }}</view>
|
||||
|
||||
<view class="options">
|
||||
<view
|
||||
class="circle-checkbox"
|
||||
:style="{
|
||||
background: (
|
||||
item.multiply ? form[item.key].includes(v.label) : form[item.key] === v.label
|
||||
)
|
||||
? 'rgba(0, 0, 0, 0.8)'
|
||||
: 'rgba(0, 0, 0, 0.3)',
|
||||
}"
|
||||
class="option-item"
|
||||
@tap="onTap(v, item.key, item.multiply)"
|
||||
v-for="v in item.options"
|
||||
:key="v.image"
|
||||
>
|
||||
<image
|
||||
:src="v.female"
|
||||
mode="widthFix"
|
||||
class="image"
|
||||
:class="{
|
||||
selected: item.multiply
|
||||
? form[item.key].includes(v.label)
|
||||
: form[item.key] === v.label,
|
||||
}"
|
||||
/>
|
||||
|
||||
<view class="tip">{{ v.label }}</view>
|
||||
|
||||
<view
|
||||
class="checkmark"
|
||||
v-show="item.multiply ? form[item.key].includes(v.label) : form[item.key] === v.label"
|
||||
class="circle-checkbox"
|
||||
:style="{
|
||||
background: (
|
||||
item.multiply ? form[item.key].includes(v.label) : form[item.key] === v.label
|
||||
)
|
||||
? 'rgba(0, 0, 0, 0.8)'
|
||||
: 'rgba(0, 0, 0, 0.3)',
|
||||
}"
|
||||
>
|
||||
<image
|
||||
src="https://oss.yz.zglvling.com/user/image/2025-07-23/1753234211808517.png"
|
||||
mode="aspectFill"
|
||||
class="img-1"
|
||||
/>
|
||||
<view
|
||||
class="checkmark"
|
||||
v-show="item.multiply ? form[item.key].includes(v.label) : form[item.key] === v.label"
|
||||
>
|
||||
<image
|
||||
src="https://oss.yz.zglvling.com/user/image/2025-07-23/1753234211808517.png"
|
||||
mode="aspectFill"
|
||||
class="img-1"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="btn-bottom">
|
||||
<button class="next-btn" @tap="nextStep"> 下一步 </button>
|
||||
<view class="btn-bottom">
|
||||
<button class="next-btn" @tap="nextStep"> 下一步 </button>
|
||||
|
||||
<uni-file-picker
|
||||
v-if="isHideUploadBtn"
|
||||
:auto-upload="false"
|
||||
:del-icon="false"
|
||||
:disable-preview="true"
|
||||
sizeType="['original']"
|
||||
class="custom-upload"
|
||||
:sourceType="['album', 'camera']"
|
||||
limit="1"
|
||||
mode="grid"
|
||||
@select="selectPic"
|
||||
/>
|
||||
</view>
|
||||
<uni-file-picker
|
||||
v-if="isHideUploadBtn"
|
||||
:auto-upload="false"
|
||||
:del-icon="false"
|
||||
:disable-preview="true"
|
||||
sizeType="['original']"
|
||||
class="custom-upload"
|
||||
:sourceType="['album', 'camera']"
|
||||
limit="1"
|
||||
mode="grid"
|
||||
@select="selectPic"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<div class="dialog" v-if="false">
|
||||
<div class="dialog-main">
|
||||
<div class="next-input">
|
||||
<uni-file-picker
|
||||
:auto-upload="false"
|
||||
:del-icon="false"
|
||||
:disable-preview="true"
|
||||
sizeType="['original']"
|
||||
class="upload"
|
||||
limit="1"
|
||||
mode="grid"
|
||||
>选择选择选择选择选择选择选择选择
|
||||
</uni-file-picker>
|
||||
<div class="dialog" v-if="false">
|
||||
<div class="dialog-main">
|
||||
<div class="next-input">
|
||||
<uni-file-picker
|
||||
:auto-upload="false"
|
||||
:del-icon="false"
|
||||
:disable-preview="true"
|
||||
sizeType="['original']"
|
||||
class="upload"
|
||||
limit="1"
|
||||
mode="grid"
|
||||
>选择选择选择选择选择选择选择选择
|
||||
</uni-file-picker>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</view>
|
||||
</s-layout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -1,84 +1,86 @@
|
||||
<template>
|
||||
<view class="base-info">
|
||||
<view class="title">
|
||||
<view>请输入并核对信息</view>
|
||||
<view>便于AI算法优化</view>
|
||||
</view>
|
||||
<view class="sub-title">我们会保障您的个人信息安全,请放心填写</view>
|
||||
<s-layout :bgStyle="{ color: '#FFF' }" title="">
|
||||
<view class="base-info">
|
||||
<view class="title">
|
||||
<view>请输入并核对信息</view>
|
||||
<view>便于AI算法优化</view>
|
||||
</view>
|
||||
<view class="sub-title">我们会保障您的个人信息安全,请放心填写</view>
|
||||
|
||||
<view class="baseinfo">基本信息</view>
|
||||
<view class="baseinfo">基本信息</view>
|
||||
|
||||
<view class="form">
|
||||
<view class="form-item">
|
||||
<view class="label">性别</view>
|
||||
<view class="form">
|
||||
<view class="form-item">
|
||||
<view class="label">性别</view>
|
||||
|
||||
<view class="sex-group">
|
||||
<view :class="{ active: form.sex === '男' }" class="sex-btn" @tap="onTap('sex', '男')"
|
||||
>男</view
|
||||
>
|
||||
<view :class="{ active: form.sex === '女' }" class="sex-btn" @tap="onTap('sex', '女')"
|
||||
>女</view
|
||||
>
|
||||
<view class="sex-group">
|
||||
<view :class="{ active: form.sex === '男' }" class="sex-btn" @tap="onTap('sex', '男')"
|
||||
>男</view
|
||||
>
|
||||
<view :class="{ active: form.sex === '女' }" class="sex-btn" @tap="onTap('sex', '女')"
|
||||
>女</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">出生日期</view>
|
||||
<!-- <view class="tip">请输入实际年龄</view> -->
|
||||
<view class="tip">
|
||||
<picker mode="date" @change="onAgeChange" start="1900-01-01" end="2052-12-31">
|
||||
<view class="tip">{{ form.birthday || '请输入实际年龄' }}</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">身高(cm)</view>
|
||||
<!-- <view class="tip">请输入身高</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入身高"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.height"
|
||||
@input="(e) => onTap('height', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="number"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">体重(KG)</view>
|
||||
<!-- <view class="tip">请输入体重</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入体重"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.weight"
|
||||
@input="(e) => onTap('weight', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="number"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">职业</view>
|
||||
<!-- <view class="tip">请输入职业</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入职业"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.work"
|
||||
@input="(e) => onTap('work', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="text"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">出生日期</view>
|
||||
<!-- <view class="tip">请输入实际年龄</view> -->
|
||||
<view class="tip">
|
||||
<picker mode="date" @change="onAgeChange" start="1900-01-01" end="2052-12-31">
|
||||
<view class="tip">{{ form.birthday || '请输入实际年龄' }}</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">身高(cm)</view>
|
||||
<!-- <view class="tip">请输入身高</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入身高"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.height"
|
||||
@input="(e) => onTap('height', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="number"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">体重(KG)</view>
|
||||
<!-- <view class="tip">请输入体重</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入体重"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.weight"
|
||||
@input="(e) => onTap('weight', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="number"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="form-item">
|
||||
<view class="label">职业</view>
|
||||
<!-- <view class="tip">请输入职业</view> -->
|
||||
<input
|
||||
class="tip"
|
||||
placeholder="请输入职业"
|
||||
placeholder-class="custom-input-ph"
|
||||
:value="form.work"
|
||||
@input="(e) => onTap('work', e.detail.value)"
|
||||
style="width: 80px"
|
||||
type="text"
|
||||
/>
|
||||
<view class="btn-bottom">
|
||||
<button class="next-btn" @tap="nextStep">下一步</button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="btn-bottom">
|
||||
<button class="next-btn" @tap="nextStep">下一步</button>
|
||||
</view>
|
||||
</view>
|
||||
</s-layout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="index">
|
||||
<image
|
||||
v-for="i in 10"
|
||||
v-for="i in 30"
|
||||
:key="i"
|
||||
:src="`/static/index/image_${i}.jpeg`"
|
||||
mode="widthFix"
|
||||
@@ -52,6 +52,7 @@
|
||||
background-color: #0d232c;
|
||||
color: white;
|
||||
font-size: 32rpx;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,39 @@
|
||||
<template>
|
||||
<view style="overflow-x: hidden; font-size: 0">
|
||||
|
||||
<img v-if="isInPptr" src="/static/header.png" style="width: 100%;display: block;margin-bottom: -138rpx;" />
|
||||
|
||||
<view id="headerBox">
|
||||
<!-- <Header v-if="!!userFaceInfo" :userFaceInfo="userFaceInfo" /> -->
|
||||
<Header v-if="collect" :userFaceInfo="collect" />
|
||||
|
||||
<view class="download" @click="openEmailDialog">
|
||||
<view class="download-left">
|
||||
<img src="/static/pdf-icon.png" class="pdf-icon" />
|
||||
</view>
|
||||
<view class="download-center">输入邮件地址获取PDF报告</view>
|
||||
|
||||
<view class="download-right">确定</view>
|
||||
</view>
|
||||
|
||||
<view class="report">
|
||||
<view class="report-title"> 美学诊断报告 </view>
|
||||
<view class="report-title-en"> FD Aesthetic Diagnosis Report </view>
|
||||
</view>
|
||||
</view>
|
||||
<view :class="classFixed" style="width: 100%">
|
||||
|
||||
|
||||
<view style="display: block;">
|
||||
<img src="/static/nav-1.png" style="width: 100%;display: block;" />
|
||||
<img src="/static/nav-2.png" style="width: 100%;display: block;" />
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view :class="classFixed" style="width: 100%" v-if="!isInPptr">
|
||||
<Tabs :tabs="tabsList" :activeTab="activeTab" @update:activeTab="onTabChange"> </Tabs>
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="content"
|
||||
:style="{
|
||||
@@ -324,9 +346,9 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="btn-bottom" v-if="collect">
|
||||
<!-- <view class="btn-bottom" v-if="collect">
|
||||
<button class="next-btn" @click="openEmailDialog">发送到邮件</button>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!--
|
||||
<view class="m-dialog" v-if="dialog.visible">
|
||||
@@ -398,7 +420,12 @@
|
||||
|
||||
const collect = ref(null);
|
||||
|
||||
const isInPptr = ref(false);
|
||||
|
||||
onLoad((options) => {
|
||||
|
||||
isInPptr.value = options?.isInPptr == '1'
|
||||
|
||||
uni.setStorageSync('token', options?.token ?? '92d2805a85ca422e90dd7d50eef49a85');
|
||||
console.log('🚀 ~ URL上的token ~ options?.token: ', options?.token);
|
||||
|
||||
@@ -410,7 +437,7 @@
|
||||
const { data } = JSON.parse(res2.result[0].thridResp);
|
||||
|
||||
const target = Object.assign({}, JSON.parse(res1.data.dataJson), data.face_figure, {
|
||||
avatar_img_url: res3.data.avatar,
|
||||
avatar_img_url: res3.data.avatar || 'https://puton.huimeimeta.com/imgs/default_avatar.png',
|
||||
firstImageUrl,
|
||||
secondImageUrl,
|
||||
thirdImageUrl
|
||||
@@ -419,6 +446,8 @@
|
||||
target.gender = target.sex;
|
||||
collect.value = target;
|
||||
|
||||
// collect.value.avatar = collect.value.avatar || 'https://puton.huimeimeta.com/imgs/default_avatar.png'
|
||||
|
||||
console.log('collect.value: ', collect.value);
|
||||
});
|
||||
});
|
||||
@@ -653,9 +682,6 @@
|
||||
params.text = styleText(customKey);
|
||||
}
|
||||
|
||||
|
||||
console.log('lllllllllllllllllllllll')
|
||||
|
||||
praiseTextApi(params).then((res) => {
|
||||
console.log('res: vvvvvvvvvvvvvvvvvvvv-----------oooooooooooo', res);
|
||||
// tabType
|
||||
@@ -928,7 +954,7 @@
|
||||
|
||||
const data = {
|
||||
timeout: 100 * 1000,
|
||||
url: window.location.href,
|
||||
url: window.location.href+'&isInPptr=1',
|
||||
email: emailVal
|
||||
}
|
||||
|
||||
@@ -1405,6 +1431,47 @@
|
||||
</style>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.download {
|
||||
background-color: #D9D9D9;
|
||||
height: 128rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
color: #fff;
|
||||
padding: 0 24rpx;
|
||||
|
||||
.download-left {
|
||||
|
||||
|
||||
.pdf-icon {
|
||||
width: 102rpx;
|
||||
height: 102rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.download-center {
|
||||
flex: 1;
|
||||
align-self: stretch;
|
||||
color: #979797;
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.download-right {
|
||||
width: 150rpx;
|
||||
height: 80rpx;
|
||||
background-color: #000;
|
||||
font-size: 28rpx;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-bottom {
|
||||
margin-top: 20rpx;
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
.operating {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 200rpx;
|
||||
margin-top: 150rpx;
|
||||
padding: 0 20rpx;
|
||||
margin-bottom: 200rpx;
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 2.0 KiB |