feat: 项目设置改为抽屉展示

This commit is contained in:
kuaifan 2026-09-10 12:05:03 +00:00
parent ef07f7f8d1
commit f0b376797c
3 changed files with 45 additions and 11 deletions

View File

@ -19,13 +19,13 @@ negative:
- 普通成员owner=0无法编辑项目设置
- 改名不影响 dialog_id 群聊的标题(需单独改群名)
- 关闭 AI 自动分析后已生成的分析结果不会清除
last_verified: v1.7.90
last_verified: v1.9.18
---
# 编辑项目基本信息与设置
## 入口
- 桌面端:项目顶部「⋯」菜单 → 「项目设置」
- 桌面端:项目顶部「⋯」菜单 → 「项目设置」,从右侧打开抽屉;窄屏下全屏展示。表单独立滚动,底部固定「取消」「保存」按钮。
- 移动端:项目详情页右上角齿轮图标
## 可编辑字段

View File

@ -454,13 +454,16 @@
</div>
<!--项目设置-->
<Modal
<DrawerOverlay
v-model="settingShow"
:title="$L('项目设置')"
placement="right"
:size="720"
class-name="project-setting-drawer"
:mask-closable="false">
<Form :model="settingData" v-bind="formOptions" @submit.native.prevent>
<template #title>{{$L('项目设置')}}</template>
<Form class="project-setting-content" :model="settingData" v-bind="formOptions" @submit.native.prevent>
<FormItem prop="name" :label="$L('项目名称')">
<Input ref="projectName" type="text" v-model="settingData.name" :maxlength="32" :placeholder="$L('必填')"></Input>
<Input type="text" v-model="settingData.name" :maxlength="32" :placeholder="$L('必填')"></Input>
</FormItem>
<FormItem prop="desc" :label="$L('项目介绍')">
<Input ref="projectDesc" type="textarea" :autosize="{ minRows: 3, maxRows: 5 }" v-model="settingData.desc" :maxlength="255" :placeholder="`${$L('选填')} (${$L('支持 Markdown 格式')})`"></Input>
@ -479,7 +482,6 @@
</Input>
</div>
</template>
</FormItem>
<FormItem v-if="aiVisible" :label="$L('AI任务分析')" prop="ai_auto_analyze">
<RadioGroup v-model="settingData.ai_auto_analyze">
@ -507,11 +509,11 @@
<div v-else class="form-tip">{{$L('关闭后,本项目及其群聊对部门负责人视角隐藏。')}}</div>
</FormItem>
</Form>
<div slot="footer" class="adaption">
<div class="project-setting-footer">
<Button type="default" @click="settingShow=false">{{$L('取消')}}</Button>
<Button type="primary" :loading="settingLoad > 0" @click="onSetting">{{$L('修改')}}</Button>
<Button type="primary" :loading="settingLoad > 0" @click="onSetting">{{$L('保存')}}</Button>
</div>
</Modal>
</DrawerOverlay>
<!--项目权限-->
<DrawerOverlay
@ -1786,7 +1788,6 @@ export default {
});
this.settingShow = true;
this.$nextTick(() => {
this.$refs.projectName.focus()
setTimeout(this.$refs.projectDesc.resizeTextarea, 0)
});
break;

View File

@ -1177,3 +1177,36 @@ body.window-portrait {
}
}
}
.project-setting-drawer {
.overlay-content-body {
display: flex;
flex-direction: column;
min-height: 0;
}
.project-setting-content {
flex: 1;
min-height: 0;
overflow: auto;
padding: 20px 25px;
}
.project-setting-footer {
flex-shrink: 0;
display: flex;
justify-content: flex-end;
gap: 16px;
padding: 16px 25px;
border-top: 1px solid #F4F4F5;
button {
min-width: 100px;
height: 38px;
}
}
&.drawer-fullscreen .project-setting-footer button {
flex: 1;
min-width: 0;
}
}