3 Комити 77df0ac795 ... 04d10ad4ce

Аутор SHA1 Порука Датум
  wangmeng 04d10ad4ce 管理后台 7大模块 пре 1 недеља
  uncledong 77df0ac795 去除yudao相关内容,补充.env .env.local文件 пре 2 недеља
  hmy f8708fc26d 去掉ia和工作量 пре 2 недеља
100 измењених фајлова са 161 додато и 169 уклоњено
  1. BIN
      .image/Java监控.jpg
  2. BIN
      .image/MySQL.jpg
  3. BIN
      .image/OA请假-列表.jpg
  4. BIN
      .image/OA请假-发起.jpg
  5. BIN
      .image/OA请假-详情.jpg
  6. BIN
      .image/Redis.jpg
  7. BIN
      .image/admin-uniapp/01.png
  8. BIN
      .image/admin-uniapp/02.png
  9. BIN
      .image/admin-uniapp/03.png
  10. BIN
      .image/admin-uniapp/04.png
  11. BIN
      .image/admin-uniapp/05.png
  12. BIN
      .image/admin-uniapp/06.png
  13. BIN
      .image/admin-uniapp/07.png
  14. BIN
      .image/admin-uniapp/08.png
  15. BIN
      .image/admin-uniapp/09.png
  16. BIN
      .image/common/ai-feature.png
  17. BIN
      .image/common/ai-preview.gif
  18. BIN
      .image/common/bpm-feature.png
  19. BIN
      .image/common/crm-feature.png
  20. BIN
      .image/common/erp-feature.png
  21. BIN
      .image/common/infra-feature.png
  22. BIN
      .image/common/mall-feature.png
  23. BIN
      .image/common/mall-preview.png
  24. BIN
      .image/common/project-vs.png
  25. BIN
      .image/common/ruoyi-vue-pro-architecture.png
  26. BIN
      .image/common/ruoyi-vue-pro-biz.png
  27. BIN
      .image/common/system-feature.png
  28. BIN
      .image/common/yudao-cloud-architecture.png
  29. BIN
      .image/common/yudao-roadmap.png
  30. BIN
      .image/demo/vue3-ep.png
  31. BIN
      .image/个人中心.jpg
  32. BIN
      .image/代码生成.jpg
  33. BIN
      .image/令牌管理.jpg
  34. BIN
      .image/任务列表-审批.jpg
  35. BIN
      .image/任务列表-已办.jpg
  36. BIN
      .image/任务列表-待办.jpg
  37. BIN
      .image/任务日志.jpg
  38. BIN
      .image/商户信息.jpg
  39. BIN
      .image/在线用户.jpg
  40. BIN
      .image/大屏设计器-列表.jpg
  41. BIN
      .image/大屏设计器-编辑.jpg
  42. BIN
      .image/大屏设计器-预览.jpg
  43. BIN
      .image/字典数据.jpg
  44. BIN
      .image/字典类型.jpg
  45. BIN
      .image/定时任务.jpg
  46. BIN
      .image/岗位管理.jpg
  47. BIN
      .image/工作流设计器-bpmn.jpg
  48. BIN
      .image/工作流设计器-simple.jpg
  49. BIN
      .image/应用信息-列表.jpg
  50. BIN
      .image/应用信息-编辑.jpg
  51. BIN
      .image/应用管理.jpg
  52. BIN
      .image/我的流程-列表.jpg
  53. BIN
      .image/我的流程-发起.jpg
  54. BIN
      .image/我的流程-详情.jpg
  55. BIN
      .image/报表设计器-图形报表.jpg
  56. BIN
      .image/报表设计器-打印设计.jpg
  57. BIN
      .image/报表设计器-数据报表.jpg
  58. BIN
      .image/操作日志.jpg
  59. BIN
      .image/支付订单.jpg
  60. BIN
      .image/敏感词.jpg
  61. BIN
      .image/数据库文档.jpg
  62. BIN
      .image/文件管理.jpg
  63. BIN
      .image/文件管理2.jpg
  64. BIN
      .image/文件配置.jpg
  65. BIN
      .image/日志中心.jpg
  66. BIN
      .image/流程模型-列表.jpg
  67. BIN
      .image/流程模型-定义.jpg
  68. BIN
      .image/流程模型-设计.jpg
  69. BIN
      .image/流程表单.jpg
  70. BIN
      .image/生成效果.jpg
  71. BIN
      .image/用户分组.jpg
  72. BIN
      .image/用户管理.jpg
  73. BIN
      .image/登录.jpg
  74. BIN
      .image/登录日志.jpg
  75. BIN
      .image/短信日志.jpg
  76. BIN
      .image/短信模板.jpg
  77. BIN
      .image/短信渠道.jpg
  78. BIN
      .image/租户套餐.png
  79. BIN
      .image/租户管理.jpg
  80. BIN
      .image/系统接口.jpg
  81. BIN
      .image/菜单管理.jpg
  82. BIN
      .image/表单构建.jpg
  83. BIN
      .image/角色管理.jpg
  84. BIN
      .image/访问日志.jpg
  85. BIN
      .image/退款订单.jpg
  86. BIN
      .image/通知公告.jpg
  87. BIN
      .image/部门管理.jpg
  88. BIN
      .image/配置管理.jpg
  89. BIN
      .image/链路追踪.jpg
  90. BIN
      .image/错误日志.jpg
  91. BIN
      .image/错误码管理.jpg
  92. BIN
      .image/首页.jpg
  93. 0 137
      AGENTS.md
  94. 0 15
      grep.exe.stackdump
  95. 1 1
      src/api/community/comment/index.ts
  96. 121 0
      src/api/community/index.ts
  97. 15 2
      src/api/community/post/index.ts
  98. 23 13
      src/api/community/sensitive/index.ts
  99. 1 1
      src/api/community/topic/index.ts
  100. 0 0
      src/api/crm/business/index.ts

