|
|
@@ -0,0 +1,137 @@
|
|
|
+<template>
|
|
|
+ <view class="page">
|
|
|
+ <view class="header">
|
|
|
+ <text class="title">想从哪里开始?</text>
|
|
|
+ <text class="desc">选一个最符合你当下状态的方式,我们来为你定制专属的健康方案</text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 随便看看 -->
|
|
|
+ <view class="card" @click="handleA">
|
|
|
+ <view class="card-icon" style="background:rgba(249,115,22,0.12)">
|
|
|
+ <text class="icon-text">🎯</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-body">
|
|
|
+ <text class="card-title">随便看看</text>
|
|
|
+ <text class="card-desc">先到处逛逛,了解浠艾福和各式服务</text>
|
|
|
+ </view>
|
|
|
+ <text class="card-arrow">›</text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 先了解自己 -->
|
|
|
+ <view class="card" @click="handleB">
|
|
|
+ <view class="card-icon" style="background:rgba(14,165,233,0.12)">
|
|
|
+ <text class="icon-text">📋</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-body">
|
|
|
+ <text class="card-title">先了解自己</text>
|
|
|
+ <text class="card-desc">完成智能问卷,系统为你推荐适合的五维方向</text>
|
|
|
+ </view>
|
|
|
+ <text class="card-arrow">›</text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 解决问题 -->
|
|
|
+ <view class="card" @click="handleC">
|
|
|
+ <view class="card-icon" style="background:rgba(16,185,129,0.12)">
|
|
|
+ <text class="icon-text">🔍</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-body">
|
|
|
+ <text class="card-title">解决问题</text>
|
|
|
+ <text class="card-desc">选择你关心的问题,获得完整解决方案</text>
|
|
|
+ </view>
|
|
|
+ <text class="card-arrow">›</text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 以后再说 -->
|
|
|
+ <view class="skip-btn" @click="handleSkip">
|
|
|
+ <text class="skip-text">以后再说</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getUserIntent, chooseUserIntent, skipUserIntent } from '../../utils/api.js'
|
|
|
+
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ this.checkExistingIntent()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ checkExistingIntent() {
|
|
|
+ var self = this
|
|
|
+ getUserIntent().then(function(res) {
|
|
|
+ if (res.code === 200 && res.data && res.data.intentType) {
|
|
|
+ var intent = res.data
|
|
|
+ if (intent.intentType === 'A') {
|
|
|
+ uni.navigateBack({ delta: 1 })
|
|
|
+ } else if (intent.intentType === 'B') {
|
|
|
+ uni.navigateTo({ url: '/pages/health/ai-questionnaire' })
|
|
|
+ } else if (intent.intentType === 'C') {
|
|
|
+ uni.navigateTo({ url: '/pages/problem/flow-intro?code=' + (intent.problemDomainCode || '') })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).catch(function() {})
|
|
|
+ },
|
|
|
+ handleA() {
|
|
|
+ var self = this
|
|
|
+ self.loading = true
|
|
|
+ chooseUserIntent({ intentType: 'A' }).then(function(res) {
|
|
|
+ self.loading = false
|
|
|
+ if (res.code === 200) {
|
|
|
+ uni.navigateBack({ delta: 1 })
|
|
|
+ }
|
|
|
+ }).catch(function() {
|
|
|
+ self.loading = false
|
|
|
+ uni.navigateBack({ delta: 1 })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleB() {
|
|
|
+ uni.navigateTo({ url: '/pages/health/ai-questionnaire' })
|
|
|
+ },
|
|
|
+ handleC() {
|
|
|
+ uni.navigateTo({ url: '/pages/problem/domain-list' })
|
|
|
+ },
|
|
|
+ handleSkip() {
|
|
|
+ var self = this
|
|
|
+ self.loading = true
|
|
|
+ skipUserIntent().then(function(res) {
|
|
|
+ self.loading = false
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
+ var skipCount = res.data.skipCount || 0
|
|
|
+ if (skipCount >= 3) {
|
|
|
+ uni.setStorageSync('intent_skip_max', '1')
|
|
|
+ }
|
|
|
+ uni.setStorageSync('intent_skipped_at', Date.now())
|
|
|
+ uni.showToast({ title: '已记录,下次再来吧', icon: 'none' })
|
|
|
+ setTimeout(function() { uni.navigateBack({ delta: 1 }) }, 800)
|
|
|
+ }
|
|
|
+ }).catch(function() {
|
|
|
+ self.loading = false
|
|
|
+ uni.setStorageSync('intent_skipped_at', Date.now())
|
|
|
+ uni.navigateBack({ delta: 1 })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+.page { min-height: 100vh; background: #F8F8F8; padding: 0 32rpx 48rpx; }
|
|
|
+.header { margin-top: 64rpx; margin-bottom: 40rpx; }
|
|
|
+.title { font-size: 40rpx; font-weight: bold; color: #1a1a1a; display: block; line-height: 1.3; }
|
|
|
+.desc { font-size: 26rpx; color: #888; margin-top: 12rpx; display: block; line-height: 1.5; }
|
|
|
+.card { display: flex; align-items: center; background: #fff; border-radius: 24rpx; padding: 32rpx 28rpx; margin-bottom: 20rpx; box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.05); }
|
|
|
+.card:active { opacity: 0.85; }
|
|
|
+.card-icon { width: 88rpx; height: 88rpx; border-radius: 20rpx; display: flex; align-items: center; justify-content: center; margin-right: 24rpx; flex-shrink: 0; }
|
|
|
+.icon-text { font-size: 40rpx; }
|
|
|
+.card-body { flex: 1; min-width: 0; }
|
|
|
+.card-title { font-size: 30rpx; font-weight: 600; color: #1a1a1a; display: block; }
|
|
|
+.card-desc { font-size: 24rpx; color: #888; margin-top: 6rpx; display: block; line-height: 1.4; }
|
|
|
+.card-arrow { font-size: 32rpx; color: #ccc; flex-shrink: 0; }
|
|
|
+.skip-btn { margin-top: 48rpx; text-align: center; padding: 24rpx 0; }
|
|
|
+.skip-text { font-size: 26rpx; color: #aaa; }
|
|
|
+</style>
|