├── php-api/ # 改造后的PHP接口层 ├── java-ad-service/ # 若依框架微服务(广告+VIP+分账) ├── uniapp-reader/ # UniApp前端项目 │ ├── pages/ # 各端页面 │ └──
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import request from '@/utils/request'
  2. // Java 后台接口
  3. const javaApi = {
  4. // 小说相关接口
  5. getNovelList: (params) => request({ url: '/novel/list', params }),
  6. getChapterContent: (chapterId) => request({ url: `/novel/chapter/${chapterId}` }),
  7. // 作家申请
  8. applyAuthor: (data) => request({ url: '/author/apply', method: 'post', data })
  9. }
  10. // PHP 后台接口 (预留)
  11. const phpApi = {
  12. getNovelList: (params) => request({ url: '/php-api/novel/list', params }),
  13. getChapterContent: (chapterId) => request({ url: `/php-api/novel/chapter/${chapterId}` })
  14. }
  15. // 根据配置切换数据源
  16. const usePhpApi = false; // 默认使用Java后台
  17. export default {
  18. // 分类相关
  19. getCategories() {
  20. return request({ url: '/api/novel/categories' })
  21. },
  22. // 小说相关
  23. getHotNovels() {
  24. return request({ url: '/api/novel/hot' })
  25. },
  26. getNovelsByCategory(categoryId = 0) {
  27. return request({
  28. url: '/api/novel/list',
  29. params: { categoryId }
  30. })
  31. },
  32. getChapters(novelId) {
  33. return request({ url: `/api/novel/${novelId}/chapters` })
  34. },
  35. getChapterContent(chapterId) {
  36. return request({ url: `/api/novel/chapter/${chapterId}` })
  37. },
  38. // 作家申请
  39. applyAuthor(data) {
  40. return request({
  41. url: '/api/author/apply',
  42. method: 'post',
  43. data
  44. })
  45. },
  46. // 上传相关(需要管理员权限)
  47. uploadNovel(file, title, authorId) {
  48. const formData = new FormData();
  49. formData.append('file', file);
  50. formData.append('title', title);
  51. formData.append('authorId', authorId);
  52. return request({
  53. url: '/admin/novel/upload',
  54. method: 'post',
  55. data: formData,
  56. headers: { 'Content-Type': 'multipart/form-data' }
  57. })
  58. },
  59. uploadChapter(file, novelId, chapterOrder) {
  60. const formData = new FormData();
  61. formData.append('file', file);
  62. formData.append('novelId', novelId);
  63. if (chapterOrder) formData.append('chapterOrder', chapterOrder);
  64. return request({
  65. url: '/admin/novel/chapter/upload',
  66. method: 'post',
  67. data: formData,
  68. headers: { 'Content-Type': 'multipart/form-data' }
  69. })
  70. }
  71. getNovelList: usePhpApi ? phpApi.getNovelList : javaApi.getNovelList,
  72. getChapterContent: usePhpApi ? phpApi.getChapterContent : javaApi.getChapterContent,
  73. // 其他接口...
  74. applyAuthor: javaApi.applyAuthor,
  75. // 保存阅读进度
  76. saveReadingProgress(chapter) {
  77. return request({
  78. url: '/reading/progress',
  79. method: 'post',
  80. data: { chapter }
  81. })
  82. },
  83. // 获取阅读进度
  84. getReadingProgress() {
  85. return request({
  86. url: '/reading/progress',
  87. method: 'get'
  88. })
  89. }
  90. }