BIN
.image/Java监控.jpg



BIN
.image/OA请假-列表.jpg


BIN
.image/OA请假-发起.jpg


BIN
.image/OA请假-详情.jpg



BIN
.image/admin-uniapp/01.png


BIN
.image/admin-uniapp/02.png


BIN
.image/admin-uniapp/03.png


BIN
.image/admin-uniapp/04.png


BIN
.image/admin-uniapp/05.png


BIN
.image/admin-uniapp/06.png


BIN
.image/admin-uniapp/07.png


BIN
.image/admin-uniapp/08.png


BIN
.image/admin-uniapp/09.png


BIN
.image/common/ai-feature.png


BIN
.image/common/ai-preview.gif


BIN
.image/common/bpm-feature.png


BIN
.image/common/crm-feature.png


BIN
.image/common/erp-feature.png


BIN
.image/common/infra-feature.png


BIN
.image/common/mall-feature.png


BIN
.image/common/mall-preview.png


BIN
.image/common/project-vs.png


BIN
.image/common/ruoyi-vue-pro-architecture.png


BIN
.image/common/ruoyi-vue-pro-biz.png


BIN
.image/common/system-feature.png


BIN
.image/common/yudao-cloud-architecture.png


BIN
.image/common/yudao-roadmap.png


BIN
.image/demo/vue3-ep.png


BIN
.image/个人中心.jpg


BIN
.image/代码生成.jpg


BIN
.image/令牌管理.jpg


BIN
.image/任务列表-审批.jpg


BIN
.image/任务列表-已办.jpg


BIN
.image/任务列表-待办.jpg


BIN
.image/任务日志.jpg


BIN
.image/商户信息.jpg


BIN
.image/在线用户.jpg


BIN
.image/大屏设计器-列表.jpg


BIN
.image/大屏设计器-编辑.jpg


BIN
.image/大屏设计器-预览.jpg


BIN
.image/字典数据.jpg


BIN
.image/字典类型.jpg


BIN
.image/定时任务.jpg


BIN
.image/岗位管理.jpg


BIN
.image/工作流设计器-bpmn.jpg


