feat(manage): 优化新建菜单并添加 AI 助手快捷键

- 主按钮从「新建项目」改为「新建任务」
  - 下拉菜单首位添加「AI 助手」选项(需安装 AI 插件)
  - 添加 Ctrl/Cmd+I 快捷键打开 AI 助手
  - 键盘设置页面同步显示 AI 助手快捷键
This commit is contained in:
kuaifan 2026-01-16 07:46:50 +00:00
parent 53dd9dca0f
commit 22de7de87c
2 changed files with 46 additions and 5 deletions

View File

@ -225,14 +225,15 @@
</Form>
</div>
<ButtonGroup class="manage-box-new-group">
<Button class="manage-box-new" type="primary" icon="md-add" @click="onAddShow">{{$L('新建项目')}}</Button>
<Button class="manage-box-new" type="primary" icon="md-add" @click="onAddMenu('task')">{{$L('新建任务')}}</Button>
<Dropdown @on-click="onAddMenu" trigger="click">
<Button type="primary">
<Icon type="ios-arrow-down"></Icon>
</Button>
<DropdownMenu slot="list">
<DropdownItem name="project">{{$L('新建项目')}} ({{mateName}}+B)</DropdownItem>
<DropdownItem v-if="aiInstalled" name="aiAssistant">{{$L('AI 助手')}} ({{mateName}}+I)</DropdownItem>
<DropdownItem name="task">{{$L('新建任务')}} ({{mateName}}+K)</DropdownItem>
<DropdownItem name="project">{{$L('新建项目')}} ({{mateName}}+B)</DropdownItem>
<DropdownItem name="group">{{$L('创建群组')}} ({{mateName}}+U)</DropdownItem>
<DropdownItem name="createMeeting">{{$L('新会议')}} ({{mateName}}+J)</DropdownItem>
<DropdownItem name="joinMeeting">{{$L('加入会议')}}</DropdownItem>
@ -615,11 +616,16 @@ export default {
'mobileTabbar',
'longpressData',
'mcpServerStatus'
'mcpServerStatus',
'microAppsIds'
]),
...mapGetters(['dashboardTask', "filterMicroAppsMenusMain"]),
aiInstalled() {
return this.microAppsIds?.includes('ai');
},
/**
* page className
* @param mobileTabbar
@ -1080,9 +1086,22 @@ export default {
type: 'join',
});
break;
case 'aiAssistant':
this.onOpenAIAssistant();
break;
}
},
onOpenAIAssistant() {
emitter.emit('openAIAssistant', {
displayMode: 'chat',
sessionKey: 'global',
resumeSession: 300,
showApplyButton: false,
});
},
onAddShow() {
this.$store.dispatch("getColumnTemplate").catch(() => {})
this.addShow = true;
@ -1337,6 +1356,13 @@ export default {
this.onAddMenu('createMeeting')
break;
case 73: // I - AI
if (this.aiInstalled) {
e.preventDefault();
this.onOpenAIAssistant();
}
break;
case 83: // S -
if (this.$refs.taskModal.checkUpdate()) {
e.preventDefault();

View File

@ -12,9 +12,9 @@
{{mateName}}<div class="input-box-push">+</div>{{altName}}<div class="input-box-push">+</div>L
</div>
</FormItem>
<FormItem :label="$L('新建项目')">
<FormItem v-if="aiInstalled" :label="$L('AI 助手')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>B
{{mateName}}<div class="input-box-push">+</div>I
</div>
</FormItem>
<FormItem :label="$L('新建任务')">
@ -22,6 +22,11 @@
{{mateName}}<div class="input-box-push">+</div>N
</div>
</FormItem>
<FormItem :label="$L('新建项目')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>B
</div>
</FormItem>
<FormItem :label="$L('新会议')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>J
@ -70,7 +75,17 @@
}
</style>
<script>
import {mapState} from "vuex";
export default {
computed: {
...mapState(['microAppsIds']),
aiInstalled() {
return this.microAppsIds?.includes('ai');
},
},
data() {
return {
loadIng: 0,