feat: 统一管理端弹窗与内容区交互样式

- 收敛管理端公共 Modal 链路,新增表单弹窗与普通内容弹窗包装\n- 迁移 Bot、知识库、插件、工作流、资源、MCP、数据中枢与系统管理页面级弹窗\n- 统一内容区工具栏、列表容器、导航与顶部按钮的视觉密度和交互节奏
This commit is contained in:
2026-03-06 19:58:26 +08:00
parent 76c2954a70
commit b191d1aaed
99 changed files with 3148 additions and 1623 deletions

View File

@@ -24,6 +24,7 @@ import { tryit } from 'radash';
import { api } from '#/api/request';
import DictSelect from '#/components/dict/DictSelect.vue';
import ListPageShell from '#/components/page/ListPageShell.vue';
import PageData from '#/components/page/PageData.vue';
import { $t } from '#/locales';
import { router } from '#/router';
@@ -102,41 +103,42 @@ async function markStatus(row: any, status: number) {
<template>
<div class="flex h-full flex-col gap-1.5 p-6">
<ElForm ref="formRef" inline :model="formData">
<ElFormItem prop="feedbackType" class="!mr-3">
<ElSelect
v-model="formData.feedbackType"
:options="feedbackTypeOptions"
:placeholder="$t('sysFeedback.feedbackType')"
clearable
filterable
immediate
/>
</ElFormItem>
<ElFormItem prop="status" class="!mr-3">
<DictSelect
v-model="formData.status"
dict-code="feedbackType"
:placeholder="$t('sysFeedback.processingStatus')"
/>
</ElFormItem>
<ElFormItem prop="feedbackContent" class="!mr-3">
<ElInput
v-model="formData.feedbackContent"
:placeholder="$t('common.searchPlaceholder')"
/>
</ElFormItem>
<ElFormItem>
<ElButton @click="search(formRef)" type="primary">
{{ $t('button.query') }}
</ElButton>
<ElButton @click="reset(formRef)">
{{ $t('button.reset') }}
</ElButton>
</ElFormItem>
</ElForm>
<div class="bg-background border-border flex-1 rounded-lg border p-5">
<ListPageShell>
<template #filters>
<ElForm ref="formRef" inline :model="formData">
<ElFormItem prop="feedbackType" class="!mr-3">
<ElSelect
v-model="formData.feedbackType"
:options="feedbackTypeOptions"
:placeholder="$t('sysFeedback.feedbackType')"
clearable
filterable
immediate
/>
</ElFormItem>
<ElFormItem prop="status" class="!mr-3">
<DictSelect
v-model="formData.status"
dict-code="feedbackType"
:placeholder="$t('sysFeedback.processingStatus')"
/>
</ElFormItem>
<ElFormItem prop="feedbackContent" class="!mr-3">
<ElInput
v-model="formData.feedbackContent"
:placeholder="$t('common.searchPlaceholder')"
/>
</ElFormItem>
<ElFormItem>
<ElButton @click="search(formRef)" type="primary">
{{ $t('button.query') }}
</ElButton>
<ElButton @click="reset(formRef)">
{{ $t('button.reset') }}
</ElButton>
</ElFormItem>
</ElForm>
</template>
<PageData
ref="pageDataRef"
page-url="/api/v1/sysUserFeedback/page"
@@ -236,6 +238,6 @@ async function markStatus(row: any, status: number) {
</ElTable>
</template>
</PageData>
</div>
</ListPageShell>
</div>
</template>