BIN
.image/工作流设计器-simple.jpg


BIN
.image/应用信息-列表.jpg


BIN
.image/应用信息-编辑.jpg


BIN
.image/应用管理.jpg


BIN
.image/我的流程-列表.jpg


BIN
.image/我的流程-发起.jpg


BIN
.image/我的流程-详情.jpg


BIN
.image/报表设计器-图形报表.jpg


BIN
.image/报表设计器-打印设计.jpg


BIN
.image/报表设计器-数据报表.jpg


BIN
.image/操作日志.jpg


BIN
.image/支付订单.jpg


BIN
.image/敏感词.jpg


BIN
.image/数据库文档.jpg


BIN
.image/文件管理.jpg


BIN
.image/文件管理2.jpg


BIN
.image/文件配置.jpg


BIN
.image/日志中心.jpg


BIN
.image/流程模型-列表.jpg


BIN
.image/流程模型-定义.jpg


BIN
.image/流程模型-设计.jpg


BIN
.image/流程表单.jpg


BIN
.image/生成效果.jpg


BIN
.image/用户分组.jpg


BIN
.image/用户管理.jpg


BIN
.image/登录.jpg


BIN
.image/登录日志.jpg


BIN
.image/短信日志.jpg


BIN
.image/短信模板.jpg


BIN
.image/短信渠道.jpg


BIN
.image/租户套餐.png


BIN
.image/租户管理.jpg


BIN
.image/系统接口.jpg


BIN
.image/菜单管理.jpg


BIN
.image/表单构建.jpg


BIN
.image/角色管理.jpg


BIN
.image/访问日志.jpg


BIN
.image/退款订单.jpg


BIN
.image/通知公告.jpg


BIN
.image/部门管理.jpg


BIN
.image/配置管理.jpg


BIN
.image/链路追踪.jpg


BIN
.image/错误日志.jpg


BIN
.image/错误码管理.jpg


BIN
.image/首页.jpg


+ 0 - 137
AGENTS.md

