删除新建角色按钮
This commit is contained in:
@@ -240,7 +240,11 @@ export default function DocumentEdit() {
|
|||||||
// 从 actionData 初始化表单错误
|
// 从 actionData 初始化表单错误
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (actionData?.fieldErrors) {
|
if (actionData?.fieldErrors) {
|
||||||
// general 是loader的时候返回的错误信息
|
// general 错误使用 toast 提示
|
||||||
|
if (actionData.fieldErrors.general) {
|
||||||
|
toastService.error(actionData.fieldErrors.general);
|
||||||
|
}
|
||||||
|
// 其他字段错误设置到 formErrors
|
||||||
setFormErrors(actionData.fieldErrors);
|
setFormErrors(actionData.fieldErrors);
|
||||||
}
|
}
|
||||||
}, [actionData]);
|
}, [actionData]);
|
||||||
@@ -531,15 +535,7 @@ export default function DocumentEdit() {
|
|||||||
<div className="alert alert-info mb-4">
|
<div className="alert alert-info mb-4">
|
||||||
<i className="ri-information-line mr-2"></i> 您可以修改此文档的基本信息,但不能更改文档内容。如需修改内容,请删除后重新上传新文档。
|
<i className="ri-information-line mr-2"></i> 您可以修改此文档的基本信息,但不能更改文档内容。如需修改内容,请删除后重新上传新文档。
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 错误提示 */}
|
|
||||||
{formErrors.general && (
|
|
||||||
<div className="general-error mb-4">
|
|
||||||
<i className="ri-error-warning-line mr-2"></i>
|
|
||||||
{formErrors.general}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Form id="edit-form" method="post" ref={formRef} onSubmit={handleBeforeSubmit}>
|
<Form id="edit-form" method="post" ref={formRef} onSubmit={handleBeforeSubmit}>
|
||||||
<div className="grid grid-cols-2 gap-6">
|
<div className="grid grid-cols-2 gap-6">
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
|
|||||||
@@ -1742,7 +1742,7 @@ export default function RolePermissions() {
|
|||||||
<i className="ri-shield-user-line"></i>
|
<i className="ri-shield-user-line"></i>
|
||||||
角色权限管理
|
角色权限管理
|
||||||
</h2>
|
</h2>
|
||||||
<div className="page-actions">
|
{/* <div className="page-actions">
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="ri-add-line"
|
icon="ri-add-line"
|
||||||
@@ -1750,7 +1750,7 @@ export default function RolePermissions() {
|
|||||||
>
|
>
|
||||||
新建角色
|
新建角色
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="permissions-container">
|
<div className="permissions-container">
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export async function loader({ request }: { request: Request }) {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('加载评查点分组失败:', error);
|
console.error('加载评查点分组失败:', error);
|
||||||
return Response.json({
|
return Response.json({
|
||||||
|
error: error,
|
||||||
groups: [],
|
groups: [],
|
||||||
totalCount: 0,
|
totalCount: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
@@ -79,7 +80,7 @@ export async function loader({ request }: { request: Request }) {
|
|||||||
|
|
||||||
export default function RuleGroupsIndex() {
|
export default function RuleGroupsIndex() {
|
||||||
const loaderData = useLoaderData<typeof loader>();
|
const loaderData = useLoaderData<typeof loader>();
|
||||||
const { groups: initialGroups, frontendJWT } = loaderData;
|
const { groups: initialGroups, frontendJWT,error } = loaderData;
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [searchParams, setSearchParams] = useSearchParams();
|
const [searchParams, setSearchParams] = useSearchParams();
|
||||||
const [expandedGroups, setExpandedGroups] = useState<string[]>([]);
|
const [expandedGroups, setExpandedGroups] = useState<string[]>([]);
|
||||||
@@ -96,6 +97,12 @@ export default function RuleGroupsIndex() {
|
|||||||
const canDeleteGroup = canDelete('evaluation_group');
|
const canDeleteGroup = canDelete('evaluation_group');
|
||||||
const canBatchOperation = canBatch('evaluation_group'); // ✅ 批量操作权限
|
const canBatchOperation = canBatch('evaluation_group'); // ✅ 批量操作权限
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if(error){
|
||||||
|
toastService.error(error.message);
|
||||||
|
}
|
||||||
|
}, [error]);
|
||||||
|
|
||||||
// 初始加载时自动加载所有子分组
|
// 初始加载时自动加载所有子分组
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const loadAllChildGroups = async () => {
|
const loadAllChildGroups = async () => {
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
# 项目技术栈
|
||||||
|
|
||||||
|
## 核心框架
|
||||||
|
|
||||||
|
| 技术 | 版本 | 用途 |
|
||||||
|
|------|------|------|
|
||||||
|
| Remix | 2.16.2 | 全栈 React 框架 |
|
||||||
|
| React | 18.2.0 | UI 库 |
|
||||||
|
| TypeScript | 5.1.6 | 类型系统 |
|
||||||
|
| Vite | 6.0.0 | 构建工具 |
|
||||||
|
|
||||||
|
## UI 组件库
|
||||||
|
|
||||||
|
| 技术 | 版本 | 用途 |
|
||||||
|
|------|------|------|
|
||||||
|
| Ant Design | 6.0.0 | UI 组件库 |
|
||||||
|
| Ant Design X | 2.0.0 | AI 对话组件 |
|
||||||
|
| Tailwind CSS | 3.4.17 | 原子化 CSS |
|
||||||
|
| RemixIcon | 4.6.0 | 图标库 |
|
||||||
|
|
||||||
|
## 文档处理
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| react-pdf | PDF 预览渲染 |
|
||||||
|
| pdf-lib | PDF 操作处理 |
|
||||||
|
| mammoth | Word 转 HTML |
|
||||||
|
| docx-preview | DOCX 预览 |
|
||||||
|
| docxtemplater | Word 模板生成 |
|
||||||
|
| JSZip / PizZip | 压缩文件处理 |
|
||||||
|
|
||||||
|
## 代码编辑器
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| Monaco Editor | 代码编辑器(VS Code 同款) |
|
||||||
|
| CodeMirror | 轻量代码编辑器 |
|
||||||
|
|
||||||
|
## Markdown 渲染
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| react-markdown | Markdown 渲染 |
|
||||||
|
| remark-gfm | GitHub 风格 Markdown |
|
||||||
|
| remark-math + rehype-katex | 数学公式渲染 |
|
||||||
|
| highlight.js / prismjs | 代码高亮 |
|
||||||
|
|
||||||
|
## 数据与网络
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| Axios | HTTP 请求 |
|
||||||
|
| pg | PostgreSQL 数据库客户端 |
|
||||||
|
| jsonwebtoken | JWT 认证 |
|
||||||
|
|
||||||
|
## 工具库
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| dayjs | 日期处理 |
|
||||||
|
| ahooks | React Hooks 工具库 |
|
||||||
|
| immer | 不可变数据 |
|
||||||
|
| uuid | UUID 生成 |
|
||||||
|
| diff | 文本差异对比 |
|
||||||
|
|
||||||
|
## 部署运维
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| PM2 | 进程管理(多实例部署) |
|
||||||
|
| Express | HTTP 服务器 |
|
||||||
|
| Docker | 容器化部署 |
|
||||||
|
| dotenv | 环境变量管理 |
|
||||||
|
|
||||||
|
## 开发工具
|
||||||
|
|
||||||
|
| 技术 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| ESLint | 代码规范检查 |
|
||||||
|
| PostCSS + Autoprefixer | CSS 处理 |
|
||||||
|
| cross-env | 跨平台环境变量 |
|
||||||
Reference in New Issue
Block a user