feat: keyboard numbers row + Chinese phrase keys; auto-collapse keyboard when leaving chat
This commit is contained in:
@@ -6,14 +6,15 @@
|
|||||||
<!-- 最左页:选择对话 / 工作区 -->
|
<!-- 最左页:选择对话 / 工作区 -->
|
||||||
<div class="page-item left-page">
|
<div class="page-item left-page">
|
||||||
<text class="page-title">选择对话</text>
|
<text class="page-title">选择对话</text>
|
||||||
<text class="ws-name">DeepSeek_Harness_Watch</text>
|
<input class="new-session" type="button" value="+ 新会话" onclick="newSession" />
|
||||||
<div class="sel-conv" onclick="selectConv('小米手环10 Pro远程控制')"><text>小米手环10 Pro远程控制</text></div>
|
<text class="page-title small">工作区</text>
|
||||||
<div class="sel-conv" onclick="selectConv('DSHWatch 验收')"><text>DSHWatch 验收</text></div>
|
<div class="ws-group" for="{{workTree}}">
|
||||||
<text class="ws-name">reactor</text>
|
<text class="ws-name">📁 {{$item.name}}</text>
|
||||||
<div class="sel-conv" onclick="selectConv('任务-001')"><text>任务-001</text></div>
|
<div class="sel-conv {{$item.title === currentConv ? 'sel-active' : ''}}" for="{{$item.convs}}" onclick="cycleConv">
|
||||||
<div class="sel-conv" onclick="selectConv('任务-002')"><text>任务-002</text></div>
|
<text class="sel-title fl{{fontLevel}}">{{$item.title}}</text>
|
||||||
<text class="ws-name">truestudio.online</text>
|
<text class="sel-time">{{$item.time}}</text>
|
||||||
<div class="sel-conv" onclick="selectConv('评估-今天')"><text>评估-今天</text></div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 左页:对话(Harness 式) -->
|
<!-- 左页:对话(Harness 式) -->
|
||||||
@@ -134,6 +135,15 @@
|
|||||||
<div class="kb-row">
|
<div class="kb-row">
|
||||||
<text class="kb-key" onclick="kbKey('z')">z</text><text class="kb-key" onclick="kbKey('x')">x</text><text class="kb-key" onclick="kbKey('c')">c</text><text class="kb-key" onclick="kbKey('v')">v</text><text class="kb-key" onclick="kbKey('b')">b</text><text class="kb-key" onclick="kbKey('n')">n</text><text class="kb-key" onclick="kbKey('m')">m</text>
|
<text class="kb-key" onclick="kbKey('z')">z</text><text class="kb-key" onclick="kbKey('x')">x</text><text class="kb-key" onclick="kbKey('c')">c</text><text class="kb-key" onclick="kbKey('v')">v</text><text class="kb-key" onclick="kbKey('b')">b</text><text class="kb-key" onclick="kbKey('n')">n</text><text class="kb-key" onclick="kbKey('m')">m</text>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="kb-row">
|
||||||
|
<text class="kb-key" onclick="kbKey('1')">1</text><text class="kb-key" onclick="kbKey('2')">2</text><text class="kb-key" onclick="kbKey('3')">3</text><text class="kb-key" onclick="kbKey('4')">4</text><text class="kb-key" onclick="kbKey('5')">5</text><text class="kb-key" onclick="kbKey('6')">6</text><text class="kb-key" onclick="kbKey('7')">7</text><text class="kb-key" onclick="kbKey('8')">8</text><text class="kb-key" onclick="kbKey('9')">9</text><text class="kb-key" onclick="kbKey('0')">0</text>
|
||||||
|
</div>
|
||||||
|
<div class="kb-row">
|
||||||
|
<text class="kb-key kb-phrase" onclick="kbPhrase('帮我看看任务')">帮我看看任务</text>
|
||||||
|
<text class="kb-key kb-phrase" onclick="kbPhrase('总结一下')">总结一下</text>
|
||||||
|
<text class="kb-key kb-phrase" onclick="kbPhrase('停止')">停止</text>
|
||||||
|
<text class="kb-key kb-phrase" onclick="kbPhrase('继续')">继续</text>
|
||||||
|
</div>
|
||||||
<div class="kb-row">
|
<div class="kb-row">
|
||||||
<text class="kb-key kb-fn" onclick="kbSpace">空格</text>
|
<text class="kb-key kb-fn" onclick="kbSpace">空格</text>
|
||||||
<text class="kb-key kb-fn" onclick="kbBack">退格</text>
|
<text class="kb-key kb-fn" onclick="kbBack">退格</text>
|
||||||
@@ -223,6 +233,12 @@ export default {
|
|||||||
{ name:'reactor', conversations:['任务-001','任务-002'] },
|
{ name:'reactor', conversations:['任务-001','任务-002'] },
|
||||||
{ name:'truestudio.online', conversations:['评估-今天'] }
|
{ name:'truestudio.online', conversations:['评估-今天'] }
|
||||||
],
|
],
|
||||||
|
workTree: [
|
||||||
|
{ name:'DeepSeek_Harness_Watch', convs:[ { title:'小米手环10 Pro远程控制', time:'刚刚' }, { title:'DSHWatch 验收', time:'1小时' } ] },
|
||||||
|
{ name:'reactor', convs:[ { title:'排查Git文件乱码问题', time:'15天' } ] },
|
||||||
|
{ name:'project', convs:[ { title:'修改API配置为固定密钥', time:'8天' }, { title:'检测DeepSeek API可用性', time:'9天' } ] },
|
||||||
|
{ name:'truestudio.online', convs:[ { title:'评估一下项目状态', time:'9天' } ] }
|
||||||
|
],
|
||||||
currentConv: '小米手环10 Pro远程控制',
|
currentConv: '小米手环10 Pro远程控制',
|
||||||
showSelect: false,
|
showSelect: false,
|
||||||
inputText: '',
|
inputText: '',
|
||||||
@@ -308,6 +324,12 @@ export default {
|
|||||||
onSwipeChange(e) {
|
onSwipeChange(e) {
|
||||||
if (e && typeof e.index === 'number') {
|
if (e && typeof e.index === 'number') {
|
||||||
this.currentIndex = e.index
|
this.currentIndex = e.index
|
||||||
|
// 离开对话页(index 1)自动收起键盘/选择器
|
||||||
|
if (this.currentIndex !== 1) {
|
||||||
|
this.showKeyboard = false
|
||||||
|
this.showOptionPicker = false
|
||||||
|
this.showFontPicker = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -326,6 +348,20 @@ export default {
|
|||||||
this.showSelect = false
|
this.showSelect = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
newSession() {
|
||||||
|
this.currentConv = '新会话'
|
||||||
|
this.currentIndex = 1
|
||||||
|
},
|
||||||
|
|
||||||
|
cycleConv() {
|
||||||
|
const titles = []
|
||||||
|
for (const ws of this.workTree) {
|
||||||
|
for (const c of ws.convs) titles.push(c.title)
|
||||||
|
}
|
||||||
|
const idx = titles.indexOf(this.currentConv)
|
||||||
|
this.currentConv = titles[(idx + 1) % titles.length]
|
||||||
|
},
|
||||||
|
|
||||||
toggleThink(index) {
|
toggleThink(index) {
|
||||||
const m = this.messages[index]
|
const m = this.messages[index]
|
||||||
if (m) m.showThink = !m.showThink
|
if (m) m.showThink = !m.showThink
|
||||||
@@ -354,6 +390,10 @@ export default {
|
|||||||
this.inputText = (this.inputText + ch).slice(0, 80)
|
this.inputText = (this.inputText + ch).slice(0, 80)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
kbPhrase(ph) {
|
||||||
|
this.inputText = (this.inputText + ph).slice(0, 80)
|
||||||
|
},
|
||||||
|
|
||||||
kbSpace() {
|
kbSpace() {
|
||||||
this.inputText = (this.inputText + ' ').slice(0, 80)
|
this.inputText = (this.inputText + ' ').slice(0, 80)
|
||||||
},
|
},
|
||||||
@@ -1021,6 +1061,12 @@ export default {
|
|||||||
width: 64px;
|
width: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.kb-phrase {
|
||||||
|
width: auto;
|
||||||
|
min-width: 56px;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
.kb-send {
|
.kb-send {
|
||||||
background-color: #33b4ff;
|
background-color: #33b4ff;
|
||||||
color: #08131f;
|
color: #08131f;
|
||||||
|
|||||||
Reference in New Issue
Block a user