@@ -1,137 +0,0 @@
-## 全局规则概览
-- 这是面向 agentic coding agents 的工作指引,覆盖构建、质量、风格、流程与协作。
-- 文件应保持最新,优先在仓库根目录维护。
-- 如遇新工具/工作流,应扩展本文件并在 PR 中同步讨论。 
-
-## 构建/ lint/ 测试
-- 常用命令:
-  - 构建: `npm run build` / `pnpm build` / `yarn build`
-  - 静态检查: `npm run lint` / `pnpm lint` / `yarn lint`
-  - 单元测试: `npm test` 或 `npm run test`,可用 `-t` 指定测试名称
-  - 集成测试: `npm run test:integration`(若存在)
-  - 生成报告: `npm run build -- --report`
-- 单个测试定位与执行
-  - 按关键字定位:`npm test -- -t "<testName>"`
-  - 指定文件:`npx vitest run path/to/file.test.ts -t "<testName>"`,Jest: `npm test -- path/to/file.test.ts -t "<testName>"`
-  - PNPM/Yarn 资源:`pnpm test -- -t "<testName>"` / `yarn test -- -t "<testName>"`
-  - Vitest 的完整 CLI:`npx vitest run -t "<testName>"` 或 `npx vitest run path/to/file.test.ts`
-- 运行快速片段测试
-  - 通过关键字快速定位:`npm test -- -t "keyword"`
-- 持续集成与日志
-  - CI 应锚定一次完整测试:测试完成后再进行打包与部署
-  - 日志输出应明确包含:时间戳、测试名称、通过/失败、覆盖率(如有)
-- 提交与钩子
-  - 本地执行前请确保已安装依赖,`node_modules` 不应缺失
-  - 使用 lint/test 流程,确保提交前通过静态检查与测试
-
-## 代码风格指南
-- 导入与模块组织
-  - 外部依赖放在顶部,内部/本地导入放在后
-  - 使用路径别名时,优先正式路径,避免跨根引用
-  - 未使用的导入应清理,静态分析应通过
-  - 使用 `import type` 显式标注类型导入以减少运行时开销
-- 格式化与排版
-  - 统一使用 2 空格缩进
-  - 语句结尾使用分号,除非项目规定不使用
-  - 行宽约 80-120 字符,超出时换行
-  - 尾随逗号可在导入/对象字面量中使用,便于 diff
-- TypeScript 类型
-  - 首选 interface,联合类型使用判别性联合
-  - 使用 readonly 保护不可变数据
-  - 避免 any;若必要,尽量用 unknown,逐步收窄
-  - 函数参数与返回值提供明确的类型签名
-- 命名与风格
-  - 变量与函数采用 camelCase
-  - 类型/类使用 PascalCase,常量使用 UPPER_SNAKE
-  - 避免无意义缩写,含义清晰
-- 错误处理
-  - 不吞错,抛出有意义的错误信息
-  - 自定义错误类型,提供上下文
-  - 保留原始堆栈便于调试
-  - catch 中避免抛出模糊错误
-- 异常与边界
-  - 输入要严格校验,错误信息要具备帮助性
-  - 未覆盖的分支显式抛出未实现错误
-- 日志与追踪
-  - 生产环境应统一日志组件,避免裸 console.log
-  - 日志包含时间戳、级别、信息、上下文
-- 测试友好性
-  - 测试应可重复、可预测,避免随机性
-  - 覆盖边界的测试用例命名应描述性
-  - fixtures 放在 test/fixtures,测试后清理
-- 依赖与版本
-  - 锁定版本,避免不可预测更新
-  - 使用 lock 文件管理依赖
-- 代码审查与提交
-  - 提交前本地执行 lint/test,确保通过
-  - 提交信息遵循一致的风格,可通过 Conventional Commits 风格
-  - 合并冲突后给出清晰的上下文注释
-- 结构与可维护性
-  - 遵循单一职责原则,模块职责清晰
-  - 设计对扩展友好,遵循开闭原则
-  - 重要逻辑应有文档注释
-- 安全性
-  - 不将敏感信息提交到仓库
-  - 使用环境变量来管理机密
-- 性能意识
-  - 延迟加载、按需初始化
-  - 缓存可重复计算结果
-  - 避免在渲染周期执行昂贵计算
-- 兼容性
-  - 兼容主流运行环境,必要时使用 polyfill
-- 可访问性
-  - 考虑无障碍与测试性
-- 组合与模块化
-  - 目录结构应清晰,循环依赖最小化
-  - 模块通过接口通信,隐藏实现细节
-- 注释与文档
-  - 关键逻辑提供 JSDoc / TSDoc
-  - 重要行为描述清晰,避免歧义
-- 测试约定
-  - 测试名称具描述性,覆盖边界
-  - fixtures 放 test/fixtures
-  - 使用 setup/teardown 钩子清理环境
-- 运行环境与依赖
-  - 锁定版本,使用 lock 文件
-  - 构建/测试所需的依赖要在 package.json 中明确
-- 代码审查与协作
-  - 提交前本地运行 lint/test,确保通过
-  - 处理冲突时提供可追踪的复核信息
-
-## 项目结构与约定
-- 代码分层
-  - api/ 数据接入接口
-  - store/ 全局状态管理
-  - components/ 可复用 UI 组件
-  - hooks/ 自定义 Hook
-  - views/ 业务页面
-  - plugins/ 插件封装
-  - types/ 公共类型定义
-- 命名约定
-  - 文件/目录使用小写+连字符命名
-  - 变量、函数遵循 camelCase
-  - 类型/类遵循 PascalCase
-- 导出与导入
-  - 默认导出尽量少,命名导出优先
-  - 按功能模块导出,避免跨模块耦合
-- 测试结构
-  - 单元测试靠近实现、集成测试覆盖路由/接口
-  - 端到端测试放在 test/e2e
-
-## Cursor 规则
-- 如存在 Cursor 规则,请放在 .cursor/rules/,并在此处合并引用
-- 当前仓库未发现实际 Cursor 规则文件,将在发现后集成
-
-## Copilot 规则
-- 如存在 Copilot 规则,请放在 .github/copilot-instructions.md,合并引用
-- 当前仓库未发现 Copilot 指令文件,将在发现后集成
-
-## 质量信号与改进计划
-- 发现的常见信号:console/log 调试信息、TODO/FIXME、any 的使用、@ts-ignore、未使用变量
-- 针对这些信号,提出逐步改进计划(以 PR 形式提出)
-- 成功落地后标记该任务为已完成,更新计划
-
-## 维护与更新
-- 定期回顾 AGENTS.md 的适用性
-- 新工具/新框架出现时,更新本文件的版本兼容性条款
-- 提交变更时附带简短的变更说明,方便团队理解

