fix: programmatic page switch via swiper id+swipeTo (goToPage); selector text rows left/right; pinyin preview in text

This commit is contained in:
2026-09-01 23:31:58 +08:00
parent a085c59c02
commit d39db35baf
+41 -15
View File
@@ -1,23 +1,41 @@
<template> <template>
<div class="page"> <div class="page">
<swiper class="swiper" index="{{currentIndex}}" indicator="false" loop="false" <swiper class="swiper" id="mainSwiper" index="{{currentIndex}}" indicator="false" loop="false"
previousmargin="0px" nextmargin="0px" onchange="onSwipeChange"> previousmargin="0px" nextmargin="0px" onchange="onSwipeChange">
<!-- 最左页:选择对话 / 工作区(按钮行,必定可点) --> <!-- 最左页:选择对话 / 工作区(一行一条,标题左 / 时间右) -->
<div class="page-item left-page"> <div class="page-item left-page">
<text class="page-title">选择对话</text> <text class="page-title">选择对话</text>
<input class="new-session" type="button" value="+ 新会话" onclick="newSession" /> <input class="new-session" type="button" value="+ 新会话" onclick="newSession" />
<text class="page-title small">工作区</text> <text class="page-title small">工作区</text>
<text class="ws-name">📁 DeepSeek_Harness_Watch</text> <text class="ws-name">📁 DeepSeek_Harness_Watch</text>
<input class="sel-btn {{active0 ? 'sel-btn-active' : ''}}" type="button" value="小米手环10 Pro远程控制 · 刚刚" onclick="pickConv0" /> <div class="sel-conv {{active0 ? 'sel-active' : ''}}">
<input class="sel-btn {{active1 ? 'sel-btn-active' : ''}}" type="button" value="DSHWatch 验收 · 1小时" onclick="pickConv1" /> <text class="sel-title fl{{fontLevel}}" onclick="pickConv0">小米手环10 Pro远程控制</text>
<text class="sel-time" onclick="pickConv0">刚刚</text>
</div>
<div class="sel-conv {{active1 ? 'sel-active' : ''}}">
<text class="sel-title fl{{fontLevel}}" onclick="pickConv1">DSHWatch 验收</text>
<text class="sel-time" onclick="pickConv1">1小时</text>
</div>
<text class="ws-name">📁 reactor</text> <text class="ws-name">📁 reactor</text>
<input class="sel-btn {{active2 ? 'sel-btn-active' : ''}}" type="button" value="排查Git文件乱码问题 · 15天" onclick="pickConv2" /> <div class="sel-conv {{active2 ? 'sel-active' : ''}}">
<text class="sel-title fl{{fontLevel}}" onclick="pickConv2">排查Git文件乱码问题</text>
<text class="sel-time" onclick="pickConv2">15天</text>
</div>
<text class="ws-name">📁 project</text> <text class="ws-name">📁 project</text>
<input class="sel-btn {{active3 ? 'sel-btn-active' : ''}}" type="button" value="修改API配置为固定密钥 · 8天" onclick="pickConv3" /> <div class="sel-conv {{active3 ? 'sel-active' : ''}}">
<input class="sel-btn {{active4 ? 'sel-btn-active' : ''}}" type="button" value="检测DeepSeek API可用性 · 9天" onclick="pickConv4" /> <text class="sel-title fl{{fontLevel}}" onclick="pickConv3">修改API配置为固定密钥</text>
<text class="sel-time" onclick="pickConv3">8天</text>
</div>
<div class="sel-conv {{active4 ? 'sel-active' : ''}}">
<text class="sel-title fl{{fontLevel}}" onclick="pickConv4">检测DeepSeek API可用性</text>
<text class="sel-time" onclick="pickConv4">9天</text>
</div>
<text class="ws-name">📁 truestudio.online</text> <text class="ws-name">📁 truestudio.online</text>
<input class="sel-btn {{active5 ? 'sel-btn-active' : ''}}" type="button" value="评估一下项目状态 · 9天" onclick="pickConv5" /> <div class="sel-conv {{active5 ? 'sel-active' : ''}}">
<text class="sel-title fl{{fontLevel}}" onclick="pickConv5">评估一下项目状态</text>
<text class="sel-time" onclick="pickConv5">9天</text>
</div>
</div> </div>
<!-- 左页:对话(Harness 式) --> <!-- 左页:对话(Harness 式) -->
@@ -129,7 +147,7 @@
<div class="kb-input"> <div class="kb-input">
<text class="kb-text">{{inputText}}</text> <text class="kb-text">{{inputText}}</text>
</div> </div>
<div class="kb-pinyin" if="{{pinyinMode && pinyinBuf}}">{{pinyinBuf}}</div> <div class="kb-pinyin" if="{{pinyinMode && pinyinBuf}}"><text>{{pinyinBuf}}</text></div>
<div class="kb-cands" if="{{pinyinMode && candidates.length}}"> <div class="kb-cands" if="{{pinyinMode && candidates.length}}">
<text class="kb-cand" onclick="pickCand0">{{candidates[0]}}</text> <text class="kb-cand" onclick="pickCand0">{{candidates[0]}}</text>
<text class="kb-cand" onclick="pickCand1">{{candidates[1]}}</text> <text class="kb-cand" onclick="pickCand1">{{candidates[1]}}</text>
@@ -432,12 +450,20 @@ export default {
for (let i = 0; i <= 5; i++) this['active' + i] = (i === n) for (let i = 0; i <= 5; i++) this['active' + i] = (i === n)
}, },
pickConv0() { this.currentConv = '小米手环10 Pro远程控制'; this.setActive(0); this.currentIndex = 1 }, goToPage(index) {
pickConv1() { this.currentConv = 'DSHWatch 验收'; this.setActive(1); this.currentIndex = 1 }, this.currentIndex = index
pickConv2() { this.currentConv = '排查Git文件乱码问题'; this.setActive(2); this.currentIndex = 1 }, try {
pickConv3() { this.currentConv = '修改API配置为固定密钥'; this.setActive(3); this.currentIndex = 1 }, const el = this.$element('mainSwiper')
pickConv4() { this.currentConv = '检测DeepSeek API可用性'; this.setActive(4); this.currentIndex = 1 }, if (el && el.swipeTo) el.swipeTo({ index: index })
pickConv5() { this.currentConv = '评估一下项目状态'; this.setActive(5); this.currentIndex = 1 }, } catch (e) {}
},
pickConv0() { this.currentConv = '小米手环10 Pro远程控制'; this.setActive(0); this.goToPage(1) },
pickConv1() { this.currentConv = 'DSHWatch 验收'; this.setActive(1); this.goToPage(1) },
pickConv2() { this.currentConv = '排查Git文件乱码问题'; this.setActive(2); this.goToPage(1) },
pickConv3() { this.currentConv = '修改API配置为固定密钥'; this.setActive(3); this.goToPage(1) },
pickConv4() { this.currentConv = '检测DeepSeek API可用性'; this.setActive(4); this.goToPage(1) },
pickConv5() { this.currentConv = '评估一下项目状态'; this.setActive(5); this.goToPage(1) },
toggleThink(index) { toggleThink(index) {
const m = this.messages[index] const m = this.messages[index]