feat: 新增频道管理功能,优化整体UI与交互体验

本次提交完成了以下核心变更:
1.  新增完整的频道管理模块,包括频道增删改查API、页面组件与权限配置
2.  为短剧功能添加频道关联字段,支持将短剧绑定到指定频道
3.  全局UI优化:统一使用Panel组件重构页面布局,统一样式规范与交互细节
4.  表格与日志组件优化:新增请求方法颜色标记、耗时高亮、状态码分级展示
5.  登录页、个人中心、布局等页面的视觉升级与交互优化
6.  完善全局TailwindCSS样式与组件样式自定义
This commit is contained in:
2026-07-03 15:01:27 +08:00
parent 2dace1cf8d
commit e830f5a733
29 changed files with 667 additions and 170 deletions

View File

@@ -1,7 +1,8 @@
import { useEffect, useState } from 'react';
import { Button, Card, Form, Input, Message } from '@arco-design/web-react';
import { Button, Form, Input, Message } from '@arco-design/web-react';
import { useNavigate } from 'react-router-dom';
import { authApi } from '../api';
import { Panel } from '../components/Panel';
import { ProfileInfoList } from './components/ProfileInfoList';
import { ProfileSummary } from './components/ProfileSummary';
import type { AdminProfile, ChangePasswordFormValues, ProfileFormValues } from './interface';
@@ -66,12 +67,18 @@ function ProfilePage() {
return (
<div className="page-stack">
<div className="grid items-start gap-4 min-[901px]:grid-cols-[minmax(0,1fr)_420px]">
<Card className="section-card min-[901px]:row-span-2" title="个人中心" loading={loading}>
<ProfileSummary profile={profile} />
<ProfileInfoList profile={profile} />
</Card>
<Card className="section-card" title="修改个人信息">
<div className="grid items-start gap-5 min-[901px]:grid-cols-[minmax(0,1fr)_420px]">
<Panel title="个人中心" className="min-[901px]:row-span-2">
{loading ? (
<div className="py-12 text-center text-muted">...</div>
) : (
<>
<ProfileSummary profile={profile} />
<ProfileInfoList profile={profile} />
</>
)}
</Panel>
<Panel title="修改个人信息">
<Form form={form} layout="vertical" onSubmit={updateProfile}>
<Form.Item label="姓名" field="nickname">
<Input placeholder="请输入姓名" />
@@ -81,8 +88,8 @@ function ProfilePage() {
</Form.Item>
<Button type="primary" htmlType="submit" loading={saving}></Button>
</Form>
</Card>
<Card className="section-card" title="修改密码">
</Panel>
<Panel title="修改密码">
<Form form={passwordForm} layout="vertical" onSubmit={changePassword}>
<Form.Item label="旧密码" field="oldPassword" rules={[{ required: true }]}>
<Input.Password placeholder="请输入旧密码" />
@@ -95,7 +102,7 @@ function ProfilePage() {
</Form.Item>
<Button type="primary" htmlType="submit" loading={changingPassword}></Button>
</Form>
</Card>
</Panel>
</div>
</div>
);