+ 0 - 15
grep.exe.stackdump

@@ -1,15 +0,0 @@
-Stack trace:
-Frame        Function    Args
-000FFFFBD00  00210062F57 (000FFFFBF08, 00000000002, 00000000002, 000FFFFDE50)
-00000000000  00210065045 (000FFFFC6B0, 00000000000, 000000001A8, 00000000000)
-000FFFFC410  0021013AB68 (00000000000, 00000000000, 00000000000, 00000000000)
-000000000C1  0021013619B (00000000000, 00000000000, 00000000000, 00000000000)
-000FFFFC7D8  002101365A5 (000000001A4, 00800000488, 000000000B5, 000000000B5)
-000FFFFC7D8  0021021D708 (00200000000, 00000000000, 00000000000, 000000015E8)
-000FFFFC7D8  0010042A1E5 (000FFFFCC20, 00000000001, 002101CA624, 00800000488)
-000FFFFCB10  00100404B7C (0000000001D, 0021032F000, 0021023A000, 00000000000)
-000FFFFCB10  00100429678 (00000000000, 000FFFFCD30, 00210371AC0, 000FFFFCDF0)
-000FFFFCD30  00210049B91 (00000000000, 00000000000, 00000000000, 00000000000)
-000FFFFFFF0  00210047716 (00000000000, 00000000000, 00000000000, 00000000000)
-000FFFFFFF0  002100477C4 (00000000000, 00000000000, 00000000000, 00000000000)
-End of stack trace

+ 1 - 1
src/api/community/comment/index.ts

