|
|
@@ -53,7 +53,10 @@
|
|
|
<!-- 登录后:家庭关系(行维度核心) -->
|
|
|
<view class="section" v-if="isLoggedIn">
|
|
|
<view class="section-header">
|
|
|
- <text class="section-title">家庭关系</text>
|
|
|
+ <view class="section-title-wrap">
|
|
|
+ <text class="help-icon" @tap="showHelp('家庭关系', '了解每位家人的关系质量,改善沟通方式。点击家人节点,查看关系详情。')">?</text>
|
|
|
+ <text class="section-title">家庭关系</text>
|
|
|
+ </view>
|
|
|
<text class="section-sub">了解每位家人的关系质量,改善沟通方式</text>
|
|
|
<text class="section-sub">点击家人节点,查看关系详情</text>
|
|
|
</view>
|
|
|
@@ -69,11 +72,14 @@
|
|
|
<!-- 登录后:章鱼图(关键人拓展) -->
|
|
|
<view class="section" v-if="isLoggedIn">
|
|
|
<view class="section-header">
|
|
|
- <view>
|
|
|
- <text class="section-title">🐙 章鱼图</text>
|
|
|
- <text class="section-sub">从成效出发,挖掘关键人,画出拓展路径</text>
|
|
|
+ <view class="section-title-wrap">
|
|
|
+ <text class="help-icon" @tap="showHelp('章鱼图', '从成效出发,挖掘关键人,画出拓展路径。记录感恩时刻,建立有温度的人脉网络。')">?</text>
|
|
|
+ <view>
|
|
|
+ <text class="section-title">🐙 章鱼图</text>
|
|
|
+ <text class="section-sub">从成效出发,挖掘关键人,画出拓展路径</text>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <text class="section-link" @tap="goOctopusAddEffect">+ 记录成效</text>
|
|
|
+ <text class="section-link section-link-octopus" @tap="goOctopusEffectsList">+ 感恩记录</text>
|
|
|
</view>
|
|
|
<OctopusDiagram
|
|
|
ref="octopusDiagram"
|
|
|
@@ -90,11 +96,14 @@
|
|
|
<!-- 登录后:珍珠图(我有什么) -->
|
|
|
<view class="section" v-if="isLoggedIn">
|
|
|
<view class="section-header">
|
|
|
- <view>
|
|
|
- <text class="section-title">🫧 珍珠图</text>
|
|
|
- <text class="section-sub">把可调用的资源串成珍珠项链——盘点我有什么</text>
|
|
|
+ <view class="section-title-wrap">
|
|
|
+ <text class="help-icon" @tap="showHelp('珍珠图', '把可调用的资源串成珍珠项链——盘点我有什么。登记人脉、资源、信息缺口,画出一条清晰的成长珍珠链。')">?</text>
|
|
|
+ <view>
|
|
|
+ <text class="section-title">🫧 珍珠图</text>
|
|
|
+ <text class="section-sub">把可调用的资源串成珍珠项链——盘点我有什么</text>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <text class="section-link" @tap="goPearlAddResource">+ 登记</text>
|
|
|
+ <text class="section-link section-link-pearl" @tap="goPearlAddResource">+ 登记</text>
|
|
|
</view>
|
|
|
<PearlDiagram
|
|
|
ref="pearlDiagram"
|
|
|
@@ -109,10 +118,14 @@
|
|
|
<!-- 登录后:能力图(谁会什么) -->
|
|
|
<view class="section" v-if="isLoggedIn">
|
|
|
<view class="section-header">
|
|
|
- <view>
|
|
|
- <text class="section-title">💡 能力图</text>
|
|
|
- <text class="section-sub">身边藏着什么技能——谁有能力帮到你</text>
|
|
|
+ <view class="section-title-wrap">
|
|
|
+ <text class="help-icon" @tap="showHelp('能力图', '身边藏着什么技能——谁有能力帮到你。记录技能类帮助后,这里会画出大家的能力图谱。')">?</text>
|
|
|
+ <view>
|
|
|
+ <text class="section-title">💡 能力图</text>
|
|
|
+ <text class="section-sub">身边藏着什么技能——谁有能力帮到你</text>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
+ <text class="section-link section-link-ability" @tap="goInteractionLog">+ 记录帮助</text>
|
|
|
</view>
|
|
|
<AbilityDiagram
|
|
|
ref="abilityDiagram"
|
|
|
@@ -177,6 +190,17 @@
|
|
|
<!-- 底部占位 -->
|
|
|
<view class="bottom-spacer"></view>
|
|
|
<FloatingAvatar />
|
|
|
+
|
|
|
+ <!-- 帮助说明弹窗 -->
|
|
|
+ <view class="help-mask" v-if="helpPopup.visible" @tap="closeHelp">
|
|
|
+ <view class="help-dialog" @tap.stop>
|
|
|
+ <view class="help-dialog-header">
|
|
|
+ <text class="help-dialog-title">{{ helpPopup.title }}</text>
|
|
|
+ <text class="help-dialog-close" @tap="closeHelp">✕</text>
|
|
|
+ </view>
|
|
|
+ <text class="help-dialog-content">{{ helpPopup.content }}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
@@ -226,6 +250,8 @@ export default {
|
|
|
octopusExpansions: [],
|
|
|
octopusKeyPersons: {},
|
|
|
overdueMap: null,
|
|
|
+ // 帮助弹窗
|
|
|
+ helpPopup: { visible: false, title: '', content: '' },
|
|
|
funcList: [
|
|
|
{ icon: '\u{1F4AC}', label: '记录互动', needLogin: true, page: '/pages/action-detail/interaction-log' },
|
|
|
{ icon: '\u{1F4DD}', label: '关系问卷', needLogin: true, page: '/pages/action-detail/relationship-questionnaire' },
|
|
|
@@ -559,6 +585,10 @@ export default {
|
|
|
goPearlAddResource: function() {
|
|
|
uni.navigateTo({ url: '/pages/action-detail/pearl-add-resource' })
|
|
|
},
|
|
|
+ /** 能力图记录帮助入口(跳转互动记录,记录技能类帮助) */
|
|
|
+ goInteractionLog: function() {
|
|
|
+ uni.navigateTo({ url: '/pages/action-detail/interaction-log' })
|
|
|
+ },
|
|
|
/** 删除珍珠图资源 */
|
|
|
onDeletePearlResource: function(item) {
|
|
|
if (!item || !item.id) return
|
|
|
@@ -613,6 +643,10 @@ export default {
|
|
|
goOctopusAddEffect: function() {
|
|
|
uni.navigateTo({ url: '/pages/action-detail/octopus-add-effect' })
|
|
|
},
|
|
|
+ /** 跳转感恩记录维护列表 */
|
|
|
+ goOctopusEffectsList: function() {
|
|
|
+ uni.navigateTo({ url: '/pages/action-detail/octopus-effects-list' })
|
|
|
+ },
|
|
|
/** 点击成效节点 */
|
|
|
onEffectClick: function(effect) {
|
|
|
var self = this
|
|
|
@@ -631,6 +665,13 @@ export default {
|
|
|
onReanalyze: function() {
|
|
|
this.loadOctopusData()
|
|
|
},
|
|
|
+ /** 显示帮助弹窗 */
|
|
|
+ showHelp: function(title, content) {
|
|
|
+ this.helpPopup = { visible: true, title: title, content: content }
|
|
|
+ },
|
|
|
+ closeHelp: function() {
|
|
|
+ this.helpPopup.visible = false
|
|
|
+ },
|
|
|
onTaskClick: function(task) {
|
|
|
uni.navigateTo({ url: '/pages/tasks/tasks' })
|
|
|
},
|
|
|
@@ -717,6 +758,30 @@ export default {
|
|
|
justify-content: space-between;
|
|
|
margin-bottom: 16rpx;
|
|
|
}
|
|
|
+.section-title-wrap {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8rpx;
|
|
|
+}
|
|
|
+.help-icon {
|
|
|
+ width: 36rpx;
|
|
|
+ height: 36rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ border: 2rpx solid #CBD5E1;
|
|
|
+ color: #94A3B8;
|
|
|
+ font-size: 22rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ flex-shrink: 0;
|
|
|
+ transition: all 0.2s;
|
|
|
+}
|
|
|
+.help-icon:active {
|
|
|
+ border-color: #F97316;
|
|
|
+ color: #F97316;
|
|
|
+ background: #FFF7ED;
|
|
|
+}
|
|
|
.section-title {
|
|
|
font-size: 32rpx;
|
|
|
font-weight: bold;
|
|
|
@@ -726,8 +791,78 @@ export default {
|
|
|
font-size: 22rpx;
|
|
|
color: #999;
|
|
|
}
|
|
|
+.section-link {
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 10rpx 28rpx;
|
|
|
+ border-radius: 40rpx;
|
|
|
+ font-size: 24rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ white-space: nowrap;
|
|
|
+ transition: opacity 0.2s;
|
|
|
+}
|
|
|
+.section-link:active {
|
|
|
+ opacity: 0.7;
|
|
|
+}
|
|
|
+.section-link-octopus {
|
|
|
+ background: linear-gradient(135deg, #F97316, #FB923C);
|
|
|
+ color: #fff;
|
|
|
+ box-shadow: 0 4rpx 16rpx rgba(249,115,22,0.25);
|
|
|
+}
|
|
|
+.section-link-pearl {
|
|
|
+ background: linear-gradient(135deg, #0EA5E9, #38BDF8);
|
|
|
+ color: #fff;
|
|
|
+ box-shadow: 0 4rpx 16rpx rgba(14,165,233,0.25);
|
|
|
+}
|
|
|
+.section-link-ability {
|
|
|
+ background: linear-gradient(135deg, #10B981, #34D399);
|
|
|
+ color: #fff;
|
|
|
+ box-shadow: 0 4rpx 16rpx rgba(16,185,129,0.25);
|
|
|
+}
|
|
|
|
|
|
-/* ===== 功能入口 ===== */
|
|
|
+/* 帮助说明弹窗 */
|
|
|
+.help-mask {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: rgba(0, 0, 0, 0.4);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
+.help-dialog {
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 20rpx;
|
|
|
+ width: 90%;
|
|
|
+ max-width: 500rpx;
|
|
|
+ max-height: 80vh;
|
|
|
+ overflow: hidden;
|
|
|
+}
|
|
|
+.help-dialog-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ padding: 20rpx 24rpx;
|
|
|
+ border-bottom: 1rpx solid #E5E7EB;
|
|
|
+}
|
|
|
+.help-dialog-title {
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #333;
|
|
|
+}
|
|
|
+.help-dialog-close {
|
|
|
+ font-size: 32rpx;
|
|
|
+ color: #94A3B8;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.help-dialog-content {
|
|
|
+ padding: 24rpx;
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #666;
|
|
|
+ line-height: 1.6;
|
|
|
+}
|
|
|
.func-section {
|
|
|
margin: 20rpx 30rpx 0;
|
|
|
}
|