@@ -33,6 +33,6 @@ export const deleteComment = (id: number) => {
 
 // 批量删除评论
 export const deleteCommentList = (ids: number[]) => {
-  return request.delete({ url: '/community/comment/delete-list', params: { ids: ids.join(',') } })
+  return request.delete({ url: '/community/comment/deleteList', params: { ids: ids.join(',') } })
 }
 

+ 121 - 0
src/api/community/index.ts

@@ -0,0 +1,121 @@
+import request from '@/config/axios'
+
+/**
+ * 社区管理补充 API
+ */
+
+// 文章详情
+export const getPostDetail = async (postId: string) => {
+  return await request.get({ url: `/community/post/${postId}` })
+}
+
+// 审核文章
+export const auditPost = async (postId: string, data: { auditStatus: number; auditRemark?: string }) => {
+  return await request.post({ url: `/community/post/${postId}/audit`, data })
+}
+
+// 删除文章
+export const deletePost = async (postId: string) => {
+  return await request.delete({ url: `/community/post/${postId}` })
+}
+
+// 发布文章
+export const createPost = async (data: any) => {
+  return await request.post({ url: `/community/post`, data })
+}
+
+// 更新文章
+export const updatePost = async (postId: string, data: any) => {
+  return await request.put({ url: `/community/post/${postId}`, data })
+}
+
+// 举报列表
+export const getReportList = async (params?: any) => {
+  return await request.get({ url: `/community/report/page`, params })
+}
+
+// 举报详情
+export const getReport = async (reportId: string) => {
+  return await request.get({ url: `/community/report/${reportId}` })
+}
+
+// 处理举报
+export const handleReport = async (reportId: string, data: { handleResult: number; handleRemark?: string }) => {
+  return await request.post({ url: `/community/report/${reportId}/handle`, data })
+}
+
+// 封禁列表(用户封禁)
+export const getBanList = async (params?: any) => {
+  return await request.get({ url: `/community/ban/page`, params })
+}
+
+// 封禁用户
+export const banUser = async (data: { userId: number; banReason: string; banStartTime: string; banEndTime?: string | null; isIndefinite?: boolean }) => {
+  return await request.post({ url: `/community/ban/create`, data })
+}
+
+// 更新封禁
+export const updateBan = async (userId: number, data: { banReason: string; banStartTime: string; banEndTime?: string | null; isIndefinite?: boolean }) => {
+  return await request.put({ url: `/community/ban/update`, data: { userId, ...data } })
+}
+
+// 解禁用户
+export const unbanUser = async (userId: number) => {
+  return await request.post({ url: `/community/ban/unban`, data: { userId } })
+}
+
+// 活动详情
+export const getActivityDetail = async (activityId: string) => {
+  return await request.get({ url: `/community/activity/${activityId}` })
+}
+
+// 报名名单
+export const getActivityRegisters = async (activityId: string, params?: any) => {
+  return await request.get({ url: `/community/activity/${activityId}/registers`, params })
+}
+
+// 创建活动
+export const createActivity = async (data: any) => {
+  return await request.post({ url: `/community/activity`, data })
+}
+
+// 更新活动
+export const updateActivity = async (activityId: string, data: any) => {
+  return await request.put({ url: `/community/activity/${activityId}`, data })
+}
+
+// 活动列表
+export const getActivityList = async (params?: any) => {
+  return await request.get({ url: `/community/activity/page`, params })
+}
+
+// 删除活动
+export const deleteActivity = async (activityId: string) => {
+  return await request.delete({ url: `/community/activity/${activityId}` })
+}
+
+// 设置虚拟用户
+export const setVirtualUsers = async (activityId: string, data: { virtualCount: number }) => {
+  return await request.post({ url: `/community/activity/${activityId}/virtual-users`, data })
+}
+
+// Banner列表
+export const getBannerList = async (params?: any) => {
+  return await request.get({ url: `/community/banner/page`, params })
+}
+
+// 新增Banner
+export const createBanner = async (data: any) => {
+  return await request.post({ url: `/community/banner`, data })
+}
+
+// 更新Banner
+export const updateBanner = async (bannerId: number, data: any) => {
+  return await request.put({ url: `/community/banner/${bannerId}`, data })
+}
+
+// 删除Banner
+export const deleteBanner = async (bannerId: number) => {
+  return await request.delete({ url: `/community/banner/${bannerId}` })
+}
+

+ 15 - 2
src/api/community/post/index.ts

@@ -43,6 +43,14 @@ export interface PostUpdateStatusReqVO {
   status?: number // 状态:1-正常,2-删除,3-审核中
   isTop?: number // 是否置顶:0-否,1-是
   isEssence?: number // 是否精华:0-否,1-是
+  pendingReviewReason?: string // 待审核原因
+}
+
+export interface PostReviewReqVO {
+  id: number // 帖子ID,0表示批量
+  reviewResult: number // 审核结果:1-通过,0-不通过
+  reviewReason: string // 审核原因
+  ids?: number[] // 批量审核时的ID列表
 }
 
 // 查询帖子分页列表
@@ -57,7 +65,7 @@ export const getPost = (id: number) => {
 
 // 更新帖子状态
 export const updatePostStatus = (data: PostUpdateStatusReqVO) => {
-  return request.put({ url: '/community/post/update-status', data })
+  return request.put({ url: '/community/post/updateStatus', data })
 }
 
 // 删除帖子
@@ -67,6 +75,11 @@ export const deletePost = (id: number) => {
 
 // 批量删除帖子
 export const deletePostList = (ids: number[]) => {
-  return request.delete({ url: '/community/post/delete-list', params: { ids: ids.join(',') } })
+  return request.delete({ url: '/community/post/deleteList', params: { ids: ids.join(',') } })
+}
+
+// 审核帖子
+export const reviewPost = (data: PostReviewReqVO) => {
+  return request.post({ url: '/community/post/review', data })
 }
 

+ 23 - 13
src/api/community/sensitive/index.ts

@@ -3,49 +3,59 @@ import request from '@/config/axios'
 export interface SensitiveWordVO {
   id?: number // 敏感词ID
   word?: string // 敏感词
-  type?: number // 类型:1-禁用词,2-替换词
-  replaceWord?: string // 替换词(仅替换词类型)
-  status?: number // 状态:1-启用,2-禁用
+  category?: string // 分类:pornographic-色情,political-政治敏感,advertisement-广告,personal_attack-人生攻击,reactionary-反动
+  status?: number // 状态:1-启用,0-禁用
   createTime?: Date // 创建时间
   updateTime?: Date // 更新时间
 }
 
 export interface SensitiveWordPageReqVO extends PageParam {
   word?: string // 敏感词,模糊匹配
-  type?: number // 类型:1-禁用词,2-替换词
-  status?: number // 状态:1-启用,2-禁用
+  category?: string // 分类
+  status?: number // 状态:1-启用,0-禁用
+  createStart?: string // 创建开始时间
+  createEnd?: string // 创建结束时间
 }
 
 export interface SensitiveWordSaveReqVO {
   id?: number // 敏感词ID
   word: string // 敏感词
-  type: number // 类型:1-禁用词,2-替换词
-  replaceWord?: string // 替换词(仅替换词类型)
-  status: number // 状态:1-启用,2-禁用
+  category: string // 分类:pornographic-色情,political-政治敏感,advertisement-广告,personal_attack-人生攻击,reactionary-反动
+  status: number // 状态:1-启用,0-禁用
 }
 
 // 查询敏感词分页列表
 export const getSensitiveWordPage = (params: SensitiveWordPageReqVO) => {
-  return request.get({ url: '/community/sensitive-word/page', params })
+  return request.get({ url: '/community/sensitiveWord/page', params })
 }
 
 // 查询敏感词详情
 export const getSensitiveWord = (id: number) => {
-  return request.get({ url: '/community/sensitive-word/get?id=' + id })
+  return request.get({ url: '/community/sensitiveWord/get?id=' + id })
 }
 
 // 新增敏感词
 export const createSensitiveWord = (data: SensitiveWordSaveReqVO) => {
-  return request.post({ url: '/community/sensitive-word/create', data })
+  return request.post({ url: '/community/sensitiveWord/create', data })
 }
 
 // 修改敏感词
 export const updateSensitiveWord = (data: SensitiveWordSaveReqVO) => {
-  return request.put({ url: '/community/sensitive-word/update', data })
+  return request.put({ url: '/community/sensitiveWord/update', data })
 }
 
 // 删除敏感词
 export const deleteSensitiveWord = (id: number) => {
-  return request.delete({ url: '/community/sensitive-word/delete?id=' + id })
+  return request.delete({ url: '/community/sensitiveWord/delete?id=' + id })
+}
+
+// 批量更新状态
+export const batchUpdateStatus = (ids: number[], status: number) => {
+  return request.put({ url: '/community/sensitiveWord/batchStatus', data: { ids, status } })
+}
+
+// 导入敏感词
+export const importSensitiveWords = (formData: FormData) => {
+  return request.post({ url: '/community/sensitiveWord/import', data: formData, headers: { 'Content-Type': 'multipart/form-data' } })
 }
 

+ 1 - 1
src/api/community/topic/index.ts

@@ -50,6 +50,6 @@ export const deleteTopic = (id: number) => {
 
 // 获得启用的话题列表
 export const getEnabledTopicList = () => {
-  return request.get({ url: '/community/topic/list-enabled' })
+  return request.get({ url: '/community/topic/listEnabled' })
 }
 

+ 0 - 0
src/api/crm/business/index.ts


Неке датотеке нису приказане због велике количине промена